ZGlmZiAtLWdpdCBhL0NIQU5HRUxPRyBiL0NIQU5HRUxPRwppbmRleCBlZmQ4NjYzLi4xM2UyMjNlIDEwMDY0NAotLS0gYS9DSEFOR0VMT0cKKysrIGIvQ0hBTkdFTE9HCkBAIC0yLDYgKzIsMTIgQEAKIENoYW5nZXMgc2luY2UgVS1Cb290IDEuMS4xOgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCisqIFBhdGNoIGJ5IEFuZHJlYSBNYXJzb24sIDExIEp1biAyMDA0OgorICBVcGRhdGUgZm9yIFBQQ2hhbWVsZW9uIGJvYXJkOgorICAtIHN1cHBvcnQgZm9yIFN5c0NsayBAIDI1TUh6CisgIC0gc3VwcG9ydCBmb3IgU2lsaWNvbiBNb3Rpb24gU003MTIgVkdBIGNvbnRyb2xsZXIKKyAgLSBzb21lIGNsZWFuIHVwcworCiAqIFBhdGNoZXMgYnkgUmljaGFyZCBXb29kcnVmZiwgMTAgSnVuIDIwMDQ6CiAgIC0gZml4IHByb2JsZW1zIHdpdGggZXhhbXBsZXMvc3R1YnMuYyBmb3IgR0NDID49IDMuNAogICAtIGZpeCBwcm9ibGVtcyB3aXRoIGdkIGluaXRpYWxpemF0aW9uCmRpZmYgLS1naXQgYS9DUkVESVRTIGIvQ1JFRElUUwppbmRleCAxYzY5N2ZhLi45YjFmNmEwIDEwMDY0NAotLS0gYS9DUkVESVRTCisrKyBiL0NSRURJVFMKQEAgLTI1NCw2ICsyNTQsMTEgQEAKIEU6IGRhbkBuZXR4NC5jb20KIEQ6IEZBRFNST00sIHRoZSBncmFuZGZhdGhlciBvZiBhbGwgb2YgdGhpcwogCitOOiBBbmRyZWEgImxsYW5kcmUiIE1hcnNvbgorRTogYW5kcmVhLm1hcnNvbkBkYXZlLXRlY2guaXQKK0Q6IFBvcnQgdG8gUFBDaGFtZWxlb25FVkIgYm9hcmQKK1c6IHd3dy5kYXZlLXRlY2guaXQKKwogTjogUmVpbmhhcmQgTWV5ZXIKIEU6IHIubWV5ZXJAZW1rLWVsZWt0cm9uaWsuZGUKIEQ6IFBvcnQgdG8gRU1LIFRPUDg2MCBNb2R1bGUKQEAgLTMzOCw2ICszNDMsMTEgQEAKIEU6IGt1cnRAZXh5cy5iZQogRDogU3VwcG9ydCBmb3IgRXh5cyBYU0VuZ2luZSBib2FyZAogCitOOiBBbmRyZWEgU2NpYW4KK0U6IGFuZHJlYS5zY2lhbkBkYXZlLXRlY2guaXQKK0Q6IFBvcnQgdG8gQjIgYm9hcmQKK1c6IHd3dy5kYXZlLXRlY2guaXQKKwogTjogUm9iIFRheWxvcgogRTogcm9idEBmbHlpbmdwaWcuY29tCiBEOiBQb3J0IHRvIE1CWDg2MFQgYW5kIFNhbmRwb2ludDgyNDAKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggZTYwODViZi4uNWI3ZDVlYSAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTE4NSw2ICsxODUsMTAgQEAKIAogCUVWQjY0MjYwXzc1MENYCQlNUEM3NTBDWAogCitBbmRyZWEgImxsYW5kcmUiIE1hcnNvbiA8YW5kcmVhLm1hcnNvbkBkYXZlLXRlY2guaXQ+CisKKwlQUENoYW1lbGVvbkVWQglQUEM0MDVFUAorIAogUmVpbmhhcmQgTWV5ZXIgPHIubWV5ZXJAZW1rLWVsZWt0cm9uaWsuZGU+CiAKIAlUT1A4NjAJCQlNUEM4NjBUCkBAIC0zNzMsNiArMzc3LDEwIEBACiAJY3NiMjI2CQkJeHNjYWxlCiAJaW5ub2tvbQkJCXhzY2FsZQogCitBbmRyZWEgU2NpYW4gPGFuZHJlYS5zY2lhbkBkYXZlLXRlY2guaXQ+CisKKwlCMgkJCQlBUk03VERNSSAoUzNDNDRCMFgpCisgCiBBbGV4IFr8cGtlIDxhenVAc3lzZ28uZGU+CiAKIAlsYXJ0CQkJU0ExMTAwCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDI2YTZkZjQuLmFiMWEzY2MgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC02MDYsNyArNjA2LDcgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIFBQQzR4eCBTeXN0ZW1zCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi14dHJhY3RfNHh4ID0gJChzdWJzdCBfTU9ERUxfQkEsLCQoc3Vic3QgX01PREVMX01FLCwkKHN1YnN0IF9NT0RFTF9ISSwsJChzdWJzdCBfY29uZmlnLCwkMSkpKSkKK3h0cmFjdF80eHggPSAkKHN1YnN0IF8yNSwsJChzdWJzdCBfMzMsLCQoc3Vic3QgX0JBLCwkKHN1YnN0IF9NRSwsJChzdWJzdCBfSEksLCQoc3Vic3QgX2NvbmZpZywsJDEpKSkpKSkKIAogQURDSU9QX2NvbmZpZzoJdW5jb25maWcKIAlALi9ta2NvbmZpZyAkKEA6X2NvbmZpZz0pIHBwYyBwcGM0eHggYWRjaW9wIGVzZApAQCAtNzA2LDEwICs3MDYsMTIgQEAKIFBNQzQwNV9jb25maWc6CXVuY29uZmlnCiAJQC4vbWtjb25maWcgJChAOl9jb25maWc9KSBwcGMgcHBjNHh4IHBtYzQwNSBlc2QKIAotUFBDaGFtZWxlb25FVkJfTU9ERUxfQkFfY29uZmlnCVwKLVBQQ2hhbWVsZW9uRVZCX01PREVMX01FX2NvbmZpZwlcCi1QUENoYW1lbGVvbkVWQl9NT0RFTF9ISV9jb25maWcJXAotUFBDaGFtZWxlb25FVkJfY29uZmlnOgl1bmNvbmZpZworUFBDaGFtZWxlb25FVkJfQkFfMjVfY29uZmlnCVwKK1BQQ2hhbWVsZW9uRVZCX01FXzI1X2NvbmZpZwlcCitQUENoYW1lbGVvbkVWQl9ISV8yNV9jb25maWcJXAorUFBDaGFtZWxlb25FVkJfQkFfMzNfY29uZmlnCVwKK1BQQ2hhbWVsZW9uRVZCX01FXzMzX2NvbmZpZwlcCitQUENoYW1lbGVvbkVWQl9ISV8zM19jb25maWc6CXVuY29uZmlnCiAJQCA+aW5jbHVkZS9jb25maWcuaAogCUBbIC16ICIkKGZpbmRzdHJpbmcgX01PREVMX0JBLCRAKSIgXSB8fCBcCiAJCXsgZWNobyAiI2RlZmluZSBDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01PREVMIDAiID4+aW5jbHVkZS9jb25maWcuaCA7IFwKQEAgLTcyMyw2ICs3MjUsMTQgQEAKIAkJeyBlY2hvICIjZGVmaW5lIENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfTU9ERUwgMiIgPj5pbmNsdWRlL2NvbmZpZy5oIDsgXAogCQkgIGVjaG8gIi4uLiBISUdILUVORCBtb2RlbCIgOyBcCiAJCX0KKwlAWyAteiAiJChmaW5kc3RyaW5nIF8yNSwkQCkiIF0gfHwgXAorCQl7IGVjaG8gIiNkZWZpbmUgQ09ORklHX1BQQ0hBTUVMRU9OX0NMS18yNSIgPj5pbmNsdWRlL2NvbmZpZy5oIDsgXAorCQkgIGVjaG8gIiBTeXNDbGsgPSAyNU1IeiIgOyBcCisJCX0KKwlAWyAteiAiJChmaW5kc3RyaW5nIF8zMywkQCkiIF0gfHwgXAorCQl7IGVjaG8gIiNkZWZpbmUgQ09ORklHX1BQQ0hBTUVMRU9OX0NMS18zMyIgPj5pbmNsdWRlL2NvbmZpZy5oIDsgXAorCQkgIGVjaG8gIiBTeXNDbGsgPSAzM01IeiIgOyBcCisJCX0KIAlALi9ta2NvbmZpZyAtYSAkKGNhbGwgeHRyYWN0XzR4eCwkQCkgcHBjIHBwYzR4eCBQUENoYW1lbGVvbkVWQiBkYXZlCiAKIFZPSDQwNV9jb25maWc6CXVuY29uZmlnCmRpZmYgLS1naXQgYS9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL1BQQ2hhbWVsZW9uRVZCLmMgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL1BQQ2hhbWVsZW9uRVZCLmMKaW5kZXggYjA4YjExOS4uMmIxMmY5NyAxMDA2NDQKLS0tIGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9QUENoYW1lbGVvbkVWQi5jCisrKyBiL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvUFBDaGFtZWxlb25FVkIuYwpAQCAtMjksMjIgKzI5LDkgQEAKICNpbmNsdWRlIDxjb21tYW5kLmg+CiAjaW5jbHVkZSA8bWFsbG9jLmg+CiAKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2lmIDAKLSNkZWZpbmUgRlBHQV9ERUJVRwotI2VuZGlmCi0KLS8qIGZwZ2EgY29uZmlndXJhdGlvbiBkYXRhIC0gZ3ppcCBjb21wcmVzc2VkIGFuZCBnZW5lcmF0ZWQgYnkgYmluMmMgKi8KLWNvbnN0IHVuc2lnbmVkIGNoYXIgZnBnYWRhdGFbXSA9Ci17Ci0jaW5jbHVkZSAiZnBnYWRhdGEuYyIKLX07CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLS8qCi0gKiBpbmNsdWRlIGNvbW1vbiBmcGdhIGNvZGUgKGZvciBlc2QgYm9hcmRzKQotICovCi0jaW5jbHVkZSAiLi4vY29tbW9uL2ZwZ2EuYyIKIAogCiAvKiBQcm90b3R5cGVzICovCkBAIC02MCwxMyArNDcsMTMgQEAKIAkgKiBJUlEgMC0xNSAgNDA1R1AgaW50ZXJuYWxseSBnZW5lcmF0ZWQ7IGFjdGl2ZSBoaWdoOyBsZXZlbCBzZW5zaXRpdmUKIAkgKiBJUlEgMTYgICAgNDA1R1AgaW50ZXJuYWxseSBnZW5lcmF0ZWQ7IGFjdGl2ZSBsb3c7IGxldmVsIHNlbnNpdGl2ZQogCSAqIElSUSAxNy0yNCBSRVNFUlZFRAotCSAqIElSUSAyNSAoRVhUIElSUSAwKSBDQU4wOyBhY3RpdmUgbG93OyBsZXZlbCBzZW5zaXRpdmUKLQkgKiBJUlEgMjYgKEVYVCBJUlEgMSkgU0VSMCA7IGFjdGl2ZSBsb3c7IGxldmVsIHNlbnNpdGl2ZQotCSAqIElSUSAyNyAoRVhUIElSUSAyKSBTRVIxOyBhY3RpdmUgbG93OyBsZXZlbCBzZW5zaXRpdmUKLQkgKiBJUlEgMjggKEVYVCBJUlEgMykgRlBHQSAwOyBhY3RpdmUgbG93OyBsZXZlbCBzZW5zaXRpdmUKLQkgKiBJUlEgMjkgKEVYVCBJUlEgNCkgRlBHQSAxOyBhY3RpdmUgbG93OyBsZXZlbCBzZW5zaXRpdmUKLQkgKiBJUlEgMzAgKEVYVCBJUlEgNSkgUENJIElOVEE7IGFjdGl2ZSBsb3c7IGxldmVsIHNlbnNpdGl2ZQotCSAqIElSUSAzMSAoRVhUIElSUSA2KSBDT01QQUNUIEZMQVNIOyBhY3RpdmUgaGlnaDsgbGV2ZWwgc2Vuc2l0aXZlCisJICogSVJRIDI1IChFWFQgSVJRIDApCisJICogSVJRIDI2IChFWFQgSVJRIDEpCisJICogSVJRIDI3IChFWFQgSVJRIDIpCisJICogSVJRIDI4IChFWFQgSVJRIDMpCisJICogSVJRIDI5IChFWFQgSVJRIDQpCisJICogSVJRIDMwIChFWFQgSVJRIDUpCisJICogSVJRIDMxIChFWFQgSVJRIDYpCiAJICovCiAJbXRkY3IodWljc3IsIDB4RkZGRkZGRkYpOyAgICAgICAvKiBjbGVhciBhbGwgaW50cyAqLwogCW10ZGNyKHVpY2VyLCAweDAwMDAwMDAwKTsgICAgICAgLyogZGlzYWJsZSBhbGwgaW50cyAqLwpAQCAtMjY4LDggKzI1NSwxMyBAQAogewogCXVsb25nIHRvdGxlbiA9IDA7CiAKLSNpZiAoQ09ORklHX1BQQ0hBTUVMRU9OX01PRFVMRV9NT0RFTCA9PSBDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01FKSB8fCBcCisvKgorCVRoZSBISSBtb2RlbCBpcyBlcXVpcHBlZCB3aXRoIGEgbGFyZ2UgYmxvY2sgTkFORCBjaGlwIG5vdCBzdXBwb3J0ZWQgeWV0CisJYnkgVS1Cb290CiAgICAgKENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfTU9ERUwgPT0gQ09ORklHX1BQQ0hBTUVMRU9OX01PRFVMRV9ISSkKKyovCisKKyNpZiAoQ09ORklHX1BQQ0hBTUVMRU9OX01PRFVMRV9NT0RFTCA9PSBDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01FKQogCWRlYnVnICgiUHJvYmluZyBhdCAweCUuOHhcbiIsIENGR19OQU5EMF9CQVNFKTsKIAl0b3RsZW4gKz0gbmFuZF9wcm9iZSAoQ0ZHX05BTkQwX0JBU0UpOwogI2VuZGlmCS8qIENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfTUUsIENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfSEkgKi8KQEAgLTI4MCwzICsyNzIsMzkgQEAKIAlwcmludGYgKCIlNGx1IE1CXG4iLCB0b3RsZW4gPj4yMCk7CiB9CiAjZW5kaWYKKworI2lmZGVmIENPTkZJR19DRkJfQ09OU09MRQorIyBpZmRlZiBDT05GSUdfQ09OU09MRV9FWFRSQV9JTkZPCisjIGluY2x1ZGUgPHZpZGVvX2ZiLmg+CitleHRlcm4gR3JhcGhpY0RldmljZSBzbWk7CisKK3ZvaWQgdmlkZW9fZ2V0X2luZm9fc3RyIChpbnQgbGluZV9udW1iZXIsIGNoYXIgKmluZm8pCit7CisJdWludCBwdnIgPSBnZXRfcHZyICgpOworCisJLyogaW5pdCB2aWRlbyBpbmZvIHN0cmluZ3MgZm9yIGdyYXBoaWMgY29uc29sZSAqLworCXN3aXRjaCAobGluZV9udW1iZXIpIHsKKwljYXNlIDE6CisJCXN3aXRjaCAocHZyKSB7CisJCWNhc2UgUFZSXzQwNUVQX1JCOgorCQkJc3ByaW50ZiAoaW5mbywgIiBJQk0gUG93ZXJQQyA0MDVFUCBSZXYuIEIiKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJc3ByaW50ZiAoaW5mbywgIiBJQk0gUG93ZXJQQyA0MDVFUCBSZXYuIDx1bmtub3duPiIpOworCQkJYnJlYWs7CisJCX0KKwkJcmV0dXJuOworCWNhc2UgMjoKKwkJc3ByaW50ZiAoaW5mbywgIiBEQVZFIFNybCBQUENoYW1lbGVvbkVWQiAtIHd3dy5kYXZlLXRlY2guaXQiKTsKKwkJcmV0dXJuOworCWNhc2UgMzoKKwkJc3ByaW50ZiAoaW5mbywgIiAlcyIsIHNtaS5tb2RlSWRlbnQpOworCQlyZXR1cm47CisJfQorCisJLyogbm8gbW9yZSBpbmZvIGxpbmVzICovCisJKmluZm8gPSAwOworCXJldHVybjsKK30KKyMgZW5kaWYJLyogQ09ORklHX0NPTlNPTEVfRVhUUkFfSU5GTyAqLworI2VuZGlmCS8qIENPTkZJR19DRkJfQ09OU09MRSAqLwpkaWZmIC0tZ2l0IGEvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9mbGFzaC5jIGIvYm9hcmQvZGF2ZS9QUENoYW1lbGVvbkVWQi9mbGFzaC5jCmluZGV4IDVmNjczNjAuLjY5MmQyNzUgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmUvUFBDaGFtZWxlb25FVkIvZmxhc2guYworKysgYi9ib2FyZC9kYXZlL1BQQ2hhbWVsZW9uRVZCL2ZsYXNoLmMKQEAgLTUwLDYgKzUwLDkgQEAKIAl1bnNpZ25lZCBsb25nIGJhc2U7CiAJaW50IHNpemVfdmFsID0gMDsKIAorCWRlYnVnKCJbJXMsICVkXSBFbnRlcmluZyAuLi5cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOworCWRlYnVnKCJbJXMsICVkXSBmbGFzaF9pbmZvID0gMHglMDhYIC4uLlxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXywgZmxhc2hfaW5mbyk7CisKIAkvKiBJbml0OiBubyBGTEFTSGVzIGtub3duICovCiAJZm9yIChpPTA7IGk8Q0ZHX01BWF9GTEFTSF9CQU5LUzsgKytpKSB7CiAJCWZsYXNoX2luZm9baV0uZmxhc2hfaWQgPSBGTEFTSF9VTktOT1dOOwpAQCAtNTcsNiArNjAsNyBAQAogCiAJLyogU3RhdGljIEZMQVNIIEJhbmsgY29uZmlndXJhdGlvbiBoZXJlIC0gRklYTUUgWFhYICovCiAKKwlkZWJ1ZygiWyVzLCAlZF0gQ2FsbGluZyBmbGFzaF9nZXRfc2l6ZSAuLi5cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogCXNpemUgPSBmbGFzaF9nZXRfc2l6ZSgodnVfbG9uZyAqKUZMQVNIX0JBU0UwX1BSRUxJTSwgJmZsYXNoX2luZm9bMF0pOwogCiAJaWYgKGZsYXNoX2luZm9bMF0uZmxhc2hfaWQgPT0gRkxBU0hfVU5LTk9XTikgewpAQCAtNjQsOCArNjgsMTEgQEAKIAkJCXNpemUsIHNpemU8PDIwKTsKIAl9CiAKKwlkZWJ1ZygiWyVzLCAlZF0gVGVzdCBwb2ludCAuLi5cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOworCiAJLyogU2V0dXAgb2Zmc2V0cyAqLwogCWZsYXNoX2dldF9vZmZzZXRzICgtc2l6ZSwgJmZsYXNoX2luZm9bMF0pOworCWRlYnVnKCJbJXMsICVkXSBUZXN0IHBvaW50IC4uLlxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CiAKIAkvKiBSZS1kbyBzaXppbmcgdG8gZ2V0IGZ1bGwgY29ycmVjdCBpbmZvICovCiAJbXRkY3IoZWJjY2ZnYSwgcGIwY3IpOwpAQCAtOTEsNiArOTgsNyBAQAogCX0KIAlwYmNyID0gKHBiY3IgJiAweDAwMDFmZmZmKSB8IGJhc2UgfCAoc2l6ZV92YWwgPDwgMTcpOwogCW10ZGNyKGViY2NmZ2QsIHBiY3IpOworCWRlYnVnKCJbJXMsICVkXSBUZXN0IHBvaW50IC4uLlxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CiAKIAkvKiBNb25pdG9yIHByb3RlY3Rpb24gT04gYnkgZGVmYXVsdCAqLwogCSh2b2lkKWZsYXNoX3Byb3RlY3QoRkxBR19QUk9URUNUX1NFVCwKQEAgLTk4LDYgKzEwNiw3IEBACiAJCQkgICAgMHhmZmZmZmZmZiwKIAkJCSAgICAmZmxhc2hfaW5mb1swXSk7CiAKKwlkZWJ1ZygiWyVzLCAlZF0gVGVzdCBwb2ludCAuLi5cbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogCWZsYXNoX2luZm9bMF0uc2l6ZSAgPSBzaXplOwogCiAJcmV0dXJuIChzaXplKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2RhdmUvY29tbW9uL2ZsYXNoLmMgYi9ib2FyZC9kYXZlL2NvbW1vbi9mbGFzaC5jCmluZGV4IDQ0NmRlZmMuLmJmMGYyYmYgMTAwNjQ0Ci0tLSBhL2JvYXJkL2RhdmUvY29tbW9uL2ZsYXNoLmMKKysrIGIvYm9hcmQvZGF2ZS9jb21tb24vZmxhc2guYwpAQCAtMjIwLDYgKzIyMCw4IEBACiAJdWxvbmcgYmFzZSA9ICh1bG9uZylhZGRyOwogCXZvbGF0aWxlIENGR19GTEFTSF9XT1JEX1NJWkUgKmFkZHIyID0gKENGR19GTEFTSF9XT1JEX1NJWkUgKilhZGRyOwogCisJZGVidWcoIlslcywgJWRdIEVudGVyaW5nIC4uLlxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7CisKIAkvKiBXcml0ZSBhdXRvIHNlbGVjdCBjb21tYW5kOiByZWFkIE1hbnVmYWN0dXJlciBJRCAqLwogCWFkZHIyW0NGR19GTEFTSF9BRERSMF0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwQUEwMEFBOwogCWFkZHIyW0NGR19GTEFTSF9BRERSMV0gPSAoQ0ZHX0ZMQVNIX1dPUkRfU0laRSkweDAwNTUwMDU1OwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9zcGVlZC5jIGIvY3B1L3BwYzR4eC9zcGVlZC5jCmluZGV4IGY4Zjg4ZmY0NS4uYmUwZGUwYyAxMDA2NDQKLS0tIGEvY3B1L3BwYzR4eC9zcGVlZC5jCisrKyBiL2NwdS9wcGM0eHgvc3BlZWQuYwpAQCAtMzgzLDggKzM4MywxMyBAQAogCSAqLwogCXBsbG1yMF9jY2R2ID0gKChwbGxtcjAgJiBQTExNUjBfQ1BVX0RJVl9NQVNLKSA+PiAyMCkgKyAxOwogCWlmIChwbGxtcjEgJiBQTExNUjFfU1NDU19NQVNLKSB7Ci0JCXN5c0luZm8tPmZyZXFQcm9jZXNzb3IgPSAoQ09ORklHX1NZU19DTEtfRlJFUSAqIHN5c0luZm8tPnBsbEZia0RpdikKLQkJCS8gcGxsbXIwX2NjZHY7CisJCS8qCisJCSAqIFRoaXMgaXMgdHJ1ZSBpZiBGV0RWQSA9PSBGV0RWQjoKKwkJICogc3lzSW5mby0+ZnJlcVByb2Nlc3NvciA9IChDT05GSUdfU1lTX0NMS19GUkVRICogc3lzSW5mby0+cGxsRmJrRGl2KQorCQkgKgkvIHBsbG1yMF9jY2R2OworCQkgKi8KKwkJc3lzSW5mby0+ZnJlcVByb2Nlc3NvciA9IChDT05GSUdfU1lTX0NMS19GUkVRICogc3lzSW5mby0+cGxsRmJrRGl2ICogc3lzSW5mby0+cGxsRndkRGl2QikKKwkJCS8gc3lzSW5mby0+cGxsRndkRGl2IC8gcGxsbXIwX2NjZHY7CiAJfSBlbHNlIHsKIAkJc3lzSW5mby0+ZnJlcVByb2Nlc3NvciA9IENPTkZJR19TWVNfQ0xLX0ZSRVEgLyBwbGxtcjBfY2NkdjsKIAl9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2NvbmZpZ3MvUFBDaGFtZWxlb25FVkIuaCBiL2luY2x1ZGUvY29uZmlncy9QUENoYW1lbGVvbkVWQi5oCmluZGV4IDBjOWI2ZGQuLmJiOGNlNDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29uZmlncy9QUENoYW1lbGVvbkVWQi5oCisrKyBiL2luY2x1ZGUvY29uZmlncy9QUENoYW1lbGVvbkVWQi5oCkBAIC0zOCw2ICszOCwxOCBAQAogI2RlZmluZSBDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01PREVMIENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfQkEKICNlbmRpZgogCisKKy8qIE9ubHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgdHdvIHN5bWJvbHMgbXVzdCBiZSBkZWZpbmVkIChkZWZhdWx0IGlzIDI1IE1IeikKKyAqIENPTkZJR19QUENIQU1FTEVPTl9DTEtfMjUKKyAqIENPTkZJR19QUENIQU1FTEVPTl9DTEtfMzMKKyAqLworCisjaWYgKGRlZmluZWQoQ09ORklHX1BQQ0hBTUVMRU9OX0NMS18yNSkgJiYgZGVmaW5lZChDT05GSUdfUFBDSEFNRUxFT05fQ0xLXzMzKSkKKyNlcnJvciAiKiBUd28gZXh0ZXJuYWwgZnJlcXVlbmNpZXMgKFN5c0NsaykgYXJlIGRlZmluZWQhICoiCisjZW5kaWYKKworI3VuZGVmCUNPTkZJR19QUENIQU1FTEVPTl9TTUk3MTIKKwogLyoKICAqIERlYnVnIHN0dWZmCiAgKi8KQEAgLTYwLDcgKzcyLDE0IEBACiAjZGVmaW5lIENPTkZJR19CT0FSRF9FQVJMWV9JTklUX0YgMQkvKiBjYWxsIGJvYXJkX2Vhcmx5X2luaXRfZigpCSovCiAjZGVmaW5lIENPTkZJR19NSVNDX0lOSVRfUgkxCS8qIGNhbGwgbWlzY19pbml0X3IoKQkJKi8KIAorCisjaWZkZWYgQ09ORklHX1BQQ0hBTUVMRU9OX0NMS18yNQorCSNkZWZpbmUgQ09ORklHX1NZU19DTEtfRlJFUQkyNTAwMDAwMCAvKiBleHRlcm5hbCBmcmVxdWVuY3kgdG8gcGxsCSovCisjZWxpZiAoZGVmaW5lZCAoQ09ORklHX1BQQ0hBTUVMRU9OX0NMS18zMykpCiAjZGVmaW5lIENPTkZJR19TWVNfQ0xLX0ZSRVEJMzMzMzMzMzMgLyogZXh0ZXJuYWwgZnJlcXVlbmN5IHRvIHBsbAkqLworI2Vsc2UKKyNlcnJvciAiKiBFeHRlcm5hbCBmcmVxdWVuY3kgKFN5c0Nsaykgbm90IGRlZmluZWQhICoiCisjZW5kaWYKIAogI2RlZmluZSBDT05GSUdfQkFVRFJBVEUJCTExNTIwMAogI2RlZmluZSBDT05GSUdfQk9PVERFTEFZCTUJLyogYXV0b2Jvb3QgYWZ0ZXIgNSBzZWNvbmRzCSovCkBAIC03NSw3ICs5NCw2IEBACiAjZGVmaW5lIENPTkZJR19MT0FEU19FQ0hPCTEJLyogZWNobyBvbiBmb3Igc2VyaWFsIGRvd25sb2FkCSovCiAjZGVmaW5lIENGR19MT0FEU19CQVVEX0NIQU5HRQkxCS8qIGFsbG93IGJhdWRyYXRlIGNoYW5nZQkqLwogCi0KICN1bmRlZiBDT05GSUdfRVhUX1BIWQogI2RlZmluZSBDT05GSUdfTkVUX01VTFRJCTEKIApAQCAtMTg0LDcgKzIwMiw2IEBACiAjZGVmaW5lIENGR19OQU5EMV9BTEUgKDB4ODAwMDAwMDAgPj4gMTYpICAvKiBvdXIgQUxFIGlzIEdQSU8xNiAqLwogI2RlZmluZSBDRkdfTkFORDFfUkRZICgweDgwMDAwMDAwID4+IDMxKSAgLyogb3VyIFJEWSBpcyBHUElPMzEgKi8KIAotCiAjZGVmaW5lIE5BTkRfRElTQUJMRV9DRShuYW5kKSBkbyBcCiB7IFwKIAlzd2l0Y2goKHVuc2lnbmVkIGxvbmcpKCgoc3RydWN0IG5hbmRfY2hpcCAqKW5hbmQpLT5JT19BRERSKSkgXApAQCAtMjExLDcgKzIyOCw2IEBACiAJfSBcCiB9IHdoaWxlKDApCiAKLQogI2RlZmluZSBOQU5EX0NUTF9DTFJBTEUobmFuZHB0cikgZG8gXAogeyBcCiAJc3dpdGNoKCh1bnNpZ25lZCBsb25nKW5hbmRwdHIpIFwKQEAgLTI5Miw5ICszMDgsMTAgQEAKIAogI2RlZmluZSBDT05GSUdfUENJX1NDQU5fU0hPVwkJLyogcHJpbnQgcGNpIGRldmljZXMgQCBzdGFydHVwCSovCiAKLSNkZWZpbmUgQ0ZHX1BDSV9TVUJTWVNfVkVORE9SSUQgMHgxMkZFCS8qIFBDSSBWZW5kb3IgSUQ6IGVzZCBnbWJoCSovCi0jZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDQwNQkvKiBQQ0kgRGV2aWNlIElEOiBDUENJLTQwNQkqLworI2RlZmluZSBDRkdfUENJX1NVQlNZU19WRU5ET1JJRCAweDEwMTQJLyogUENJIFZlbmRvciBJRDogSUJNCSovCisjZGVmaW5lIENGR19QQ0lfU1VCU1lTX0RFVklDRUlEIDB4MDAwMAkvKiBQQ0kgRGV2aWNlIElEOiAtLS0JKi8KICNkZWZpbmUgQ0ZHX1BDSV9DTEFTU0NPREUJMHgwYjIwCS8qIFBDSSBDbGFzcyBDb2RlOiBQcm9jZXNzb3IvUFBDKi8KKwogI2RlZmluZSBDRkdfUENJX1BUTTFMQQkweDAwMDAwMDAwCS8qIHBvaW50IHRvIHNkcmFtCQkqLwogI2RlZmluZSBDRkdfUENJX1BUTTFNUwkweGZjMDAwMDAxCS8qIDY0TUIsIGVuYWJsZSBoYXJkLXdpcmVkIHRvIDEgKi8KICNkZWZpbmUgQ0ZHX1BDSV9QVE0xUENJIDB4MDAwMDAwMDAJLyogSG9zdDogdXNlIHRoaXMgcGNpIGFkZHJlc3MJKi8KQEAgLTM0OSwxMiArMzY2LDIzIEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBFbnZpcm9ubWVudCBWYXJpYWJsZSBzZXR1cAogICovCisjaWZkZWYgRU5WSVJPTk1FTlRfSU5fRUVQUk9NCisKKyNkZWZpbmUgQ0ZHX0VOVl9JU19JTl9FRVBST00JMQkvKiB1c2UgRUVQUk9NIGZvciBlbnZpcm9ubWVudCB2YXJzICovCisjZGVmaW5lIENGR19FTlZfT0ZGU0VUCQkweDEwMAkvKiBlbnZpcm9ubWVudCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgRUVQUk9NICovCisjZGVmaW5lIENGR19FTlZfU0laRQkJMHg3MDAJLyogMjA0OC0yNTYgYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzICh0b3RhbCBzaXplIG9mIGEgQ0FUMjRXQzE2IGlzIDIwNDggYnl0ZXMpKi8KKworI2Vsc2UJLyogREVGQVVMVDogZW52aXJvbm1lbnQgaW4gZmxhc2gsIHVzaW5nIHJlZHVuZGFuZCBmbGFzaCBzZWN0b3JzICovCisKICNkZWZpbmUgQ0ZHX0VOVl9JU19JTl9GTEFTSAkxCS8qIHVzZSBGTEFTSCBmb3IgZW52aXJvbm1lbnQgdmFycyAqLwogI2RlZmluZSBDRkdfRU5WX0FERFIJCTB4RkZGRjgwMDAJLyogZW52aXJvbm1lbnQgc3RhcnRzIGF0IHRoZSBmaXJzdCBzbWFsbCBzZWN0b3IgKi8KICNkZWZpbmUgQ0ZHX0VOVl9TRUNUX1NJWkUJMHgyMDAwCS8qIDgxOTYgYnl0ZXMgbWF5IGJlIHVzZWQgZm9yIGVudiB2YXJzKi8KICNkZWZpbmUgQ0ZHX0VOVl9BRERSX1JFRFVORAkweEZGRkZBMDAwCiAjZGVmaW5lIENGR19FTlZfU0laRV9SRURVTkQJMHgyMDAwCiAKKyNlbmRpZgkvKiBFTlZJUk9OTUVOVF9JTl9FRVBST00gKi8KKworCiAjZGVmaW5lIENGR19OVlJBTV9CQVNFX0FERFIJMHhGMDAwMDUwMAkJLyogTlZSQU0gYmFzZSBhZGRyZXNzCSovCiAjZGVmaW5lIENGR19OVlJBTV9TSVpFCQkyNDIJCQkvKiBOVlJBTSBzaXplCQkqLwogCkBAIC00MTQsMjMgKzQ0MiwyMSBAQAogI2RlZmluZSBDRkdfRUJDX1BCM0FQCQkweDkyMDE1NDgwCiAjZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RkYwNTgwMDAgIC8qIEJBUz0weEZGMCxCUz00TUIsQlU9Ui9XLEJXPThiaXQJKi8KIAotCi0jaWYgMCAvKiBSb2VzZSAqLwotLyogTWVtb3J5IEJhbmsgMSAoRmxhc2ggQmFuayAxLCBOQU5ELUZMQVNIKSBpbml0aWFsaXphdGlvbgkJCSovCi0jZGVmaW5lIENGR19FQkNfUEIxQVAJCTB4OTIwMTU0ODAKLSNkZWZpbmUgQ0ZHX0VCQ19QQjFDUgkJMHhGRjg1ODAwMCAgLyogQkFTPTB4RkY4LEJTPTRNQixCVT1SL1csQlc9OGJpdAkqLwotCi0vKiBNZW1vcnkgQmFuayAyIChDQU4wLCAxKSBpbml0aWFsaXphdGlvbgkJCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjJBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIyQ1IJCTB4RjAwMTgwMDAgIC8qIEJBUz0weEYwMCxCUz0xTUIsQlU9Ui9XLEJXPThiaXQJKi8KLQotLyogTWVtb3J5IEJhbmsgMyAoQ29tcGFjdEZsYXNoIElERSkgaW5pdGlhbGl6YXRpb24JCQkJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjNBUAkJMHgwMTAwNTNDMCAgLyogQldUPTIsV0JOPTEsV0JGPTEsVEg9MSxSRT0xLFNPUj0xLEJFTT0xICovCi0jZGVmaW5lIENGR19FQkNfUEIzQ1IJCTB4RjAxMUEwMDAgIC8qIEJBUz0weEYwMSxCUz0xTUIsQlU9Ui9XLEJXPTE2Yml0ICovCi0KLS8qIE1lbW9yeSBCYW5rIDQgKE5WUkFNL1JUQykgaW5pdGlhbGl6YXRpb24JCQkJCSovCi0jZGVmaW5lIENGR19FQkNfUEI0QVAJCTB4MDEwMDUyODAgIC8qIFRXVD0yLFdCTj0xLFdCRj0xLFRIPTEsU09SPTEJKi8KLSNkZWZpbmUgQ0ZHX0VCQ19QQjRDUgkJMHhGMDIxODAwMCAgLyogQkFTPTB4RjAyLEJTPTFNQixCVT1SL1csQlc9OGJpdAkqLworI2lmZGVmIENPTkZJR19QUENIQU1FTEVPTl9TTUk3MTIKKy8qCisgKiBWaWRlbyBjb25zb2xlIChncmFwaGljOiBTTUkgTHlueEVNKQorICovCisjZGVmaW5lIENPTkZJR19WSURFTworI2RlZmluZSBDT05GSUdfQ0ZCX0NPTlNPTEUKKyNkZWZpbmUgQ09ORklHX1ZJREVPX1NNSV9MWU5YRU0KKyNkZWZpbmUgQ09ORklHX1ZJREVPX0xPR08KKy8qI2RlZmluZSBDT05GSUdfVklERU9fQk1QX0xPR08qLworI2RlZmluZSBDT05GSUdfQ09OU09MRV9FWFRSQV9JTkZPCisjZGVmaW5lIENPTkZJR19WR0FfQVNfU0lOR0xFX0RFVklDRQorLyogVGhpcyBpcyB0aGUgYmFzZSBhZGRyZXNzIChvbiA0MDVFUC1zaWRlKSB1c2VkIHRvIGdlbmVyYXRlIEkvTyBhY2Nlc3NlcyBvbiBQQ0kgYnVzICovCisjZGVmaW5lIENGR19JU0FfSU8gMHhFODAwMDAwMAorLyogc2VlIGFsc28gZHJpdmVycy92aWRlb21vZGVzLmMgKi8KKyNkZWZpbmUgQ0ZHX0RFRkFVTFRfVklERU9fTU9ERSAweDMwMwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4NSw2ICs1MTEsNyBAQAogI2RlZmluZSBDRkdfSU5JVF9SQU1fQUREUglDRkdfT0NNX0RBVEFfQUREUiAvKiBpbnNpZGUgb2YgU0RSQU0JCSovCiAjZGVmaW5lIENGR19JTklUX1JBTV9FTkQJQ0ZHX09DTV9EQVRBX1NJWkUgLyogRW5kIG9mIHVzZWQgYXJlYSBpbiBSQU0JKi8KIAorCiAjZGVmaW5lIENGR19HQkxfREFUQV9TSVpFICAgICAgMTI4ICAvKiBzaXplIGluIGJ5dGVzIHJlc2VydmVkIGZvciBpbml0aWFsIGRhdGEgKi8KICNkZWZpbmUgQ0ZHX0dCTF9EQVRBX09GRlNFVCAgICAoQ0ZHX0lOSVRfUkFNX0VORCAtIENGR19HQkxfREFUQV9TSVpFKQogI2RlZmluZSBDRkdfSU5JVF9TUF9PRkZTRVQJQ0ZHX0dCTF9EQVRBX09GRlNFVApAQCAtNTI1LDcgKzU1Miw2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZmRlZiBDT05GSUdfTk9fU0VSSUFMX0VFUFJPTQogCi0KIC8qCiAhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICEgRGVmaW5lcyBmb3IgZW50cnkgb3B0aW9ucy4KQEAgLTUzNyw3ICs1NjMsNiBAQAogI2RlZmluZQkJRElNTV9SRUFEX0FERFIgMHhBQgogI2RlZmluZQkJRElNTV9XUklURV9BRERSIDB4QUEKIAotCiAjZGVmaW5lIENQQzBfUExMTVIwICAoQ05UUkxfRENSX0JBU0UrMHgwKSAgLyogUExMIG1vZGUgMCByZWdpc3RlcgkJKi8KICNkZWZpbmUgQ1BDMF9CT09UICAgIChDTlRSTF9EQ1JfQkFTRSsweDEpICAvKiBDaGlwIENsb2NrIFN0YXR1cyByZWdpc3RlcgkqLwogI2RlZmluZSBDUEMwX0NSMSAgICAgKENOVFJMX0RDUl9CQVNFKzB4MikgIC8qIENoaXAgQ29udHJvbCAxIHJlZ2lzdGVyCQkqLwpAQCAtNjQ5LDUwICs2NzQsOTIgQEAKICNkZWZpbmUgUExMX1BDSURJVl8zCQkweDAwMDAwMDAyCiAjZGVmaW5lIFBMTF9QQ0lESVZfNAkJMHgwMDAwMDAwMwogCisKKyNpZmRlZiBDT05GSUdfUFBDSEFNRUxFT05fQ0xLXzI1CisvKiBDUFUgLSBQTEIvU0RSQU0gLSBFQkMgLSBPUEIgLSBQQ0kgKGFzc3VtaW5nIGEgMjUuMCBNSHogaW5wdXQgY2xvY2sgdG8gdGhlIDQwNUVQKSAqLworI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjBfMTMzXzEzM18zM182Nl8zMwkgKFBMTF9DUFVESVZfMSB8IFBMTF9QTEJESVZfMSB8CSBcCisJCQkgICAgICBQTExfT1BCRElWXzIgfCBQTExfRVhUQlVTRElWXzQgfAlcCisJCQkgICAgICBQTExfTUFMRElWXzEgfCBQTExfUENJRElWXzQpCisjZGVmaW5lIFBQQ0hBTUVMRU9OX1BMTE1SMV8xMzNfMTMzXzMzXzY2XzMzCSAoUExMX0ZCS0RJVl84CXwgIFwKKwkJCSAgICAgIFBMTF9GV0RESVZBXzYgfCBQTExfRldERElWQl80IHwgIFwKKwkJCSAgICAgIFBMTF9UVU5FXzE1X01fNDAgfCBQTExfVFVORV9WQ09fTE9XKQorCisjZGVmaW5lIFBQQ0hBTUVMRU9OX1BMTE1SMF8yMDBfMTAwXzUwXzMzIChQTExfQ1BVRElWXzEgfCBQTExfUExCRElWXzIgfCAgXAorCQkJICAgICAgUExMX09QQkRJVl8yIHwgUExMX0VYVEJVU0RJVl8zIHwJXAorCQkJICAgICAgUExMX01BTERJVl8xIHwgUExMX1BDSURJVl80KQorI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjFfMjAwXzEwMF81MF8zMyAoUExMX0ZCS0RJVl84ICB8ICBcCisJCQkgICAgICBQTExfRldERElWQV80IHwgUExMX0ZXRERJVkJfNCB8ICBcCisJCQkgICAgICBQTExfVFVORV8xNV9NXzQwIHwgUExMX1RVTkVfVkNPX0xPVykKKworI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjBfMjY2XzEzM18zM182Nl8zMyAoUExMX0NQVURJVl8xIHwgUExMX1BMQkRJVl8yIHwJXAorCQkJICAgICAgUExMX09QQkRJVl8yIHwgUExMX0VYVEJVU0RJVl80IHwJXAorCQkJICAgICAgUExMX01BTERJVl8xIHwgUExMX1BDSURJVl80KQorI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjFfMjY2XzEzM18zM182Nl8zMyAoUExMX0ZCS0RJVl84ICB8ICBcCisJCQkgICAgICBQTExfRldERElWQV8zIHwgUExMX0ZXRERJVkJfNCB8ICBcCisJCQkgICAgICBQTExfVFVORV8xNV9NXzQwIHwgUExMX1RVTkVfVkNPX0xPVykKKworI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjBfMzMzXzExMV8zN181NV81NSAoUExMX0NQVURJVl8xIHwgUExMX1BMQkRJVl8zIHwJXAorCQkJICAgICAgUExMX09QQkRJVl8yIHwgUExMX0VYVEJVU0RJVl8zIHwJXAorCQkJICAgICAgUExMX01BTERJVl8xIHwgUExMX1BDSURJVl8yKQorI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjFfMzMzXzExMV8zN181NV81NSAoUExMX0ZCS0RJVl8xMAl8ICBcCisJCQkgICAgICBQTExfRldERElWQV8zIHwgUExMX0ZXRERJVkJfNCB8ICBcCisJCQkgICAgICBQTExfVFVORV8xNV9NXzQwIHwgUExMX1RVTkVfVkNPX0hJKQorCisjZWxpZiAoZGVmaW5lZCAoQ09ORklHX1BQQ0hBTUVMRU9OX0NMS18zMykpCisKIC8qIENQVSAtIFBMQi9TRFJBTSAtIEVCQyAtIE9QQiAtIFBDSSAoYXNzdW1pbmcgYSAzMy4zTUh6IGlucHV0IGNsb2NrIHRvIHRoZSA0MDVFUCkgKi8KLSNkZWZpbmUgUExMTVIwXzEzM18xMzNfMzNfNjZfMzMJIChQTExfQ1BVRElWXzEgfCBQTExfUExCRElWXzEgfAkgXAorI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjBfMTMzXzEzM18zM182Nl8zMwkgKFBMTF9DUFVESVZfMSB8IFBMTF9QTEJESVZfMSB8CSBcCiAJCQkJICBQTExfT1BCRElWXzIgfCBQTExfRVhUQlVTRElWXzQgfAlcCiAJCQkJICBQTExfTUFMRElWXzEgfCBQTExfUENJRElWXzQpCi0jZGVmaW5lIFBMTE1SMV8xMzNfMTMzXzMzXzY2XzMzCSAoUExMX0ZCS0RJVl80CXwgIFwKKyNkZWZpbmUgUFBDSEFNRUxFT05fUExMTVIxXzEzM18xMzNfMzNfNjZfMzMJIChQTExfRkJLRElWXzQJfCAgXAogCQkJCSAgUExMX0ZXRERJVkFfNiB8IFBMTF9GV0RESVZCXzYgfCAgXAogCQkJCSAgUExMX1RVTkVfMTVfTV80MCB8IFBMTF9UVU5FX1ZDT19MT1cpCi0jZGVmaW5lIFBMTE1SMF8yMDBfMTAwXzUwXzMzCSAoUExMX0NQVURJVl8xIHwgUExMX1BMQkRJVl8yIHwJIFwKKworI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjBfMjAwXzEwMF81MF8zMyAoUExMX0NQVURJVl8xIHwgUExMX1BMQkRJVl8yIHwgIFwKIAkJCQkgIFBMTF9PUEJESVZfMiB8IFBMTF9FWFRCVVNESVZfMyB8CVwKIAkJCQkgIFBMTF9NQUxESVZfMSB8IFBMTF9QQ0lESVZfNCkKLSNkZWZpbmUgUExMTVIxXzIwMF8xMDBfNTBfMzMJIChQTExfRkJLRElWXzYJfCAgXAorI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjFfMjAwXzEwMF81MF8zMyAoUExMX0ZCS0RJVl82ICB8ICBcCiAJCQkJICBQTExfRldERElWQV80IHwgUExMX0ZXRERJVkJfNCB8ICBcCiAJCQkJICBQTExfVFVORV8xNV9NXzQwIHwgUExMX1RVTkVfVkNPX0xPVykKLSNkZWZpbmUgUExMTVIwXzI2Nl8xMzNfMzNfNjZfMzMJIChQTExfQ1BVRElWXzEgfCBQTExfUExCRElWXzIgfCBcCisKKyNkZWZpbmUgUFBDSEFNRUxFT05fUExMTVIwXzI2Nl8xMzNfMzNfNjZfMzMgKFBMTF9DUFVESVZfMSB8IFBMTF9QTEJESVZfMiB8CVwKIAkJCQkgIFBMTF9PUEJESVZfMiB8IFBMTF9FWFRCVVNESVZfNCB8CVwKIAkJCQkgIFBMTF9NQUxESVZfMSB8IFBMTF9QQ0lESVZfNCkKLSNkZWZpbmUgUExMTVIxXzI2Nl8xMzNfMzNfNjZfMzMJIChQTExfRkJLRElWXzgJfCAgXAorI2RlZmluZSBQUENIQU1FTEVPTl9QTExNUjFfMjY2XzEzM18zM182Nl8zMyAoUExMX0ZCS0RJVl84ICB8ICBcCiAJCQkJICBQTExfRldERElWQV8zIHwgUExMX0ZXRERJVkJfMyB8ICBcCiAJCQkJICBQTExfVFVORV8xNV9NXzQwIHwgUExMX1RVTkVfVkNPX0xPVykKLSNkZWZpbmUgUExMTVIwXzMzM18xMTFfMzdfNTVfNTUJIChQTExfQ1BVRElWXzEgfCBQTExfUExCRElWXzMgfCBcCisKKyNkZWZpbmUgUFBDSEFNRUxFT05fUExMTVIwXzMzM18xMTFfMzdfNTVfNTUgKFBMTF9DUFVESVZfMSB8IFBMTF9QTEJESVZfMyB8CVwKIAkJCQkgIFBMTF9PUEJESVZfMiB8IFBMTF9FWFRCVVNESVZfMyB8CVwKIAkJCQkgIFBMTF9NQUxESVZfMSB8IFBMTF9QQ0lESVZfMikKLSNkZWZpbmUgUExMTVIxXzMzM18xMTFfMzdfNTVfNTUJIChQTExfRkJLRElWXzEwIHwgIFwKKyNkZWZpbmUgUFBDSEFNRUxFT05fUExMTVIxXzMzM18xMTFfMzdfNTVfNTUgKFBMTF9GQktESVZfMTAJfCAgXAogCQkJCSAgUExMX0ZXRERJVkFfMyB8IFBMTF9GV0RESVZCXzMgfCAgXAogCQkJCSAgUExMX1RVTkVfMTVfTV80MCB8IFBMTF9UVU5FX1ZDT19ISSkKIAorI2Vsc2UKKyNlcnJvciAiKiBFeHRlcm5hbCBmcmVxdWVuY3kgKFN5c0Nsaykgbm90IGRlZmluZWQhICoiCisjZW5kaWYKKwogI2lmICAgKENPTkZJR19QUENIQU1FTEVPTl9NT0RVTEVfTU9ERUwgPT0gQ09ORklHX1BQQ0hBTUVMRU9OX01PRFVMRV9ISSkKIC8qIE1vZGVsIEhJICovCi0jZGVmaW5lIFBMTE1SMF9ERUZBVUxUCSBQTExNUjBfMzMzXzExMV8zN181NV81NQotI2RlZmluZSBQTExNUjFfREVGQVVMVAkgUExMTVIxXzMzM18xMTFfMzdfNTVfNTUKKyNkZWZpbmUgUExMTVIwX0RFRkFVTFQJIFBQQ0hBTUVMRU9OX1BMTE1SMF8zMzNfMTExXzM3XzU1XzU1CisjZGVmaW5lIFBMTE1SMV9ERUZBVUxUCSBQUENIQU1FTEVPTl9QTExNUjFfMzMzXzExMV8zN181NV81NQorI2RlZmluZSBDRkdfT1BCX0ZSRVEJNTU1NTU1NTUKIC8qIE1vZGVsIE1FICovCiAjZWxpZiAoQ09ORklHX1BQQ0hBTUVMRU9OX01PRFVMRV9NT0RFTCA9PSBDT05GSUdfUFBDSEFNRUxFT05fTU9EVUxFX01FKQotI2RlZmluZSBQTExNUjBfREVGQVVMVAkgUExMTVIwXzI2Nl8xMzNfMzNfNjZfMzMKLSNkZWZpbmUgUExMTVIxX0RFRkFVTFQJIFBMTE1SMV8yNjZfMTMzXzMzXzY2XzMzCisjZGVmaW5lIFBMTE1SMF9ERUZBVUxUCSBQUENIQU1FTEVPTl9QTExNUjBfMjY2XzEzM18zM182Nl8zMworI2RlZmluZSBQTExNUjFfREVGQVVMVAkgUFBDSEFNRUxFT05fUExMTVIxXzI2Nl8xMzNfMzNfNjZfMzMKKyNkZWZpbmUgQ0ZHX09QQl9GUkVRCTY2NjY2NjY2CiAjZWxzZQogLyogTW9kZWwgQkEgKGRlZmF1bHQpICovCi0jZGVmaW5lIFBMTE1SMF9ERUZBVUxUCSBQTExNUjBfMTMzXzEzM18zM182Nl8zMwotI2RlZmluZSBQTExNUjFfREVGQVVMVAkgUExMTVIxXzEzM18xMzNfMzNfNjZfMzMKLQorI2RlZmluZSBQTExNUjBfREVGQVVMVAkgUFBDSEFNRUxFT05fUExMTVIwXzEzM18xMzNfMzNfNjZfMzMKKyNkZWZpbmUgUExMTVIxX0RFRkFVTFQJIFBQQ0hBTUVMRU9OX1BMTE1SMV8xMzNfMTMzXzMzXzY2XzMzCisjZGVmaW5lIENGR19PUEJfRlJFUQk2NjY2NjY2NgogI2VuZGlmCiAKLSNlbmRpZiAvKiBDT05GSUdfTk9fU0VSSUFMX0VFUFJPTSAqLworI2VuZGlmCiAKLSNkZWZpbmUgQ09ORklHX0pGRlMyX05BTkQgMQkJCS8qIGpmZnMyIG9uIG5hbmQgc3VwcG9ydCAqLworI2RlZmluZSBDT05GSUdfSkZGUzJfTkFORCAwCQkJLyogamZmczIgb24gbmFuZCBzdXBwb3J0ICovCiAjZGVmaW5lIENPTkZJR19KRkZTMl9OQU5EX0RFViAwCQkJLyogbmFuZCBkZXZpY2UgamZmczIgbGl2ZXMgb24gKi8KICNkZWZpbmUgQ09ORklHX0pGRlMyX05BTkRfT0ZGIDAJCQkvKiBzdGFydCBvZiBqZmZzMiBwYXJ0aXRpb24gKi8KICNkZWZpbmUgQ09ORklHX0pGRlMyX05BTkRfU0laRSAyKjEwMjQqMTAyNAkvKiBzaXplIG9mIGpmZnMyIHBhcnRpdGlvbiAqLwo=