ZGlmZiAtLWdpdCBhL2NvcmUvZnhnZS9jZnhfd2luZG93c3JlbmRlcmRldmljZS5oIGIvY29yZS9meGdlL2NmeF93aW5kb3dzcmVuZGVyZGV2aWNlLmgKaW5kZXggM2Q5NjIwNy4uOTZhZTFlZSAxMDA2NDQKLS0tIGEvY29yZS9meGdlL2NmeF93aW5kb3dzcmVuZGVyZGV2aWNlLmgKKysrIGIvY29yZS9meGdlL2NmeF93aW5kb3dzcmVuZGVyZGV2aWNlLmgKQEAgLTE4LDYgKzE4LDcgQEAKICAga01vZGVQb3N0U2NyaXB0MyA9IDMsCiAgIGtNb2RlUG9zdFNjcmlwdDJQYXNzVGhyb3VnaCA9IDQsCiAgIGtNb2RlUG9zdFNjcmlwdDNQYXNzVGhyb3VnaCA9IDUsCisgIGtNb2RlRW1mSW1hZ2VNYXNrcyA9IDYsCiB9OwogCiBjbGFzcyBSZW5kZXJEZXZpY2VEcml2ZXJJZmFjZTsKZGlmZiAtLWdpdCBhL2NvcmUvZnhnZS93aW4zMi9meF93aW4zMl9kZXZpY2UuY3BwIGIvY29yZS9meGdlL3dpbjMyL2Z4X3dpbjMyX2RldmljZS5jcHAKaW5kZXggNWZhYmY4Ny4uZTFhMDQ2ZiAxMDA2NDQKLS0tIGEvY29yZS9meGdlL3dpbjMyL2Z4X3dpbjMyX2RldmljZS5jcHAKKysrIGIvY29yZS9meGdlL3dpbjMyL2Z4X3dpbjMyX2RldmljZS5jcHAKQEAgLTEzNzUsOCArMTM3NSwxMCBAQAogICBpZiAoIXVzZV9wcmludGVyKQogICAgIHJldHVybiBuZXcgQ0dkaURpc3BsYXlEcml2ZXIoaERDKTsKIAotICBpZiAoZ19wZGZpdW1fcHJpbnRfbW9kZSA9PSBXaW5kb3dzUHJpbnRNb2RlOjprTW9kZUVtZikKKyAgaWYgKGdfcGRmaXVtX3ByaW50X21vZGUgPT0gV2luZG93c1ByaW50TW9kZTo6a01vZGVFbWYgfHwKKyAgICAgIGdfcGRmaXVtX3ByaW50X21vZGUgPT0gV2luZG93c1ByaW50TW9kZTo6a01vZGVFbWZJbWFnZU1hc2tzKSB7CiAgICAgcmV0dXJuIG5ldyBDR2RpUHJpbnRlckRyaXZlcihoREMpOworICB9CiAKICAgaWYgKGdfcGRmaXVtX3ByaW50X21vZGUgPT0gV2luZG93c1ByaW50TW9kZTo6a01vZGVUZXh0T25seSkKICAgICByZXR1cm4gbmV3IENUZXh0T25seVByaW50ZXJEcml2ZXIoaERDKTsKZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZl92aWV3LmNwcCBiL2ZwZGZzZGsvZnBkZl92aWV3LmNwcAppbmRleCBlN2UyNzM1Li5lZGRkMGRiIDEwMDY0NAotLS0gYS9mcGRmc2RrL2ZwZGZfdmlldy5jcHAKKysrIGIvZnBkZnNkay9mcGRmX3ZpZXcuY3BwCkBAIC03Myw2ICs3Myw5IEBACiBzdGF0aWNfYXNzZXJ0KFdpbmRvd3NQcmludE1vZGU6OmtNb2RlUG9zdFNjcmlwdDNQYXNzVGhyb3VnaCA9PQogICAgICAgICAgICAgICAgICAgRlBERl9QUklOVE1PREVfUE9TVFNDUklQVDNfUEFTU1RIUk9VR0gsCiAgICAgICAgICAgICAgICJXaW5kb3dzUHJpbnRNb2RlOjprTW9kZVBvc3RTY3JpcHQzUGFzc1Rocm91Z2ggdmFsdWUgbWlzbWF0Y2giKTsKK3N0YXRpY19hc3NlcnQoV2luZG93c1ByaW50TW9kZTo6a01vZGVFbWZJbWFnZU1hc2tzID09CisgICAgICAgICAgICAgICAgICBGUERGX1BSSU5UTU9ERV9FTUZfSU1BR0VfTUFTS1MsCisgICAgICAgICAgICAgICJXaW5kb3dzUHJpbnRNb2RlOjprTW9kZUVtZkltYWdlTWFza3MgdmFsdWUgbWlzbWF0Y2giKTsKICNlbmRpZiAgLy8gZGVmaW5lZChPU19XSU4pCiAKIG5hbWVzcGFjZSB7CkBAIC0xNTgsMTAgKzE2MSw5IEBACiAjZW5kaWYgIC8vIFBERklVTV9QUklOVF9URVhUX1dJVEhfR0RJCiAKIEZQREZfRVhQT1JUIEZQREZfQk9PTCBGUERGX0NBTExDT05WIEZQREZfU2V0UHJpbnRNb2RlKGludCBtb2RlKSB7Ci0gIGlmIChtb2RlIDwgRlBERl9QUklOVE1PREVfRU1GIHx8Ci0gICAgICBtb2RlID4gRlBERl9QUklOVE1PREVfUE9TVFNDUklQVDNfUEFTU1RIUk9VR0gpIHsKKyAgaWYgKG1vZGUgPCBGUERGX1BSSU5UTU9ERV9FTUYgfHwgbW9kZSA+IEZQREZfUFJJTlRNT0RFX0VNRl9JTUFHRV9NQVNLUykKICAgICByZXR1cm4gRkFMU0U7Ci0gIH0KKwogICBnX3BkZml1bV9wcmludF9tb2RlID0gc3RhdGljX2Nhc3Q8V2luZG93c1ByaW50TW9kZT4obW9kZSk7CiAgIHJldHVybiBUUlVFOwogfQpAQCAtNDQ2LDkgKzQ0OCw5IEBACiAgIC8vIG9mIG1hc2tzLiBGdWxsIHBhZ2UgYml0bWFwcyByZXN1bHQgaW4gbGFyZ2Ugc3Bvb2wgc2l6ZXMsIHNvIHRoZXkgc2hvdWxkCiAgIC8vIG9ubHkgYmUgdXNlZCB3aGVuIG5lY2Vzc2FyeS4gRm9yIGxhcmdlIG51bWJlcnMgb2YgbWFza3MsIHJlbmRlcmluZyBlYWNoCiAgIC8vIGluZGl2aWR1YWxseSBpcyBpbmVmZmljaWVudCBhbmQgdW5saWtlbHkgdG8gc2lnbmlmaWNhbnRseSBpbXByb3ZlIHNwb29sCi0gIC8vIHNpemUuIFRPRE8ocmJwb3R0ZXIpOiBGaW5kIG91dCB3aHkgdGhpcyBzdGlsbCBicmVha3MgcHJpbnRpbmcgZm9yIHNvbWUKLSAgLy8gUERGcyAoc2VlIGNyYnVnLmNvbS83Nzc4MzcpLgotICBjb25zdCBib29sIGJFbmFibGVJbWFnZU1hc2tzID0gZmFsc2U7CisgIC8vIHNpemUuCisgIGNvbnN0IGJvb2wgYkVuYWJsZUltYWdlTWFza3MgPQorICAgICAgZ19wZGZpdW1fcHJpbnRfbW9kZSA9PSBXaW5kb3dzUHJpbnRNb2RlOjprTW9kZUVtZkltYWdlTWFza3M7CiAgIGNvbnN0IGJvb2wgYk5ld0JpdG1hcCA9IHBQYWdlLT5CYWNrZ3JvdW5kQWxwaGFOZWVkZWQoKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAocFBhZ2UtPkhhc0ltYWdlTWFzaygpICYmICFiRW5hYmxlSW1hZ2VNYXNrcykgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcFBhZ2UtPkdldE1hc2tCb3VuZGluZ0JveGVzKCkuc2l6ZSgpID4gMTAwOwpkaWZmIC0tZ2l0IGEvZnBkZnNkay9mcGRmX3ZpZXdfZW1iZWRkZXJ0ZXN0LmNwcCBiL2ZwZGZzZGsvZnBkZl92aWV3X2VtYmVkZGVydGVzdC5jcHAKaW5kZXggODg4ZTk0MC4uZDNiMWMxMCAxMDA2NDQKLS0tIGEvZnBkZnNkay9mcGRmX3ZpZXdfZW1iZWRkZXJ0ZXN0LmNwcAorKysgYi9mcGRmc2RrL2ZwZGZfdmlld19lbWJlZGRlcnRlc3QuY3BwCkBAIC0xNDYzLDQgKzE0NjMsMjIgQEAKIAogICBVbmxvYWRQYWdlKHBhZ2UpOwogfQorCitURVNUX0YoRlBERlZpZXdFbWJlZGRlclRlc3QsIEltYWdlTWFzaykgeworICBBU1NFUlRfVFJVRShPcGVuRG9jdW1lbnQoImJ1Z182NzQ3NzEucGRmIikpOworICBGUERGX1BBR0UgcGFnZSA9IExvYWRQYWdlKDApOworICBBU1NFUlRfVFJVRShwYWdlKTsKKworICAvLyBSZW5kZXIgdGhlIHBhZ2Ugd2l0aCBtb3JlIGVmZmljaWVudCBwcm9jZXNzaW5nIG9mIGltYWdlIG1hc2tzLgorICBGUERGX1NldFByaW50TW9kZShGUERGX1BSSU5UTU9ERV9FTUZfSU1BR0VfTUFTS1MpOworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBlbWZfaW1hZ2VfbWFza3MgPSBSZW5kZXJQYWdlV2l0aEZsYWdzVG9FbWYocGFnZSwgMCk7CisKKyAgLy8gUmVuZGVyIHRoZSBwYWdlIG5vcm1hbGx5LgorICBGUERGX1NldFByaW50TW9kZShGUERGX1BSSU5UTU9ERV9FTUYpOworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBlbWZfbm9ybWFsID0gUmVuZGVyUGFnZVdpdGhGbGFnc1RvRW1mKHBhZ2UsIDApOworCisgIEVYUEVDVF9MVChlbWZfaW1hZ2VfbWFza3Muc2l6ZSgpLCBlbWZfbm9ybWFsLnNpemUoKSk7CisKKyAgVW5sb2FkUGFnZShwYWdlKTsKK30KICNlbmRpZiAgLy8gZGVmaW5lZChPU19XSU4pCmRpZmYgLS1naXQgYS9wdWJsaWMvZnBkZl9lZGl0LmggYi9wdWJsaWMvZnBkZl9lZGl0LmgKaW5kZXggOGUwZDIzNC4uZjg0Mjg2OSAxMDA2NDQKLS0tIGEvcHVibGljL2ZwZGZfZWRpdC5oCisrKyBiL3B1YmxpYy9mcGRmX2VkaXQuaApAQCAtNjMsMTIgKzYzLDE0IEBACiAjZGVmaW5lIEZQREZfTElORUpPSU5fUk9VTkQgMQogI2RlZmluZSBGUERGX0xJTkVKT0lOX0JFVkVMIDIKIAorLy8gU2VlIEZQREZfU2V0UHJpbnRNb2RlKCkgZm9yIGRlc2NyaXB0aW9ucy4KICNkZWZpbmUgRlBERl9QUklOVE1PREVfRU1GIDAKICNkZWZpbmUgRlBERl9QUklOVE1PREVfVEVYVE9OTFkgMQogI2RlZmluZSBGUERGX1BSSU5UTU9ERV9QT1NUU0NSSVBUMiAyCiAjZGVmaW5lIEZQREZfUFJJTlRNT0RFX1BPU1RTQ1JJUFQzIDMKICNkZWZpbmUgRlBERl9QUklOVE1PREVfUE9TVFNDUklQVDJfUEFTU1RIUk9VR0ggNAogI2RlZmluZSBGUERGX1BSSU5UTU9ERV9QT1NUU0NSSVBUM19QQVNTVEhST1VHSCA1CisjZGVmaW5lIEZQREZfUFJJTlRNT0RFX0VNRl9JTUFHRV9NQVNLUyA2CiAKIHR5cGVkZWYgc3RydWN0IEZQREZfSU1BR0VPQkpfTUVUQURBVEEgewogICAvLyBUaGUgaW1hZ2Ugd2lkdGggaW4gcGl4ZWxzLgpkaWZmIC0tZ2l0IGEvcHVibGljL2ZwZGZ2aWV3LmggYi9wdWJsaWMvZnBkZnZpZXcuaAppbmRleCAxZTY3YmNiLi4yYmM0NTlmIDEwMDY0NAotLS0gYS9wdWJsaWMvZnBkZnZpZXcuaAorKysgYi9wdWJsaWMvZnBkZnZpZXcuaApAQCAtMzI1LDYgKzMyNSw4IEBACiAvLyAgICAgICAgICAgICAgICAgUG9zdFNjcmlwdCB2aWEgRXh0RXNjYXBlKCkgaW4gUEFTU1RIUk9VR0ggbW9kZS4KIC8vICAgICAgICAgICAgICAgICBGUERGX1BSSU5UTU9ERV9QT1NUU0NSSVBUM19QQVNTVEhST1VHSCB0byBvdXRwdXQgbGV2ZWwgMwogLy8gICAgICAgICAgICAgICAgIFBvc3RTY3JpcHQgdmlhIEV4dEVzY2FwZSgpIGluIFBBU1NUSFJPVUdIIG1vZGUuCisvLyAgICAgICAgICAgICAgICAgRlBERl9QUklOVE1PREVfRU1GX0lNQUdFX01BU0tTIHRvIG91dHB1dCBFTUYsIHdpdGggbW9yZQorLy8gICAgICAgICAgICAgICAgIGVmZmljaWVudCBwcm9jZXNzaW5nIG9mIGRvY3VtZW50cyBjb250YWluaW5nIGltYWdlIG1hc2tzLgogLy8gUmV0dXJuIHZhbHVlOgogLy8gICAgICAgICAgVHJ1ZSBpZiBzdWNjZXNzZnVsLCBmYWxzZSBpZiB1bnN1Y2Nlc3NmdWwgKHR5cGljYWxseSBpbnZhbGlkIGlucHV0KS4KIEZQREZfRVhQT1JUIEZQREZfQk9PTCBGUERGX0NBTExDT05WIEZQREZfU2V0UHJpbnRNb2RlKGludCBtb2RlKTsKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182NzQ3NzEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjc0NzcxLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzNTJmMzAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjc0NzcxLmluCkBAIC0wLDAgKzEsNTYgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIFs0IDAgUl0KKyAgL01lZGlhQm94IFswIDAgNzkyIDYxMl0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUJdCisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9JbTAgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorNDAwIDAgMCAzMDAgNjAgMTAwIGNtCisvSW0wIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDEKKyAgL0RlY29kZSBbMC4wIDEuMF0KKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9KQklHMkRlY29kZV0KKyAgL0hlaWdodCA0MDAKKyAgL0ltYWdlTWFzayB0cnVlCisgIC9XaWR0aCA0MDAKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMDAwMDAwMDAzMDAwMDEwMDAwMDAxMzAwMDAwZGVhMDAwMDAzNTMwMDAwMTcxMTAwMDAxNzExNTEwMDAwMDAwMDAwMDEyNjAwMDEwMDAwMDAKKzM1MDAwMDBkZWEwMDAwMDM1MzAwMDAwMDAwMDAwMDAwMDAwMjAwMDNmZmZkZmYwMmZlZmVmZWZmN2Y4NjUzMGZiNmM5MjJjZmZmN2ZmZjdmCitmZjdmZmY3ZmZmN2ZmZjdmZmY3ZmZmN2ZmZmFjCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzY3NDc3MS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjc0NzcxLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjJkYWI4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzY3NDc3MS5wZGYKQEAgLTAsMCArMSw2OCBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDc5MiA2MTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCXQorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW0wIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAzNAorPj4KK3N0cmVhbQorcQorNDAwIDAgMCAzMDAgNjAgMTAwIGNtCisvSW0wIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgMQorICAvRGVjb2RlIFswLjAgMS4wXQorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0pCSUcyRGVjb2RlXQorICAvSGVpZ2h0IDQwMAorICAvSW1hZ2VNYXNrIHRydWUKKyAgL1dpZHRoIDQwMAorICAvTGVuZ3RoIDE5MQorPj4KK3N0cmVhbQorMDAwMDAwMDAzMDAwMDEwMDAwMDAxMzAwMDAwZGVhMDAwMDAzNTMwMDAwMTcxMTAwMDAxNzExNTEwMDAwMDAwMDAwMDEyNjAwMDEwMDAwMDAKKzM1MDAwMDBkZWEwMDAwMDM1MzAwMDAwMDAwMDAwMDAwMDAwMjAwMDNmZmZkZmYwMmZlZmVmZWZmN2Y4NjUzMGZiNmM5MjJjZmZmN2ZmZjdmCitmZjdmZmY3ZmZmN2ZmZjdmZmY3ZmZmN2ZmZmFjCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA2CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCiswMDAwMDAwMzE3IDAwMDAwIG4gCiswMDAwMDAwNDAyIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDYKKz4+CitzdGFydHhyZWYKKzgwOAorJSVFT0YK