ZGlmZiAtLWdpdCBhL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvZHJpdmVycy9kZWJ1Zy5jIGIvYm9vdC9jb21tb24vc3JjL2xvYWRlci9kcml2ZXJzL2RlYnVnLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI5NWFiYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3QvY29tbW9uL3NyYy9sb2FkZXIvZHJpdmVycy9kZWJ1Zy5jCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFpYSUMgSW5jLgorICoKKyAqLworCisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGxvYWRfbW9kZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3RvcF9jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgorI2luY2x1ZGUgPGJvYXJkLmg+CisjaW5jbHVkZSA8anRhZy5oPgorCisjaWYgX1pMT0FERVJfVFJBQ0VfREVCVUcKKwordWludDMyX3QgcGF0Y2ggPSAwOyAvKiDDu9PQyM66ztf308OjrNPDwLTF5LrPQlNTts7H5cHjICovCisKK3ZvaWQgZGVidWdfY29uZmlnKHZvaWQpCit7CisJdW5zaWduZWQgaW50IHRtcCA9IDA7CisJaW50IHJldCA9IDA7CisJcGF0Y2ggPSBwYXRjaDsKKworLyq/vbG0vcWxvrXEyrHW07P1yry7ryovCisjaWZkZWYgQ09ORklHX0JPQVJEXzc1MjBfVUZJCisJLyoKKwkgKiBKdGFnMAorCSAqIDA6TTBKdGFnLCAxOmZ1bmN0aW9uLCAyOmdwaW8sIDM6cHNKdGFnLCA0OnBoeUp0YWcsIDU6ZHNwSnRhZywgNjp1ZmlKdGFnLCA3OmdwaW8KKwkgKi8KKwkKKyAjaWZkZWYgQ09ORklHX0JPQVJEXzc1MjBfSlRBRzBfTTAKKyNkZWZpbmUgSlRBRzBfQ09OTkVDVCAgIDAKKyAjZW5kaWYKKwkKKyAjaWZkZWYgQ09ORklHX0JPQVJEXzc1MjBfSlRBRzBfUFMKKyNkZWZpbmUgSlRBRzBfQ09OTkVDVCAgIDMKKyAjZW5kaWYKKwl0bXAgPSBfX1JFRygweDAwMTQzMDMwKTsKKwl0bXAgJj0gMHhmZjAwMDBmMDsKKwl0bXAgfD0gSlRBRzBfQ09OTkVDVHwoSlRBRzBfQ09OTkVDVDw8OCl8KEpUQUcwX0NPTk5FQ1Q8PDEyKXwoSlRBRzBfQ09OTkVDVDw8MTYpfChKVEFHMF9DT05ORUNUPDwyMCk7CisJX19SRUcoMHgwMDE0MzAzMCkgPSB0bXA7CisKKwlfX1JFRygweDEwMDAwMCkgPSAweGVhZmZmZmZlOyAvKnBzIHJlbGVhc2UqLworCXdyaXRlbChDUFVfVUZJX1NXX1JTVEVOLCBDUFVfUjdfU1VCU1lTX0NGRyk7CQorI2VuZGlmCQorCisJLyoKKwkgKiBEMC9KdGFnMSAKKwkgKiAwOmdwaW8sIDE6c2QwLCAyOk0wSnRhZywgMzpwc0p0YWcsIDQ6cGh5SnRhZywgNTpkc3BKdGFnLCA2OnVmaUp0YWcsIDc6dGVzdHBpbgorCSAqLworI2lmZGVmIENPTkZJR19CT0FSRF83NTIwX0VWQgorI2RlZmluZSBKVEFHMV9DT05ORUNUICAgMworCXRtcD1fX1JFRygweDAwMTQzMDI4KTsKKwl0bXA9dG1wJjB4ZjAwMDBmZjB8MHgwMzMzMzAwMzsKKwlfX1JFRygweDAwMTQzMDI4KSA9IHRtcDsKKworCV9fUkVHKDB4MTAwMDAwKSA9IDB4ZWFmZmZmZmU7IC8qcHMgcmVsZWFzZSovCisJd3JpdGVsKENQVV9VRklfU1dfUlNURU4sIENQVV9SN19TVUJTWVNfQ0ZHKTsKKyNlbmRpZgorCisjaWYgMAorICAgIC8qIHBzICovCisgICAgX19SRUcoU1lTX0lSQU0yX0JBU0UpID0gMHhFQUZGRkZGRTsgICAgICAgICAgICAgICAgIC8qIHdoaWxlKDEpICovCisgICAgX19SRUcoQ1BVX1BTX1NVQlNZU19DRkcpID0gQ1BVX1BTX1NXX1JTVEVOOworCisgICAgLyogcGh5ICovCisgICAgX19SRUcoU1lTX0lSQU0zX0JBU0UpID0gMHhFQUZGRkZGRTsgICAgICAgICAgICAgICAgIC8qIHdoaWxlKDEpICovICAgICAgICAgICAgICAgIC8qIHdoaWxlKDEpICovCisgICAgX19SRUcoQ1BVX1BIWV9TVUJTWVNfQ0ZHKSA9IENQVV9QSFlfU1dfUlNURU47CisgICAgCisgICAgLyogQTkgKi8KKyAgICBfX1JFRyhTWVNfSVJBTTZfQkFTRSkgPSAweEVBRkZGRkZFOyAgICAgICAgICAgICAgICAgLyogd2hpbGUoMSkgKi8KKyAgICBfX1JFRyhDUFVfVUZJX1NVQlNZU19DRkcpID0gQ1BVX1VGSV9TV19SU1RFTjsKKworCS8qIHJlbGVhc2UgY29yZSByZXNldCAqLworCV9fUkVHKDB4MDAxMGMwNDQpID0gMTsgLy8gcGh5CisJX19SRUcoMHgwMDEwYzA0OCkgPSAxOyAvLyBwcworCV9fUkVHKDB4MDAxMGMwNGMpID0gMTsgLy8gdWZpCisgICAgX19SRUcoMHgwMDEwYzA1MCkgPSAxOyAvLyB6c3AKKworICAgIHJldCA9IG5hbmRfaW5pdCgpOworICAgIGlmKCByZXQgIT0gMCApCisgICAgICAgIHdoaWxlKDEpOworICAgICAgICAKKyAgICBkZHJfaW5pdCgpOworCQorI2lmZGVmIENPTkZJR19CT0FSRF83NTIwX0VWQgorICAgIC8qbGlnaHQgZ3BpbzkqLworICAgIHRtcCA9IF9fUkVHKDB4MTBkNDQwKTsgIC8qILmmxNzS/b3FICovCisgICAgdG1wIHw9ICgweDEgPDwgMjQpOworICAgIF9fUkVHKDB4MTBkNDQwKSA9IHRtcDsKKworICAgIAorICAgIHRtcCA9IF9fUkVHKDB4MTBkQzA0KTsgIC8qIGNvbmZpZyBPVVQgKi8KKyAgICB0bXAgJj0gKH4oMHgxPDw5KSk7CisgICAgX19SRUcoMHgxMGRDMDQpID0gdG1wOworCisgICAgdG1wID0gX19SRUcoMHgxMGRDMDgpOyAgCisgICAgdG1wIHw9ICgweDE8PDkpOyAgICAgLyogT1VUIDEgKi8KKyAgICBfX1JFRygweDEwZEMwOCkgPSB0bXA7CisjZW5kaWYKKyNlbmRpZgorCXdoaWxlKDEpOworfQorCisjZW5kaWYK