ZGlmZiAtLWdpdCBhL3N1cHdpc2RvbS9zcF9kYXRhLmMgYi9zdXB3aXNkb20vc3BfZGF0YS5jCmluZGV4IDc0MTc0MjMuLjIyNzVhYmMgMTAwNjQ0Ci0tLSBhL3N1cHdpc2RvbS9zcF9kYXRhLmMKKysrIGIvc3Vwd2lzZG9tL3NwX2RhdGEuYwpAQCAtOTcsNiArOTcsNyBAQAogICBzcF90cmFuc2R0bF90IHJlY29yZDsKICAgTUVNQ0xFQVIoJnJlY29yZCwgc2l6ZW9mKHJlY29yZCkpOwogCisgIHNwX2ZsYXNoX3JlYWQocG9zLT5sYXN0X3RyYW5zZHRsLnRyYW5zYWRkciwgKHVpbnQ4KikmcmVjb3JkLCByZWNvcmRfYmVoYWxmX2xlbik7CiAgIHJlY29yZC5hbW91bnQgPSBwb3MtPnB1cmNoYXNlLnBhaWRfc3VtOwogICBpZihwb3MtPnBheW1vZGUgPT0gUEFZTU9ERV9RUkNPREUpCiAgIHsKQEAgLTEwOCw3ICsxMDksNiBAQAogICB9CiAgIHJlY29yZC5mbG93c2Vuc29ycyA9IHBvcy0+cHVyY2hhc2UucGFpZF9udW07CiAgIHJlY29yZC50cmFuc3RhdHVzID0gMTsKLSAgc3BfZmxhc2hfcmVhZChwb3MtPmxhc3RfdHJhbnNkdGwudHJhbnNhZGRyLCAodWludDgqKSZyZWNvcmQsIHJlY29yZF9iZWhhbGZfbGVuKTsKICAgcmV0dXJuIHNwX3dyaXRlX2JlbG93X3JlY29yZChwb3MsICZyZWNvcmQpOwogfQogCmRpZmYgLS1naXQgYS9zdXB3aXNkb20vc3BfbWVudS5jIGIvc3Vwd2lzZG9tL3NwX21lbnUuYwppbmRleCBkOWQxYjBhLi41YWU5OWYxIDEwMDY0NAotLS0gYS9zdXB3aXNkb20vc3BfbWVudS5jCisrKyBiL3N1cHdpc2RvbS9zcF9tZW51LmMKQEAgLTU0OCw2ICs1NDgsNDYgQEAKICAgfQogfQogCitzdGF0aWMgdm9pZCBmbG93c2Vuc29yX2NhbGlicmF0ZShzcF9wb3NfdCogcG9zKQoreworICB1aW50MzIgdGlja2VyOworICB1aW50OCBrY29kZTsKKyAgdWludDMyIGNvdW50OworICB1aW50MzIgdGVtcDsKKyAgY2hhciBtc2dbMzJdOworCisgIHNwX3ZhbHZlX29uKCk7CisgIHNwX2Zsb3dzZW5zb3JfY291bnRfY2xlYXIoKTsKKyAgZGlzcF9oaW50X2luZm9fdHdvKHBvcywiwffBv7zGyv2y4srUIiwivMbL4zEwMG1svMbK/SIsMCk7CisgIGNvdW50ID0gMDsKKyAgdGlja2VyID0gc3BfZ2V0X3RpY2tlcigpOworICB3aGlsZShzcF9nZXRfdGlja2VyKCkgLXRpY2tlciA8IERFTEFZX1RJTUU2MHMqNSkKKyAgeworICAgIHNwX2ZlZWRfZG9nKCk7CisgICAgc3BfdmFsdmVfY29udHJvbCgpOworICAgIGtjb2RlID0gc3BfZ2V0X2tleSgpOworICAgIGlmKGtjb2RlICE9IFNQX0tFWV9OT05FKQorICAgIHsKKyAgICAgIGlmKGtjb2RlID09IFNQX0tFWV9DTEVBUikKKyAgICAgIHsKKyAgICAgICAgc3BfdmFsdmVfb2ZmKCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHRpY2tlciA9IHNwX2dldF90aWNrZXIoKTsKKyAgICB9CisgICAgdGVtcCA9IHNwX2Zsb3dzZW5zb3JfZ2V0X2NvdW50KCk7CisgICAgaWYodGVtcCAhPSBjb3VudCkKKyAgICB7CisgICAgICBjb3VudCA9IHRlbXA7CisgICAgICBzcHJpbnRmKG1zZywiwvaz5bj2yv06JWQiLHRlbXApOworICAgICAgZGlzcF9oaW50X2luZm9fdHdvKHBvcywiwffBv7zGyv2y4srUIixtc2csREVMQVlfVElNRTEwMG1zKTsKKyAgICB9CisgIH0KKyAgc3BfdmFsdmVfb2ZmKCk7CisgIHNwcmludGYobXNnLCLC9rPluPbK/TolZCIsc3BfZmxvd3NlbnNvcl9nZXRfY291bnQoKSk7CisgIGRpc3BfaGludF9pbmZvX3R3byhwb3MsIsH3wb+8xsr9suLK1CIsbXNnLERFTEFZX1RJTUUzcyk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RfdmFsdmVfb24oc3BfcG9zX3QqIHBvcykKIHsKICAgc3BfdmFsdmVfb24oKTsKQEAgLTYxMyw3ICs2NTMsOCBAQAogICAgIHsiMy6/qsb0t6fDxSIsIHRlc3RfdmFsdmVfb259LAogICAgIHsiNC652LHVt6fDxSIsIHRlc3RfdmFsdmVfb2ZmfSwKICAgICB7IjUuwffBv7LiytQiLCB0ZXN0X2Zsb3dzZW5zb3J9LAotICAgIHsiNi7NqNG2suLK1CIsIHRlc3RfbGlua30KKyAgICB7IjYuzajRtrLiytQiLCB0ZXN0X2xpbmt9LAorICAgIHsiNy7B98G/vMbK/dCj17wiLGZsb3dzZW5zb3JfY2FsaWJyYXRlfQogICB9OwogICBtYXhfY250ID0gKHNpemVvZihtZW51cykvc2l6ZW9mKG1lbnVfdCkgLTEpLzMgKyAxOwogICBwYWdlID0gMDsK