ZGlmZiAtLWdpdCBhL2RvY3MvcG9ydGluZy1ndWlkZS5tZCBiL2RvY3MvcG9ydGluZy1ndWlkZS5tZAppbmRleCA0Zjg0MmM0Li5kMDA5NjA1IDEwMDY0NAotLS0gYS9kb2NzL3BvcnRpbmctZ3VpZGUubWQKKysrIGIvZG9jcy9wb3J0aW5nLWd1aWRlLm1kCkBAIC00ODMsNiArNDgzLDM4IEBACiB0aGUgcGxhdGZvcm0uIEFueSBvdGhlciByZXR1cm4gdmFsdWUgbWVhbnMgYSBtaXNtYXRjaC4KIAogCisjIyMgRnVuY3Rpb246IHBsYXRfZ2V0X3JvdHBrX2luZm8oKQorCisgICAgQXJndW1lbnQgOiB2b2lkICosIHZvaWQgKiosIHVuc2lnbmVkIGludCAqLCB1bnNpZ25lZCBpbnQgKgorICAgIFJldHVybiAgIDogaW50CisKK1RoaXMgZnVuY3Rpb24gaXMgbWFuZGF0b3J5IHdoZW4gVHJ1c3RlZCBCb2FyZCBCb290IGlzIGVuYWJsZWQuIEl0IHJldHVybnMgYQorcG9pbnRlciB0byB0aGUgUk9UUEsgc3RvcmVkIGluIHRoZSBwbGF0Zm9ybSAob3IgYSBoYXNoIG9mIGl0KSBhbmQgaXRzIGxlbmd0aC4KK1RoZSBST1RQSyBtdXN0IGJlIGVuY29kZWQgaW4gREVSIGZvcm1hdCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBBU04uMQorc3RydWN0dXJlOgorCisgICAgQWxnb3JpdGhtSWRlbnRpZmllciAgOjo9ICBTRVFVRU5DRSAgeworICAgICAgICBhbGdvcml0aG0gICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiwKKyAgICAgICAgcGFyYW1ldGVycyAgICAgICAgQU5ZIERFRklORUQgQlkgYWxnb3JpdGhtIE9QVElPTkFMCisgICAgfQorCisgICAgU3ViamVjdFB1YmxpY0tleUluZm8gIDo6PSAgU0VRVUVOQ0UgIHsKKyAgICAgICAgYWxnb3JpdGhtICAgICAgICAgQWxnb3JpdGhtSWRlbnRpZmllciwKKyAgICAgICAgc3ViamVjdFB1YmxpY0tleSAgQklUIFNUUklORworICAgIH0KKworSW4gY2FzZSB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIGhhc2ggb2YgdGhlIGtleToKKworICAgIERpZ2VzdEluZm8gOjo9IFNFUVVFTkNFIHsKKyAgICAgICAgZGlnZXN0QWxnb3JpdGhtICAgQWxnb3JpdGhtSWRlbnRpZmllciwKKyAgICAgICAgZGlnZXN0ICAgICAgICAgICAgT0NURVQgU1RSSU5HCisgICAgfQorCitUaGUgZnVuY3Rpb24gcmV0dXJucyAwIG9uIHN1Y2Nlc3MuIEFueSBvdGhlciB2YWx1ZSBtZWFucyB0aGUgUk9UUEsgY291bGQgbm90IGJlCityZXRyaWV2ZWQgZnJvbSB0aGUgcGxhdGZvcm0uIFRoZSBmdW5jdGlvbiBhbHNvIHJlcG9ydHMgZXh0cmEgaW5mb3JtYXRpb24gcmVsYXRlZAordG8gdGhlIFJPVFBLIGluIHRoZSBmbGFncyBwYXJhbWV0ZXIuCisKKwogCiAyLjMgQ29tbW9uIG9wdGlvbmFsIG1vZGlmaWNhdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvZG9jcy91c2VyLWd1aWRlLm1kIGIvZG9jcy91c2VyLWd1aWRlLm1kCmluZGV4IDE4NGU0NmEuLjc0MmY2MTYgMTAwNjQ0Ci0tLSBhL2RvY3MvdXNlci1ndWlkZS5tZAorKysgYi9kb2NzL3VzZXItZ3VpZGUubWQKQEAgLTM0Niw2ICszNDYsMjMgQEAKIEZvciBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZXNlIG9wdGlvbnMsIHRoZSBBUk0gZGV2ZWxvcG1lbnQgcGxhdGZvcm0gbWVtb3J5CiBtYXAgaXMgZXhwbGFpbmVkIGluIHRoZSBbRmlybXdhcmUgRGVzaWduXS4KIAorKiAgIGBBUk1fUk9UUEtfTE9DQVRJT05gOiB1c2VkIHdoZW4gYFRSVVNURURfQk9BUkRfQk9PVD0xYC4gSXQgc3BlY2lmaWVzIHRoZQorICAgIGxvY2F0aW9uIG9mIHRoZSBST1RQSyBoYXNoIHJldHVybmVkIGJ5IHRoZSBmdW5jdGlvbiBgcGxhdF9nZXRfcm90cGtfaW5mbygpYAorICAgIGZvciBBUk0gcGxhdGZvcm1zLiBEZXBlbmRpbmcgb24gdGhlIHNlbGVjdGVkIG9wdGlvbiwgdGhlIHByb3BlciBwcml2YXRlIGtleQorICAgIG11c3QgYmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBgUk9UX0tFWWAgb3B0aW9uIHdoZW4gYnVpbGRpbmcgdGhlIFRydXN0ZWQKKyAgICBGaXJtd2FyZS4gVGhpcyBwcml2YXRlIGtleSB3aWxsIGJlIHVzZWQgYnkgdGhlIGNlcnRpZmljYXRlIGdlbmVyYXRpb24gdG9vbAorICAgIHRvIHNpZ24gdGhlIEJMMiBhbmQgVHJ1c3RlZCBLZXkgY2VydGlmaWNhdGVzLiBBdmFpbGFibGUgb3B0aW9ucyBmb3IKKyAgICBgQVJNX1JPVFBLX0xPQ0FUSU9OYCBhcmU6CisKKyAgICAtICAgYHJlZ3NgIDogcmV0dXJuIHRoZSBST1RQSyBoYXNoIHN0b3JlZCBpbiB0aGUgVHJ1c3RlZCByb290LWtleSBzdG9yYWdlCisgICAgICAgIHJlZ2lzdGVycy4gVGhlIHByaXZhdGUga2V5IGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBST1RQSyBoYXNoIGlzIG5vdAorICAgICAgICBjdXJyZW50bHkgYXZhaWxhYmxlLgorICAgIC0gICBgZGV2ZWxfcnNhYCA6IHJldHVybiBhIGRldmVsb3BtZW50IHB1YmxpYyBrZXkgaGFzaCBlbWJlZGRlZCBpbiB0aGUgQkwxCisgICAgICAgIGFuZCBCTDIgYmluYXJpZXMuIFRoaXMgaGFzaCBoYXMgYmVlbiBvYnRhaW5lZCBmcm9tIHRoZSBSU0EgcHVibGljIGtleQorICAgICAgICBgYXJtX3JvdHBrX3JzYS5kZXJgLCBsb2NhdGVkIGluIGBwbGF0L2FybS9ib2FyZC9jb21tb24vcm90cGtgLiBUbyB1c2UKKyAgICAgICAgdGhpcyBvcHRpb24sIGBhcm1fcm90cHJpdmtfcnNhLnBlbWAgbXVzdCBiZSBzcGVjaWZpZWQgYXMgYFJPVF9LRVlgIHdoZW4KKyAgICAgICAgY3JlYXRpbmcgdGhlIGNlcnRpZmljYXRlcy4KKwogIyMjIyBBUk0gQ1NTIHBsYXRmb3JtIHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMKIAogKiAgIGBDU1NfREVURUNUX1BSRV8xXzdfMF9TQ1BgOiBCb29sZWFuIGZsYWcgdG8gZGV0ZWN0IFNDUCB2ZXJzaW9uCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9hcm1fZGVmLmggYi9pbmNsdWRlL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9hcm1fZGVmLmgKaW5kZXggMjFkZWU3ZS4uM2FiZjIzNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wbGF0L2FybS9ib2FyZC9jb21tb24vYm9hcmRfYXJtX2RlZi5oCisrKyBiL2luY2x1ZGUvcGxhdC9hcm0vYm9hcmQvY29tbW9uL2JvYXJkX2FybV9kZWYuaApAQCAtNjQsMjkgKzY0LDQxIEBACiAgKiBwbGF0X2FybV9tbWFwIGFycmF5IGRlZmluZWQgZm9yIGVhY2ggQkwgc3RhZ2UuCiAgKi8KICNpZiBJTUFHRV9CTDEKLSMgZGVmaW5lIFBMQVRfQVJNX01NQVBfRU5UUklFUwkJNgorIyBpZiBQTEFUX2Z2cAorIyAgZGVmaW5lIFBMQVRfQVJNX01NQVBfRU5UUklFUwkJNworIyBlbHNlCisjICBkZWZpbmUgUExBVF9BUk1fTU1BUF9FTlRSSUVTCQk2CisjIGVuZGlmCiAjZW5kaWYKICNpZiBJTUFHRV9CTDIKLSMgZGVmaW5lIFBMQVRfQVJNX01NQVBfRU5UUklFUwkJOAorIyBpZiBQTEFUX2Z2cAorIyAgZGVmaW5lIFBMQVRfQVJNX01NQVBfRU5UUklFUwkJOQorIyBlbHNlCisjICBkZWZpbmUgUExBVF9BUk1fTU1BUF9FTlRSSUVTCQk4CisjIGVuZGlmCiAjZW5kaWYKICNpZiBJTUFHRV9CTDMxCi0jIGRlZmluZSBQTEFUX0FSTV9NTUFQX0VOVFJJRVMJCTUKKyNkZWZpbmUgUExBVF9BUk1fTU1BUF9FTlRSSUVTCQk1CiAjZW5kaWYKICNpZiBJTUFHRV9CTDMyCi0jIGRlZmluZSBQTEFUX0FSTV9NTUFQX0VOVFJJRVMJCTQKKyNkZWZpbmUgUExBVF9BUk1fTU1BUF9FTlRSSUVTCQk0CiAjZW5kaWYKIAogLyoKICAqIFBsYXRmb3JtIHNwZWNpZmljIHBhZ2UgdGFibGUgYW5kIE1NVSBzZXR1cCBjb25zdGFudHMKICAqLwogI2lmIElNQUdFX0JMMQotIyBpZiBQTEFUX2Z2cCB8fCBQTEFUX2p1bm8KKyMgaWYgUExBVF9qdW5vCiAjICBkZWZpbmUgTUFYX1hMQVRfVEFCTEVTCQkyCiAjIGVsc2UKICMgIGRlZmluZSBNQVhfWExBVF9UQUJMRVMJCTMKICMgZW5kaWYgLyogUExBVF8gKi8KICNlbGlmIElNQUdFX0JMMgotIyBkZWZpbmUgTUFYX1hMQVRfVEFCTEVTCQkzCisjIGlmIFBMQVRfanVubworIyAgZGVmaW5lIE1BWF9YTEFUX1RBQkxFUwkJMworIyBlbHNlCisjICBkZWZpbmUgTUFYX1hMQVRfVEFCTEVTCQk0CisjIGVuZGlmIC8qIFBMQVRfICovCiAjZWxpZiBJTUFHRV9CTDMxCiAjIGRlZmluZSBNQVhfWExBVF9UQUJMRVMJCTIKICNlbGlmIElNQUdFX0JMMzIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGxhdC9hcm0vc29jL2NvbW1vbi9zb2NfY3NzX2RlZi5oIGIvaW5jbHVkZS9wbGF0L2FybS9zb2MvY29tbW9uL3NvY19jc3NfZGVmLmgKaW5kZXggOGI0M2U0Yy4uNDI4ZGY0ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wbGF0L2FybS9zb2MvY29tbW9uL3NvY19jc3NfZGVmLmgKKysrIGIvaW5jbHVkZS9wbGF0L2FybS9zb2MvY29tbW9uL3NvY19jc3NfZGVmLmgKQEAgLTY1LDYgKzY1LDE0IEBACiAgKi8KICNkZWZpbmUgU09DX0NTU19OSUM0MDBfQVBCNF9CUklER0UJNAogCisvKiBLZXlzICovCisjZGVmaW5lIFNPQ19LRVlTX0JBU0UJCQkweDdmZTgwMDAwCisjZGVmaW5lIFRaX1BVQl9LRVlfSEFTSF9CQVNFCQkoU09DX0tFWVNfQkFTRSArIDB4MDAwMCkKKyNkZWZpbmUgVFpfUFVCX0tFWV9IQVNIX1NJWkUJCTMyCisjZGVmaW5lIEhVX0tFWV9CQVNFCQkJKFNPQ19LRVlTX0JBU0UgKyAweDAwMjApCisjZGVmaW5lIEhVX0tFWV9TSVpFCQkJMTYKKyNkZWZpbmUgRU5EX0tFWV9CQVNFCQkJKFNPQ19LRVlTX0JBU0UgKyAweDAwNDQpCisjZGVmaW5lIEVORF9LRVlfU0laRQkJCTMyCiAKICNkZWZpbmUgU09DX0NTU19NQVBfREVWSUNFCQlNQVBfUkVHSU9OX0ZMQVQoCQlcCiAJCQkJCQlTT0NfQ1NTX0RFVklDRV9CQVNFLAlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BsYXQvY29tbW9uL3BsYXRmb3JtLmggYi9pbmNsdWRlL3BsYXQvY29tbW9uL3BsYXRmb3JtLmgKaW5kZXggNzNjMmZkZC4uZDhmYTg5MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wbGF0L2NvbW1vbi9wbGF0Zm9ybS5oCisrKyBiL2luY2x1ZGUvcGxhdC9jb21tb24vcGxhdGZvcm0uaApAQCAtNDQsNiArNDQsMTEgQEAKIHN0cnVjdCBibDMxX3BhcmFtczsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHBsYXRfZ2V0X3JvdHBrX2luZm8oKSBmbGFncworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgUk9UUEtfSVNfSEFTSAkJCSgxIDw8IDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTkxLDggKzE5NiwxMCBAQAogdm9pZCBibDMyX3BsYXRfZW5hYmxlX21tdSh1aW50MzJfdCBmbGFncyk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBUcnVzdGVkIEJvb3QgZnVuY3Rpb25zCisgKiBUcnVzdGVkIEJvYXJkIEJvb3QgZnVuY3Rpb25zCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogaW50IHBsYXRfbWF0Y2hfcm90cGsoY29uc3QgdW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBpbnQpOworaW50IHBsYXRfZ2V0X3JvdHBrX2luZm8odm9pZCAqY29va2llLCB2b2lkICoqa2V5X3B0ciwgdW5zaWduZWQgaW50ICprZXlfbGVuLAorCQkJdW5zaWduZWQgaW50ICpmbGFncyk7CiAKICNlbmRpZiAvKiBfX1BMQVRGT1JNX0hfXyAqLwpkaWZmIC0tZ2l0IGEvcGxhdC9hcm0vYm9hcmQvY29tbW9uL2JvYXJkX2FybV90cnVzdGVkX2Jvb3QuYyBiL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9hcm1fdHJ1c3RlZF9ib290LmMKaW5kZXggYzZhZDY4YS4uNTAzNzliZSAxMDA2NDQKLS0tIGEvcGxhdC9hcm0vYm9hcmQvY29tbW9uL2JvYXJkX2FybV90cnVzdGVkX2Jvb3QuYworKysgYi9wbGF0L2FybS9ib2FyZC9jb21tb24vYm9hcmRfYXJtX3RydXN0ZWRfYm9vdC5jCkBAIC0yOCw4ICsyOCw0MCBAQAogICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2luY2x1ZGUgPGFybV9kZWYuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxwbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCiAvKiBXZWFrIGRlZmluaXRpb24gbWF5IGJlIG92ZXJyaWRkZW4gaW4gc3BlY2lmaWMgcGxhdGZvcm0gKi8KICNwcmFnbWEgd2VhayBwbGF0X21hdGNoX3JvdHBrCisKKy8qIFNIQTI1NiBhbGdvcml0aG0gKi8KKyNkZWZpbmUgU0hBMjU2X0JZVEVTCQkJMzIKKworLyogUk9UUEsgbG9jYXRpb25zICovCisjZGVmaW5lIEFSTV9ST1RQS19SRUdTX0lECQkxCisjZGVmaW5lIEFSTV9ST1RQS19ERVZFTF9SU0FfSUQJCTIKKworI2lmICFBUk1fUk9UUEtfTE9DQVRJT05fSUQKKyAgI2Vycm9yICJBUk1fUk9UUEtfTE9DQVRJT05fSUQgbm90IGRlZmluZWQiCisjZW5kaWYKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcm90cGtfaGFzaF9oZHJbXSA9CQlcCisJCSJceDMwXHgzMVx4MzBceDBEXHgwNlx4MDlceDYwXHg4Nlx4NDgiCVwKKwkJIlx4MDFceDY1XHgwM1x4MDRceDAyXHgwMVx4MDVceDAwXHgwNFx4MjAiOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCByb3Rwa19oYXNoX2hkcl9sZW4gPSBzaXplb2Yocm90cGtfaGFzaF9oZHIpIC0gMTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIHJvdHBrX2hhc2hfZGVyW3NpemVvZihyb3Rwa19oYXNoX2hkcikgLSAxICsgU0hBMjU2X0JZVEVTXTsKKworI2lmIChBUk1fUk9UUEtfTE9DQVRJT05fSUQgPT0gQVJNX1JPVFBLX0RFVkVMX1JTQV9JRCkKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFybV9kZXZlbF9yb3Rwa19oYXNoW10gPQlcCisJCSJceEIwXHhGM1x4ODJceDA5XHgxMlx4OTdceEQ4XHgzQSIJXAorCQkiXHgzN1x4N0FceDcyXHg0N1x4MUJceEVDXHgzMlx4NzMiCVwKKwkJIlx4RTlceDkyXHgzMlx4RTJceDQ5XHg1OVx4RjZceDVFIglcCisJCSJceDhCXHg0QVx4NEFceDQ2XHhEOFx4MjJceDlBXHhEQSI7CisjZW5kaWYKKwogLyoKICAqIENoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUga2V5CiAgKgpAQCAtNDAsMyArNzIsOTAgQEAKIAkvKiBUT0RPOiBjaGVjayBhZ2FpbnN0IHRoZSBST1Qga2V5IHN0b3JlZCBpbiB0aGUgcGxhdGZvcm0gKi8KIAlyZXR1cm4gMDsKIH0KKworLyoKKyAqIFJldHVybiB0aGUgUk9UUEsgaGFzaCBpbiB0aGUgZm9sbG93aW5nIEFTTi4xIHN0cnVjdHVyZSBpbiBERVIgZm9ybWF0OgorICoKKyAqIEFsZ29yaXRobUlkZW50aWZpZXIgIDo6PSAgU0VRVUVOQ0UgIHsKKyAqICAgICBhbGdvcml0aG0gICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiwKKyAqICAgICBwYXJhbWV0ZXJzICAgICAgICBBTlkgREVGSU5FRCBCWSBhbGdvcml0aG0gT1BUSU9OQUwKKyAqIH0KKyAqCisgKiBEaWdlc3RJbmZvIDo6PSBTRVFVRU5DRSB7CisgKiAgICAgZGlnZXN0QWxnb3JpdGhtICAgQWxnb3JpdGhtSWRlbnRpZmllciwKKyAqICAgICBkaWdlc3QgICAgICAgICAgICBPQ1RFVCBTVFJJTkcKKyAqIH0KKyAqLworaW50IHBsYXRfZ2V0X3JvdHBrX2luZm8odm9pZCAqY29va2llLCB2b2lkICoqa2V5X3B0ciwgdW5zaWduZWQgaW50ICprZXlfbGVuLAorCQkJdW5zaWduZWQgaW50ICpmbGFncykKK3sKKwl1aW50OF90ICpkc3Q7CisKKwlhc3NlcnQoa2V5X3B0ciAhPSBOVUxMKTsKKwlhc3NlcnQoa2V5X2xlbiAhPSBOVUxMKTsKKwlhc3NlcnQoZmxhZ3MgIT0gTlVMTCk7CisKKwkvKiBDb3B5IHRoZSBERVIgaGVhZGVyICovCisJbWVtY3B5KHJvdHBrX2hhc2hfZGVyLCByb3Rwa19oYXNoX2hkciwgcm90cGtfaGFzaF9oZHJfbGVuKTsKKwlkc3QgPSAodWludDhfdCAqKSZyb3Rwa19oYXNoX2Rlcltyb3Rwa19oYXNoX2hkcl9sZW5dOworCisjaWYgKEFSTV9ST1RQS19MT0NBVElPTl9JRCA9PSBBUk1fUk9UUEtfREVWRUxfUlNBX0lEKQorCW1lbWNweShkc3QsIGFybV9kZXZlbF9yb3Rwa19oYXNoLCBTSEEyNTZfQllURVMpOworI2VsaWYgKEFSTV9ST1RQS19MT0NBVElPTl9JRCA9PSBBUk1fUk9UUEtfUkVHU19JRCkKKwl1aW50MzJfdCAqc3JjLCB0bXA7CisJdW5zaWduZWQgaW50IHdvcmRzLCBpOworCisJLyoKKwkgKiBBcHBlbmQgdGhlIGhhc2ggZnJvbSBUcnVzdGVkIFJvb3QtS2V5IFN0b3JhZ2UgcmVnaXN0ZXJzLiBUaGUgaGFzaCBoYXMKKwkgKiBub3QgYmVlbiB3cml0dGVuIGxpbmVhcmx5IGludG8gdGhlIHJlZ2lzdGVycywgc28gd2UgaGF2ZSB0byBkbyBhIGJpdAorCSAqIG9mIGJ5dGUgc3dhcHBpbmc6CisJICoKKwkgKiAgICAgMHgwMCAgICAweDA0ICAgIDB4MDggICAgMHgwQyAgICAweDEwICAgIDB4MTQgICAgMHgxOCAgICAweDFDCisJICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwkgKiB8IFJlZzAgIHwgUmVnMSAgfCBSZWcyICB8IFJlZzMgIHwgUmVnNCAgfCBSZWc1ICB8IFJlZzYgIHwgUmVnNyAgfAorCSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJICogIHwgLi4uICAgICAgICAgICAgICAgICAgICAuLi4gfCAgIHwgLi4uICAgICAgICAgICAgICAgICAgIC4uLiAgfAorCSAqICB8ICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLSsgICB8ICAgICAgICAgICAgICAgICAgICArLS0tLS0tLSsKKwkgKiAgfCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfAorCSAqICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwkgKiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CisJICogICstLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgfCAgICstLS0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgfAorCSAqICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKwkgKiAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2CisJICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwkgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorCSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJICogIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSAgMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAzMQorCSAqCisJICogQWRkaXRpb25hbGx5LCB3ZSBoYXZlIHRvIGFjY2VzcyB0aGUgcmVnaXN0ZXJzIGluIDMyLWJpdCB3b3JkcworCSAqLworCXdvcmRzID0gU0hBMjU2X0JZVEVTID4+IDM7CisKKwkvKiBTd2FwIGJ5dGVzIDAtMTUgKGZpcnN0IGZvdXIgcmVnaXN0ZXJzKSAqLworCXNyYyA9ICh1aW50MzJfdCAqKVRaX1BVQl9LRVlfSEFTSF9CQVNFOworCWZvciAoaSA9IDAgOyBpIDwgd29yZHMgOyBpKyspIHsKKwkJdG1wID0gc3JjW3dvcmRzIC0gMSAtIGldOworCQkvKiBXb3JkcyBhcmUgcmVhZCBpbiBsaXR0bGUgZW5kaWFuICovCisJCSpkc3QrKyA9ICh1aW50OF90KSgodG1wID4+IDI0KSAmIDB4RkYpOworCQkqZHN0KysgPSAodWludDhfdCkoKHRtcCA+PiAxNikgJiAweEZGKTsKKwkJKmRzdCsrID0gKHVpbnQ4X3QpKCh0bXAgPj4gOCkgJiAweEZGKTsKKwkJKmRzdCsrID0gKHVpbnQ4X3QpKHRtcCAmIDB4RkYpOworCX0KKworCS8qIFN3YXAgYnl0ZXMgMTYtMzEgKGxhc3QgZm91ciByZWdpc3RlcnMpICovCisJc3JjID0gKHVpbnQzMl90ICopKFRaX1BVQl9LRVlfSEFTSF9CQVNFICsgU0hBMjU2X0JZVEVTIC8gMik7CisJZm9yIChpID0gMCA7IGkgPCB3b3JkcyA7IGkrKykgeworCQl0bXAgPSBzcmNbd29yZHMgLSAxIC0gaV07CisJCSpkc3QrKyA9ICh1aW50OF90KSgodG1wID4+IDI0KSAmIDB4RkYpOworCQkqZHN0KysgPSAodWludDhfdCkoKHRtcCA+PiAxNikgJiAweEZGKTsKKwkJKmRzdCsrID0gKHVpbnQ4X3QpKCh0bXAgPj4gOCkgJiAweEZGKTsKKwkJKmRzdCsrID0gKHVpbnQ4X3QpKHRtcCAmIDB4RkYpOworCX0KKyNlbmRpZiAvKiAoQVJNX1JPVFBLX0xPQ0FUSU9OX0lEID09IEFSTV9ST1RQS19ERVZFTF9SU0FfSUQpICovCisKKwkqa2V5X3B0ciA9ICh2b2lkICopcm90cGtfaGFzaF9kZXI7CisJKmtleV9sZW4gPSAodW5zaWduZWQgaW50KXNpemVvZihyb3Rwa19oYXNoX2Rlcik7CisJKmZsYWdzID0gUk9UUEtfSVNfSEFTSDsKKwlyZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvcGxhdC9hcm0vYm9hcmQvY29tbW9uL2JvYXJkX2NvbW1vbi5tayBiL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9jb21tb24ubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVjNDllZAotLS0gL2Rldi9udWxsCisrKyBiL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9jb21tb24ubWsKQEAgLTAsMCArMSw1NSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTUsIEFSTSBMaW1pdGVkIGFuZCBDb250cmlidXRvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyMKKyMgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCisjIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIworIyBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisjIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyMgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIE5laXRoZXIgdGhlIG5hbWUgb2YgQVJNIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZAorIyB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYworIyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisjIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUKKyMgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyMgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisKK1BMQVRfSU5DTFVERVMJCSs9CS1JaW5jbHVkZS9wbGF0L2FybS9ib2FyZC9jb21tb24vCisKK1BMQVRfQkxfQ09NTU9OX1NPVVJDRVMJKz0JZHJpdmVycy9hcm0vcGwwMTEvcGwwMTFfY29uc29sZS5TCQkJXAorCQkJCXBsYXQvYXJtL2JvYXJkL2NvbW1vbi9hYXJjaDY0L2JvYXJkX2FybV9oZWxwZXJzLlMKKworI0JMMV9TT1VSQ0VTCQkrPQorCisjQkwyX1NPVVJDRVMJCSs9CisKKyNCTDMxX1NPVVJDRVMJCSs9CisKK2lmbmVxICgke1RSVVNURURfQk9BUkRfQk9PVH0sMCkKKyAgICAjIFJPVFBLIGhhc2ggbG9jYXRpb24KKyAgICBpZmVxICgke0FSTV9ST1RQS19MT0NBVElPTn0sIHJlZ3MpCisgICAgICAgIEFSTV9ST1RQS19MT0NBVElPTl9JRCA9IEFSTV9ST1RQS19SRUdTX0lECisgICAgZWxzZSBpZmVxICgke0FSTV9ST1RQS19MT0NBVElPTn0sIGRldmVsX3JzYSkKKyAgICAgICAgQVJNX1JPVFBLX0xPQ0FUSU9OX0lEID0gQVJNX1JPVFBLX0RFVkVMX1JTQV9JRAorICAgIGVsc2UKKyAgICAgICAgJChlcnJvciAiVW5zdXBwb3J0ZWQgQVJNX1JPVFBLX0xPQ0FUSU9OIHZhbHVlIikKKyAgICBlbmRpZgorICAgICQoZXZhbCAkKGNhbGwgYWRkX2RlZmluZSxBUk1fUk9UUEtfTE9DQVRJT05fSUQpKQorCisgICAgQkwxX1NPVVJDRVMJCSs9CXBsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9hcm1fdHJ1c3RlZF9ib290LmMKKyAgICBCTDJfU09VUkNFUwkJKz0JcGxhdC9hcm0vYm9hcmQvY29tbW9uL2JvYXJkX2FybV90cnVzdGVkX2Jvb3QuYworZW5kaWYKZGlmZiAtLWdpdCBhL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9jc3MubWsgYi9wbGF0L2FybS9ib2FyZC9jb21tb24vYm9hcmRfY3NzLm1rCmluZGV4IDY5MTk5OWIuLjY3ZTc5NGUgMTAwNjQ0Ci0tLSBhL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9jc3MubWsKKysrIGIvcGxhdC9hcm0vYm9hcmQvY29tbW9uL2JvYXJkX2Nzcy5tawpAQCAtMjgsMjAgKzI4LDYgQEAKICMgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAjCiAKLVBMQVRfSU5DTFVERVMJCSs9CS1JaW5jbHVkZS9wbGF0L2FybS9ib2FyZC9jb21tb24vCitQTEFUX0JMX0NPTU1PTl9TT1VSQ0VTCSs9CXBsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9jc3NfY29tbW9uLmMKIAotUExBVF9CTF9DT01NT05fU09VUkNFUwkrPQlkcml2ZXJzL2FybS9wbDAxMS9wbDAxMV9jb25zb2xlLlMJCQlcCi0JCQkJcGxhdC9hcm0vYm9hcmQvY29tbW9uL2FhcmNoNjQvYm9hcmRfYXJtX2hlbHBlcnMuUwlcCi0JCQkJcGxhdC9hcm0vYm9hcmQvY29tbW9uL2JvYXJkX2Nzc19jb21tb24uYwotCi0KLSNCTDFfU09VUkNFUwkJKz0KLQotI0JMMl9TT1VSQ0VTCQkrPQotCi0jQkwzMV9TT1VSQ0VTCQkrPQotCi1pZm5lcSAoJHtUUlVTVEVEX0JPQVJEX0JPT1R9LDApCi0gIEJMMV9TT1VSQ0VTCQkrPQlwbGF0L2FybS9ib2FyZC9jb21tb24vYm9hcmRfYXJtX3RydXN0ZWRfYm9vdC5jCi0gIEJMMl9TT1VSQ0VTCQkrPQlwbGF0L2FybS9ib2FyZC9jb21tb24vYm9hcmRfYXJtX3RydXN0ZWRfYm9vdC5jCi1lbmRpZgoraW5jbHVkZSBwbGF0L2FybS9ib2FyZC9jb21tb24vYm9hcmRfY29tbW9uLm1rCmRpZmYgLS1naXQgYS9wbGF0L2FybS9ib2FyZC9jb21tb24vcm90cGsvYXJtX3JvdHBrX3JzYS5kZXIgYi9wbGF0L2FybS9ib2FyZC9jb21tb24vcm90cGsvYXJtX3JvdHBrX3JzYS5kZXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYxZjg5OQotLS0gL2Rldi9udWxsCisrKyBiL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9yb3Rway9hcm1fcm90cGtfcnNhLmRlcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9wbGF0L2FybS9ib2FyZC9jb21tb24vcm90cGsvYXJtX3JvdHBrX3JzYV9zaGEyNTYuYmluIGIvcGxhdC9hcm0vYm9hcmQvY29tbW9uL3JvdHBrL2FybV9yb3Rwa19yc2Ffc2hhMjU2LmJpbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjUzZjdlCi0tLSAvZGV2L251bGwKKysrIGIvcGxhdC9hcm0vYm9hcmQvY29tbW9uL3JvdHBrL2FybV9yb3Rwa19yc2Ffc2hhMjU2LmJpbgpAQCAtMCwwICsxIEBACiuw84IJEpfYOjd6ckcb7DJz6ZIy4klZ9l6LSkpG2CKa2gpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9yb3Rway9hcm1fcm90cHJpdmtfcnNhLnBlbSBiL3BsYXQvYXJtL2JvYXJkL2NvbW1vbi9yb3Rway9hcm1fcm90cHJpdmtfcnNhLnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTQxMGVjCi0tLSAvZGV2L251bGwKKysrIGIvcGxhdC9hcm0vYm9hcmQvY29tbW9uL3JvdHBrL2FybV9yb3Rwcml2a19yc2EucGVtCkBAIC0wLDAgKzEsMjggQEAKKy0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQorTUlJRXZBSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS1l3Z2dTaUFnRUFBb0lCQVFETExHRFZqV1BVQjNsKworeHhhV3ZVMGtUcXlHNXJkeDQ4VlVDK2NVSEwwcEdzRS9lcllDcXFzMnhOazJhV3ppWmNPYnNiODlxRllteS8wRQorQWJxc1BsUXl5bmxldTdJRjZnWlk4blM2NGZTSHdCa0tIMllIZDRTRG9SenYveWhaNThOb2ZTWWdRK3RXWS9NNQorTWRnclVhbThUOUQyM3BYY1gxdkI3WkJ2N0NpUmZoZnRlSkQwWUtmRXgwOVE3VjBUT2lFcmNNVmhld2doWlRyTgorZ2xhTWVrZXNpZWlsU0VneDJSMUc1WVdHbUtEbHdLWnF2UWZra2xkaEI0OTlXazNLcmphNVZnUVE4bXkrOWp0cworZ0Q2K0RxTk54OVIrcDBuVTh0Szh6ekNvNTNTUFpOKzhYRWRvekVCTStJUE15MEExQkdES3M2UVhud1BLSFZyNgorMGE4aFZ4RFRBZ01CQUFFQ2dnRUFmd3NjOGV3YmhEVzRUd0lHcWZOdERVcjBydFlOMTNWcHFvaFcwa2kyTDhHLworSFFhS1VWaU8vd3hRRnFvTm4vT3FRTzBBZkhtS2hYQUFva1RDaVhuZ0JISi9PakY3dkI3K0lSaGF6WkVFNnUyLwordW9pdnIvT1lOUWJGcFh5VHFzUTFlRnpwUGp1NktLY1BLN0J6VDRNYzg5ZWsvdmxvRkFpOHc2TGRNbDhsYnZPZworTEJXcVgrNUErVVFvZW5QVVR2WU00VTIyWU5jRUFXdWJrcHNZQW1WaWlXaWFjK2ErdVBSazM5YUt5Zk9lZEROdQorK3R5OU10Q3dla2l2b1VUZlAvMStPK2pGbERuUE1KVU9Fa0JtY0JxeHNlWVlBSHU3YmxCcGRIeFlwQUl0QzJwdgorWXdKSlN2c0UrSExCTFBrMTc3SmFoZzdzT1VxY1AwRi9YK1Q2NXl1dklRS0JnUUR4ZGpYZEpUNUs4ajdyRzJmdgorMmJ2RjJIMUdQYUhhVFlSazBFR0kyUWw2Tm4rZGRmZUNFNmdhVDdhUFBnZzg3d0FoTnU5M2NvRnVZSHcwcC9zYworWmtYTUorQm1sc3RQVjU1NWNXWG13Y3haTHNuaTBmT1hydDRZeHdXa1p3bWg3NG0wTlZNL2NTRnc1NlBVMG9qMQoreUROZXEzZmdtc0pvY211TlRlMWVHOXFBN1FLQmdRRFhhQUdyTkE1WGVsNW1xcU1ZVEhIUVdJNmwydXpkTnR0NworZURuM0s5K0VoM3l3VHFyd1A4NDVNQWpLRFUyTHE2MUk2dDJIODlkRWlmSHE4MjNWSWNMQ0hkOUJGMDRNckFINworcURQenJtUFAyaUI5ZytZRm1HQktlK0swSEZFMXQxS3JUbG85VlY2WkFDNlJKTkxBZ3dENGt2ZklWWU5rQ0d3ZQorK2hvWkJkaGd2d0tCZ0JyT3NQUTRhazRQendSektucnFoWHBWcXJMZHJOWjd2TE1rbStJQmxwZkc3U3dpS0xSOAorVWpGNW9COFBHQU1MMWN2YU9ZUGRacGxHaFFPamtyRjRlVTlOTGhDMXRTUzk2WTQ2Rk1JbHlmWXN4NlV6QWdSWgorR2JkT2dVWGJXcXByMmJIMEthWGxmWHozZXF6cUl1S0dzNDFUSkIvL2pvM2lCaWJOL0FoeXR6T1JBb0dBZUdvdgorNUtEcEU0WFlsOVB6OEhWcmVtakc5WGg0eVFFTm1Pd1FtMWZ2VDRyZDdVRk0xWmtWazJxQ3YxRElkTGUzMnZkUQorZDl1Y0R6aCtBRFdzeEdSbkYxVFRwUE4rTWg5RnpJU3U1aDRxdGRyZUpzeEJIZ2VjYklic3FIcmIrd2RNTTI5TgoraXRQYVdmVjhFcTlmRVRjcXA4cWdzV0Q4WGtOSERkb0tGTXJydHNrQ2dZQW9TdC9KZTFEM1pFLzNIRWplejdicQorZmVuUzNKNktHMlNFbjJQTkZuK1IwUjV2Qm80RGFWL2NReXNLaDQ0R0QyK3NoMFFEeWg2bnVXSnVmeWhQelJPUAorRFU2RENMYndOZVBqL3lhR3V6aTM2b0x0NmJCZ2ZQV0NpSlk3aklkSzhEbVRMVzI1bTdmUnRDQzVweFpsU3pnbAorS0JmN1I2Y2JhVHZhRmUwNVkyRkpYQT09CistLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9wbGF0L2FybS9ib2FyZC9mdnAvYWFyY2g2NC9mdnBfY29tbW9uLmMgYi9wbGF0L2FybS9ib2FyZC9mdnAvYWFyY2g2NC9mdnBfY29tbW9uLmMKaW5kZXggYTg3NjMxMy4uYzQ2YmRiNiAxMDA2NDQKLS0tIGEvcGxhdC9hcm0vYm9hcmQvZnZwL2FhcmNoNjQvZnZwX2NvbW1vbi5jCisrKyBiL3BsYXQvYXJtL2JvYXJkL2Z2cC9hYXJjaDY0L2Z2cF9jb21tb24uYwpAQCAtNTUsNiArNTUsMTEgQEAKIAkJCQkJREVWSUNFMV9TSVpFLAkJCVwKIAkJCQkJTVRfREVWSUNFIHwgTVRfUlcgfCBNVF9TRUNVUkUpCiAKKyNkZWZpbmUgTUFQX0RFVklDRTIJTUFQX1JFR0lPTl9GTEFUKERFVklDRTJfQkFTRSwJCQlcCisJCQkJCURFVklDRTJfU0laRSwJCQlcCisJCQkJCU1UX0RFVklDRSB8IE1UX1JPIHwgTVRfU0VDVVJFKQorCisKIC8qCiAgKiBUYWJsZSBvZiByZWdpb25zIGZvciB2YXJpb3VzIEJMIHN0YWdlcyB0byBtYXAgdXNpbmcgdGhlIE1NVS4KICAqIFRoaXMgZG9lc24ndCBpbmNsdWRlIFRaUkFNIGFzIHRoZSAnbWVtX2xheW91dCcgYXJndW1lbnQgcGFzc2VkIHRvCkBAIC02Nyw2ICs3Miw3IEBACiAJVjJNX01BUF9JT0ZQR0EsCiAJTUFQX0RFVklDRTAsCiAJTUFQX0RFVklDRTEsCisJTUFQX0RFVklDRTIsCiAJezB9CiB9OwogI2VuZGlmCkBAIC03Nyw2ICs4Myw3IEBACiAJVjJNX01BUF9JT0ZQR0EsCiAJTUFQX0RFVklDRTAsCiAJTUFQX0RFVklDRTEsCisJTUFQX0RFVklDRTIsCiAJQVJNX01BUF9OU19EUkFNMSwKIAlBUk1fTUFQX1RTUF9TRUNfTUVNLAogCXswfQpkaWZmIC0tZ2l0IGEvcGxhdC9hcm0vYm9hcmQvZnZwL2Z2cF9kZWYuaCBiL3BsYXQvYXJtL2JvYXJkL2Z2cC9mdnBfZGVmLmgKaW5kZXggNjhlZjI5Ny4uODQyYTI4NyAxMDA2NDQKLS0tIGEvcGxhdC9hcm0vYm9hcmQvZnZwL2Z2cF9kZWYuaAorKysgYi9wbGF0L2FybS9ib2FyZC9mdnAvZnZwX2RlZi5oCkBAIC01OCwxMyArNTgsMjUgQEAKICNkZWZpbmUgREVWSUNFMV9CQVNFCQkJMHgyZjAwMDAwMAogI2RlZmluZSBERVZJQ0UxX1NJWkUJCQkweDIwMDAwMAogCisvKiBEZXZpY2VzIGluIHRoZSBzZWNvbmQgR0IgKi8KKyNkZWZpbmUgREVWSUNFMl9CQVNFCQkJMHg3ZmUwMDAwMAorI2RlZmluZSBERVZJQ0UyX1NJWkUJCQkweDAwMjAwMDAwCisKICNkZWZpbmUgTlNSQU1fQkFTRQkJCTB4MmUwMDAwMDAKICNkZWZpbmUgTlNSQU1fU0laRQkJCTB4MTAwMDAKIAogI2RlZmluZSBQQ0lFX0VYUF9CQVNFCQkJMHg0MDAwMDAwMAogI2RlZmluZSBUWlJOR19CQVNFCQkJMHg3ZmU2MDAwMAogI2RlZmluZSBUWk5WQ1RSX0JBU0UJCQkweDdmZTcwMDAwCi0jZGVmaW5lIFRaUk9PVEtFWV9CQVNFCQkJMHg3ZmU4MDAwMAorCisvKiBLZXlzICovCisjZGVmaW5lIFNPQ19LRVlTX0JBU0UJCQkweDdmZTgwMDAwCisjZGVmaW5lIFRaX1BVQl9LRVlfSEFTSF9CQVNFCQkoU09DX0tFWVNfQkFTRSArIDB4MDAwMCkKKyNkZWZpbmUgVFpfUFVCX0tFWV9IQVNIX1NJWkUJCTMyCisjZGVmaW5lIEhVX0tFWV9CQVNFCQkJKFNPQ19LRVlTX0JBU0UgKyAweDAwMjApCisjZGVmaW5lIEhVX0tFWV9TSVpFCQkJMTYKKyNkZWZpbmUgRU5EX0tFWV9CQVNFCQkJKFNPQ19LRVlTX0JBU0UgKyAweDAwNDQpCisjZGVmaW5lIEVORF9LRVlfU0laRQkJCTMyCiAKIC8qIENvbnN0YW50cyB0byBkaXN0aW5ndWlzaCBGVlAgdHlwZSAqLwogI2RlZmluZSBIQklfQkFTRV9GVlAJCQkweDAyMApkaWZmIC0tZ2l0IGEvcGxhdC9hcm0vYm9hcmQvZnZwL3BsYXRmb3JtLm1rIGIvcGxhdC9hcm0vYm9hcmQvZnZwL3BsYXRmb3JtLm1rCmluZGV4IDk0OWU2YWQuLmExYTA5NzEgMTAwNjQ0Ci0tLSBhL3BsYXQvYXJtL2JvYXJkL2Z2cC9wbGF0Zm9ybS5taworKysgYi9wbGF0L2FybS9ib2FyZC9mdnAvcGxhdGZvcm0ubWsKQEAgLTI5LDEyICsyOSwxMCBAQAogIwogCiAKLVBMQVRfSU5DTFVERVMJCTo9CS1JaW5jbHVkZS9wbGF0L2FybS9ib2FyZC9jb21tb24JCQlcCi0JCQkJLUlwbGF0L2FybS9ib2FyZC9mdnAvaW5jbHVkZQorUExBVF9JTkNMVURFUwkJOj0JLUlwbGF0L2FybS9ib2FyZC9mdnAvaW5jbHVkZQogCiAKLVBMQVRfQkxfQ09NTU9OX1NPVVJDRVMJOj0JZHJpdmVycy9hcm0vcGwwMTEvcGwwMTFfY29uc29sZS5TCQlcCi0JCQkJcGxhdC9hcm0vYm9hcmQvZnZwL2FhcmNoNjQvZnZwX2NvbW1vbi5jCitQTEFUX0JMX0NPTU1PTl9TT1VSQ0VTCTo9CXBsYXQvYXJtL2JvYXJkL2Z2cC9hYXJjaDY0L2Z2cF9jb21tb24uYwogCiBCTDFfU09VUkNFUwkJKz0JZHJpdmVycy9pby9pb19zZW1paG9zdGluZy5jCQkJXAogCQkJCWxpYi9jcHVzL2FhcmNoNjQvYWVtX2dlbmVyaWMuUwkJCVwKQEAgLTY1LDEwICs2Myw1IEBACiAJCQkJcGxhdC9hcm0vYm9hcmQvZnZwL2FhcmNoNjQvZnZwX2hlbHBlcnMuUwlcCiAJCQkJcGxhdC9hcm0vYm9hcmQvZnZwL2RyaXZlcnMvcHdyYy9mdnBfcHdyYy5jCiAKLWlmbmVxICgke1RSVVNURURfQk9BUkRfQk9PVH0sMCkKLSAgQkwxX1NPVVJDRVMJCSs9CXBsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9hcm1fdHJ1c3RlZF9ib290LmMKLSAgQkwyX1NPVVJDRVMJCSs9CXBsYXQvYXJtL2JvYXJkL2NvbW1vbi9ib2FyZF9hcm1fdHJ1c3RlZF9ib290LmMKLWVuZGlmCi0KLQoraW5jbHVkZSBwbGF0L2FybS9ib2FyZC9jb21tb24vYm9hcmRfY29tbW9uLm1rCiBpbmNsdWRlIHBsYXQvYXJtL2NvbW1vbi9hcm1fY29tbW9uLm1rCg==