ZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NmRjMjQuLjAwMDAwMDAKLS0tIGEvTUFJTlRBSU5FUlMKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLQotQmlvbmljIHN1cHBvcnQgZm9yIFN1cGVySAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQmlvbmljIHN1cHBvcnQgZm9yIFN1cGVySCBhcmNoaXRlY3R1cmUgaXMgd3JpdHRlbiBieQotU2hpbi1pY2hpcm8gS0FXQVNBS0kgPHNoaW5pY2hpcm8ua2F3YXNha2kubWdAaGl0YWNoaS5jb20+Ci1hbmQgQ29udHJpYnV0ZWQgdG8gQW5kcm9pZCBieSBIaXRhY2hpLCBMdGQuIGFuZCBSZW5lc2FzIFNvbHV0aW9ucyBDb3JwLgpkaWZmIC0tZ2l0IGEvbGliYy9BbmRyb2lkLm1rIGIvbGliYy9BbmRyb2lkLm1rCmluZGV4IGE0MDMxNDYuLjZjNTM1ZGMgMTAwNjQ0Ci0tLSBhL2xpYmMvQW5kcm9pZC5taworKysgYi9saWJjL0FuZHJvaWQubWsKQEAgLTQ2NSw2ICs0NjUsMTMgQEAKICAgbGliY19jb21tb25fY2ZsYWdzICs9IC1EREVCVUcKIGVuZGlmCiAKKyMgVG8gY3VzdG9taXplIGRsbWFsbG9jJ3MgYWxpZ25tZW50LCBzZXQgQk9BUkRfTUFMTE9DX0FMSUdOTUVOVCBpbgorIyB0aGUgYXBwcm9wcmlhdGUgQm9hcmRDb25maWcubWsgZmlsZS4KKyMKK2lmbmVxICgkKEJPQVJEX01BTExPQ19BTElHTk1FTlQpLCkKKyAgbGliY19jb21tb25fY2ZsYWdzICs9IC1ETUFMTE9DX0FMSUdOTUVOVD0kKEJPQVJEX01BTExPQ19BTElHTk1FTlQpCitlbmRpZgorCiBpZmVxICgkKFRBUkdFVF9BUkNIKSxhcm0pCiAgIGxpYmNfY29tbW9uX2NmbGFncyArPSAtZnN0cmljdC1hbGlhc2luZwogICBsaWJjX2NydF90YXJnZXRfY2ZsYWdzIDo9IC1tdGh1bWItaW50ZXJ3b3JrCkBAIC00NzgsNiArNDg1LDE0IEBACiAgIGlmZXEgKCQoQVJDSF9BUk1fSEFWRV9UTFNfUkVHSVNURVIpLHRydWUpCiAgICAgbGliY19jb21tb25fY2ZsYWdzICs9IC1ESEFWRV9BUk1fVExTX1JFR0lTVEVSCiAgIGVuZGlmCisgICMKKyAgIyBEZWZpbmUgSEFWRV8zMl9CWVRFX0NBQ0hFX0xJTkVTIHRvIGluZGljYXRlIHRvIEMKKyAgIyBsaWJyYXJ5IGl0IHNob3VsZCB1c2UgdG8gMzItYnl0ZSB2ZXJzaW9uIG9mIG1lbWNweSwgYW5kIG5vdAorICAjIHRoZSA2NC1ieXRlIHZlcnNpb24uCisgICMKKyAgaWZlcSAoJChBUkNIX0FSTV9IQVZFXzMyX0JZVEVfQ0FDSEVfTElORVMpLHRydWUpCisgICAgbGliY19jb21tb25fY2ZsYWdzICs9IC1ESEFWRV8zMl9CWVRFX0NBQ0hFX0xJTkUKKyAgZW5kaWYKICAgaWZlcSAoJChBUkNIX0FSTV9VU0VfTk9OX05FT05fTUVNQ1BZKSx0cnVlKQogICAgIGxpYmNfY29tbW9uX2NmbGFncyArPSAtREFSQ0hfQVJNX1VTRV9OT05fTkVPTl9NRU1DUFkKICAgZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmMvU1lTQ0FMTFMuVFhUIGIvbGliYy9TWVNDQUxMUy5UWFQKaW5kZXggMTkyM2VhMC4uNTA0YTA1MCAxMDA2NDQKLS0tIGEvbGliYy9TWVNDQUxMUy5UWFQKKysrIGIvbGliYy9TWVNDQUxMUy5UWFQKQEAgLTIyLDE4ICsyMiwxOCBAQAogIyAgICAgICAgYXNzZW1ibGVyIHRlbXBsYXRlIGZvciB0aGUgc3lzY2FsbDsgaXQncyB1cCB0byB0aGUgYmlvbmljIGltcGxlbWVudGF0aW9uIHRvIHByb3ZpZGUKICMgICAgICAgIGEgcmVsZXZhbnQgQyBzdHViCiAjCi0jICAgICAgLSBhZGRpdGlvbmFsbHksIGlmIHRoZSBzeXNjYWxsIG51bWJlciBpcyBkaWZmZXJlbnQgYW1vdW5nIEFSTSwgYW5kIHg4NiwgdXNlOgotIyAgICAgICAgcmV0dXJuX3R5cGUgZnVuY25hbWVbOnN5c2NhbGxfbmFtZV0ocGFyYW1ldGVycykgYXJtX251bWJlcix4ODZfbnVtYmVyCisjICAgICAgLSBhZGRpdGlvbmFsbHksIGlmIHRoZSBzeXNjYWxsIG51bWJlciBpcyBkaWZmZXJlbnQgYW1vdW5nIEFSTSwgYW5kIHg4NiwgTUlQUyB1c2U6CisjICAgICAgICByZXR1cm5fdHlwZSBmdW5jbmFtZVs6c3lzY2FsbF9uYW1lXShwYXJhbWV0ZXJzKSBhcm1fbnVtYmVyLHg4Nl9udW1iZXIsIG1pcHNfbnVtYmVyCiAjCiAjIHRoZSBmaWxlIGlzIHByb2Nlc3NlZCBieSBhIHB5dGhvbiBzY3JpcHQgbmFtZWQgZ2Vuc3lzY2FsbHMucHkKICMKIAogIyBwcm9jZXNzIG1hbmFnZW1lbnQKLXZvaWQgICAgX2V4aXQ6ZXhpdF9ncm91cCAoaW50KSAgICAgIDI0OCwyNTIKK3ZvaWQgICAgX2V4aXQ6ZXhpdF9ncm91cCAoaW50KSAgICAgIDI0OCwyNTIsMjQ2CiB2b2lkICAgIF9leGl0X3RocmVhZDpleGl0IChpbnQpICAgICAxCiBwaWRfdCAgIF9fZm9yazpmb3JrICh2b2lkKSAgICAgICAgICAgMgotcGlkX3QgICBfd2FpdHBpZDp3YWl0cGlkIChwaWRfdCwgaW50KiwgaW50LCBzdHJ1Y3QgcnVzYWdlKikgICAtMSw3Ci1pbnQgICAgIF9fd2FpdGlkOndhaXRpZChpbnQsIHBpZF90LCBzdHJ1Y3Qgc2lnaW5mb190KiwgaW50LHZvaWQqKSAgICAgICAgICAyODAsMjg0CitwaWRfdCAgIF93YWl0cGlkOndhaXRwaWQgKHBpZF90LCBpbnQqLCBpbnQsIHN0cnVjdCBydXNhZ2UqKSAgIC0xLDcsNworaW50ICAgICBfX3dhaXRpZDp3YWl0aWQoaW50LCBwaWRfdCwgc3RydWN0IHNpZ2luZm9fdCosIGludCx2b2lkKikgICAgICAgICAgMjgwLDI4NCwyNzgKIAogIyBOT1RFOiB0aGlzIHN5c3RlbSBjYWxsIGlzIG5ldmVyIGNhbGxlZCBkaXJlY3RseSwgYnV0IHdlIGxpc3QgaXQgdGhlcmUKICMgICAgICAgdG8gaGF2ZSBfX05SX2Nsb25lIHByb3Blcmx5IGRlZmluZWQuCkBAIC00Miw3MiArNDIsODcgQEAKIAogaW50ICAgICBleGVjdmUgKGNvbnN0IGNoYXIqLCBjaGFyKiBjb25zdCosIGNoYXIqIGNvbnN0KikgIDExCiAKLWludCAgICAgX19zZXR1aWQ6c2V0dWlkMzIgKHVpZF90KSAgICAyMTMKLXVpZF90ICAgZ2V0dWlkOmdldHVpZDMyICgpICAgICAgICAgMTk5Ci1naWRfdCAgIGdldGdpZDpnZXRnaWQzMiAoKSAgICAgICAgIDIwMAotdWlkX3QgICBnZXRldWlkOmdldGV1aWQzMiAoKSAgICAgICAyMDEKLWdpZF90ICAgZ2V0ZWdpZDpnZXRlZ2lkMzIgKCkgICAgICAgMjAyCi11aWRfdCAgIGdldHJlc3VpZDpnZXRyZXN1aWQzMiAodWlkX3QgKnJ1aWQsIHVpZF90ICpldWlkLCB1aWRfdCAqc3VpZCkgICAyMDkKLWdpZF90ICAgZ2V0cmVzZ2lkOmdldHJlc2dpZDMyIChnaWRfdCAqcmdpZCwgZ2lkX3QgKmVnaWQsIGdpZF90ICpzZ2lkKSAgIDIxMQotcGlkX3QgICBnZXR0aWQoKSAgICAgICAgICAgICAgICAgICAyMjQKLXNzaXplX3QgcmVhZGFoZWFkKGludCwgb2ZmNjRfdCwgc2l6ZV90KSAgICAgMjI1Ci1pbnQgICAgIGdldGdyb3VwczpnZXRncm91cHMzMihpbnQsIGdpZF90ICopICAgIDIwNQoraW50ICAgICBfX3NldHVpZDpzZXR1aWQzMiAodWlkX3QpICAgIDIxMywyMTMsLTEKK2ludCAgICAgX19zZXR1aWQ6c2V0dWlkICh1aWRfdCkgICAtMSwtMSwyMwordWlkX3QgICBnZXR1aWQ6Z2V0dWlkMzIgKCkgICAgICAgICAxOTksMTk5LC0xCit1aWRfdCAgIGdldHVpZDpnZXR1aWQgKCkgICAgICAgICAgIC0xLC0xLDI0CitnaWRfdCAgIGdldGdpZDpnZXRnaWQzMiAoKSAgICAgICAgIDIwMCwyMDAsLTEKK2dpZF90ICAgZ2V0Z2lkOmdldGdpZCAoKSAgICAgICAgICAgLTEsLTEsNDcKK3VpZF90ICAgZ2V0ZXVpZDpnZXRldWlkMzIgKCkgICAgICAgMjAxLDIwMSwtMQordWlkX3QgICBnZXRldWlkOmdldGV1aWQgKCkgICAgICAgICAtMSwtMSw0OQorZ2lkX3QgICBnZXRlZ2lkOmdldGVnaWQzMiAoKSAgICAgICAyMDIsMjAyLC0xCitnaWRfdCAgIGdldGVnaWQ6Z2V0ZWdpZCAoKSAgICAgICAgIC0xLC0xLDUwCit1aWRfdCAgIGdldHJlc3VpZDpnZXRyZXN1aWQzMiAodWlkX3QgKnJ1aWQsIHVpZF90ICpldWlkLCB1aWRfdCAqc3VpZCkgICAyMDksMjA5LC0xCit1aWRfdCAgIGdldHJlc3VpZDpnZXRyZXN1aWQgKHVpZF90ICpydWlkLCB1aWRfdCAqZXVpZCwgdWlkX3QgKnN1aWQpICAgICAtMSwtMSwxODYKK2dpZF90ICAgZ2V0cmVzZ2lkOmdldHJlc2dpZDMyIChnaWRfdCAqcmdpZCwgZ2lkX3QgKmVnaWQsIGdpZF90ICpzZ2lkKSAgIDIxMSwyMTEsLTEKK2dpZF90ICAgZ2V0cmVzZ2lkOmdldHJlc2dpZCAoZ2lkX3QgKnJnaWQsIGdpZF90ICplZ2lkLCBnaWRfdCAqc2dpZCkgICAgIC0xLC0xLDE5MQorcGlkX3QgICBnZXR0aWQoKSAgICAgICAgICAgICAgICAgICAyMjQsMjI0LDIyMgorc3NpemVfdCByZWFkYWhlYWQoaW50LCBvZmY2NF90LCBzaXplX3QpICAgICAyMjUsMjI1LDIyMworaW50ICAgICBnZXRncm91cHM6Z2V0Z3JvdXBzMzIoaW50LCBnaWRfdCAqKSAgICAyMDUsMjA1LC0xCitpbnQgICAgIGdldGdyb3VwczpnZXRncm91cHMoaW50LCBnaWRfdCAqKSAgICAgIC0xLC0xLDgwCiBwaWRfdCAgIGdldHBnaWQocGlkX3QpICAgICAgICAgICAgIDEzMgogcGlkX3QgICBnZXRwcGlkKCkgICAgICAgICAgICAgICAgICA2NAogcGlkX3QgICBzZXRzaWQoKSAgICAgICAgICAgICAgICAgICA2NgotaW50ICAgICBzZXRnaWQ6c2V0Z2lkMzIoZ2lkX3QpICAgICAyMTQKK2ludCAgICAgc2V0Z2lkOnNldGdpZDMyKGdpZF90KSAgICAgMjE0LDIxNCwtMQoraW50ICAgICBzZXRnaWQ6c2V0Z2lkKGdpZF90KSAgICAgICAtMSwtMSw0NgogaW50ICAgICBzZXRldWlkOnNldGV1aWQzMih1aWRfdCkgICBzdHViCi1pbnQgICAgIF9fc2V0cmV1aWQ6c2V0cmV1aWQzMih1aWRfdCwgdWlkX3QpICAgMjAzCi1pbnQgICAgIF9fc2V0cmVzdWlkOnNldHJlc3VpZDMyKHVpZF90LCB1aWRfdCwgdWlkX3QpICAgMjA4Ci1pbnQgICAgIHNldHJlc2dpZDpzZXRyZXNnaWQzMihnaWRfdCwgZ2lkX3QsIGdpZF90KSAgIDIxMAoraW50ICAgICBfX3NldHJldWlkOnNldHJldWlkMzIodWlkX3QsIHVpZF90KSAgIDIwMywyMDMsLTEKK2ludCAgICAgX19zZXRyZXVpZDpzZXRyZXVpZCh1aWRfdCwgdWlkX3QpICAgICAtMSwtMSw3MAoraW50ICAgICBfX3NldHJlc3VpZDpzZXRyZXN1aWQzMih1aWRfdCwgdWlkX3QsIHVpZF90KSAgIDIwOCwyMDgsLTEKK2ludCAgICAgX19zZXRyZXN1aWQ6c2V0cmVzdWlkKHVpZF90LCB1aWRfdCwgdWlkX3QpICAgICAtMSwtMSwxODUKK2ludCAgICAgc2V0cmVzZ2lkOnNldHJlc2dpZDMyKGdpZF90LCBnaWRfdCwgZ2lkX3QpICAgMjEwLDIxMCwtMQoraW50ICAgICBzZXRyZXNnaWQ6c2V0cmVzZ2lkKGdpZF90LCBnaWRfdCwgZ2lkX3QpICAgICAtMSwtMSwxOTAKIHZvaWQqICAgX19icms6YnJrKHZvaWQqKSAgICAgICAgICAgNDUKICMgc2VlIGNvbW1lbnRzIGluIGFyY2gtYXJtL2Jpb25pYy9raWxsLlMgdG8gdW5kZXJzdGFuZCB3aHkgd2UgZG9uJ3QgZ2VuZXJhdGUgYW4gQVJNIHN0dWIgZm9yIGtpbGwvdGtpbGwKLWludCAgICAga2lsbChwaWRfdCwgaW50KSAgICAgICAgICAgLTEsMzcKLWludCAgICAgdGtpbGwocGlkX3QgdGlkLCBpbnQgc2lnKSAgLTEsMjM4Ci1pbnQgICAgIHRna2lsbChwaWRfdCB0Z2lkLCBwaWRfdCB0aWQsIGludCBzaWcpICAtMSwyNzAKK2ludCAgICAga2lsbChwaWRfdCwgaW50KSAgICAgICAgICAgLTEsMzcsMzcKK2ludCAgICAgdGtpbGwocGlkX3QgdGlkLCBpbnQgc2lnKSAgLTEsMjM4LDIzNgoraW50ICAgICB0Z2tpbGwocGlkX3QgdGdpZCwgcGlkX3QgdGlkLCBpbnQgc2lnKSAgLTEsMjcwLDI2NgogaW50ICAgICBfX3B0cmFjZTpwdHJhY2UoaW50IHJlcXVlc3QsIGludCBwaWQsIHZvaWQqIGFkZHIsIHZvaWQqIGRhdGEpICAyNgotaW50ICAgICBfX3NldF90aHJlYWRfYXJlYTpzZXRfdGhyZWFkX2FyZWEodm9pZCogIHVzZXJfZGVzYykgIC0xLDI0MworaW50ICAgICBfX3NldF90aHJlYWRfYXJlYTpzZXRfdGhyZWFkX2FyZWEodm9pZCogIHVzZXJfZGVzYykgIC0xLDI0MywyODMKIGludCAgICAgX19nZXRwcmlvcml0eTpnZXRwcmlvcml0eShpbnQsIGludCkgIDk2CiBpbnQgICAgIHNldHByaW9yaXR5KGludCwgaW50LCBpbnQpICAgOTcKIGludCAgICAgc2V0cmxpbWl0KGludCByZXNvdXJjZSwgY29uc3Qgc3RydWN0IHJsaW1pdCAqcmxwKSAgNzUKLWludCAgICAgZ2V0cmxpbWl0OnVnZXRybGltaXQoaW50IHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICpybHApICAxOTEKK2ludCAgICAgZ2V0cmxpbWl0OnVnZXRybGltaXQoaW50IHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICpybHApICAxOTEsMTkxLC0xCitpbnQgICAgIGdldHJsaW1pdDpnZXRybGltaXQoaW50IHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICpybHApICAtMSwtMSw3NgogaW50ICAgICBnZXRydXNhZ2UoaW50IHdobywgc3RydWN0IHJ1c2FnZSogIHJfdXNhZ2UpICA3NwotaW50ICAgICBzZXRncm91cHM6c2V0Z3JvdXBzMzIoaW50LCBjb25zdCBnaWRfdCAqKSAgIDIwNgoraW50ICAgICBzZXRncm91cHM6c2V0Z3JvdXBzMzIoaW50LCBjb25zdCBnaWRfdCAqKSAgIDIwNiwyMDYsLTEKK2ludCAgICAgc2V0Z3JvdXBzOnNldGdyb3VwcyhpbnQsIGNvbnN0IGdpZF90ICopICAgICAtMSwtMSw4MQogcGlkX3QgICBnZXRwZ3JwKHZvaWQpICBzdHViCiBpbnQgICAgIHNldHBnaWQocGlkX3QsIHBpZF90KSAgNTcKLXBpZF90ICAgdmZvcmsodm9pZCkgIDE5MCwtMSwxOTAKLWludCAgICAgc2V0cmVnaWQ6c2V0cmVnaWQzMihnaWRfdCwgZ2lkX3QpICAyMDQKK3BpZF90ICAgdmZvcmsodm9pZCkgIDE5MCwtMSwtMQoraW50ICAgICBzZXRyZWdpZDpzZXRyZWdpZDMyKGdpZF90LCBnaWRfdCkgIDIwNCwyMDQsLTEKK2ludCAgICAgc2V0cmVnaWQ6c2V0cmVnaWQoZ2lkX3QsIGdpZF90KSAgICAtMSwtMSw3MQogaW50ICAgICBjaHJvb3QoY29uc3QgY2hhciAqKSAgNjEKICMgSU1QT1JUQU5UOiBFdmVuIHRob3VnaCA8c3lzL3ByY3RsLmg+IGRlY2xhcmVzIHByY3RsKGludCwuLi4pLCB0aGUgc3lzY2FsbCBzdHViIG11c3QgdGFrZSA2IGFyZ3VtZW50cwogIyAgICAgICAgICAgIHRvIG1hdGNoIHRoZSBrZXJuZWwgaW1wbGVtZW50YXRpb24uCi1pbnQgICAgIHByY3RsKGludCBvcHRpb24sIHVuc2lnbmVkIGludCBhcmcyLCB1bnNpZ25lZCBpbnQgYXJnMywgdW5zaWduZWQgaW50IGFyZzQsIHVuc2lnbmVkIGludCBhcmc1KSAgMTcyCi1pbnQgICAgIGNhcGdldChjYXBfdXNlcl9oZWFkZXJfdCBoZWFkZXIsIGNhcF91c2VyX2RhdGFfdCBkYXRhKSAxODQKLWludCAgICAgY2Fwc2V0KGNhcF91c2VyX2hlYWRlcl90IGhlYWRlciwgY29uc3QgY2FwX3VzZXJfZGF0YV90IGRhdGEpIDE4NQotaW50ICAgICBzaWdhbHRzdGFjayhjb25zdCBzdGFja190Kiwgc3RhY2tfdCopIDE4NgoraW50ICAgICBwcmN0bChpbnQgb3B0aW9uLCB1bnNpZ25lZCBpbnQgYXJnMiwgdW5zaWduZWQgaW50IGFyZzMsIHVuc2lnbmVkIGludCBhcmc0LCB1bnNpZ25lZCBpbnQgYXJnNSkgIDE3MiwxNzIsMTkyCitpbnQgICAgIGNhcGdldChjYXBfdXNlcl9oZWFkZXJfdCBoZWFkZXIsIGNhcF91c2VyX2RhdGFfdCBkYXRhKSAxODQsMTg0LDIwNAoraW50ICAgICBjYXBzZXQoY2FwX3VzZXJfaGVhZGVyX3QgaGVhZGVyLCBjb25zdCBjYXBfdXNlcl9kYXRhX3QgZGF0YSkgMTg1LDE4NSwyMDUKK2ludCAgICAgc2lnYWx0c3RhY2soY29uc3Qgc3RhY2tfdCosIHN0YWNrX3QqKSAxODYsMTg2LDIwNgogaW50ICAgICBhY2N0KGNvbnN0IGNoYXIqICBmaWxlcGF0aCkgIDUxCiAKICMgZmlsZSBkZXNjcmlwdG9ycwogc3NpemVfdCAgICAgcmVhZCAoaW50LCB2b2lkKiwgc2l6ZV90KSAgICAgICAgMwogc3NpemVfdCAgICAgd3JpdGUgKGludCwgY29uc3Qgdm9pZCosIHNpemVfdCkgICAgICAgNAotc3NpemVfdCAgICAgcHJlYWQ2NCAoaW50LCB2b2lkICosIHNpemVfdCwgb2ZmNjRfdCkgMTgwCi1zc2l6ZV90ICAgICBwd3JpdGU2NCAoaW50LCB2b2lkICosIHNpemVfdCwgb2ZmNjRfdCkgMTgxCitzc2l6ZV90ICAgICBwcmVhZDY0IChpbnQsIHZvaWQgKiwgc2l6ZV90LCBvZmY2NF90KSAxODAsMTgwLDIwMAorc3NpemVfdCAgICAgcHdyaXRlNjQgKGludCwgdm9pZCAqLCBzaXplX3QsIG9mZjY0X3QpIDE4MSwxODEsMjAxCiBpbnQgICAgICAgICBfX29wZW46b3BlbiAoY29uc3QgY2hhciosIGludCwgbW9kZV90KSAgNQotaW50ICAgICAgICAgX19vcGVuYXQ6b3BlbmF0IChpbnQsIGNvbnN0IGNoYXIqLCBpbnQsIG1vZGVfdCkgIDMyMiwyOTUKK2ludCAgICAgICAgIF9fb3BlbmF0Om9wZW5hdCAoaW50LCBjb25zdCBjaGFyKiwgaW50LCBtb2RlX3QpICAzMjIsMjk1LDI4OAogaW50ICAgICAgICAgY2xvc2UgKGludCkgICAgICAgICAgICAgICAgICAgICAgNgogaW50ICAgICAgICAgY3JlYXQoY29uc3QgY2hhciosIG1vZGVfdCkgICAgICAgc3R1Ygogb2ZmX3QgICAgICAgbHNlZWsoaW50LCBvZmZfdCwgaW50KSAgICAgICAgICAgMTkKIGludCAgICAgICAgIF9fbGxzZWVrOl9sbHNlZWsgKGludCwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgbG9mZl90KiwgaW50KSAgMTQwCiBwaWRfdCAgICAgICBnZXRwaWQgKCkgICAgMjAKIHZvaWQgKiAgICAgIG1tYXAodm9pZCAqLCBzaXplX3QsIGludCwgaW50LCBpbnQsIGxvbmcpICBzdHViCi12b2lkICogICAgICBfX21tYXAyOm1tYXAyKHZvaWQqLCBzaXplX3QsIGludCwgaW50LCBpbnQsIGxvbmcpICAgMTkyCit2b2lkICogICAgICBfX21tYXAyOm1tYXAyKHZvaWQqLCBzaXplX3QsIGludCwgaW50LCBpbnQsIGxvbmcpICAgMTkyLDE5MiwyMTAKIGludCAgICAgICAgIG11bm1hcCh2b2lkICosIHNpemVfdCkgIDkxCi12b2lkICogICAgICBtcmVtYXAodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgdW5zaWduZWQgbG9uZykgIDE2Mwordm9pZCAqICAgICAgbXJlbWFwKHZvaWQgKiwgc2l6ZV90LCBzaXplX3QsIHVuc2lnbmVkIGxvbmcpICAxNjMsMTYzLDE2NwogaW50ICAgICAgICAgbXN5bmMoY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCkgICAgMTQ0CiBpbnQgICAgICAgICBtcHJvdGVjdChjb25zdCB2b2lkICosIHNpemVfdCwgaW50KSAgMTI1Ci1pbnQgICAgICAgICBtYWR2aXNlKGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQpICAyMjAsMjE5Ci1pbnQgICAgICAgICBtbG9jayhjb25zdCB2b2lkICphZGRyLCBzaXplX3QgbGVuKSAgICAxNTAKLWludCAgICAgICAgIG11bmxvY2soY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGxlbikgICAxNTEKLWludCAgICAgICAgIG1pbmNvcmUodm9pZCogIHN0YXJ0LCBzaXplX3QgIGxlbmd0aCwgdW5zaWduZWQgY2hhciogIHZlYykgICAyMTksMjE4CitpbnQgICAgICAgICBtYWR2aXNlKGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQpICAyMjAsMjE5LDIxOAoraW50ICAgICAgICAgbWxvY2soY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGxlbikgICAgMTUwLDE1MCwxNTQKK2ludCAgICAgICAgIG11bmxvY2soY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGxlbikgICAxNTEsMTUxLDE1NQoraW50ICAgICAgICAgbWluY29yZSh2b2lkKiAgc3RhcnQsIHNpemVfdCAgbGVuZ3RoLCB1bnNpZ25lZCBjaGFyKiAgdmVjKSAgIDIxOSwyMTgsMjE3CiBpbnQgICAgICAgICBfX2lvY3RsOmlvY3RsKGludCwgaW50LCB2b2lkICopICA1NAogaW50ICAgICAgICAgcmVhZHYoaW50LCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgaW50KSAgIDE0NQogaW50ICAgICAgICAgd3JpdGV2KGludCwgY29uc3Qgc3RydWN0IGlvdmVjICosIGludCkgIDE0NgpAQCAtMTE1LDE0NCArMTMwLDE0NyBAQAogaW50ICAgICAgICAgZmxvY2soaW50LCBpbnQpICAgMTQzCiBpbnQgICAgICAgICBmY2htb2QoaW50LCBtb2RlX3QpICA5NAogaW50ICAgICAgICAgZHVwKGludCkgIDQxCi1pbnQgICAgICAgICBwaXBlKGludCAqKSAgNDIsNDIKLWludCAgICAgICAgIHBpcGUyKGludCAqLCBpbnQpIDM1OSwzMzEKK2ludCAgICAgICAgIHBpcGUoaW50ICopICA0Miw0MiwtMQoraW50ICAgICAgICAgcGlwZTIoaW50ICosIGludCkgMzU5LDMzMSwzMjgKIGludCAgICAgICAgIGR1cDIoaW50LCBpbnQpICAgNjMKIGludCAgICAgICAgIHNlbGVjdDpfbmV3c2VsZWN0KGludCwgc3RydWN0IGZkX3NldCAqLCBzdHJ1Y3QgZmRfc2V0ICosIHN0cnVjdCBmZF9zZXQgKiwgc3RydWN0IHRpbWV2YWwgKikgIDE0MgogaW50ICAgICAgICAgZnRydW5jYXRlKGludCwgb2ZmX3QpICA5MwotaW50ICAgICAgICAgZnRydW5jYXRlNjQoaW50LCBvZmY2NF90KSAxOTQKLWludCAgICAgICAgIGdldGRlbnRzOmdldGRlbnRzNjQodW5zaWduZWQgaW50LCBzdHJ1Y3QgZGlyZW50ICosIHVuc2lnbmVkIGludCkgICAyMTcsMjIwCitpbnQgICAgICAgICBmdHJ1bmNhdGU2NChpbnQsIG9mZjY0X3QpIDE5NCwxOTQsMjEyCitpbnQgICAgICAgICBnZXRkZW50czpnZXRkZW50czY0KHVuc2lnbmVkIGludCwgc3RydWN0IGRpcmVudCAqLCB1bnNpZ25lZCBpbnQpICAgMjE3LDIyMCwyMTkKIGludCAgICAgICAgIGZzeW5jKGludCkgIDExOAotaW50ICAgICAgICAgZmRhdGFzeW5jKGludCkgMTQ4Ci1pbnQgICAgICAgICBmY2hvd246ZmNob3duMzIoaW50LCB1aWRfdCwgZ2lkX3QpICAyMDcKK2ludCAgICAgICAgIGZkYXRhc3luYyhpbnQpIDE0OCwxNDgsMTUyCitpbnQgICAgICAgICBmY2hvd246ZmNob3duMzIoaW50LCB1aWRfdCwgZ2lkX3QpICAyMDcsMjA3LC0xCitpbnQgICAgICAgICBmY2hvd246ZmNob3duKGludCwgdWlkX3QsIGdpZF90KSAgICAtMSwtMSw5NQogdm9pZCAgICAgICAgc3luYyh2b2lkKSAgMzYKLWludCAgICAgICAgIF9fZmNudGw2NDpmY250bDY0KGludCwgaW50LCB2b2lkICopICAyMjEKLWludCAgICAgICAgIF9fZnN0YXRmczY0OmZzdGF0ZnM2NChpbnQsIHNpemVfdCwgc3RydWN0IHN0YXRmcyAqKSAgMjY3LDI2OQotc3NpemVfdCAgICAgc2VuZGZpbGUoaW50IG91dF9mZCwgaW50IGluX2ZkLCBvZmZfdCAqb2Zmc2V0LCBzaXplX3QgY291bnQpICAxODcKLWludCAgICAgICAgIGZzdGF0YXQ6ZnN0YXRhdDY0KGludCBkaXJmZCwgY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0YXQgKmJ1ZiwgaW50IGZsYWdzKSAgIDMyNywzMDAKLWludCAgICAgICAgIG1rZGlyYXQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRobmFtZSwgbW9kZV90IG1vZGUpICAzMjMsMjk2Ci1pbnQgICAgICAgICBmY2hvd25hdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIHVpZF90IG93bmVyLCBnaWRfdCBncm91cCwgaW50IGZsYWdzKSAgMzI1LDI5OAotaW50ICAgICAgICAgZmNobW9kYXQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRoLCBtb2RlX3QgbW9kZSwgaW50IGZsYWdzKSAgMzMzLDMwNgotaW50ICAgICAgICAgcmVuYW1lYXQoaW50IG9sZGRpcmZkLCBjb25zdCBjaGFyICpvbGRwYXRoLCBpbnQgbmV3ZGlyZmQsIGNvbnN0IGNoYXIgKm5ld3BhdGgpICAzMjksMzAyCi1pbnQgICAgICAgICBmc2V0eGF0dHIoaW50LCBjb25zdCBjaGFyICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQpIDIyOAotc3NpemVfdCAgICAgZmdldHhhdHRyKGludCwgY29uc3QgY2hhciAqLCB2b2lkICosIHNpemVfdCkgMjMxCi1zc2l6ZV90ICAgICBmbGlzdHhhdHRyKGludCwgY2hhciAqLCBzaXplX3QpIDIzNAotaW50ICAgICAgICAgZnJlbW92ZXhhdHRyKGludCwgY29uc3QgY2hhciAqKSAyMzcKK2ludCAgICAgICAgIF9fZmNudGw2NDpmY250bDY0KGludCwgaW50LCB2b2lkICopICAyMjEsMjIxLDIyMAoraW50ICAgICAgICAgX19mc3RhdGZzNjQ6ZnN0YXRmczY0KGludCwgc2l6ZV90LCBzdHJ1Y3Qgc3RhdGZzICopICAyNjcsMjY5LDI1Ngorc3NpemVfdCAgICAgc2VuZGZpbGUoaW50IG91dF9mZCwgaW50IGluX2ZkLCBvZmZfdCAqb2Zmc2V0LCBzaXplX3QgY291bnQpICAxODcsMTg3LDIwNworaW50ICAgICAgICAgZnN0YXRhdDpmc3RhdGF0NjQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmLCBpbnQgZmxhZ3MpICAgMzI3LDMwMCwyOTMKK2ludCAgICAgICAgIG1rZGlyYXQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRobmFtZSwgbW9kZV90IG1vZGUpICAzMjMsMjk2LDI4OQoraW50ICAgICAgICAgZmNob3duYXQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRoLCB1aWRfdCBvd25lciwgZ2lkX3QgZ3JvdXAsIGludCBmbGFncykgIDMyNSwyOTgsMjkxCitpbnQgICAgICAgICBmY2htb2RhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlLCBpbnQgZmxhZ3MpICAzMzMsMzA2LDI5OQoraW50ICAgICAgICAgcmVuYW1lYXQoaW50IG9sZGRpcmZkLCBjb25zdCBjaGFyICpvbGRwYXRoLCBpbnQgbmV3ZGlyZmQsIGNvbnN0IGNoYXIgKm5ld3BhdGgpICAzMjksMzAyLDI5NQoraW50ICAgICAgICAgZnNldHhhdHRyKGludCwgY29uc3QgY2hhciAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50KSAyMjgsMjI4LDIyNgorc3NpemVfdCAgICAgZmdldHhhdHRyKGludCwgY29uc3QgY2hhciAqLCB2b2lkICosIHNpemVfdCkgMjMxLDIzMSwyMjkKK3NzaXplX3QgICAgIGZsaXN0eGF0dHIoaW50LCBjaGFyICosIHNpemVfdCkgMjM0LDIzNCwyMzIKK2ludCAgICAgICAgIGZyZW1vdmV4YXR0cihpbnQsIGNvbnN0IGNoYXIgKikgMjM3LDIzNywyMzUKIAogIyBmaWxlIHN5c3RlbQogaW50ICAgICBsaW5rIChjb25zdCBjaGFyKiwgY29uc3QgY2hhciopICA5CiBpbnQgICAgIHVubGluayAoY29uc3QgY2hhciopICAgICAgICAgICAgIDEwCi1pbnQgICAgIHVubGlua2F0IChpbnQsIGNvbnN0IGNoYXIgKiwgaW50KSAgIDMyOCwzMDEKK2ludCAgICAgdW5saW5rYXQgKGludCwgY29uc3QgY2hhciAqLCBpbnQpICAgMzI4LDMwMSwyOTQKIGludCAgICAgY2hkaXIgKGNvbnN0IGNoYXIqKSAgICAgICAgICAgICAgMTIKIGludCAgICAgbWtub2QgKGNvbnN0IGNoYXIqLCBtb2RlX3QsIGRldl90KSAgMTQKIGludCAgICAgY2htb2QgKGNvbnN0IGNoYXIqLG1vZGVfdCkgICAgICAgICAgMTUKLWludCAgICAgY2hvd246Y2hvd24zMihjb25zdCBjaGFyICosIHVpZF90LCBnaWRfdCkgIDIxMgotaW50ICAgICBsY2hvd246bGNob3duMzIgKGNvbnN0IGNoYXIqLCB1aWRfdCwgZ2lkX3QpICAxOTgKK2ludCAgICAgY2hvd246Y2hvd24zMihjb25zdCBjaGFyICosIHVpZF90LCBnaWRfdCkgIDIxMiwyMTIsLTEKK2ludCAgICAgY2hvd246Y2hvd24oY29uc3QgY2hhciAqLCB1aWRfdCwgZ2lkX3QpICAgIC0xLC0xLDIwMgoraW50ICAgICBsY2hvd246bGNob3duMzIgKGNvbnN0IGNoYXIqLCB1aWRfdCwgZ2lkX3QpICAxOTgsMTk4LC0xCitpbnQgICAgIGxjaG93bjpsY2hvd24gKGNvbnN0IGNoYXIqLCB1aWRfdCwgZ2lkX3QpICAtMSwtMSwxNgogaW50ICAgICBtb3VudCAoY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQgbG9uZywgY29uc3Qgdm9pZCopICAyMQogaW50ICAgICB1bW91bnQoY29uc3QgY2hhciopICBzdHViCiBpbnQgICAgIHVtb3VudDIgKGNvbnN0IGNoYXIqLCBpbnQpICA1MgotaW50ICAgICBmc3RhdDpmc3RhdDY0KGludCwgc3RydWN0IHN0YXQqKSAgICAxOTcKLWludCAgICAgc3RhdDpzdGF0NjQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKSAgMTk1Ci1pbnQgICAgIGxzdGF0OmxzdGF0NjQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKSAgMTk2CitpbnQgICAgIGZzdGF0OmZzdGF0NjQoaW50LCBzdHJ1Y3Qgc3RhdCopICAgIDE5NywxOTcsMjE1CitpbnQgICAgIHN0YXQ6c3RhdDY0KGNvbnN0IGNoYXIgKiwgc3RydWN0IHN0YXQgKikgIDE5NSwxOTUsMjEzCitpbnQgICAgIGxzdGF0OmxzdGF0NjQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKSAgMTk2LDE5NiwyMTQKIGludCAgICAgbWtkaXIoY29uc3QgY2hhciAqLCBtb2RlX3QpIDM5CiBpbnQgICAgIHJlYWRsaW5rKGNvbnN0IGNoYXIgKiwgY2hhciAqLCBzaXplX3QpICA4NQogaW50ICAgICBybWRpcihjb25zdCBjaGFyICopICA0MAogaW50ICAgICByZW5hbWUoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopICAzOAotaW50ICAgICBfX2dldGN3ZDpnZXRjd2QoY2hhciAqIGJ1Ziwgc2l6ZV90IHNpemUpICAxODMKK2ludCAgICAgX19nZXRjd2Q6Z2V0Y3dkKGNoYXIgKiBidWYsIHNpemVfdCBzaXplKSAgMTgzLDE4MywyMDMKIGludCAgICAgYWNjZXNzKGNvbnN0IGNoYXIgKiwgaW50KSAgMzMKLWludCAgICAgZmFjY2Vzc2F0KGludCwgY29uc3QgY2hhciAqLCBpbnQsIGludCkgIDMzNCwzMDcKK2ludCAgICAgZmFjY2Vzc2F0KGludCwgY29uc3QgY2hhciAqLCBpbnQsIGludCkgIDMzNCwzMDcsMzAwCiBpbnQgICAgIHN5bWxpbmsoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopICA4MwogaW50ICAgICBmY2hkaXIoaW50KSAgICAxMzMKIGludCAgICAgdHJ1bmNhdGUoY29uc3QgY2hhciosIG9mZl90KSAgICA5MgotaW50ICAgICBzZXR4YXR0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCkgMjI2Ci1pbnQgICAgIGxzZXR4YXR0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCkgMjI3Ci1zc2l6ZV90IGdldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCB2b2lkICosIHNpemVfdCkgMjI5Ci1zc2l6ZV90IGxnZXR4YXR0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgdm9pZCAqLCBzaXplX3QpIDIzMAotc3NpemVfdCBsaXN0eGF0dHIoY29uc3QgY2hhciAqLCBjaGFyICosIHNpemVfdCkgMjMyCi1zc2l6ZV90IGxsaXN0eGF0dHIoY29uc3QgY2hhciAqLCBjaGFyICosIHNpemVfdCkgMjMzCi1pbnQgICAgIHJlbW92ZXhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKSAyMzUKLWludCAgICAgbHJlbW92ZXhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKSAyMzYKLWludCAgICAgX19zdGF0ZnM2NDpzdGF0ZnM2NChjb25zdCBjaGFyICosIHNpemVfdCwgc3RydWN0IHN0YXRmcyAqKSAgMjY2LDI2OAoraW50ICAgICBzZXR4YXR0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCkgMjI2LDIyNiwyMjQKK2ludCAgICAgbHNldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50KSAyMjcsMjI3LDIyNQorc3NpemVfdCBnZXR4YXR0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgdm9pZCAqLCBzaXplX3QpIDIyOSwyMjksMjI3Citzc2l6ZV90IGxnZXR4YXR0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgdm9pZCAqLCBzaXplX3QpIDIzMCwyMzAsMjI4Citzc2l6ZV90IGxpc3R4YXR0cihjb25zdCBjaGFyICosIGNoYXIgKiwgc2l6ZV90KSAyMzIsMjMyLDIzMAorc3NpemVfdCBsbGlzdHhhdHRyKGNvbnN0IGNoYXIgKiwgY2hhciAqLCBzaXplX3QpIDIzMywyMzMsMjMxCitpbnQgICAgIHJlbW92ZXhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKSAyMzUsMjM1LDIzMworaW50ICAgICBscmVtb3ZleGF0dHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopIDIzNiwyMzYsMjM0CitpbnQgICAgIF9fc3RhdGZzNjQ6c3RhdGZzNjQoY29uc3QgY2hhciAqLCBzaXplX3QsIHN0cnVjdCBzdGF0ZnMgKikgIDI2NiwyNjgsMjU1CiAKICMgdGltZQogaW50ICAgICAgICAgICBwYXVzZSAoKSAgICAgICAgICAgICAgICAgICAgICAgMjkKIGludCAgICAgICAgICAgZ2V0dGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsKiwgc3RydWN0IHRpbWV6b25lKikgICAgICAgNzgKIGludCAgICAgICAgICAgc2V0dGltZW9mZGF5KGNvbnN0IHN0cnVjdCB0aW1ldmFsKiwgY29uc3Qgc3RydWN0IHRpbWV6b25lKikgICA3OQogY2xvY2tfdCAgICAgICB0aW1lcyhzdHJ1Y3QgdG1zICopICAgICAgIDQzCi1pbnQgICAgICAgICAgIG5hbm9zbGVlcChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKiwgc3RydWN0IHRpbWVzcGVjICopICAgMTYyCi1pbnQgICAgICAgICAgIGNsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsa19pZCwgc3RydWN0IHRpbWVzcGVjICp0cCkgICAgMjYzLDI2NQotaW50ICAgICAgICAgICBjbG9ja19zZXR0aW1lKGNsb2NraWRfdCBjbGtfaWQsIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdHApICAyNjIsMjY0Ci1pbnQgICAgICAgICAgIGNsb2NrX2dldHJlcyhjbG9ja2lkX3QgY2xrX2lkLCBzdHJ1Y3QgdGltZXNwZWMgKnJlcykgICAyNjQsMjY2Ci1pbnQgICAgICAgICAgIGNsb2NrX25hbm9zbGVlcChjbG9ja2lkX3QgY2xvY2tfaWQsIGludCBmbGFncywgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpyZXEsIHN0cnVjdCB0aW1lc3BlYyAqcmVtKSAgMjY1LDI2NworaW50ICAgICAgICAgICBuYW5vc2xlZXAoY29uc3Qgc3RydWN0IHRpbWVzcGVjICosIHN0cnVjdCB0aW1lc3BlYyAqKSAgIDE2MiwxNjIsMTY2CitpbnQgICAgICAgICAgIGNsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsa19pZCwgc3RydWN0IHRpbWVzcGVjICp0cCkgICAgMjYzLDI2NSwyNjMKK2ludCAgICAgICAgICAgY2xvY2tfc2V0dGltZShjbG9ja2lkX3QgY2xrX2lkLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRwKSAgMjYyLDI2NCwyNjIKK2ludCAgICAgICAgICAgY2xvY2tfZ2V0cmVzKGNsb2NraWRfdCBjbGtfaWQsIHN0cnVjdCB0aW1lc3BlYyAqcmVzKSAgIDI2NCwyNjYsMjY0CitpbnQgICAgICAgICAgIGNsb2NrX25hbm9zbGVlcChjbG9ja2lkX3QgY2xvY2tfaWQsIGludCBmbGFncywgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpyZXEsIHN0cnVjdCB0aW1lc3BlYyAqcmVtKSAgMjY1LDI2NywyNjUKIGludCAgICAgICAgICAgZ2V0aXRpbWVyKGludCwgY29uc3Qgc3RydWN0IGl0aW1lcnZhbCAqKSAgIDEwNQogaW50ICAgICAgICAgICBzZXRpdGltZXIoaW50LCBjb25zdCBzdHJ1Y3QgaXRpbWVydmFsICosIHN0cnVjdCBpdGltZXJ2YWwgKikgIDEwNAotaW50ICAgICAgICAgICBfX3RpbWVyX2NyZWF0ZTp0aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNsb2NraWQsIHN0cnVjdCBzaWdldmVudCAqZXZwLCB0aW1lcl90ICp0aW1lcmlkKSAgICAyNTcsMjU5Ci1pbnQgICAgICAgICAgIF9fdGltZXJfc2V0dGltZTp0aW1lcl9zZXR0aW1lKHRpbWVyX3QsIGludCwgY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMqLCBzdHJ1Y3QgaXRpbWVyc3BlYyopIDI1OCwyNjAKLWludCAgICAgICAgICAgX190aW1lcl9nZXR0aW1lOnRpbWVyX2dldHRpbWUodGltZXJfdCwgc3RydWN0IGl0aW1lcnNwZWMqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU5LDI2MQotaW50ICAgICAgICAgICBfX3RpbWVyX2dldG92ZXJydW46dGltZXJfZ2V0b3ZlcnJ1bih0aW1lcl90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNjAsMjYyCi1pbnQgICAgICAgICAgIF9fdGltZXJfZGVsZXRlOnRpbWVyX2RlbGV0ZSh0aW1lcl90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2MSwyNjMKLWludCAgICAgICAgICAgdXRpbWVzKGNvbnN0IGNoYXIqLCBjb25zdCBzdHJ1Y3QgdGltZXZhbCB0dnBbMl0pICAgICAgICAgICAgICAgICAgICAgICAgICAyNjksIDI3MQotaW50ICAgICAgICAgICB1dGltZW5zYXQoaW50LCBjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyB0aW1lc1syXSwgaW50KSAgICAgICAgIDM0OCwgMzIwLCAzMjAKK2ludCAgICAgICAgICAgX190aW1lcl9jcmVhdGU6dGltZXJfY3JlYXRlKGNsb2NraWRfdCBjbG9ja2lkLCBzdHJ1Y3Qgc2lnZXZlbnQgKmV2cCwgdGltZXJfdCAqdGltZXJpZCkgICAgMjU3LDI1OSwyNTcKK2ludCAgICAgICAgICAgX190aW1lcl9zZXR0aW1lOnRpbWVyX3NldHRpbWUodGltZXJfdCwgaW50LCBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyosIHN0cnVjdCBpdGltZXJzcGVjKikgMjU4LDI2MCwyNTgKK2ludCAgICAgICAgICAgX190aW1lcl9nZXR0aW1lOnRpbWVyX2dldHRpbWUodGltZXJfdCwgc3RydWN0IGl0aW1lcnNwZWMqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU5LDI2MSwyNTkKK2ludCAgICAgICAgICAgX190aW1lcl9nZXRvdmVycnVuOnRpbWVyX2dldG92ZXJydW4odGltZXJfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYwLDI2MiwyNjAKK2ludCAgICAgICAgICAgX190aW1lcl9kZWxldGU6dGltZXJfZGVsZXRlKHRpbWVyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYxLDI2MywyNjEKK2ludCAgICAgICAgICAgdXRpbWVzKGNvbnN0IGNoYXIqLCBjb25zdCBzdHJ1Y3QgdGltZXZhbCB0dnBbMl0pICAgICAgICAgICAgICAgICAgICAgICAgICAyNjksMjcxLDI2NworaW50ICAgICAgICAgICB1dGltZW5zYXQoaW50LCBjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyB0aW1lc1syXSwgaW50KSAgICAgICAgIDM0OCwzMjAsMzE2CiAKICMgc2lnbmFscwogaW50ICAgICBzaWdhY3Rpb24oaW50LCBjb25zdCBzdHJ1Y3Qgc2lnYWN0aW9uICosIHN0cnVjdCBzaWdhY3Rpb24gKikgIDY3CiBpbnQgICAgIHNpZ3Byb2NtYXNrKGludCwgY29uc3Qgc2lnc2V0X3QgKiwgc2lnc2V0X3QgKikgIDEyNgogaW50ICAgICBfX3NpZ3N1c3BlbmQ6c2lnc3VzcGVuZChpbnQgdW51c2VkMSwgaW50IHVudXNlZDIsIHVuc2lnbmVkIG1hc2spICA3MgotaW50ICAgICBfX3J0X3NpZ2FjdGlvbjpydF9zaWdhY3Rpb24gKGludCBzaWcsIGNvbnN0IHN0cnVjdCBzaWdhY3Rpb24gKmFjdCwgc3RydWN0IHNpZ2FjdGlvbiAqb2FjdCwgc2l6ZV90IHNpZ3NldHNpemUpICAxNzQKLWludCAgICAgX19ydF9zaWdwcm9jbWFzazpydF9zaWdwcm9jbWFzayAoaW50ICBob3csIGNvbnN0IHNpZ3NldF90ICpzZXQsIHNpZ3NldF90ICpvc2V0LCBzaXplX3Qgc2lnc2V0c2l6ZSkgIDE3NQotaW50ICAgICBfX3J0X3NpZ3RpbWVkd2FpdDpydF9zaWd0aW1lZHdhaXQoY29uc3Qgc2lnc2V0X3QgKnNldCwgc3RydWN0IHNpZ2luZm9fdCAgKmluZm8sIHN0cnVjdCB0aW1lc3BlY190ICAqdGltZW91dCwgc2l6ZV90ICBzaWdzZXRfc2l6ZSkgIDE3NworaW50ICAgICBfX3J0X3NpZ2FjdGlvbjpydF9zaWdhY3Rpb24gKGludCBzaWcsIGNvbnN0IHN0cnVjdCBzaWdhY3Rpb24gKmFjdCwgc3RydWN0IHNpZ2FjdGlvbiAqb2FjdCwgc2l6ZV90IHNpZ3NldHNpemUpICAxNzQsMTc0LDE5NAoraW50ICAgICBfX3J0X3NpZ3Byb2NtYXNrOnJ0X3NpZ3Byb2NtYXNrIChpbnQgIGhvdywgY29uc3Qgc2lnc2V0X3QgKnNldCwgc2lnc2V0X3QgKm9zZXQsIHNpemVfdCBzaWdzZXRzaXplKSAgMTc1LDE3NSwxOTUKK2ludCAgICAgX19ydF9zaWd0aW1lZHdhaXQ6cnRfc2lndGltZWR3YWl0KGNvbnN0IHNpZ3NldF90ICpzZXQsIHN0cnVjdCBzaWdpbmZvX3QgICppbmZvLCBzdHJ1Y3QgdGltZXNwZWNfdCAgKnRpbWVvdXQsIHNpemVfdCAgc2lnc2V0X3NpemUpICAxNzcsMTc3LDE5NwogaW50ICAgICBzaWdwZW5kaW5nKHNpZ3NldF90ICopICA3MwogCiAjIHNvY2tldHMKLWludCAgICAgICAgICAgc29ja2V0KGludCwgaW50LCBpbnQpICAgICAgICAgICAgICAyODEsLTEKLWludCAgICAgICAgICAgc29ja2V0cGFpcihpbnQsIGludCwgaW50LCBpbnQqKSAgICAyODgsLTEKLWludCAgICAgICAgICAgYmluZChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBpbnQpICAyODIsLTEKLWludCAgICAgICAgICAgY29ubmVjdChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QpICAgMjgzLC0xCi1pbnQgICAgICAgICAgIGxpc3RlbihpbnQsIGludCkgICAgICAgICAgICAgICAgICAgMjg0LC0xCi1pbnQgICAgICAgICAgIGFjY2VwdChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIDI4NSwtMQotaW50ICAgICAgICAgICBnZXRzb2NrbmFtZShpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIDI4NiwtMQotaW50ICAgICAgICAgICBnZXRwZWVybmFtZShpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIDI4NywtMQotaW50ICAgICAgICAgICBzZW5kdG8oaW50LCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50LCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90KSAgMjkwLC0xCi1pbnQgICAgICAgICAgIHJlY3Zmcm9tKGludCwgdm9pZCAqLCBzaXplX3QsIHVuc2lnbmVkIGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgMjkyLC0xCi1pbnQgICAgICAgICAgIHNodXRkb3duKGludCwgaW50KSAgMjkzLC0xCi1pbnQgICAgICAgICAgIHNldHNvY2tvcHQoaW50LCBpbnQsIGludCwgY29uc3Qgdm9pZCAqLCBzb2NrbGVuX3QpICAyOTQsLTEKLWludCAgICAgICAgICAgZ2V0c29ja29wdChpbnQsIGludCwgaW50LCB2b2lkICosIHNvY2tsZW5fdCAqKSAgICAyOTUsLTEKLWludCAgICAgICAgICAgc2VuZG1zZyhpbnQsIGNvbnN0IHN0cnVjdCBtc2doZHIgKiwgdW5zaWduZWQgaW50KSAgMjk2LC0xCi1pbnQgICAgICAgICAgIHJlY3Ztc2coaW50LCBzdHJ1Y3QgbXNnaGRyICosIHVuc2lnbmVkIGludCkgICAyOTcsLTEKK2ludCAgICAgICAgICAgc29ja2V0KGludCwgaW50LCBpbnQpICAgICAgICAgICAgICAyODEsLTEsMTgzCitpbnQgICAgICAgICAgIHNvY2tldHBhaXIoaW50LCBpbnQsIGludCwgaW50KikgICAgMjg4LC0xLDE4NAoraW50ICAgICAgICAgICBiaW5kKGludCwgc3RydWN0IHNvY2thZGRyICosIGludCkgIDI4MiwtMSwxNjkKK2ludCAgICAgICAgICAgY29ubmVjdChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QpICAgMjgzLC0xLDE3MAoraW50ICAgICAgICAgICBsaXN0ZW4oaW50LCBpbnQpICAgICAgICAgICAgICAgICAgIDI4NCwtMSwxNzQKK2ludCAgICAgICAgICAgYWNjZXB0KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgMjg1LC0xLDE2OAoraW50ICAgICAgICAgICBnZXRzb2NrbmFtZShpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIDI4NiwtMSwxNzIKK2ludCAgICAgICAgICAgZ2V0cGVlcm5hbWUoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAyODcsLTEsMTcxCitpbnQgICAgICAgICAgIHNlbmR0byhpbnQsIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QpICAyOTAsLTEsMTgwCitpbnQgICAgICAgICAgIHJlY3Zmcm9tKGludCwgdm9pZCAqLCBzaXplX3QsIHVuc2lnbmVkIGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgMjkyLC0xLDE3NgoraW50ICAgICAgICAgICBzaHV0ZG93bihpbnQsIGludCkgIDI5MywtMSwxODIKK2ludCAgICAgICAgICAgc2V0c29ja29wdChpbnQsIGludCwgaW50LCBjb25zdCB2b2lkICosIHNvY2tsZW5fdCkgIDI5NCwtMSwxODEKK2ludCAgICAgICAgICAgZ2V0c29ja29wdChpbnQsIGludCwgaW50LCB2b2lkICosIHNvY2tsZW5fdCAqKSAgICAyOTUsLTEsMTczCitpbnQgICAgICAgICAgIHNlbmRtc2coaW50LCBjb25zdCBzdHJ1Y3QgbXNnaGRyICosIHVuc2lnbmVkIGludCkgIDI5NiwtMSwxNzkKK2ludCAgICAgICAgICAgcmVjdm1zZyhpbnQsIHN0cnVjdCBtc2doZHIgKiwgdW5zaWduZWQgaW50KSAgIDI5NywtMSwxNzcKIAogIyBzb2NrZXRzIGZvciB4ODYuIFRoZXNlIGFyZSBkb25lIGFzIGFuICJpbmRleGVkIiBjYWxsIHRvIHNvY2tldGNhbGwgc3lzY2FsbC4KLWludCAgICAgICAgICAgc29ja2V0OnNvY2tldGNhbGw6MSAoaW50LCBpbnQsIGludCkgLTEsMTAyCi1pbnQgICAgICAgICAgIGJpbmQ6c29ja2V0Y2FsbDoyIChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBpbnQpICAtMSwxMDIKLWludCAgICAgICAgICAgY29ubmVjdDpzb2NrZXRjYWxsOjMoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90KSAgIC0xLDEwMgotaW50ICAgICAgICAgICBsaXN0ZW46c29ja2V0Y2FsbDo0KGludCwgaW50KSAgICAgICAgICAgICAgICAgICAtMSwxMDIKLWludCAgICAgICAgICAgYWNjZXB0OnNvY2tldGNhbGw6NShpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIC0xLDEwMgotaW50ICAgICAgICAgICBnZXRzb2NrbmFtZTpzb2NrZXRjYWxsOjYoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAtMSwxMDIKLWludCAgICAgICAgICAgZ2V0cGVlcm5hbWU6c29ja2V0Y2FsbDo3KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgLTEsMTAyCi1pbnQgICAgICAgICAgIHNvY2tldHBhaXI6c29ja2V0Y2FsbDo4KGludCwgaW50LCBpbnQsIGludCopICAgIC0xLDEwMgotaW50ICAgICAgICAgICBzZW5kdG86c29ja2V0Y2FsbDoxMShpbnQsIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QpICAtMSwxMDIKLWludCAgICAgICAgICAgcmVjdmZyb206c29ja2V0Y2FsbDoxMihpbnQsIHZvaWQgKiwgc2l6ZV90LCB1bnNpZ25lZCBpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIC0xLDEwMgoraW50ICAgICAgICAgICBzb2NrZXQ6c29ja2V0Y2FsbDoxIChpbnQsIGludCwgaW50KSAtMSwxMDIsLTEKK2ludCAgICAgICAgICAgYmluZDpzb2NrZXRjYWxsOjIgKGludCwgc3RydWN0IHNvY2thZGRyICosIGludCkgIC0xLDEwMiwtMQoraW50ICAgICAgICAgICBjb25uZWN0OnNvY2tldGNhbGw6MyhpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QpICAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIGxpc3Rlbjpzb2NrZXRjYWxsOjQoaW50LCBpbnQpICAgICAgICAgICAgICAgICAgIC0xLDEwMiwtMQoraW50ICAgICAgICAgICBhY2NlcHQ6c29ja2V0Y2FsbDo1KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIGdldHNvY2tuYW1lOnNvY2tldGNhbGw6NihpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIC0xLDEwMiwtMQoraW50ICAgICAgICAgICBnZXRwZWVybmFtZTpzb2NrZXRjYWxsOjcoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAtMSwxMDIsLTEKK2ludCAgICAgICAgICAgc29ja2V0cGFpcjpzb2NrZXRjYWxsOjgoaW50LCBpbnQsIGludCwgaW50KikgICAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIHNlbmR0bzpzb2NrZXRjYWxsOjExKGludCwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCkgIC0xLDEwMiwtMQoraW50ICAgICAgICAgICByZWN2ZnJvbTpzb2NrZXRjYWxsOjEyKGludCwgdm9pZCAqLCBzaXplX3QsIHVuc2lnbmVkIGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgLTEsMTAyLC0xCiBpbnQgICAgICAgICAgIHNodXRkb3duOnNvY2tldGNhbGw6MTMoaW50LCBpbnQpICAtMSwxMDIsLTEKLWludCAgICAgICAgICAgc2V0c29ja29wdDpzb2NrZXRjYWxsOjE0KGludCwgaW50LCBpbnQsIGNvbnN0IHZvaWQgKiwgc29ja2xlbl90KSAgLTEsMTAyCi1pbnQgICAgICAgICAgIGdldHNvY2tvcHQ6c29ja2V0Y2FsbDoxNShpbnQsIGludCwgaW50LCB2b2lkICosIHNvY2tsZW5fdCAqKSAgICAtMSwxMDIKLWludCAgICAgICAgICAgc2VuZG1zZzpzb2NrZXRjYWxsOjE2KGludCwgY29uc3Qgc3RydWN0IG1zZ2hkciAqLCB1bnNpZ25lZCBpbnQpICAtMSwxMDIKLWludCAgICAgICAgICAgcmVjdm1zZzpzb2NrZXRjYWxsOjE3KGludCwgc3RydWN0IG1zZ2hkciAqLCB1bnNpZ25lZCBpbnQpICAgLTEsMTAyCitpbnQgICAgICAgICAgIHNldHNvY2tvcHQ6c29ja2V0Y2FsbDoxNChpbnQsIGludCwgaW50LCBjb25zdCB2b2lkICosIHNvY2tsZW5fdCkgIC0xLDEwMiwtMQoraW50ICAgICAgICAgICBnZXRzb2Nrb3B0OnNvY2tldGNhbGw6MTUoaW50LCBpbnQsIGludCwgdm9pZCAqLCBzb2NrbGVuX3QgKikgICAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIHNlbmRtc2c6c29ja2V0Y2FsbDoxNihpbnQsIGNvbnN0IHN0cnVjdCBtc2doZHIgKiwgdW5zaWduZWQgaW50KSAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIHJlY3Ztc2c6c29ja2V0Y2FsbDoxNyhpbnQsIHN0cnVjdCBtc2doZHIgKiwgdW5zaWduZWQgaW50KSAgIC0xLDEwMiwtMQogCiAjIHNjaGVkdWxlciAmIHJlYWwtdGltZQotaW50IHNjaGVkX3NldHNjaGVkdWxlcihwaWRfdCBwaWQsIGludCBwb2xpY3ksIGNvbnN0IHN0cnVjdCBzY2hlZF9wYXJhbSAqcGFyYW0pICAxNTYKLWludCBzY2hlZF9nZXRzY2hlZHVsZXIocGlkX3QgcGlkKSAgMTU3Ci1pbnQgc2NoZWRfeWllbGQodm9pZCkgIDE1OAotaW50IHNjaGVkX3NldHBhcmFtKHBpZF90IHBpZCwgY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkgIDE1NAotaW50IHNjaGVkX2dldHBhcmFtKHBpZF90IHBpZCwgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkgIDE1NQotaW50IHNjaGVkX2dldF9wcmlvcml0eV9tYXgoaW50IHBvbGljeSkgIDE1OQotaW50IHNjaGVkX2dldF9wcmlvcml0eV9taW4oaW50IHBvbGljeSkgIDE2MAotaW50IHNjaGVkX3JyX2dldF9pbnRlcnZhbChwaWRfdCBwaWQsIHN0cnVjdCB0aW1lc3BlYyAqaW50ZXJ2YWwpICAxNjEKLWludCBzY2hlZF9zZXRhZmZpbml0eShwaWRfdCBwaWQsIHNpemVfdCBzZXRzaXplLCBjb25zdCBjcHVfc2V0X3QqIHNldCkgMjQxCi1pbnQgX19zY2hlZF9nZXRhZmZpbml0eTpzY2hlZF9nZXRhZmZpbml0eShwaWRfdCBwaWQsIHNpemVfdCBzZXRzaXplLCBjcHVfc2V0X3QqIHNldCkgIDI0MgotaW50IF9fZ2V0Y3B1OmdldGNwdSh1bnNpZ25lZCAqY3B1LCB1bnNpZ25lZCAqbm9kZSwgdm9pZCAqdW51c2VkKSAzNDUsMzE4CitpbnQgc2NoZWRfc2V0c2NoZWR1bGVyKHBpZF90IHBpZCwgaW50IHBvbGljeSwgY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkgIDE1NiwxNTYsMTYwCitpbnQgc2NoZWRfZ2V0c2NoZWR1bGVyKHBpZF90IHBpZCkgIDE1NywxNTcsMTYxCitpbnQgc2NoZWRfeWllbGQodm9pZCkgIDE1OCwxNTgsMTYyCitpbnQgc2NoZWRfc2V0cGFyYW0ocGlkX3QgcGlkLCBjb25zdCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKnBhcmFtKSAgMTU0LDE1NCwxNTgKK2ludCBzY2hlZF9nZXRwYXJhbShwaWRfdCBwaWQsIHN0cnVjdCBzY2hlZF9wYXJhbSAqcGFyYW0pICAxNTUsMTU1LDE1OQoraW50IHNjaGVkX2dldF9wcmlvcml0eV9tYXgoaW50IHBvbGljeSkgIDE1OSwxNTksMTYzCitpbnQgc2NoZWRfZ2V0X3ByaW9yaXR5X21pbihpbnQgcG9saWN5KSAgMTYwLDE2MCwxNjQKK2ludCBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwocGlkX3QgcGlkLCBzdHJ1Y3QgdGltZXNwZWMgKmludGVydmFsKSAgMTYxLDE2MSwxNjUKK2ludCBzY2hlZF9zZXRhZmZpbml0eShwaWRfdCBwaWQsIHNpemVfdCBzZXRzaXplLCBjb25zdCBjcHVfc2V0X3QqIHNldCkgMjQxLDI0MSwyMzkKK2ludCBfX3NjaGVkX2dldGFmZmluaXR5OnNjaGVkX2dldGFmZmluaXR5KHBpZF90IHBpZCwgc2l6ZV90IHNldHNpemUsIGNwdV9zZXRfdCogc2V0KSAgMjQyLDI0MiwyNDAKK2ludCBfX2dldGNwdTpnZXRjcHUodW5zaWduZWQgKmNwdSwgdW5zaWduZWQgKm5vZGUsIHZvaWQgKnVudXNlZCkgMzQ1LDMxOCwzMTIKIAogIyBpbyBwcmlvcml0aWVzCi1pbnQgaW9wcmlvX3NldChpbnQgd2hpY2gsIGludCB3aG8sIGludCBpb3ByaW8pIDMxNCwyODkKLWludCBpb3ByaW9fZ2V0KGludCB3aGljaCwgaW50IHdobykgMzE1LDI5MAoraW50IGlvcHJpb19zZXQoaW50IHdoaWNoLCBpbnQgd2hvLCBpbnQgaW9wcmlvKSAzMTQsMjg5LDMxNAoraW50IGlvcHJpb19nZXQoaW50IHdoaWNoLCBpbnQgd2hvKSAzMTUsMjkwLDMxNQogCiAjIG90aGVyCiBpbnQgICAgIHVuYW1lKHN0cnVjdCB1dHNuYW1lICopICAxMjIKQEAgLTI2OCwyMSArMjg2LDI1IEBACiBsb25nICAgIHBlcmZfZXZlbnRfb3BlbihzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyICphdHRyX3VwdHIsIHBpZF90IHBpZCwgaW50IGNwdSwgaW50IGdyb3VwX2ZkLCB1bnNpZ25lZCBsb25nIGZsYWdzKSAzNjQKIAogIyBmdXRleAotaW50CWZ1dGV4KHZvaWQgKiwgaW50LCBpbnQsIHZvaWQgKiwgdm9pZCAqLCBpbnQpIDI0MAoraW50CWZ1dGV4KHZvaWQgKiwgaW50LCBpbnQsIHZvaWQgKiwgdm9pZCAqLCBpbnQpIDI0MCwyNDAsMjM4CiAKICMgZXBvbGwKLWludCAgICAgZXBvbGxfY3JlYXRlKGludCBzaXplKSAgICAgMjUwLDI1NAotaW50ICAgICBlcG9sbF9jdGwoaW50IGVwZmQsIGludCBvcCwgaW50IGZkLCBzdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2ZW50KSAgICAyNTEsMjU1Ci1pbnQgICAgIGVwb2xsX3dhaXQoaW50IGVwZmQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnRzLCBpbnQgbWF4LCBpbnQgdGltZW91dCkgICAyNTIsMjU2CitpbnQgICAgIGVwb2xsX2NyZWF0ZShpbnQgc2l6ZSkgICAgIDI1MCwyNTQsMjQ4CitpbnQgICAgIGVwb2xsX2N0bChpbnQgZXBmZCwgaW50IG9wLCBpbnQgZmQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnQpICAgIDI1MSwyNTUsMjQ5CitpbnQgICAgIGVwb2xsX3dhaXQoaW50IGVwZmQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnRzLCBpbnQgbWF4LCBpbnQgdGltZW91dCkgICAyNTIsMjU2LDI1MAogCi1pbnQgICAgIGlub3RpZnlfaW5pdCh2b2lkKSAgICAgIDMxNiwyOTEsMjkwCi1pbnQgICAgIGlub3RpZnlfYWRkX3dhdGNoKGludCwgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQpICAzMTcsMjkyCi1pbnQgICAgIGlub3RpZnlfcm1fd2F0Y2goaW50LCB1bnNpZ25lZCBpbnQpICAzMTgsMjkzCitpbnQgICAgIGlub3RpZnlfaW5pdCh2b2lkKSAgICAgIDMxNiwyOTEsMjg0CitpbnQgICAgIGlub3RpZnlfYWRkX3dhdGNoKGludCwgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQpICAzMTcsMjkyLDI4NQoraW50ICAgICBpbm90aWZ5X3JtX3dhdGNoKGludCwgdW5zaWduZWQgaW50KSAgMzE4LDI5MywyODYKIAotaW50ICAgICBwb2xsKHN0cnVjdCBwb2xsZmQgKiwgdW5zaWduZWQgaW50LCBsb25nKSAgMTY4CitpbnQgICAgIHBvbGwoc3RydWN0IHBvbGxmZCAqLCB1bnNpZ25lZCBpbnQsIGxvbmcpICAxNjgsMTY4LDE4OAogCi1pbnQgICAgIGV2ZW50ZmQ6ZXZlbnRmZDIodW5zaWduZWQgaW50LCBpbnQpICAzNTYsMzI4CitpbnQgICAgIGV2ZW50ZmQ6ZXZlbnRmZDIodW5zaWduZWQgaW50LCBpbnQpICAzNTYsMzI4LDMyNQogCiAjIEFSTS1zcGVjaWZpYyBBUk1fTlJfQkFTRSA9PSAweDBmMDAwMCA9PSA5ODMwNDAKLWludCAgICAgX19zZXRfdGxzOkFSTV9zZXRfdGxzKHZvaWQqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk4MzA0NSwtMQotaW50ICAgICBjYWNoZWZsdXNoOkFSTV9jYWNoZWZsdXNoKGxvbmcgc3RhcnQsIGxvbmcgZW5kLCBsb25nIGZsYWdzKSAgOTgzMDQyLC0xCitpbnQgICAgIF9fc2V0X3RsczpBUk1fc2V0X3Rscyh2b2lkKikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5ODMwNDUsLTEsLTEKK2ludCAgICAgY2FjaGVmbHVzaDpBUk1fY2FjaGVmbHVzaChsb25nIHN0YXJ0LCBsb25nIGVuZCwgbG9uZyBmbGFncykgIDk4MzA0MiwtMSwtMQorCisjIE1JUFMtc3BlY2lmaWMKK2ludAlfZmx1c2hfY2FjaGU6Y2FjaGVmbHVzaChjaGFyICphZGRyLCBjb25zdCBpbnQgbmJ5dGVzLCBjb25zdCBpbnQgb3ApCS0xLC0xLDE0NworaW50CXN5c2NhbGwoaW50IG51bWJlciwuLi4pIC0xLC0xLDAKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm0vYmlvbmljL21lbWNweS5TIGIvbGliYy9hcmNoLWFybS9iaW9uaWMvbWVtY3B5LlMKaW5kZXggOGMwYjRkNy4uODQ1M2NjMCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybS9iaW9uaWMvbWVtY3B5LlMKKysrIGIvbGliYy9hcmNoLWFybS9iaW9uaWMvbWVtY3B5LlMKQEAgLTM0LDIzICszNCwyOCBAQAogICAgICAgICAudGV4dAogICAgICAgICAuZnB1ICAgIG5lb24KIAorI2lmZGVmIEhBVkVfMzJfQllURV9DQUNIRV9MSU5FCisvKiBhIHByZWZldGNoIGRpc3RhbmNlIG9mIDIgY2FjaGUtbGluZXMgKi8KKyNkZWZpbmUgQ0FDSEVfTElORV9TSVpFICAgICAzMgorI2RlZmluZSBQUkVGRVRDSF9ESVNUQU5DRSAgIChDQUNIRV9MSU5FX1NJWkUqMikKKyNlbHNlCiAvKiBhIHByZWZldGNoIGRpc3RhbmNlIG9mIDQgY2FjaGUtbGluZXMgd29ya3MgYmVzdCBleHBlcmltZW50YWxseSAqLwogI2RlZmluZSBDQUNIRV9MSU5FX1NJWkUgICAgIDY0CiAjZGVmaW5lIFBSRUZFVENIX0RJU1RBTkNFICAgKENBQ0hFX0xJTkVfU0laRSo0KQorI2VuZGlmCiAKIEVOVFJZKG1lbWNweSkKICAgICAgICAgLnNhdmUgICAgICAge3IwLCBscn0KLSAgICAgICAgc3RtZmQgICAgICAgc3AhLCB7cjAsIGxyfQotCiAgICAgICAgIC8qIHN0YXJ0IHByZWxvYWRpbmcgYXMgZWFybHkgYXMgcG9zc2libGUgKi8KICAgICAgICAgcGxkICAgICAgICAgW3IxLCAjKENBQ0hFX0xJTkVfU0laRSowKV0KKyAgICAgICAgc3RtZmQgICAgICAgc3AhLCB7cjAsIGxyfQogICAgICAgICBwbGQgICAgICAgICBbcjEsICMoQ0FDSEVfTElORV9TSVpFKjEpXQogCiAgICAgICAgIC8qIGRvIHdlIGhhdmUgYXQgbGVhc3QgMTYtYnl0ZXMgdG8gY29weSAobmVlZGVkIGZvciBhbGlnbm1lbnQgYmVsb3cpICovCiAgICAgICAgIGNtcCAgICAgICAgIHIyLCAjMTYKICAgICAgICAgYmxvICAgICAgICAgNWYKIAotICAgICAgICAvKiBhbGlnbiBkZXN0aW5hdGlvbiB0byBoYWxmIGNhY2hlLWxpbmUgZm9yIHRoZSB3cml0ZS1idWZmZXIgKi8KKyAgICAgICAgLyogYWxpZ24gZGVzdGluYXRpb24gdG8gY2FjaGUtbGluZSBmb3IgdGhlIHdyaXRlLWJ1ZmZlciAqLwogICAgICAgICByc2IgICAgICAgICByMywgcjAsICMwCiAgICAgICAgIGFuZHMgICAgICAgIHIzLCByMywgIzB4RgogICAgICAgICBiZXEgICAgICAgICAwZgpAQCAtNzksNiArODQsMjYgQEAKICAgICAgICAgcGxkICAgICAgICAgW3IxLCAjKENBQ0hFX0xJTkVfU0laRSowKV0KICAgICAgICAgcGxkICAgICAgICAgW3IxLCAjKENBQ0hFX0xJTkVfU0laRSoxKV0KIAorI2lmZGVmIEhBVkVfMzJfQllURV9DQUNIRV9MSU5FCisgICAgICAgIC8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0IDMyIGJ5dGVzIHRvIGNvcHkgKi8KKyAgICAgICAgc3VicyAgICAgICAgcjIsIHIyLCAjMzIKKyAgICAgICAgYmxvICAgICAgICAgNGYKKworICAgICAgICAvKiBwcmVsb2FkIGFsbCB0aGUgY2FjaGUgbGluZXMgd2UgbmVlZC4KKyAgICAgICAgICogTk9URTogdGhlIG51bWJlciBvZiBwbGQgYmVsb3cgZGVwZW5kcyBvbiBQUkVGRVRDSF9ESVNUQU5DRSwKKyAgICAgICAgICogaWRlYWxseSB3b3VsZCB3b3VsZCBpbmNyZWFzZSB0aGUgZGlzdGFuY2UgaW4gdGhlIG1haW4gbG9vcCB0bworICAgICAgICAgKiBhdm9pZCB0aGUgZ29vZnkgY29kZSBiZWxvdy4gSW4gcHJhY3RpY2UgdGhpcyBkb2Vzbid0IHNlZW0gdG8gbWFrZQorICAgICAgICAgKiBhIGJpZyBkaWZmZXJlbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgcGxkICAgICAgICAgW3IxLCAjKFBSRUZFVENIX0RJU1RBTkNFKV0KKworMTogICAgICAvKiBUaGUgbWFpbiBsb29wIGNvcGllcyAzMiBieXRlcyBhdCBhIHRpbWUgKi8KKyAgICAgICAgdmxkMS44ICAgICAge2QwICAtIGQzfSwgICBbcjFdIQorICAgICAgICBwbGQgICAgICAgICBbcjEsICMoUFJFRkVUQ0hfRElTVEFOQ0UpXQorICAgICAgICBzdWJzICAgICAgICByMiwgcjIsICMzMgorICAgICAgICB2c3QxLjggICAgICB7ZDAgIC0gZDN9LCAgIFtyMCwgOjEyOF0hCisgICAgICAgIGJocyAgICAgICAgIDFiCisjZWxzZQogICAgICAgICAvKiBtYWtlIHN1cmUgd2UgaGF2ZSBhdCBsZWFzdCA2NCBieXRlcyB0byBjb3B5ICovCiAgICAgICAgIHN1YnMgICAgICAgIHIyLCByMiwgIzY0CiAgICAgICAgIGJsbyAgICAgICAgIDJmCkBAIC0xMTIsNyArMTM3LDcgQEAKICAgICAgICAgc3VicyAgICAgICAgcjIsIHIyLCAjMzIKICAgICAgICAgdnN0MS44ICAgICAge2QwIC0gZDN9LCAgW3IwLCA6MTI4XSEKICAgICAgICAgYmhzICAgICAgICAgM2IKLQorI2VuZGlmCiA0OiAgICAgIC8qIGxlc3MgdGhhbiAzMiBsZWZ0ICovCiAgICAgICAgIGFkZCAgICAgICAgIHIyLCByMiwgIzMyCiAgICAgICAgIHRzdCAgICAgICAgIHIyLCAjMHgxMApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMubWsgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzBjNGRjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMubWsKQEAgLTAsMCArMSwyMDEgQEAKKyMgYXV0by1nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHksIGRvIG5vdCB0b3VjaAorc3lzY2FsbF9zcmMgOj0gCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX2V4aXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19leGl0X3RocmVhZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19mb3JrLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fd2FpdHBpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0aWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzX2Nsb25lLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9leGVjdmUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0dWlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXR1aWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldGdpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZXVpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZWdpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cmVzdWlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRyZXNnaWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHRpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcmVhZGFoZWFkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRncm91cHMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHBnaWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHBwaWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NldHNpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0Z2lkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3NldHJldWlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3NldHJlc3VpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmVzZ2lkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX2Jyay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMva2lsbC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdGtpbGwuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3Rna2lsbC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19wdHJhY2UuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0X3RocmVhZF9hcmVhLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX2dldHByaW9yaXR5LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRwcmlvcml0eS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmxpbWl0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRybGltaXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHJ1c2FnZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0Z3JvdXBzLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRwZ2lkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRyZWdpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2hyb290LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9wcmN0bC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2FwZ2V0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jYXBzZXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9hY2N0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9yZWFkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy93cml0ZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcHJlYWQ2NC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcHdyaXRlNjQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fb3Blbi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19vcGVuYXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Nsb3NlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9sc2Vlay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19sbHNlZWsuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHBpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19tbWFwMi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbXVubWFwLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9tcmVtYXAuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21zeW5jLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9tcHJvdGVjdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbWFkdmlzZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbWxvY2suUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL211bmxvY2suUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21pbmNvcmUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19faW9jdGwuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3JlYWR2LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy93cml0ZXYuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fZmNudGwuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Zsb2NrLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mY2htb2QuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2R1cC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcGlwZTIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2R1cDIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NlbGVjdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZnRydW5jYXRlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mdHJ1bmNhdGU2NC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZGVudHMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZzeW5jLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mZGF0YXN5bmMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG93bi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc3luYy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19mY250bDY0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX2ZzdGF0ZnM2NC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2VuZGZpbGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZzdGF0YXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21rZGlyYXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG93bmF0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mY2htb2RhdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lYXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZzZXR4YXR0ci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZmdldHhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mbGlzdHhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mcmVtb3ZleGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2xpbmsuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3VubGluay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rYXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2NoZGlyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9ta25vZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2htb2QuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Nob3duLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9sY2hvd24uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21vdW50LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy91bW91bnQyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mc3RhdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc3RhdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbHN0YXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21rZGlyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9yZWFkbGluay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcm1kaXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3JlbmFtZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRjd2QuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2FjY2Vzcy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZmFjY2Vzc2F0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zeW1saW5rLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mY2hkaXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3RydW5jYXRlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXR4YXR0ci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbHNldHhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXR4YXR0ci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbGdldHhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9saXN0eGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2xsaXN0eGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9scmVtb3ZleGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc3RhdGZzNjQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3BhdXNlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXR0aW1lb2ZkYXkuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NldHRpbWVvZmRheS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdGltZXMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL25hbm9zbGVlcC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfZ2V0cmVzLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19uYW5vc2xlZXAuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldGl0aW1lci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0aXRpbWVyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9zZXR0aW1lLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2dldHRpbWUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZ2V0b3ZlcnJ1bi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3V0aW1lcy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdXRpbWVuc2F0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zaWdhY3Rpb24uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NpZ3Byb2NtYXNrLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3NpZ3N1c3BlbmQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lnYWN0aW9uLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3J0X3NpZ3Byb2NtYXNrLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3J0X3NpZ3RpbWVkd2FpdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2lncGVuZGluZy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc29ja2V0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zb2NrZXRwYWlyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9iaW5kLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jb25uZWN0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9saXN0ZW4uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2FjY2VwdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0c29ja25hbWUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHBlZXJuYW1lLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZW5kdG8uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3JlY3Zmcm9tLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zaHV0ZG93bi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0c29ja29wdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0c29ja29wdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2VuZG1zZy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcmVjdm1zZy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0c2NoZWR1bGVyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRzY2hlZHVsZXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRwYXJhbS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0cGFyYW0uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9tYXguUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9taW4uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0YWZmaW5pdHkuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc2NoZWRfZ2V0YWZmaW5pdHkuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fZ2V0Y3B1LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fc2V0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy91bmFtZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0NC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdW1hc2suUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fcmVib290LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3N5c2xvZy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2RlbGV0ZV9tb2R1bGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2tsb2djdGwuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3N5c2luZm8uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9wZXJmX2V2ZW50X29wZW4uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Z1dGV4LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF9jcmVhdGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX2N0bC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfd2FpdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9pbml0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X2FkZF93YXRjaC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9ybV93YXRjaC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcG9sbC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZXZlbnRmZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX2ZsdXNoX2NhY2hlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zeXNjYWxsLlMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fYnJrLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2Jyay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMDk3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2Jyay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2JyaworICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2JyaworCitfX2JyazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2JyaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fYnJrCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2ZjbnRsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2ZjbnRsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRkNzZlMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZmNudGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19mY250bAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2ZjbnRsCisKK19fZmNudGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mY250bAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fZmNudGwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZmNudGw2NC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mY250bDY0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgyZTM4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZmNudGw2NC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2ZjbnRsNjQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19mY250bDY0CisKK19fZmNudGw2NDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZjbnRsNjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX2ZjbnRsNjQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZm9yay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mb3JrLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIzMDQ3MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZm9yay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2ZvcmsKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19mb3JrCisKK19fZm9yazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZvcmsKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX2ZvcmsKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZnN0YXRmczY0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2ZzdGF0ZnM2NC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0ODVkMTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2ZzdGF0ZnM2NC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2ZzdGF0ZnM2NAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2ZzdGF0ZnM2NAorCitfX2ZzdGF0ZnM2NDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZzdGF0ZnM2NAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fZnN0YXRmczY0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2dldGNwdS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRjcHUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGQ1OWY0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRjcHUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19nZXRjcHUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19nZXRjcHUKKworX19nZXRjcHU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRjcHUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX2dldGNwdQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRjd2QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZ2V0Y3dkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThmYTM0MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZ2V0Y3dkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fZ2V0Y3dkCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fZ2V0Y3dkCisKK19fZ2V0Y3dkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0Y3dkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19nZXRjd2QKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2FiZDMxCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRwcmlvcml0eS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2dldHByaW9yaXR5CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fZ2V0cHJpb3JpdHkKKworX19nZXRwcmlvcml0eToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHByaW9yaXR5CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19nZXRwcmlvcml0eQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19pb2N0bC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19pb2N0bC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MjRlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2lvY3RsLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9faW9jdGwKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19pb2N0bAorCitfX2lvY3RsOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfaW9jdGwKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX2lvY3RsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2xsc2Vlay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19sbHNlZWsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmZkNTgzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19sbHNlZWsuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19sbHNlZWsKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19sbHNlZWsKKworX19sbHNlZWs6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9fbGxzZWVrCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19sbHNlZWsKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fbW1hcDIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fbW1hcDIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGY5N2ViCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19tbWFwMi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX21tYXAyCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fbW1hcDIKKworX19tbWFwMjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21tYXAyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19tbWFwMgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19vcGVuLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX29wZW4uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2NiMjg2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19vcGVuLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fb3BlbgorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX29wZW4KKworX19vcGVuOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfb3BlbgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fb3BlbgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19vcGVuYXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fb3BlbmF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQzOTliNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fb3BlbmF0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fb3BlbmF0CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fb3BlbmF0CisKK19fb3BlbmF0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfb3BlbmF0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19vcGVuYXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcHRyYWNlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3B0cmFjZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiY2JhOWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3B0cmFjZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3B0cmFjZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3B0cmFjZQorCitfX3B0cmFjZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3B0cmFjZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fcHRyYWNlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3JlYm9vdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19yZWJvb3QuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZThlNTdhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19yZWJvb3QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19yZWJvb3QKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19yZWJvb3QKKworX19yZWJvb3Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9yZWJvb3QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3JlYm9vdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lnYWN0aW9uLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNhNTcxYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lnYWN0aW9uLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fcnRfc2lnYWN0aW9uCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fcnRfc2lnYWN0aW9uCisKK19fcnRfc2lnYWN0aW9uOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcnRfc2lnYWN0aW9uCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19ydF9zaWdhY3Rpb24KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lncHJvY21hc2suUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lncHJvY21hc2suUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWE4ODk0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3J0X3NpZ3Byb2NtYXNrCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fcnRfc2lncHJvY21hc2sKKworX19ydF9zaWdwcm9jbWFzazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3J0X3NpZ3Byb2NtYXNrCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19ydF9zaWdwcm9jbWFzawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lndGltZWR3YWl0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFlODcyZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lndGltZWR3YWl0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fcnRfc2lndGltZWR3YWl0CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fcnRfc2lndGltZWR3YWl0CisKK19fcnRfc2lndGltZWR3YWl0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcnRfc2lndGltZWR3YWl0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19ydF9zaWd0aW1lZHdhaXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2NoZWRfZ2V0YWZmaW5pdHkuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2NoZWRfZ2V0YWZmaW5pdHkuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzAxZmYyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3NjaGVkX2dldGFmZmluaXR5CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc2NoZWRfZ2V0YWZmaW5pdHkKKworX19zY2hlZF9nZXRhZmZpbml0eToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NjaGVkX2dldGFmZmluaXR5CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zY2hlZF9nZXRhZmZpbml0eQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zZXRfdGhyZWFkX2FyZWEuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0X3RocmVhZF9hcmVhLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFhYzkwMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0X3RocmVhZF9hcmVhLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fc2V0X3RocmVhZF9hcmVhCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc2V0X3RocmVhZF9hcmVhCisKK19fc2V0X3RocmVhZF9hcmVhOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0X3RocmVhZF9hcmVhCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zZXRfdGhyZWFkX2FyZWEKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmVzdWlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NldHJlc3VpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMGQyZTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NldHJlc3VpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3NldHJlc3VpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3NldHJlc3VpZAorCitfX3NldHJlc3VpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldHJlc3VpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fc2V0cmVzdWlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NldHJldWlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NldHJldWlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ1ZjNmYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmV1aWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19zZXRyZXVpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3NldHJldWlkCisKK19fc2V0cmV1aWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRyZXVpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fc2V0cmV1aWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0dWlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NldHVpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMjE1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NldHVpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3NldHVpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3NldHVpZAorCitfX3NldHVpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldHVpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fc2V0dWlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NpZ3N1c3BlbmQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2lnc3VzcGVuZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MjJlZmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NpZ3N1c3BlbmQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19zaWdzdXNwZW5kCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc2lnc3VzcGVuZAorCitfX3NpZ3N1c3BlbmQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zaWdzdXNwZW5kCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zaWdzdXNwZW5kCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3N0YXRmczY0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3N0YXRmczY0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQxYjE3ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3RhdGZzNjQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19zdGF0ZnM2NAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3N0YXRmczY0CisKK19fc3RhdGZzNjQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zdGF0ZnM2NAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fc3RhdGZzNjQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzX2Nsb25lLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3N5c19jbG9uZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NTFlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3N5c19jbG9uZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3N5c19jbG9uZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3N5c19jbG9uZQorCitfX3N5c19jbG9uZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Nsb25lCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zeXNfY2xvbmUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzbG9nLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3N5c2xvZy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkYzE5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3N5c2xvZy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3N5c2xvZworICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3N5c2xvZworCitfX3N5c2xvZzoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3N5c2xvZworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fc3lzbG9nCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9jcmVhdGUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDBkMGQxCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9jcmVhdGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX190aW1lcl9jcmVhdGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX190aW1lcl9jcmVhdGUKKworX190aW1lcl9jcmVhdGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl90aW1lcl9jcmVhdGUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3RpbWVyX2NyZWF0ZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZGVsZXRlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYzNjJlNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZGVsZXRlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fdGltZXJfZGVsZXRlCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fdGltZXJfZGVsZXRlCisKK19fdGltZXJfZGVsZXRlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdGltZXJfZGVsZXRlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX190aW1lcl9kZWxldGUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZ2V0b3ZlcnJ1bi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9nZXRvdmVycnVuLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhhZmExYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZ2V0b3ZlcnJ1bi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3RpbWVyX2dldG92ZXJydW4KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX190aW1lcl9nZXRvdmVycnVuCisKK19fdGltZXJfZ2V0b3ZlcnJ1bjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3RpbWVyX2dldG92ZXJydW4KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3RpbWVyX2dldG92ZXJydW4KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZ2V0dGltZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE3MGRhNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZ2V0dGltZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3RpbWVyX2dldHRpbWUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX190aW1lcl9nZXR0aW1lCisKK19fdGltZXJfZ2V0dGltZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3RpbWVyX2dldHRpbWUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3RpbWVyX2dldHRpbWUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9zZXR0aW1lLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ4NDYwNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3RpbWVyX3NldHRpbWUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX190aW1lcl9zZXR0aW1lCisKK19fdGltZXJfc2V0dGltZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3RpbWVyX3NldHRpbWUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3RpbWVyX3NldHRpbWUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fd2FpdDQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fd2FpdDQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTNiN2NiCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0NC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3dhaXQ0CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fd2FpdDQKKworX193YWl0NDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3dhaXQ0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX193YWl0NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0aWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fd2FpdGlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNlNWFhMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fd2FpdGlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fd2FpdGlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fd2FpdGlkCisKK19fd2FpdGlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfd2FpdGlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX193YWl0aWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19leGl0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZXhpdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ZWM4NzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZXhpdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfZXhpdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfZXhpdAorCitfZXhpdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2V4aXRfZ3JvdXAKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfZXhpdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX2V4aXRfdGhyZWFkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZXhpdF90aHJlYWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWY5ZDNkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX2V4aXRfdGhyZWFkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9leGl0X3RocmVhZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfZXhpdF90aHJlYWQKKworX2V4aXRfdGhyZWFkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZXhpdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9leGl0X3RocmVhZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX2ZsdXNoX2NhY2hlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZmx1c2hfY2FjaGUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2RlZTY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX2ZsdXNoX2NhY2hlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9mbHVzaF9jYWNoZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBfZmx1c2hfY2FjaGUKKworX2ZsdXNoX2NhY2hlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2FjaGVmbHVzaAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9mbHVzaF9jYWNoZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX3dhaXRwaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL193YWl0cGlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBkYjNhOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL193YWl0cGlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF93YWl0cGlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IF93YWl0cGlkCisKK193YWl0cGlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfd2FpdHBpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF93YWl0cGlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9hY2NlcHQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2FjY2VwdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxOTIxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9hY2NlcHQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgYWNjZXB0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGFjY2VwdAorCithY2NlcHQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9hY2NlcHQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBhY2NlcHQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2FjY2Vzcy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYWNjZXNzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIyZWQ5MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2FjY2Vzcy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBhY2Nlc3MKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgYWNjZXNzCisKK2FjY2VzczoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2FjY2VzcworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGFjY2VzcwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYWNjdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYWNjdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzVlZGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9hY2N0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGFjY3QKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgYWNjdAorCithY2N0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfYWNjdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGFjY3QKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2JpbmQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2JpbmQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjAwOTIyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYmluZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBiaW5kCisgICAgLmFsaWduIDQKKyAgICAuZW50IGJpbmQKKworYmluZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2JpbmQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBiaW5kCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jYXBnZXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NhcGdldC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZTU1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jYXBnZXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2FwZ2V0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGNhcGdldAorCitjYXBnZXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jYXBnZXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjYXBnZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NhcHNldC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2Fwc2V0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU0YTNiZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NhcHNldC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjYXBzZXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2Fwc2V0CisKK2NhcHNldDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2NhcHNldAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNhcHNldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hkaXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NoZGlyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJlYjM3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NoZGlyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGNoZGlyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGNoZGlyCisKK2NoZGlyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2hkaXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjaGRpcgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2htb2QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NobW9kLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VhM2VkZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NobW9kLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGNobW9kCisgICAgLmFsaWduIDQKKyAgICAuZW50IGNobW9kCisKK2NobW9kOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2htb2QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjaG1vZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hvd24uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nob3duLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZiMWUzMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nob3duLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGNob3duCisgICAgLmFsaWduIDQKKyAgICAuZW50IGNob3duCisKK2Nob3duOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2hvd24KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjaG93bgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hyb290LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jaHJvb3QuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWZiNmEyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hyb290LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGNocm9vdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBjaHJvb3QKKworY2hyb290OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2hyb290CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgY2hyb290CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19nZXRyZXMuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX2dldHJlcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwMjFiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19nZXRyZXMuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2xvY2tfZ2V0cmVzCisgICAgLmFsaWduIDQKKyAgICAuZW50IGNsb2NrX2dldHJlcworCitjbG9ja19nZXRyZXM6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jbG9ja19nZXRyZXMKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjbG9ja19nZXRyZXMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX2dldHRpbWUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX2dldHRpbWUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTdhZmI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjbG9ja19nZXR0aW1lCisgICAgLmFsaWduIDQKKyAgICAuZW50IGNsb2NrX2dldHRpbWUKKworY2xvY2tfZ2V0dGltZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Nsb2NrX2dldHRpbWUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjbG9ja19nZXR0aW1lCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19uYW5vc2xlZXAuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX25hbm9zbGVlcC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhOWFlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19uYW5vc2xlZXAuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2xvY2tfbmFub3NsZWVwCisgICAgLmFsaWduIDQKKyAgICAuZW50IGNsb2NrX25hbm9zbGVlcAorCitjbG9ja19uYW5vc2xlZXA6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jbG9ja19uYW5vc2xlZXAKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjbG9ja19uYW5vc2xlZXAKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX3NldHRpbWUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX3NldHRpbWUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWQ0Mzg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjbG9ja19zZXR0aW1lCisgICAgLmFsaWduIDQKKyAgICAuZW50IGNsb2NrX3NldHRpbWUKKworY2xvY2tfc2V0dGltZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Nsb2NrX3NldHRpbWUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjbG9ja19zZXR0aW1lCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9zZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvc2UuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2ZmNGUzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvc2UuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2xvc2UKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2xvc2UKKworY2xvc2U6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jbG9zZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNsb3NlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jb25uZWN0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jb25uZWN0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFmYzI4MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nvbm5lY3QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY29ubmVjdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBjb25uZWN0CisKK2Nvbm5lY3Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jb25uZWN0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgY29ubmVjdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZGVsZXRlX21vZHVsZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZGVsZXRlX21vZHVsZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiODBiYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGRlbGV0ZV9tb2R1bGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZGVsZXRlX21vZHVsZQorCitkZWxldGVfbW9kdWxlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZGVsZXRlX21vZHVsZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGRlbGV0ZV9tb2R1bGUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2R1cC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZHVwLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgxNTc0OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2R1cC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBkdXAKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZHVwCisKK2R1cDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2R1cAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGR1cApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZHVwMi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZHVwMi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmYjE1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9kdXAyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGR1cDIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZHVwMgorCitkdXAyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZHVwMgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGR1cDIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfY3JlYXRlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVlNDIwYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBlcG9sbF9jcmVhdGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZXBvbGxfY3JlYXRlCisKK2Vwb2xsX2NyZWF0ZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Vwb2xsX2NyZWF0ZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGVwb2xsX2NyZWF0ZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfY3RsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF9jdGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGY5ZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfY3RsLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGVwb2xsX2N0bAorICAgIC5hbGlnbiA0CisgICAgLmVudCBlcG9sbF9jdGwKKworZXBvbGxfY3RsOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZXBvbGxfY3RsCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZXBvbGxfY3RsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF93YWl0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF93YWl0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRkMzNmYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX3dhaXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZXBvbGxfd2FpdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBlcG9sbF93YWl0CisKK2Vwb2xsX3dhaXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9lcG9sbF93YWl0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZXBvbGxfd2FpdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXZlbnRmZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXZlbnRmZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNGUyMmIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ldmVudGZkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGV2ZW50ZmQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZXZlbnRmZAorCitldmVudGZkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZXZlbnRmZDIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBldmVudGZkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9leGVjdmUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2V4ZWN2ZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYjkyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9leGVjdmUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZXhlY3ZlCisgICAgLmFsaWduIDQKKyAgICAuZW50IGV4ZWN2ZQorCitleGVjdmU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9leGVjdmUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBleGVjdmUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZhY2Nlc3NhdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmFjY2Vzc2F0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdkYjRjMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZhY2Nlc3NhdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmYWNjZXNzYXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZmFjY2Vzc2F0CisKK2ZhY2Nlc3NhdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZhY2Nlc3NhdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZhY2Nlc3NhdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNoZGlyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2hkaXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzI5OGJkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNoZGlyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZjaGRpcgorICAgIC5hbGlnbiA0CisgICAgLmVudCBmY2hkaXIKKworZmNoZGlyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmNoZGlyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZmNoZGlyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2htb2QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ODM1NjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2htb2QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZmNobW9kCisgICAgLmFsaWduIDQKKyAgICAuZW50IGZjaG1vZAorCitmY2htb2Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mY2htb2QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmY2htb2QKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZGF0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2htb2RhdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYTFiYmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2htb2RhdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmY2htb2RhdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBmY2htb2RhdAorCitmY2htb2RhdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZjaG1vZGF0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZmNobW9kYXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG93bi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRmYzA4ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG93bi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmY2hvd24KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZmNob3duCisKK2ZjaG93bjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZjaG93bgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZjaG93bgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duYXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG93bmF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTgzZWQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG93bmF0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZjaG93bmF0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGZjaG93bmF0CisKK2ZjaG93bmF0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmNob3duYXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmY2hvd25hdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmRhdGFzeW5jLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mZGF0YXN5bmMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTI0MzlkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmRhdGFzeW5jLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZkYXRhc3luYworICAgIC5hbGlnbiA0CisgICAgLmVudCBmZGF0YXN5bmMKKworZmRhdGFzeW5jOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmRhdGFzeW5jCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZmRhdGFzeW5jCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mZ2V0eGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZnZXR4YXR0ci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNzdlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mZ2V0eGF0dHIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZmdldHhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGZnZXR4YXR0cgorCitmZ2V0eGF0dHI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mZ2V0eGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmZ2V0eGF0dHIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZsaXN0eGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZsaXN0eGF0dHIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmUyNmUxCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmxpc3R4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmbGlzdHhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGZsaXN0eGF0dHIKKworZmxpc3R4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZsaXN0eGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmbGlzdHhhdHRyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mbG9jay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmxvY2suUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWEzMTQyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmxvY2suUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZmxvY2sKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZmxvY2sKKworZmxvY2s6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mbG9jaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZsb2NrCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mcmVtb3ZleGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiM2ViNmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mcmVtb3ZleGF0dHIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZnJlbW92ZXhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGZyZW1vdmV4YXR0cgorCitmcmVtb3ZleGF0dHI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mcmVtb3ZleGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmcmVtb3ZleGF0dHIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzZXR4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnNldHhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU2NjZmMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzZXR4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmc2V0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZnNldHhhdHRyCisKK2ZzZXR4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZzZXR4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZzZXR4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnN0YXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzdGF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNkNzIzNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzdGF0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZzdGF0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGZzdGF0CisKK2ZzdGF0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZnN0YXQ2NAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZzdGF0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mc3RhdGF0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mc3RhdGF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FlMjI5ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzdGF0YXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZnN0YXRhdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBmc3RhdGF0CisKK2ZzdGF0YXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mc3RhdGF0NjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmc3RhdGF0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mc3luYy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnN5bmMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWNkMzE2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnN5bmMuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZnN5bmMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZnN5bmMKKworZnN5bmM6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mc3luYworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZzeW5jCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mdHJ1bmNhdGUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z0cnVuY2F0ZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNzJiNDMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mdHJ1bmNhdGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZnRydW5jYXRlCisgICAgLmFsaWduIDQKKyAgICAuZW50IGZ0cnVuY2F0ZQorCitmdHJ1bmNhdGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mdHJ1bmNhdGUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmdHJ1bmNhdGUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z0cnVuY2F0ZTY0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mdHJ1bmNhdGU2NC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNmFlMzgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mdHJ1bmNhdGU2NC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmdHJ1bmNhdGU2NAorICAgIC5hbGlnbiA0CisgICAgLmVudCBmdHJ1bmNhdGU2NAorCitmdHJ1bmNhdGU2NDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Z0cnVuY2F0ZTY0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZnRydW5jYXRlNjQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z1dGV4LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mdXRleC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZTUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mdXRleC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmdXRleAorICAgIC5hbGlnbiA0CisgICAgLmVudCBmdXRleAorCitmdXRleDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Z1dGV4CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZnV0ZXgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGRlbnRzLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRkZW50cy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmZjBmMjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRkZW50cy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRkZW50cworICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRkZW50cworCitnZXRkZW50czoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldGRlbnRzNjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRkZW50cwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZWdpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZWdpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMmEwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRlZ2lkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldGVnaWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0ZWdpZAorCitnZXRlZ2lkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0ZWdpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldGVnaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGV1aWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGV1aWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmVjYTg4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZXVpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRldWlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldGV1aWQKKworZ2V0ZXVpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldGV1aWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRldWlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRnaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGdpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNjE1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0Z2lkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldGdpZAorCitnZXRnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRnaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRnaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGdyb3Vwcy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0Z3JvdXBzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJlNzMwOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGdyb3Vwcy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRncm91cHMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0Z3JvdXBzCisKK2dldGdyb3VwczoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldGdyb3VwcworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldGdyb3VwcwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0aXRpbWVyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRpdGltZXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGYxZDExCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0aXRpbWVyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldGl0aW1lcgorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRpdGltZXIKKworZ2V0aXRpbWVyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0aXRpbWVyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0aXRpbWVyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwZWVybmFtZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGVlcm5hbWUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTNiZWRhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGVlcm5hbWUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0cGVlcm5hbWUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0cGVlcm5hbWUKKworZ2V0cGVlcm5hbWU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRwZWVybmFtZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldHBlZXJuYW1lCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwZ2lkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwZ2lkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ3OTM1MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0cGdpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRwZ2lkCisKK2dldHBnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRwZ2lkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0cGdpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTJlMzFiCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldHBpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRwaWQKKworZ2V0cGlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0cGlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0cGlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwcGlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwcGlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUzZmUxOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBwaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0cHBpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRwcGlkCisKK2dldHBwaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRwcGlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0cHBpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cmVzZ2lkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRyZXNnaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTliZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cmVzZ2lkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldHJlc2dpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRyZXNnaWQKKworZ2V0cmVzZ2lkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0cmVzZ2lkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0cmVzZ2lkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRyZXN1aWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHJlc3VpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMjdjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRyZXN1aWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0cmVzdWlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHJlc3VpZAorCitnZXRyZXN1aWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRyZXN1aWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRyZXN1aWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHJsaW1pdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cmxpbWl0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJlZDdkOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHJsaW1pdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRybGltaXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0cmxpbWl0CisKK2dldHJsaW1pdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHJsaW1pdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldHJsaW1pdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cnVzYWdlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRydXNhZ2UuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzBmN2QwCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cnVzYWdlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldHJ1c2FnZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRydXNhZ2UKKworZ2V0cnVzYWdlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0cnVzYWdlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0cnVzYWdlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRzb2NrbmFtZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0c29ja25hbWUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2Q0MWY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0c29ja25hbWUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0c29ja25hbWUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0c29ja25hbWUKKworZ2V0c29ja25hbWU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRzb2NrbmFtZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldHNvY2tuYW1lCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRzb2Nrb3B0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRzb2Nrb3B0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU1YWU2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHNvY2tvcHQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0c29ja29wdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRzb2Nrb3B0CisKK2dldHNvY2tvcHQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRzb2Nrb3B0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0c29ja29wdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0dGlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXR0aWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTM3ZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0dGlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldHRpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXR0aWQKKworZ2V0dGlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0dGlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0dGlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXR0aW1lb2ZkYXkuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHRpbWVvZmRheS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YTkzYTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXR0aW1lb2ZkYXkuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0dGltZW9mZGF5CisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHRpbWVvZmRheQorCitnZXR0aW1lb2ZkYXk6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXR0aW1lb2ZkYXkKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXR0aW1lb2ZkYXkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHVpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0dWlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTViYTY5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHVpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXR1aWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0dWlkCisKK2dldHVpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHVpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldHVpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0eGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM3MDU3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldHhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHhhdHRyCisKK2dldHhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0eGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXR4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2luaXRfbW9kdWxlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNmYmQyZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2luaXRfbW9kdWxlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGluaXRfbW9kdWxlCisgICAgLmFsaWduIDQKKyAgICAuZW50IGluaXRfbW9kdWxlCisKK2luaXRfbW9kdWxlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfaW5pdF9tb2R1bGUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBpbml0X21vZHVsZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lub3RpZnlfYWRkX3dhdGNoLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRkZTY2NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lub3RpZnlfYWRkX3dhdGNoLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGlub3RpZnlfYWRkX3dhdGNoCisgICAgLmFsaWduIDQKKyAgICAuZW50IGlub3RpZnlfYWRkX3dhdGNoCisKK2lub3RpZnlfYWRkX3dhdGNoOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfaW5vdGlmeV9hZGRfd2F0Y2gKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBpbm90aWZ5X2FkZF93YXRjaApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9pbml0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X2luaXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGU0NjY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9pbml0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGlub3RpZnlfaW5pdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBpbm90aWZ5X2luaXQKKworaW5vdGlmeV9pbml0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfaW5vdGlmeV9pbml0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgaW5vdGlmeV9pbml0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X3JtX3dhdGNoLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X3JtX3dhdGNoLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIyOTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lub3RpZnlfcm1fd2F0Y2guUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgaW5vdGlmeV9ybV93YXRjaAorICAgIC5hbGlnbiA0CisgICAgLmVudCBpbm90aWZ5X3JtX3dhdGNoCisKK2lub3RpZnlfcm1fd2F0Y2g6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9pbm90aWZ5X3JtX3dhdGNoCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgaW5vdGlmeV9ybV93YXRjaApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW9wcmlvX2dldC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW9wcmlvX2dldC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZjI0NDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGlvcHJpb19nZXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgaW9wcmlvX2dldAorCitpb3ByaW9fZ2V0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfaW9wcmlvX2dldAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGlvcHJpb19nZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lvcHJpb19zZXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lvcHJpb19zZXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2EzMGU3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW9wcmlvX3NldC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBpb3ByaW9fc2V0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGlvcHJpb19zZXQKKworaW9wcmlvX3NldDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2lvcHJpb19zZXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBpb3ByaW9fc2V0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9raWxsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9raWxsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY2NDBmZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2tpbGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwga2lsbAorICAgIC5hbGlnbiA0CisgICAgLmVudCBraWxsCisKK2tpbGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9raWxsCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQga2lsbApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMva2xvZ2N0bC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMva2xvZ2N0bC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjNDFkY2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9rbG9nY3RsLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGtsb2djdGwKKyAgICAuYWxpZ24gNAorICAgIC5lbnQga2xvZ2N0bAorCitrbG9nY3RsOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc3lzbG9nCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQga2xvZ2N0bApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGNob3duLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sY2hvd24uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmI0NjYwCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGNob3duLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGxjaG93bgorICAgIC5hbGlnbiA0CisgICAgLmVudCBsY2hvd24KKworbGNob3duOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbGNob3duCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbGNob3duCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sZ2V0eGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xnZXR4YXR0ci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NDZkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sZ2V0eGF0dHIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbGdldHhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGxnZXR4YXR0cgorCitsZ2V0eGF0dHI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9sZ2V0eGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBsZ2V0eGF0dHIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xpbmsuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xpbmsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDk2YjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGluay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBsaW5rCisgICAgLmFsaWduIDQKKyAgICAuZW50IGxpbmsKKworbGluazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2xpbmsKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBsaW5rCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9saXN0ZW4uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xpc3Rlbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNjVkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9saXN0ZW4uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbGlzdGVuCisgICAgLmFsaWduIDQKKyAgICAuZW50IGxpc3RlbgorCitsaXN0ZW46CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9saXN0ZW4KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBsaXN0ZW4KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xpc3R4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGlzdHhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBiNDU0NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xpc3R4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBsaXN0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbGlzdHhhdHRyCisKK2xpc3R4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2xpc3R4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGxpc3R4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGxpc3R4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGxpc3R4YXR0ci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NGJmODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sbGlzdHhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGxsaXN0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbGxpc3R4YXR0cgorCitsbGlzdHhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbGxpc3R4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGxsaXN0eGF0dHIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xyZW1vdmV4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThkOGRmOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xyZW1vdmV4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBscmVtb3ZleGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbHJlbW92ZXhhdHRyCisKK2xyZW1vdmV4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2xyZW1vdmV4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGxyZW1vdmV4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHNlZWsuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xzZWVrLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY0ODZhYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xzZWVrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGxzZWVrCisgICAgLmFsaWduIDQKKyAgICAuZW50IGxzZWVrCisKK2xzZWVrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbHNlZWsKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBsc2VlawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHNldHhhdHRyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sc2V0eGF0dHIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWEwZmRmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHNldHhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGxzZXR4YXR0cgorICAgIC5hbGlnbiA0CisgICAgLmVudCBsc2V0eGF0dHIKKworbHNldHhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbHNldHhhdHRyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbHNldHhhdHRyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sc3RhdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHN0YXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTVkMWRhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHN0YXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbHN0YXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbHN0YXQKKworbHN0YXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9sc3RhdDY0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbHN0YXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21hZHZpc2UuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21hZHZpc2UuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGY3MzI1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWFkdmlzZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBtYWR2aXNlCisgICAgLmFsaWduIDQKKyAgICAuZW50IG1hZHZpc2UKKworbWFkdmlzZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21hZHZpc2UKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBtYWR2aXNlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9taW5jb3JlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9taW5jb3JlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY0NjdjZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21pbmNvcmUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbWluY29yZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBtaW5jb3JlCisKK21pbmNvcmU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9taW5jb3JlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbWluY29yZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWtkaXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21rZGlyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJmN2RiOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21rZGlyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1rZGlyCisgICAgLmFsaWduIDQKKyAgICAuZW50IG1rZGlyCisKK21rZGlyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbWtkaXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBta2RpcgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWtkaXJhdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWtkaXJhdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjY2JlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ta2RpcmF0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1rZGlyYXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbWtkaXJhdAorCitta2RpcmF0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbWtkaXJhdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIG1rZGlyYXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21rbm9kLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ta25vZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlYmIwYWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ta25vZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBta25vZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBta25vZAorCitta25vZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21rbm9kCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbWtub2QKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21sb2NrLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tbG9jay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YWNhNmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tbG9jay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBtbG9jaworICAgIC5hbGlnbiA0CisgICAgLmVudCBtbG9jaworCittbG9jazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21sb2NrCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbWxvY2sKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21vdW50LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tb3VudC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMzM4NWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tb3VudC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBtb3VudAorICAgIC5hbGlnbiA0CisgICAgLmVudCBtb3VudAorCittb3VudDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21vdW50CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbW91bnQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21wcm90ZWN0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tcHJvdGVjdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYzNiZWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tcHJvdGVjdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBtcHJvdGVjdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBtcHJvdGVjdAorCittcHJvdGVjdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21wcm90ZWN0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbXByb3RlY3QKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21yZW1hcC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXJlbWFwLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIxY2NkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21yZW1hcC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBtcmVtYXAKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbXJlbWFwCisKK21yZW1hcDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21yZW1hcAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIG1yZW1hcApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXN5bmMuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21zeW5jLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdlMWM5YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21zeW5jLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1zeW5jCisgICAgLmFsaWduIDQKKyAgICAuZW50IG1zeW5jCisKK21zeW5jOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbXN5bmMKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBtc3luYwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXVubG9jay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXVubG9jay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZmMyODIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tdW5sb2NrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG11bmxvY2sKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbXVubG9jaworCittdW5sb2NrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbXVubG9jaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIG11bmxvY2sKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL211bm1hcC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXVubWFwLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI3MTdhOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL211bm1hcC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBtdW5tYXAKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbXVubWFwCisKK211bm1hcDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX211bm1hcAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIG11bm1hcApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbmFub3NsZWVwLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9uYW5vc2xlZXAuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGFjZTEyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbmFub3NsZWVwLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG5hbm9zbGVlcAorICAgIC5hbGlnbiA0CisgICAgLmVudCBuYW5vc2xlZXAKKworbmFub3NsZWVwOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbmFub3NsZWVwCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbmFub3NsZWVwCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wYXVzZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcGF1c2UuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDM0NmI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcGF1c2UuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcGF1c2UKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcGF1c2UKKworcGF1c2U6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9wYXVzZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHBhdXNlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wZXJmX2V2ZW50X29wZW4uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BlcmZfZXZlbnRfb3Blbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyYzljM2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wZXJmX2V2ZW50X29wZW4uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcGVyZl9ldmVudF9vcGVuCisgICAgLmFsaWduIDQKKyAgICAuZW50IHBlcmZfZXZlbnRfb3BlbgorCitwZXJmX2V2ZW50X29wZW46CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9wZXJmX2V2ZW50X29wZW4KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBwZXJmX2V2ZW50X29wZW4KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wZXJzb25hbGl0eS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMjA0NjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wZXJzb25hbGl0eS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBwZXJzb25hbGl0eQorICAgIC5hbGlnbiA0CisgICAgLmVudCBwZXJzb25hbGl0eQorCitwZXJzb25hbGl0eToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3BlcnNvbmFsaXR5CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcGVyc29uYWxpdHkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BpcGUyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9waXBlMi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZmRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9waXBlMi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBwaXBlMgorICAgIC5hbGlnbiA0CisgICAgLmVudCBwaXBlMgorCitwaXBlMjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3BpcGUyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcGlwZTIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BvbGwuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BvbGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWZlYzk3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcG9sbC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBwb2xsCisgICAgLmFsaWduIDQKKyAgICAuZW50IHBvbGwKKworcG9sbDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3BvbGwKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBwb2xsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wcmN0bC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcHJjdGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWYxMzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcHJjdGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcHJjdGwKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcHJjdGwKKworcHJjdGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9wcmN0bAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHByY3RsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wcmVhZDY0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wcmVhZDY0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZlODE3YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3ByZWFkNjQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcHJlYWQ2NAorICAgIC5hbGlnbiA0CisgICAgLmVudCBwcmVhZDY0CisKK3ByZWFkNjQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9wcmVhZDY0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcHJlYWQ2NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcHdyaXRlNjQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3B3cml0ZTY0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThkY2Q5OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3B3cml0ZTY0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHB3cml0ZTY0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHB3cml0ZTY0CisKK3B3cml0ZTY0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcHdyaXRlNjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBwd3JpdGU2NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ODE2Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWFkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlYWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVhZAorCityZWFkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVhZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlYWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlYWRhaGVhZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZGFoZWFkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVjNjAwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlYWRhaGVhZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCByZWFkYWhlYWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVhZGFoZWFkCisKK3JlYWRhaGVhZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3JlYWRhaGVhZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlYWRhaGVhZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZGxpbmsuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlYWRsaW5rLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NkZDU5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlYWRsaW5rLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlYWRsaW5rCisgICAgLmFsaWduIDQKKyAgICAuZW50IHJlYWRsaW5rCisKK3JlYWRsaW5rOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVhZGxpbmsKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCByZWFkbGluawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZHYuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlYWR2LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU2MWMxOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlYWR2LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlYWR2CisgICAgLmFsaWduIDQKKyAgICAuZW50IHJlYWR2CisKK3JlYWR2OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVhZHYKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCByZWFkdgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVjdmZyb20uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlY3Zmcm9tLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YzNDQxZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlY3Zmcm9tLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlY3Zmcm9tCisgICAgLmFsaWduIDQKKyAgICAuZW50IHJlY3Zmcm9tCisKK3JlY3Zmcm9tOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVjdmZyb20KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCByZWN2ZnJvbQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVjdm1zZy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVjdm1zZy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMjJjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWN2bXNnLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlY3Ztc2cKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVjdm1zZworCityZWN2bXNnOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVjdm1zZworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlY3Ztc2cKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZW1vdmV4YXR0ci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMTJiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZW1vdmV4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCByZW1vdmV4YXR0cgorICAgIC5hbGlnbiA0CisgICAgLmVudCByZW1vdmV4YXR0cgorCityZW1vdmV4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3JlbW92ZXhhdHRyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcmVtb3ZleGF0dHIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlbmFtZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwZDU3OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlbmFtZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCByZW5hbWUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVuYW1lCisKK3JlbmFtZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3JlbmFtZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlbmFtZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lYXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlbmFtZWF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJmM2M0ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlbmFtZWF0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlbmFtZWF0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHJlbmFtZWF0CisKK3JlbmFtZWF0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVuYW1lYXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCByZW5hbWVhdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcm1kaXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JtZGlyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY3N2QwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JtZGlyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJtZGlyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHJtZGlyCisKK3JtZGlyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcm1kaXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBybWRpcgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21heC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21heC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1OGIwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNjaGVkX2dldF9wcmlvcml0eV9tYXgKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfZ2V0X3ByaW9yaXR5X21heAorCitzY2hlZF9nZXRfcHJpb3JpdHlfbWF4OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX2dldF9wcmlvcml0eV9tYXgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9taW4uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9taW4uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzA3ZDcyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzY2hlZF9nZXRfcHJpb3JpdHlfbWluCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNjaGVkX2dldF9wcmlvcml0eV9taW4KKworc2NoZWRfZ2V0X3ByaW9yaXR5X21pbjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9taW4KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzY2hlZF9nZXRfcHJpb3JpdHlfbWluCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRwYXJhbS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0cGFyYW0uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWJhN2NmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0cGFyYW0uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2NoZWRfZ2V0cGFyYW0KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfZ2V0cGFyYW0KKworc2NoZWRfZ2V0cGFyYW06CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zY2hlZF9nZXRwYXJhbQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX2dldHBhcmFtCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRzY2hlZHVsZXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldHNjaGVkdWxlci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZDdmNDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRzY2hlZHVsZXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2NoZWRfZ2V0c2NoZWR1bGVyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNjaGVkX2dldHNjaGVkdWxlcgorCitzY2hlZF9nZXRzY2hlZHVsZXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzY2hlZF9nZXRzY2hlZHVsZXIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfcnJfZ2V0X2ludGVydmFsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYzNGVkMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfcnJfZ2V0X2ludGVydmFsCisKK3NjaGVkX3JyX2dldF9pbnRlcnZhbDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NjaGVkX3JyX2dldF9pbnRlcnZhbAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX3JyX2dldF9pbnRlcnZhbApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0YWZmaW5pdHkuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3NldGFmZmluaXR5LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVmYzI0MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3NldGFmZmluaXR5LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNjaGVkX3NldGFmZmluaXR5CisgICAgLmFsaWduIDQKKyAgICAuZW50IHNjaGVkX3NldGFmZmluaXR5CisKK3NjaGVkX3NldGFmZmluaXR5OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2NoZWRfc2V0YWZmaW5pdHkKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzY2hlZF9zZXRhZmZpbml0eQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0cGFyYW0uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ2NDZiZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNjaGVkX3NldHBhcmFtCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNjaGVkX3NldHBhcmFtCisKK3NjaGVkX3NldHBhcmFtOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2NoZWRfc2V0cGFyYW0KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzY2hlZF9zZXRwYXJhbQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0c2NoZWR1bGVyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzllMzljCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0c2NoZWR1bGVyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNjaGVkX3NldHNjaGVkdWxlcgorICAgIC5hbGlnbiA0CisgICAgLmVudCBzY2hlZF9zZXRzY2hlZHVsZXIKKworc2NoZWRfc2V0c2NoZWR1bGVyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2NoZWRfc2V0c2NoZWR1bGVyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF95aWVsZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfeWllbGQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2M5OWRjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfeWllbGQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2NoZWRfeWllbGQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfeWllbGQKKworc2NoZWRfeWllbGQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zY2hlZF95aWVsZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX3lpZWxkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZWxlY3QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbGVjdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNDExMmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZWxlY3QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2VsZWN0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHNlbGVjdAorCitzZWxlY3Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9fbmV3c2VsZWN0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2VsZWN0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kZmlsZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2VuZGZpbGUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNGMxNzZlCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2VuZGZpbGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2VuZGZpbGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2VuZGZpbGUKKworc2VuZGZpbGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZW5kZmlsZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNlbmRmaWxlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kbXNnLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kbXNnLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkxM2YxMwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbmRtc2cuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2VuZG1zZworICAgIC5hbGlnbiA0CisgICAgLmVudCBzZW5kbXNnCisKK3NlbmRtc2c6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZW5kbXNnCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2VuZG1zZwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2VuZHRvLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kdG8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTc3NDNkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2VuZHRvLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNlbmR0bworICAgIC5hbGlnbiA0CisgICAgLmVudCBzZW5kdG8KKworc2VuZHRvOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2VuZHRvCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2VuZHRvCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRnaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldGdpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZGJmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0Z2lkCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldGdpZAorCitzZXRnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRnaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXRnaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldGdyb3Vwcy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0Z3JvdXBzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY5MzI3ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldGdyb3Vwcy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZXRncm91cHMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0Z3JvdXBzCisKK3NldGdyb3VwczoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldGdyb3VwcworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldGdyb3VwcwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0aXRpbWVyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRpdGltZXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDQyZTA3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0aXRpbWVyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldGl0aW1lcgorICAgIC5hbGlnbiA0CisgICAgLmVudCBzZXRpdGltZXIKKworc2V0aXRpbWVyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0aXRpbWVyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2V0aXRpbWVyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRwZ2lkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRwZ2lkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRkYzgyOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHBnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0cGdpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzZXRwZ2lkCisKK3NldHBnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRwZ2lkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2V0cGdpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cHJpb3JpdHkuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHByaW9yaXR5LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI1NTBlOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHByaW9yaXR5LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldHByaW9yaXR5CisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldHByaW9yaXR5CisKK3NldHByaW9yaXR5OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0cHJpb3JpdHkKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXRwcmlvcml0eQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmVnaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHJlZ2lkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE5YjNhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHJlZ2lkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldHJlZ2lkCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldHJlZ2lkCisKK3NldHJlZ2lkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0cmVnaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXRyZWdpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmVzZ2lkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRyZXNnaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmY5NGM3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmVzZ2lkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldHJlc2dpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzZXRyZXNnaWQKKworc2V0cmVzZ2lkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0cmVzZ2lkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2V0cmVzZ2lkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRybGltaXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHJsaW1pdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlYzM3YzUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRybGltaXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0cmxpbWl0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldHJsaW1pdAorCitzZXRybGltaXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRybGltaXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXRybGltaXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHNpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0c2lkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmEwOTY2MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHNpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZXRzaWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0c2lkCisKK3NldHNpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldHNpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldHNpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0c29ja29wdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0c29ja29wdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNWU2MmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRzb2Nrb3B0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldHNvY2tvcHQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0c29ja29wdAorCitzZXRzb2Nrb3B0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0c29ja29wdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldHNvY2tvcHQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHRpbWVvZmRheS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0dGltZW9mZGF5LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdjMDNlYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHRpbWVvZmRheS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZXR0aW1lb2ZkYXkKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0dGltZW9mZGF5CisKK3NldHRpbWVvZmRheToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldHRpbWVvZmRheQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldHRpbWVvZmRheQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0eGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFhNzhhNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldHhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldHhhdHRyCisKK3NldHhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0eGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXR4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2h1dGRvd24uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NodXRkb3duLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgwZDk5YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NodXRkb3duLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNodXRkb3duCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNodXRkb3duCisKK3NodXRkb3duOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2h1dGRvd24KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzaHV0ZG93bgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lnYWN0aW9uLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdhY3Rpb24uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDBkYTU0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lnYWN0aW9uLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNpZ2FjdGlvbgorICAgIC5hbGlnbiA0CisgICAgLmVudCBzaWdhY3Rpb24KKworc2lnYWN0aW9uOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2lnYWN0aW9uCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2lnYWN0aW9uCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdhbHRzdGFjay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lnYWx0c3RhY2suUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmE0YTlhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lnYWx0c3RhY2suUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2lnYWx0c3RhY2sKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2lnYWx0c3RhY2sKKworc2lnYWx0c3RhY2s6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zaWdhbHRzdGFjaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNpZ2FsdHN0YWNrCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdwZW5kaW5nLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdwZW5kaW5nLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhkZjRkYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NpZ3BlbmRpbmcuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2lncGVuZGluZworICAgIC5hbGlnbiA0CisgICAgLmVudCBzaWdwZW5kaW5nCisKK3NpZ3BlbmRpbmc6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zaWdwZW5kaW5nCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2lncGVuZGluZwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lncHJvY21hc2suUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NpZ3Byb2NtYXNrLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdjMDFjYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NpZ3Byb2NtYXNrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNpZ3Byb2NtYXNrCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNpZ3Byb2NtYXNrCisKK3NpZ3Byb2NtYXNrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2lncHJvY21hc2sKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzaWdwcm9jbWFzawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc29ja2V0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zb2NrZXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2Q0M2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc29ja2V0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNvY2tldAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzb2NrZXQKKworc29ja2V0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc29ja2V0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc29ja2V0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zb2NrZXRwYWlyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zb2NrZXRwYWlyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdjNjdhZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NvY2tldHBhaXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc29ja2V0cGFpcgorICAgIC5hbGlnbiA0CisgICAgLmVudCBzb2NrZXRwYWlyCisKK3NvY2tldHBhaXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zb2NrZXRwYWlyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc29ja2V0cGFpcgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3RhdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3RhdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYzkxMGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zdGF0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHN0YXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc3RhdAorCitzdGF0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc3RhdDY0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc3RhdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3ltbGluay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3ltbGluay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MWM2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeW1saW5rLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHN5bWxpbmsKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc3ltbGluaworCitzeW1saW5rOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc3ltbGluaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHN5bWxpbmsKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N5bmMuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N5bmMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTIyODczCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3luYy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzeW5jCisgICAgLmFsaWduIDQKKyAgICAuZW50IHN5bmMKKworc3luYzoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3N5bmMKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzeW5jCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeXNjYWxsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeXNjYWxsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE5MmJkNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N5c2NhbGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc3lzY2FsbAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzeXNjYWxsCisKK3N5c2NhbGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zeXNjYWxsCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc3lzY2FsbApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3lzaW5mby5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3lzaW5mby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1NzdhZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeXNpbmZvLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHN5c2luZm8KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc3lzaW5mbworCitzeXNpbmZvOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc3lzaW5mbworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHN5c2luZm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3Rna2lsbC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGdraWxsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdiM2E4NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3Rna2lsbC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCB0Z2tpbGwKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdGdraWxsCisKK3Rna2lsbDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3Rna2lsbAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHRna2lsbApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGltZXMuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3RpbWVzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U4OTUwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3RpbWVzLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHRpbWVzCisgICAgLmFsaWduIDQKKyAgICAuZW50IHRpbWVzCisKK3RpbWVzOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdGltZXMKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB0aW1lcwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGtpbGwuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3RraWxsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAzN2JhYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3RraWxsLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHRraWxsCisgICAgLmFsaWduIDQKKyAgICAuZW50IHRraWxsCisKK3RraWxsOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdGtpbGwKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB0a2lsbApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdHJ1bmNhdGUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3RydW5jYXRlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE4ZjEyYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3RydW5jYXRlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHRydW5jYXRlCisgICAgLmFsaWduIDQKKyAgICAuZW50IHRydW5jYXRlCisKK3RydW5jYXRlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdHJ1bmNhdGUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB0cnVuY2F0ZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW1hc2suUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VtYXNrLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVlOTExZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VtYXNrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHVtYXNrCisgICAgLmFsaWduIDQKKyAgICAuZW50IHVtYXNrCisKK3VtYXNrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdW1hc2sKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB1bWFzawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW1vdW50Mi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW1vdW50Mi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZDlkZjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bW91bnQyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHVtb3VudDIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdW1vdW50MgorCit1bW91bnQyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdW1vdW50MgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHVtb3VudDIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VuYW1lLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bmFtZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNGY3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bmFtZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCB1bmFtZQorICAgIC5hbGlnbiA0CisgICAgLmVudCB1bmFtZQorCit1bmFtZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3VuYW1lCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgdW5hbWUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VubGluay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ4ZGFkOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VubGluay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCB1bmxpbmsKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdW5saW5rCisKK3VubGluazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3VubGluaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHVubGluawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rYXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VubGlua2F0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkzYWI1ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VubGlua2F0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHVubGlua2F0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHVubGlua2F0CisKK3VubGlua2F0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdW5saW5rYXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB1bmxpbmthdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdXRpbWVuc2F0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91dGltZW5zYXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzVjNDllCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdXRpbWVuc2F0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHV0aW1lbnNhdAorICAgIC5hbGlnbiA0CisgICAgLmVudCB1dGltZW5zYXQKKwordXRpbWVuc2F0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdXRpbWVuc2F0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgdXRpbWVuc2F0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91dGltZXMuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3V0aW1lcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZTFlNDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91dGltZXMuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdXRpbWVzCisgICAgLmFsaWduIDQKKyAgICAuZW50IHV0aW1lcworCit1dGltZXM6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl91dGltZXMKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB1dGltZXMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3dyaXRlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy93cml0ZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3NzJhY2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy93cml0ZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCB3cml0ZQorICAgIC5hbGlnbiA0CisgICAgLmVudCB3cml0ZQorCit3cml0ZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3dyaXRlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgd3JpdGUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3dyaXRldi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvd3JpdGV2LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRhY2I0MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3dyaXRldi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCB3cml0ZXYKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgd3JpdGV2CisKK3dyaXRldjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3dyaXRldgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHdyaXRldgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXNoL3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMgYi9saWJjL2FyY2gtc2gvc3lzY2FsbHMvcGVyc29uYWxpdHkuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWZjMmVhMy4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gtc2gvc3lzY2FsbHMvcGVyc29uYWxpdHkuUworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLS8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KLSNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KLQotICAgIC50ZXh0Ci0gICAgLnR5cGUgcGVyc29uYWxpdHksIEBmdW5jdGlvbgotICAgIC5nbG9ibCBwZXJzb25hbGl0eQotICAgIC5hbGlnbiA0Ci0KLXBlcnNvbmFsaXR5OgotCi0gICAgLyogaW52b2tlIHRyYXAgKi8KLSAgICBtb3YubCAgIDBmLCByMyAgLyogdHJhcCBudW0gKi8KLSAgICB0cmFwYSAgICMoMSArIDB4MTApCi0KLSAgICAvKiBjaGVjayByZXR1cm4gdmFsdWUgKi8KLSAgICBjbXAvcHogIHIwCi0gICAgYnQgICAgICBfX05SX3BlcnNvbmFsaXR5X2VuZAotCi0gICAgLyoga2VlcCBlcnJvciBudW1iZXIgKi8KLSAgICBzdHMubCAgIHByLCBALXIxNQotICAgIG1vdi5sICAgMWYsIHIxCi0gICAganNyICAgICBAcjEKLSAgICBtb3YgICAgIHIwLCByNAotICAgIGxkcy5sICAgQHIxNSssIHByCi0KLV9fTlJfcGVyc29uYWxpdHlfZW5kOgotICAgIHJ0cwotICAgIG5vcAotCi0gICAgLmFsaWduICAyCi0wOiAgLmxvbmcgICBfX05SX3BlcnNvbmFsaXR5Ci0xOiAgLmxvbmcgICBfX3NldF9zeXNjYWxsX2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N0cmluZy9zc3NlMy1tZW1jcHk1LlMgYi9saWJjL2FyY2gteDg2L3N0cmluZy9zc3NlMy1tZW1jcHk1LlMKaW5kZXggMWJmNmQyMi4uYjA2MTJhNiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zdHJpbmcvc3NzZTMtbWVtY3B5NS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3RyaW5nL3Nzc2UzLW1lbWNweTUuUwpAQCAtMjksMjMgKzI5LDE5IEBACiAqLwogCiAjaWZuZGVmIE1FTUNQWQotIyBkZWZpbmUgTUVNQ1BZICAgICAgICAgc3NzZTNfbWVtY3B5NQorIyBkZWZpbmUgTUVNQ1BZCXNzc2UzX21lbWNweTUKICNlbmRpZgogCiAjaWZuZGVmIEwKICMgZGVmaW5lIEwobGFiZWwpCS5MIyNsYWJlbAogI2VuZGlmCiAKLSNpZm5kZWYgQUxJR04KLSMgZGVmaW5lIEFMSUdOKG4pCS5wMmFsaWduIG4KLSNlbmRpZgotCiAjaWZuZGVmIGNmaV9zdGFydHByb2MKLSMgZGVmaW5lIGNmaV9zdGFydHByb2MJCQkuY2ZpX3N0YXJ0cHJvYworIyBkZWZpbmUgY2ZpX3N0YXJ0cHJvYwkuY2ZpX3N0YXJ0cHJvYwogI2VuZGlmCiAKICNpZm5kZWYgY2ZpX2VuZHByb2MKLSMgZGVmaW5lIGNmaV9lbmRwcm9jCQkJLmNmaV9lbmRwcm9jCisjIGRlZmluZSBjZmlfZW5kcHJvYwkuY2ZpX2VuZHByb2MKICNlbmRpZgogCiAjaWZuZGVmIGNmaV9yZWxfb2Zmc2V0CkBAIC01MywzMyArNDksMjUgQEAKICNlbmRpZgogCiAjaWZuZGVmIGNmaV9yZXN0b3JlCi0jIGRlZmluZSBjZmlfcmVzdG9yZShyZWcpCQkuY2ZpX3Jlc3RvcmUgcmVnCisjIGRlZmluZSBjZmlfcmVzdG9yZShyZWcpCS5jZmlfcmVzdG9yZSByZWcKICNlbmRpZgogCiAjaWZuZGVmIGNmaV9hZGp1c3RfY2ZhX29mZnNldAogIyBkZWZpbmUgY2ZpX2FkanVzdF9jZmFfb2Zmc2V0KG9mZikJLmNmaV9hZGp1c3RfY2ZhX29mZnNldCBvZmYKICNlbmRpZgogCi0jaWZuZGVmIGNmaV9yZW1lbWJlcl9zdGF0ZQotIyBkZWZpbmUgY2ZpX3JlbWVtYmVyX3N0YXRlCQkuY2ZpX3JlbWVtYmVyX3N0YXRlCi0jZW5kaWYKLQotI2lmbmRlZiBjZmlfcmVzdG9yZV9zdGF0ZQotIyBkZWZpbmUgY2ZpX3Jlc3RvcmVfc3RhdGUJCS5jZmlfcmVzdG9yZV9zdGF0ZQotI2VuZGlmCi0KICNpZm5kZWYgRU5UUlkKLSMgZGVmaW5lIEVOVFJZKG5hbWUpCQkJXAotCS50eXBlIG5hbWUsICBAZnVuY3Rpb247IAlcCi0JLmdsb2JsIG5hbWU7CQkJXAotCS5wMmFsaWduIDQ7CQkJXAotbmFtZToJCQkJCVwKKyMgZGVmaW5lIEVOVFJZKG5hbWUpCQlcCisJLnR5cGUgbmFtZSwgIEBmdW5jdGlvbjsJCVwKKwkuZ2xvYmwgbmFtZTsJCVwKKwkucDJhbGlnbiA0OwkJXAorbmFtZToJCVwKIAljZmlfc3RhcnRwcm9jCiAjZW5kaWYKIAogI2lmbmRlZiBFTkQKLSMgZGVmaW5lIEVORChuYW1lKQkJCVwKLQljZmlfZW5kcHJvYzsJCQlcCisjIGRlZmluZSBFTkQobmFtZSkJCVwKKwljZmlfZW5kcHJvYzsJCVwKIAkuc2l6ZSBuYW1lLCAuLW5hbWUKICNlbmRpZgogCkBAIC05MywxMiArODEsMTIgQEAKICMgZGVmaW5lIExFTgkJU1JDKzQKICNlbmRpZgogCi0jZGVmaW5lIENGSV9QVVNIKFJFRykJCQkJCQlcCi0gIGNmaV9hZGp1c3RfY2ZhX29mZnNldCAoNCk7CQkJCQlcCisjZGVmaW5lIENGSV9QVVNIKFJFRykJCVwKKyAgY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICg0KTsJCVwKICAgY2ZpX3JlbF9vZmZzZXQgKFJFRywgMCkKIAotI2RlZmluZSBDRklfUE9QKFJFRykJCQkJCQlcCi0gIGNmaV9hZGp1c3RfY2ZhX29mZnNldCAoLTQpOwkJCQkJXAorI2RlZmluZSBDRklfUE9QKFJFRykJCVwKKyAgY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICgtNCk7CQlcCiAgIGNmaV9yZXN0b3JlIChSRUcpCiAKICNkZWZpbmUgUFVTSChSRUcpCXB1c2hsIFJFRzsgQ0ZJX1BVU0ggKFJFRykKQEAgLTExMCwzOCArOTgsMjYgQEAKICMgZGVmaW5lIFJFVFVSTl9FTkQJUE9QICglZWJ4KTsgcmV0CiAjIGRlZmluZSBSRVRVUk4JCVJFVFVSTl9FTkQ7IENGSV9QVVNIICglZWJ4KQogIyBkZWZpbmUgSk1QVEJMKEksIEIpCUkgLSBCCisjIHVuZGVmIF9faTY4NgorCisjIGRlZmluZSBTRVRVUF9QSUNfUkVHKHgpCWNhbGwJX19pNjg2LmdldF9wY190aHVuay54CiAKIC8qIExvYWQgYW4gZW50cnkgaW4gYSBqdW1wIHRhYmxlIGludG8gRUJYIGFuZCBicmFuY2ggdG8gaXQuICBUQUJMRSBpcyBhCi0gICBqdW1wIHRhYmxlIHdpdGggcmVsYXRpdmUgb2Zmc2V0cy4gIElOREVYIGlzIGEgcmVnaXN0ZXIgY29udGFpbnMgdGhlCi0gICBpbmRleCBpbnRvIHRoZSBqdW1wIHRhYmxlLiAgIFNDQUxFIGlzIHRoZSBzY2FsZSBvZiBJTkRFWC4gKi8KKwlqdW1wIHRhYmxlIHdpdGggcmVsYXRpdmUgb2Zmc2V0cy4gIElOREVYIGlzIGEgcmVnaXN0ZXIgY29udGFpbnMgdGhlCisJaW5kZXggaW50byB0aGUganVtcCB0YWJsZS4gICBTQ0FMRSBpcyB0aGUgc2NhbGUgb2YgSU5ERVguICovCisKICMgZGVmaW5lIEJSQU5DSF9UT19KTVBUQkxfRU5UUlkoVEFCTEUsIElOREVYLCBTQ0FMRSkJCVwKLSAgICAvKiBXZSBmaXJzdCBsb2FkIFBDIGludG8gRUJYLiAgKi8JCQkJXAotICAgIGNhbGwJX19pNjg2LmdldF9wY190aHVuay5ieDsJCQkJXAotICAgIC8qIEdldCB0aGUgYWRkcmVzcyBvZiB0aGUganVtcCB0YWJsZS4gICovCQkJXAotICAgIGFkZGwJJChUQUJMRSAtIC4pLCAlZWJ4OwkJCQlcCi0gICAgLyogR2V0IHRoZSBlbnRyeSBhbmQgY29udmVydCB0aGUgcmVsYXRpdmUgb2Zmc2V0IHRvIHRoZQlcCi0gICAgICAgYWJzb2x1dGUgYWRkcmVzcy4gICovCQkJCQlcCi0gICAgYWRkbAkoJWVieCxJTkRFWCxTQ0FMRSksICVlYng7CQkJXAotICAgIC8qIFdlIGxvYWRlZCB0aGUganVtcCB0YWJsZS4gIEdvLiAgKi8JCQlcCi0gICAgam1wCQkqJWVieAotCi0jIGRlZmluZSBCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKFRBQkxFKQkJCVwKLSAgICBhZGRsCSQoVEFCTEUgLSAuKSwgJWVieAotCi0jIGRlZmluZSBCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoVEFCTEUsIElOREVYLCBTQ0FMRSkJXAotICAgIGFkZGwJKCVlYngsSU5ERVgsU0NBTEUpLCAlZWJ4OwkJCVwKLSAgICAvKiBXZSBsb2FkZWQgdGhlIGp1bXAgdGFibGUuICBHby4gICovCQkJXAotICAgIGptcAkJKiVlYngKLQotCS5zZWN0aW9uCS5nbnUubGlua29uY2UudC5fX2k2ODYuZ2V0X3BjX3RodW5rLmJ4LCJheCIsQHByb2diaXRzCi0JLmdsb2JsCV9faTY4Ni5nZXRfcGNfdGh1bmsuYngKLQkuaGlkZGVuCV9faTY4Ni5nZXRfcGNfdGh1bmsuYngKLQlBTElHTiAoNCkKLQkudHlwZQlfX2k2ODYuZ2V0X3BjX3RodW5rLmJ4LEBmdW5jdGlvbgotX19pNjg2LmdldF9wY190aHVuay5ieDoKLQltb3ZsCSglZXNwKSwgJWVieAotCXJldAorICAgIC8qIFdlIGZpcnN0IGxvYWQgUEMgaW50byBFQlguICAqLwkJXAorCVNFVFVQX1BJQ19SRUcoYngpOwkJXAorICAgIC8qIEdldCB0aGUgYWRkcmVzcyBvZiB0aGUganVtcCB0YWJsZS4gICovCQlcCisJYWRkbAkkKFRBQkxFIC0gLiksICVlYng7CQlcCisgICAgLyogR2V0IHRoZSBlbnRyeSBhbmQgY29udmVydCB0aGUgcmVsYXRpdmUgb2Zmc2V0IHRvIHRoZQkJXAorCWFic29sdXRlCWFkZHJlc3MuICAqLwkJXAorCWFkZGwJKCVlYngsIElOREVYLCBTQ0FMRSksICVlYng7CQlcCisgICAgLyogV2UgbG9hZGVkIHRoZSBqdW1wIHRhYmxlLiAgR28uICAqLwkJXAorCWptcAkqJWVieAogI2Vsc2UKKwogIyBkZWZpbmUgUEFSTVMJCTQKICMgZGVmaW5lIEVOVFJBTkNFCiAjIGRlZmluZSBSRVRVUk5fRU5ECXJldApAQCAtMTQ5LDE1ICsxMjUsMTEgQEAKICMgZGVmaW5lIEpNUFRCTChJLCBCKQlJCiAKIC8qIEJyYW5jaCB0byBhbiBlbnRyeSBpbiBhIGp1bXAgdGFibGUuICBUQUJMRSBpcyBhIGp1bXAgdGFibGUgd2l0aAotICAgYWJzb2x1dGUgb2Zmc2V0cy4gIElOREVYIGlzIGEgcmVnaXN0ZXIgY29udGFpbnMgdGhlIGluZGV4IGludG8gdGhlCi0gICBqdW1wIHRhYmxlLiAgU0NBTEUgaXMgdGhlIHNjYWxlIG9mIElOREVYLiAqLworCWFic29sdXRlIG9mZnNldHMuICBJTkRFWCBpcyBhIHJlZ2lzdGVyIGNvbnRhaW5zIHRoZSBpbmRleCBpbnRvIHRoZQorCWp1bXAgdGFibGUuICBTQ0FMRSBpcyB0aGUgc2NhbGUgb2YgSU5ERVguICovCisKICMgZGVmaW5lIEJSQU5DSF9UT19KTVBUQkxfRU5UUlkoVEFCTEUsIElOREVYLCBTQ0FMRSkJCVwKLSAgICBqbXAJCSpUQUJMRSgsSU5ERVgsU0NBTEUpCi0KLSMgZGVmaW5lIEJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoVEFCTEUpCi0KLSMgZGVmaW5lIEJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChUQUJMRSwgSU5ERVgsIFNDQUxFKQkJXAotICAgIGptcAkJKlRBQkxFKCxJTkRFWCxTQ0FMRSkKKwlqbXAJKlRBQkxFKCwgSU5ERVgsIFNDQUxFKQogI2VuZGlmCiAKIAkuc2VjdGlvbiAudGV4dC5zc3NlMywiYXgiLEBwcm9nYml0cwpAQCAtMTc0LDYgKzE0Niw4IEBACiAJY21wCSQzMiwgJWVjeAogCWphZQlMKG1lbW1vdmVfYndkKQogCWptcAlMKGJrX3dyaXRlX2xlc3MzMmJ5dGVzXzIpCisKKwkucDJhbGlnbiA0CiBMKG1lbW1vdmVfYndkKToKIAlhZGQJJWVjeCwgJWVheAogCWNtcAklZWF4LCAlZWR4CkBAIC0xOTQsMjEgKzE2OCwyNSBAQAogCWFkZAklZWN4LCAlZWF4CiAJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJLnAyYWxpZ24gNAogTChia193cml0ZSk6CiAJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OF9ieXRlc19id2QpLCAlZWN4LCA0KQogI2VuZGlmCiAKLQlBTElHTiAoNCkKLS8qIEVDWCA+IDMyIGFuZCBFRFggaXMgNCBieXRlIGFsaWduZWQuICAqLworCS5wMmFsaWduIDQKIEwoNDhieXRlc29ybW9yZSk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92bHBkCSglZWF4KSwgJXhtbTAKKwltb3ZscGQJOCglZWF4KSwgJXhtbTEKKwltb3ZscGQJJXhtbTAsICglZWR4KQorCW1vdmxwZAkleG1tMSwgOCglZWR4KQorI2Vsc2UKIAltb3ZkcXUJKCVlYXgpLCAleG1tMAorI2VuZGlmCiAJUFVTSCAoJWVkaSkKIAltb3ZsCSVlZHgsICVlZGkKIAlhbmQJJC0xNiwgJWVkeAotCVBVU0ggKCVlc2kpCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCiAJYWRkCSQxNiwgJWVkeAotCW1vdmwJJWVkaSwgJWVzaQogCXN1YgklZWR4LCAlZWRpCiAJYWRkCSVlZGksICVlY3gKIAlzdWIJJWVkaSwgJWVheApAQCAtMjE3LDcgKzE5NSw3IEBACiAJY21wCSRTSEFSRURfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CiAjZWxzZQogIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQotCWNhbGwJX19pNjg2LmdldF9wY190aHVuay5ieAorCVNFVFVQX1BJQ19SRUcoYngpCiAJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKIAljbXAJX194ODZfc2hhcmVkX2NhY2hlX3NpemVfaGFsZkBHT1RPRkYoJWVieCksICVlY3gKICMgZWxzZQpAQCAtMjI5LDE5ICsyMDcsMjAgQEAKIAlqYWUJTChsYXJnZV9wYWdlKQogCWFuZAkkMHhmLCAlZWRpCiAJanoJTChzaGxfMCkKLQogCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkgKEwoc2hsX3RhYmxlKSwgJWVkaSwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAogTChzaGxfMCk6Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKKyNpZmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgogCXhvcgklZWRpLCAlZWRpCi0JUE9QICglZXNpKQogCWNtcAkkMTI3LCAlZWN4CiAJamEJTChzaGxfMF9nb2JibGUpCiAJbGVhCS0zMiglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAogTChzaGxfMF9sb29wKToKIAltb3ZkcWEJKCVlYXgsICVlZGkpLCAleG1tMAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTEKQEAgLTI3MywzMiArMjUyLDM1IEBACiAJbW92ZHFhCSV4bW0wLCAoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTEsIDE2KCVlZHgsICVlZGkpCiAJbGVhCTMyKCVlZGkpLCAlZWRpCisKIEwoc2hsXzBfZW5kKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJYWRkCSVlZGksICVlYXgKIAlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbiksICVlY3gsIDQpCiAKIAlDRklfUFVTSCAoJWVkaSkKLUwoc2hsXzBfZ29iYmxlKToKIAorCS5wMmFsaWduIDQKK0woc2hsXzBfZ29iYmxlKToKICNpZmRlZiBEQVRBX0NBQ0hFX1NJWkVfSEFMRgogCWNtcAkkREFUQV9DQUNIRV9TSVpFX0hBTEYsICVlY3gKICNlbHNlCiAjIGlmIChkZWZpbmVkIFNIQVJFRCB8fCBkZWZpbmVkIF9fUElDX18pCi0JY2FsbAlfX2k2ODYuZ2V0X3BjX3RodW5rLmJ4CisJU0VUVVBfUElDX1JFRyhieCkKIAlhZGQJJF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgJWVieAogCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZkBHT1RPRkYoJWVieCksICVlY3gKICMgZWxzZQogCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZiwgJWVjeAogIyBlbmRpZgogI2VuZGlmCi0KLQlQT1AgKCVlZGkpCisJUE9QCSglZWRpKQogCWxlYQktMTI4KCVlY3gpLCAlZWN4CiAJamFlCUwoc2hsXzBfZ29iYmxlX21lbV9sb29wKQorCisJLnAyYWxpZ24gNAogTChzaGxfMF9nb2JibGVfY2FjaGVfbG9vcCk6CiAJbW92ZHFhCSglZWF4KSwgJXhtbTAKIAltb3ZkcWEJMHgxMCglZWF4KSwgJXhtbTEKQEAgLTMyOCwxNyArMzEwLDE1IEBACiAJbW92ZHFhCSglZWF4KSwgJXhtbTAKIAlzdWIJJDB4NDAsICVlY3gKIAltb3ZkcWEJMHgxMCglZWF4KSwgJXhtbTEKLQogCW1vdmRxYQkleG1tMCwgKCVlZHgpCiAJbW92ZHFhCSV4bW0xLCAweDEwKCVlZHgpCi0KIAltb3ZkcWEJMHgyMCglZWF4KSwgJXhtbTAKIAltb3ZkcWEJMHgzMCglZWF4KSwgJXhtbTEKIAlhZGQJJDB4NDAsICVlYXgKLQogCW1vdmRxYQkleG1tMCwgMHgyMCglZWR4KQogCW1vdmRxYQkleG1tMSwgMHgzMCglZWR4KQogCWFkZAkkMHg0MCwgJWVkeAorCiBMKHNobF8wX2NhY2hlX2xlc3NfNjRieXRlcyk6CiAJY21wCSQweDIwLCAlZWN4CiAJamIJTChzaGxfMF9jYWNoZV9sZXNzXzMyYnl0ZXMpCkBAIC0zNDksNiArMzI5LDcgQEAKIAltb3ZkcWEJJXhtbTAsICglZWR4KQogCW1vdmRxYQkleG1tMSwgMHgxMCglZWR4KQogCWFkZAkkMHgyMCwgJWVkeAorCiBMKHNobF8wX2NhY2hlX2xlc3NfMzJieXRlcyk6CiAJY21wCSQweDEwLCAlZWN4CiAJamIJTChzaGxfMF9jYWNoZV9sZXNzXzE2Ynl0ZXMpCkBAIC0zNTcsMTMgKzMzOCwxMyBAQAogCWFkZAkkMHgxMCwgJWVheAogCW1vdmRxYQkleG1tMCwgKCVlZHgpCiAJYWRkCSQweDEwLCAlZWR4CisKIEwoc2hsXzBfY2FjaGVfbGVzc18xNmJ5dGVzKToKIAlhZGQJJWVjeCwgJWVkeAogCWFkZAklZWN4LCAlZWF4CiAJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKIEwoc2hsXzBfZ29iYmxlX21lbV9sb29wKToKIAlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCiAJcHJlZmV0Y2h0MCAweDI4MCglZWF4KQpAQCAtNDA4LDYgKzM4OSw3IEBACiAJbW92ZHFhCSV4bW0wLCAweDIwKCVlZHgpCiAJbW92ZHFhCSV4bW0xLCAweDMwKCVlZHgpCiAJYWRkCSQweDQwLCAlZWR4CisKIEwoc2hsXzBfbWVtX2xlc3NfNjRieXRlcyk6CiAJY21wCSQweDIwLCAlZWN4CiAJamIJTChzaGxfMF9tZW1fbGVzc18zMmJ5dGVzKQpAQCAtNDE4LDYgKzQwMCw3IEBACiAJbW92ZHFhCSV4bW0wLCAoJWVkeCkKIAltb3ZkcWEJJXhtbTEsIDB4MTAoJWVkeCkKIAlhZGQJJDB4MjAsICVlZHgKKwogTChzaGxfMF9tZW1fbGVzc18zMmJ5dGVzKToKIAljbXAJJDB4MTAsICVlY3gKIAlqYglMKHNobF8wX21lbV9sZXNzXzE2Ynl0ZXMpCkBAIC00MjYsMjQgKzQwOSw4NCBAQAogCWFkZAkkMHgxMCwgJWVheAogCW1vdmRxYQkleG1tMCwgKCVlZHgpCiAJYWRkCSQweDEwLCAlZWR4CisKIEwoc2hsXzBfbWVtX2xlc3NfMTZieXRlcyk6CiAJYWRkCSVlY3gsICVlZHgKIAlhZGQJJWVjeCwgJWVheAotCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkgKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkgKEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKHNobF8xKToKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKEwodGFibGVfNDhieXRlc19md2QpKQotCWxlYQktMSglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8xX2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMSglZWF4KSwgJXhtbTEKKyNlbHNlCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZhcHMJLTEoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzFfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDFMb29wU3RhcnQpOgorCXByZWZldGNodDAgMHgxYzAoJWVheCkKKwlwcmVmZXRjaHQwIDB4MWMwKCVlZHgpCisJbW92YXBzCTE1KCVlYXgpLCAleG1tMgorCW1vdmFwcwkzMSglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDcoJWVheCksICV4bW00CisJbW92YXBzCTYzKCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQxLCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQxLCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMSwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMSwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGwxTG9vcFN0YXJ0KQorCitMKFNobDFMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMTUoJWVheCksICV4bW0yCisJbW92YXBzCTMxKCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDEsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDEsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzFfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTEoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8xX25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNDUzLDggKzQ5Niw3IEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQotCi0JamIJTChzaGxfMV9lbmQpCisJamIJTChzaF8xX2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTQ2NSwzMCArNTA3LDkwIEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQorCWphZQlMKHNoXzFfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF8xX2xvb3ApCi0KLUwoc2hsXzFfZW5kKToKK0woc2hfMV9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkxKCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF8yKToKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKEwodGFibGVfNDhieXRlc19md2QpKQotCWxlYQktMiglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8yX2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMiglZWF4KSwgJXhtbTEKKyNlbHNlCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZhcHMJLTIoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzJfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDJMb29wU3RhcnQpOgorCXByZWZldGNodDAgMHgxYzAoJWVheCkKKwlwcmVmZXRjaHQwIDB4MWMwKCVlZHgpCisJbW92YXBzCTE0KCVlYXgpLCAleG1tMgorCW1vdmFwcwkzMCglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDYoJWVheCksICV4bW00CisJbW92YXBzCTYyKCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQyLCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQyLCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMiwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMiwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGwyTG9vcFN0YXJ0KQorCitMKFNobDJMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMTQoJWVheCksICV4bW0yCisJbW92YXBzCTMwKCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDIsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDIsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzJfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTIoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8yX25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNDk4LDggKzYwMCw3IEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQotCi0JamIJTChzaGxfMl9lbmQpCisJamIJTChzaF8yX2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTUxMCwzMCArNjExLDkwIEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQorCWphZQlMKHNoXzJfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF8yX2xvb3ApCi0KLUwoc2hsXzJfZW5kKToKK0woc2hfMl9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkyKCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF8zKToKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKEwodGFibGVfNDhieXRlc19md2QpKQotCWxlYQktMyglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8zX2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMyglZWF4KSwgJXhtbTEKKyNlbHNlCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZhcHMJLTMoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzNfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDNMb29wU3RhcnQpOgorCXByZWZldGNodDAgMHgxYzAoJWVheCkKKwlwcmVmZXRjaHQwIDB4MWMwKCVlZHgpCisJbW92YXBzCTEzKCVlYXgpLCAleG1tMgorCW1vdmFwcwkyOSglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDUoJWVheCksICV4bW00CisJbW92YXBzCTYxKCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQzLCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQzLCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMywgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMywgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGwzTG9vcFN0YXJ0KQorCitMKFNobDNMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMTMoJWVheCksICV4bW0yCisJbW92YXBzCTI5KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDMsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDMsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzNfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTMoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8zX25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNTQ0LDcgKzcwNSw3IEBACiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQogCi0JamIJTChzaGxfM19lbmQpCisJamIJTChzaF8zX2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTU1NiwyOSArNzE3LDkwIEBACiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQogCi0JamFlCUwoc2hsXzNfbG9vcCkKKwlqYWUJTChzaF8zX25vX3ByZWZldGNoX2xvb3ApCiAKLUwoc2hsXzNfZW5kKToKK0woc2hfM19lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkzKCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF80KToKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKEwodGFibGVfNDhieXRlc19md2QpKQotCWxlYQktNCglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF80X2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktNCglZWF4KSwgJXhtbTEKKyNlbHNlCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZhcHMJLTQoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzRfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDRMb29wU3RhcnQpOgorCXByZWZldGNodDAgMHgxYzAoJWVheCkKKwlwcmVmZXRjaHQwIDB4MWMwKCVlZHgpCisJbW92YXBzCTEyKCVlYXgpLCAleG1tMgorCW1vdmFwcwkyOCglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDQoJWVheCksICV4bW00CisJbW92YXBzCTYwKCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQ0LCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQ0LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkNCwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkNCwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGw0TG9vcFN0YXJ0KQorCitMKFNobDRMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMTIoJWVheCksICV4bW0yCisJbW92YXBzCTI4KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDQsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDQsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzRfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTQoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF80X25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNTg5LDcgKzgxMSw3IEBACiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQogCi0JamIJTChzaGxfNF9lbmQpCisJamIJTChzaF80X2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTYwMSwyOSArODIzLDkwIEBACiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQogCi0JamFlCUwoc2hsXzRfbG9vcCkKKwlqYWUJTChzaF80X25vX3ByZWZldGNoX2xvb3ApCiAKLUwoc2hsXzRfZW5kKToKK0woc2hfNF9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQk0KCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF81KToKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKEwodGFibGVfNDhieXRlc19md2QpKQotCWxlYQktNSglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF81X2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktNSglZWF4KSwgJXhtbTEKKyNlbHNlCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZhcHMJLTUoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzVfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDVMb29wU3RhcnQpOgorCXByZWZldGNodDAgMHgxYzAoJWVheCkKKwlwcmVmZXRjaHQwIDB4MWMwKCVlZHgpCisJbW92YXBzCTExKCVlYXgpLCAleG1tMgorCW1vdmFwcwkyNyglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDMoJWVheCksICV4bW00CisJbW92YXBzCTU5KCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQ1LCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQ1LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkNSwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkNSwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGw1TG9vcFN0YXJ0KQorCitMKFNobDVMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMTEoJWVheCksICV4bW0yCisJbW92YXBzCTI3KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDUsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDUsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzVfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTUoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF81X25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNjM0LDcgKzkxNyw3IEBACiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQogCi0JamIJTChzaGxfNV9lbmQpCisJamIJTChzaF81X2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTY0NiwyOSArOTI5LDkwIEBACiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQogCi0JamFlCUwoc2hsXzVfbG9vcCkKKwlqYWUJTChzaF81X25vX3ByZWZldGNoX2xvb3ApCiAKLUwoc2hsXzVfZW5kKToKK0woc2hfNV9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQk1KCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF82KToKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKEwodGFibGVfNDhieXRlc19md2QpKQotCWxlYQktNiglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF82X2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktNiglZWF4KSwgJXhtbTEKKyNlbHNlCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZhcHMJLTYoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzZfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDZMb29wU3RhcnQpOgorCXByZWZldGNodDAgMHgxYzAoJWVheCkKKwlwcmVmZXRjaHQwIDB4MWMwKCVlZHgpCisJbW92YXBzCTEwKCVlYXgpLCAleG1tMgorCW1vdmFwcwkyNiglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDIoJWVheCksICV4bW00CisJbW92YXBzCTU4KCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQ2LCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQ2LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkNiwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkNiwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGw2TG9vcFN0YXJ0KQorCitMKFNobDZMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMTAoJWVheCksICV4bW0yCisJbW92YXBzCTI2KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDYsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDYsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzZfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTYoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF82X25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNjc5LDcgKzEwMjMsNyBAQAogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKIAotCWpiCUwoc2hsXzZfZW5kKQorCWpiCUwoc2hfNl9lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC02OTEsMjkgKzEwMzUsOTAgQEAKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCiAKLQlqYWUJTChzaGxfNl9sb29wKQorCWphZQlMKHNoXzZfbm9fcHJlZmV0Y2hfbG9vcCkKIAotTChzaGxfNl9lbmQpOgorTChzaF82X2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTYoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzcpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS03KCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzdfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS03KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktNyglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfN19ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsN0xvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJOSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjUoJWVheCksICV4bW0zCisJbW92YXBzCTQxKCVlYXgpLCAleG1tNAorCW1vdmFwcwk1NyglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkNywgJXhtbTQsICV4bW01CisJcGFsaWducgkkNywgJXhtbTMsICV4bW00CisJbW92YXBzCSV4bW01LCA0OCglZWR4KQorCXBhbGlnbnIJJDcsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDcsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsN0xvb3BTdGFydCkKKworTChTaGw3TG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTkoJWVheCksICV4bW0yCisJbW92YXBzCTI1KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDcsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDcsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzdfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTcoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF83X25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNzIzLDggKzExMjgsNyBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKLQotCWpiCUwoc2hsXzdfZW5kKQorCWpiCUwoc2hfN19lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC03MzUsMzAgKzExMzksOTAgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfN19ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzdfbG9vcCkKLQotTChzaGxfN19lbmQpOgorTChzaF83X2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTcoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzgpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS04KCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzhfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS04KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktOCglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfOF9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsOExvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJOCglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjQoJWVheCksICV4bW0zCisJbW92YXBzCTQwKCVlYXgpLCAleG1tNAorCW1vdmFwcwk1NiglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkOCwgJXhtbTQsICV4bW01CisJcGFsaWducgkkOCwgJXhtbTMsICV4bW00CisJbW92YXBzCSV4bW01LCA0OCglZWR4KQorCXBhbGlnbnIJJDgsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDgsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsOExvb3BTdGFydCkKKworTChMb29wTGVhdmU4KToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTgoJWVheCksICV4bW0yCisJbW92YXBzCTI0KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDgsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDgsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzhfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTgoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF84X25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtNzY4LDggKzEyMzIsNyBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKLQotCWpiCUwoc2hsXzhfZW5kKQorCWpiCUwoc2hfOF9lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC03ODAsMzAgKzEyNDMsOTEgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfOF9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzhfbG9vcCkKLQotTChzaGxfOF9lbmQpOgorTChzaF84X2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTgoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzkpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS05KCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzlfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS05KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktOSglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfOV9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsOUxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJNyglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjMoJWVheCksICV4bW0zCisJbW92YXBzCTM5KCVlYXgpLCAleG1tNAorCW1vdmFwcwk1NSglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkOSwgJXhtbTQsICV4bW01CisJcGFsaWducgkkOSwgJXhtbTMsICV4bW00CisJbW92YXBzCSV4bW01LCA0OCglZWR4KQorCXBhbGlnbnIJJDksICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDksICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsOUxvb3BTdGFydCkKKworTChTaGw5TG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTcoJWVheCksICV4bW0yCisJbW92YXBzCTIzKCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDksICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDksICV4bW0xLCAleG1tMgorCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfOV9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktOSglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzlfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC04MTMsOCArMTMzNyw3IEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQotCi0JamIJTChzaGxfOV9lbmQpCisJamIJTChzaF85X2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTgyNSwzMCArMTM0OCw5MSBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF85X25vX3ByZWZldGNoX2xvb3ApCiAKLQlqYWUJTChzaGxfOV9sb29wKQotCi1MKHNobF85X2VuZCk6CitMKHNoXzlfZW5kX25vX3ByZWZldGNoX2xvb3ApOgogCWxlYQkzMiglZWN4KSwgJWVjeAogCWFkZAklZWN4LCAlZWRpCiAJYWRkCSVlZGksICVlZHgKIAlsZWEJOSglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfMTApOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0xMCglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8xMF9sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTEwKCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMTAoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzEwX25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGwxMExvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJNiglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjIoJWVheCksICV4bW0zCisJbW92YXBzCTM4KCVlYXgpLCAleG1tNAorCW1vdmFwcwk1NCglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkMTAsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDEwLCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMTAsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDEwLCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDEwTG9vcFN0YXJ0KQorCitMKFNobDEwTG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTYoJWVheCksICV4bW0yCisJbW92YXBzCTIyKCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDEwLCAleG1tMiwgJXhtbTMKKwlwYWxpZ25yCSQxMCwgJXhtbTEsICV4bW0yCisKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwlsZWEJMzIoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJMzIoJWVheCwgJWVjeCksICVlYXgKKwlQT1AgKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAorTChzaF8xMF9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMTAoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8xMF9ub19wcmVmZXRjaF9sb29wKToKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeAogCW1vdmRxYQkzMiglZWF4LCAlZWRpKSwgJXhtbTMKQEAgLTg1OCw4ICsxNDQyLDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF8xMF9lbmQpCisJamIJTChzaF8xMF9lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC04NzAsMzAgKzE0NTMsOTEgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfMTBfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF8xMF9sb29wKQotCi1MKHNobF8xMF9lbmQpOgorTChzaF8xMF9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkxMCglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfMTEpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0xMSglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8xMV9sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTExKCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMTEoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzExX25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGwxMUxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJNSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjEoJWVheCksICV4bW0zCisJbW92YXBzCTM3KCVlYXgpLCAleG1tNAorCW1vdmFwcwk1MyglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkMTEsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDExLCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMTEsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDExLCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDExTG9vcFN0YXJ0KQorCitMKFNobDExTG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTUoJWVheCksICV4bW0yCisJbW92YXBzCTIxKCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDExLCAleG1tMiwgJXhtbTMKKwlwYWxpZ25yCSQxMSwgJXhtbTEsICV4bW0yCisKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwlsZWEJMzIoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJMzIoJWVheCwgJWVjeCksICVlYXgKKwlQT1AgKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAorTChzaF8xMV9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMTEoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8xMV9ub19wcmVmZXRjaF9sb29wKToKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeAogCW1vdmRxYQkzMiglZWF4LCAlZWRpKSwgJXhtbTMKQEAgLTkwMyw4ICsxNTQ3LDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF8xMV9lbmQpCisJamIJTChzaF8xMV9lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC05MTUsMzAgKzE1NTgsOTEgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfMTFfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF8xMV9sb29wKQotCi1MKHNobF8xMV9lbmQpOgorTChzaF8xMV9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkxMSglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfMTIpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0xMiglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8xMl9sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTEyKCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMTIoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzEyX25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGwxMkxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJNCglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjAoJWVheCksICV4bW0zCisJbW92YXBzCTM2KCVlYXgpLCAleG1tNAorCW1vdmFwcwk1MiglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkMTIsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDEyLCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMTIsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDEyLCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDEyTG9vcFN0YXJ0KQorCitMKFNobDEyTG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTQoJWVheCksICV4bW0yCisJbW92YXBzCTIwKCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDEyLCAleG1tMiwgJXhtbTMKKwlwYWxpZ25yCSQxMiwgJXhtbTEsICV4bW0yCisKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwlsZWEJMzIoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJMzIoJWVheCwgJWVjeCksICVlYXgKKwlQT1AgKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAorTChzaF8xMl9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMTIoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8xMl9ub19wcmVmZXRjaF9sb29wKToKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeAogCW1vdmRxYQkzMiglZWF4LCAlZWRpKSwgJXhtbTMKQEAgLTk0OCw4ICsxNjUyLDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF8xMl9lbmQpCisJamIJTChzaF8xMl9lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC05NjAsMzAgKzE2NjMsOTEgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfMTJfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF8xMl9sb29wKQotCi1MKHNobF8xMl9lbmQpOgorTChzaF8xMl9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkxMiglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfMTMpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0xMyglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8xM19sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTEzKCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMTMoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzEzX25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGwxM0xvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMyglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMTkoJWVheCksICV4bW0zCisJbW92YXBzCTM1KCVlYXgpLCAleG1tNAorCW1vdmFwcwk1MSglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkMTMsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDEzLCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMTMsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDEzLCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDEzTG9vcFN0YXJ0KQorCitMKFNobDEzTG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTMoJWVheCksICV4bW0yCisJbW92YXBzCTE5KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDEzLCAleG1tMiwgJXhtbTMKKwlwYWxpZ25yCSQxMywgJXhtbTEsICV4bW0yCisKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwlsZWEJMzIoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJMzIoJWVheCwgJWVjeCksICVlYXgKKwlQT1AgKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAorTChzaF8xM19ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMTMoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8xM19ub19wcmVmZXRjaF9sb29wKToKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeAogCW1vdmRxYQkzMiglZWF4LCAlZWRpKSwgJXhtbTMKQEAgLTk5Myw4ICsxNzU3LDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF8xM19lbmQpCisJamIJTChzaF8xM19lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC0xMDA1LDMwICsxNzY4LDkxIEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQorCWphZQlMKHNoXzEzX25vX3ByZWZldGNoX2xvb3ApCiAKLQlqYWUJTChzaGxfMTNfbG9vcCkKLQotTChzaGxfMTNfZW5kKToKK0woc2hfMTNfZW5kX25vX3ByZWZldGNoX2xvb3ApOgogCWxlYQkzMiglZWN4KSwgJWVjeAogCWFkZAklZWN4LCAlZWRpCiAJYWRkCSVlZGksICVlZHgKIAlsZWEJMTMoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzE0KToKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1ZBTFVFKEwodGFibGVfNDhieXRlc19md2QpKQotCWxlYQktMTQoJWVheCksICVlYXgKLQltb3ZhcHMJKCVlYXgpLCAleG1tMQotCXhvcgklZWRpLCAlZWRpCi0JbGVhCS0zMiglZWN4KSwgJWVjeAotCW1vdmRxdQkleG1tMCwgKCVlc2kpCi0JUE9QICglZXNpKQotTChzaGxfMTRfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS0xNCglZWF4KSwgJXhtbTEKKyNlbHNlCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZhcHMJLTE0KCVlYXgpLCAleG1tMQorCW1vdmRxdQkleG1tMCwgKCVlZGkpCisjZW5kaWYKKyNpZmRlZiBEQVRBX0NBQ0hFX1NJWkVfSEFMRgorCWNtcAkkREFUQV9DQUNIRV9TSVpFX0hBTEYsICVlY3gKKyNlbHNlCisjIGlmIChkZWZpbmVkIFNIQVJFRCB8fCBkZWZpbmVkIF9fUElDX18pCisJU0VUVVBfUElDX1JFRyhieCkKKwlhZGQJJF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgJWVieAorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZkBHT1RPRkYoJWVieCksICVlY3gKKyMgZWxzZQorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZiwgJWVjeAorIyBlbmRpZgorI2VuZGlmCisJamIgTChzaF8xNF9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsMTRMb29wU3RhcnQpOgorCXByZWZldGNodDAgMHgxYzAoJWVheCkKKwlwcmVmZXRjaHQwIDB4MWMwKCVlZHgpCisJbW92YXBzCTIoJWVheCksICV4bW0yCisJbW92YXBzCTE4KCVlYXgpLCAleG1tMworCW1vdmFwcwkzNCglZWF4KSwgJXhtbTQKKwltb3ZhcHMJNTAoJWVheCksICV4bW01CisJbW92YXBzCSV4bW01LCAleG1tNworCXBhbGlnbnIJJDE0LCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQxNCwgJXhtbTMsICV4bW00CisJbW92YXBzCSV4bW01LCA0OCglZWR4KQorCXBhbGlnbnIJJDE0LCAleG1tMiwgJXhtbTMKKwlsZWEJNjQoJWVheCksICVlYXgKKwlwYWxpZ25yCSQxNCwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGwxNExvb3BTdGFydCkKKworTChTaGwxNExvb3BMZWF2ZSk6CisJYWRkCSQzMiwgJWVjeAorCWpsZQlMKHNobF9lbmRfMCkKKworCW1vdmFwcwkyKCVlYXgpLCAleG1tMgorCW1vdmFwcwkxOCglZWF4KSwgJXhtbTMKKwlwYWxpZ25yCSQxNCwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkMTQsICV4bW0xLCAleG1tMgorCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfMTRfbm9fcHJlZmV0Y2gpOgorCWxlYQktMzIoJWVjeCksICVlY3gKKwlsZWEJLTE0KCVlYXgpLCAlZWF4CisJeG9yCSVlZGksICVlZGkKKworCS5wMmFsaWduIDQKK0woc2hfMTRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC0xMDM4LDggKzE4NjIsNyBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKLQotCWpiCUwoc2hsXzE0X2VuZCkKKwlqYglMKHNoXzE0X2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTEwNTAsMzAgKzE4NzMsOTEgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfMTRfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF8xNF9sb29wKQotCi1MKHNobF8xNF9lbmQpOgorTChzaF8xNF9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkxNCglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfMTUpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0xNSglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8xNV9sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTE1KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMTUoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzE1X25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGwxNUxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMTcoJWVheCksICV4bW0zCisJbW92YXBzCTMzKCVlYXgpLCAleG1tNAorCW1vdmFwcwk0OSglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkMTUsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDE1LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMTUsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDE1LCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDE1TG9vcFN0YXJ0KQorCitMKFNobDE1TG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTEoJWVheCksICV4bW0yCisJbW92YXBzCTE3KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDE1LCAleG1tMiwgJXhtbTMKKwlwYWxpZ25yCSQxNSwgJXhtbTEsICV4bW0yCisKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwlsZWEJMzIoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJMzIoJWVheCwgJWVjeCksICVlYXgKKwlQT1AgKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAorTChzaF8xNV9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMTUoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8xNV9ub19wcmVmZXRjaF9sb29wKToKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeAogCW1vdmRxYQkzMiglZWF4LCAlZWRpKSwgJXhtbTMKQEAgLTEwODMsOCArMTk2Nyw3IEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQotCi0JamIJTChzaGxfMTVfZW5kKQorCWpiCUwoc2hfMTVfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtMTA5NSw1MiArMTk3OCw3MCBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF8xNV9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzE1X2xvb3ApCi0KLUwoc2hsXzE1X2VuZCk6CitMKHNoXzE1X2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTE1KCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAorCUNGSV9QVVNIICglZWRpKQogCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAorTChzaGxfZW5kXzApOgorCWxlYQkzMiglZWN4KSwgJWVjeAorCWxlYQkoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwkucDJhbGlnbiA0CiBMKGZ3ZF93cml0ZV80NGJ5dGVzKToKLQltb3ZsCS00NCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQ0KCVlZHgpCi1MKGZ3ZF93cml0ZV80MGJ5dGVzKToKLQltb3ZsCS00MCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQwKCVlZHgpCisJbW92cQktNDQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQ0KCVlZHgpCiBMKGZ3ZF93cml0ZV8zNmJ5dGVzKToKLQltb3ZsCS0zNiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTM2KCVlZHgpCi1MKGZ3ZF93cml0ZV8zMmJ5dGVzKToKLQltb3ZsCS0zMiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTMyKCVlZHgpCisJbW92cQktMzYoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTM2KCVlZHgpCiBMKGZ3ZF93cml0ZV8yOGJ5dGVzKToKLQltb3ZsCS0yOCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTI4KCVlZHgpCi1MKGZ3ZF93cml0ZV8yNGJ5dGVzKToKLQltb3ZsCS0yNCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTI0KCVlZHgpCisJbW92cQktMjgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTI4KCVlZHgpCiBMKGZ3ZF93cml0ZV8yMGJ5dGVzKToKLQltb3ZsCS0yMCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTIwKCVlZHgpCi1MKGZ3ZF93cml0ZV8xNmJ5dGVzKToKLQltb3ZsCS0xNiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTE2KCVlZHgpCisJbW92cQktMjAoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTIwKCVlZHgpCiBMKGZ3ZF93cml0ZV8xMmJ5dGVzKToKLQltb3ZsCS0xMiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTEyKCVlZHgpCi1MKGZ3ZF93cml0ZV84Ynl0ZXMpOgotCW1vdmwJLTgoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC04KCVlZHgpCisJbW92cQktMTIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTEyKCVlZHgpCiBMKGZ3ZF93cml0ZV80Ynl0ZXMpOgogCW1vdmwJLTQoJWVheCksICVlY3gKIAltb3ZsCSVlY3gsIC00KCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQwYnl0ZXMpOgorCW1vdnEJLTQwKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC00MCglZWR4KQorTChmd2Rfd3JpdGVfMzJieXRlcyk6CisJbW92cQktMzIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTMyKCVlZHgpCitMKGZ3ZF93cml0ZV8yNGJ5dGVzKToKKwltb3ZxCS0yNCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjQoJWVkeCkKK0woZndkX3dyaXRlXzE2Ynl0ZXMpOgorCW1vdnEJLTE2KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xNiglZWR4KQorTChmd2Rfd3JpdGVfOGJ5dGVzKToKKwltb3ZxCS04KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC04KCVlZHgpCiBMKGZ3ZF93cml0ZV8wYnl0ZXMpOgogI2lmbmRlZiBVU0VfQVNfQkNPUFkKICMgaWZkZWYgVVNFX0FTX01FTVBDUFkKQEAgLTExNTEsNyArMjA1Miw3IEBACiAjZW5kaWYKIAlSRVRVUk4KIAotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKIEwoZndkX3dyaXRlXzVieXRlcyk6CiAJbW92bAktNSglZWF4KSwgJWVjeAogCW1vdmwJLTQoJWVheCksICVlYXgKQEAgLTExNjYsMzkgKzIwNjcsNTEgQEAKICNlbmRpZgogCVJFVFVSTgogCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAogTChmd2Rfd3JpdGVfNDVieXRlcyk6Ci0JbW92bAktNDUoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC00NSglZWR4KQotTChmd2Rfd3JpdGVfNDFieXRlcyk6Ci0JbW92bAktNDEoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC00MSglZWR4KQorCW1vdnEJLTQ1KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC00NSglZWR4KQogTChmd2Rfd3JpdGVfMzdieXRlcyk6Ci0JbW92bAktMzcoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC0zNyglZWR4KQotTChmd2Rfd3JpdGVfMzNieXRlcyk6Ci0JbW92bAktMzMoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC0zMyglZWR4KQorCW1vdnEJLTM3KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0zNyglZWR4KQogTChmd2Rfd3JpdGVfMjlieXRlcyk6Ci0JbW92bAktMjkoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC0yOSglZWR4KQotTChmd2Rfd3JpdGVfMjVieXRlcyk6Ci0JbW92bAktMjUoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC0yNSglZWR4KQorCW1vdnEJLTI5KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0yOSglZWR4KQogTChmd2Rfd3JpdGVfMjFieXRlcyk6Ci0JbW92bAktMjEoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC0yMSglZWR4KQotTChmd2Rfd3JpdGVfMTdieXRlcyk6Ci0JbW92bAktMTcoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC0xNyglZWR4KQorCW1vdnEJLTIxKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0yMSglZWR4KQogTChmd2Rfd3JpdGVfMTNieXRlcyk6Ci0JbW92bAktMTMoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC0xMyglZWR4KQotTChmd2Rfd3JpdGVfOWJ5dGVzKToKLQltb3ZsCS05KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtOSglZWR4KQorCW1vdnEJLTEzKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xMyglZWR4KQogCW1vdmwJLTUoJWVheCksICVlY3gKIAltb3ZsCSVlY3gsIC01KCVlZHgpCisJbW92emJsCS0xKCVlYXgpLCAlZWN4CisJbW92YgklY2wsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQxYnl0ZXMpOgorCW1vdnEJLTQxKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC00MSglZWR4KQorTChmd2Rfd3JpdGVfMzNieXRlcyk6CisJbW92cQktMzMoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTMzKCVlZHgpCitMKGZ3ZF93cml0ZV8yNWJ5dGVzKToKKwltb3ZxCS0yNSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjUoJWVkeCkKK0woZndkX3dyaXRlXzE3Ynl0ZXMpOgorCW1vdnEJLTE3KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xNyglZWR4KQorTChmd2Rfd3JpdGVfOWJ5dGVzKToKKwltb3ZxCS05KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC05KCVlZHgpCiBMKGZ3ZF93cml0ZV8xYnl0ZXMpOgogCW1vdnpibAktMSglZWF4KSwgJWVjeAogCW1vdmIJJWNsLCAtMSglZWR4KQpAQCAtMTIxMSw0MCArMjEyNCw1MiBAQAogI2VuZGlmCiAJUkVUVVJOCiAKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKGZ3ZF93cml0ZV80NmJ5dGVzKToKLQltb3ZsCS00NiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQ2KCVlZHgpCi1MKGZ3ZF93cml0ZV80MmJ5dGVzKToKLQltb3ZsCS00MiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQyKCVlZHgpCisJbW92cQktNDYoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQ2KCVlZHgpCiBMKGZ3ZF93cml0ZV8zOGJ5dGVzKToKLQltb3ZsCS0zOCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTM4KCVlZHgpCi1MKGZ3ZF93cml0ZV8zNGJ5dGVzKToKLQltb3ZsCS0zNCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTM0KCVlZHgpCisJbW92cQktMzgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTM4KCVlZHgpCiBMKGZ3ZF93cml0ZV8zMGJ5dGVzKToKLQltb3ZsCS0zMCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTMwKCVlZHgpCi1MKGZ3ZF93cml0ZV8yNmJ5dGVzKToKLQltb3ZsCS0yNiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTI2KCVlZHgpCisJbW92cQktMzAoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTMwKCVlZHgpCiBMKGZ3ZF93cml0ZV8yMmJ5dGVzKToKLQltb3ZsCS0yMiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTIyKCVlZHgpCi1MKGZ3ZF93cml0ZV8xOGJ5dGVzKToKLQltb3ZsCS0xOCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTE4KCVlZHgpCisJbW92cQktMjIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTIyKCVlZHgpCiBMKGZ3ZF93cml0ZV8xNGJ5dGVzKToKLQltb3ZsCS0xNCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTE0KCVlZHgpCi1MKGZ3ZF93cml0ZV8xMGJ5dGVzKToKLQltb3ZsCS0xMCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTEwKCVlZHgpCisJbW92cQktMTQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE0KCVlZHgpCiBMKGZ3ZF93cml0ZV82Ynl0ZXMpOgogCW1vdmwJLTYoJWVheCksICVlY3gKIAltb3ZsCSVlY3gsIC02KCVlZHgpCisJbW92endsCS0yKCVlYXgpLCAlZWN4CisJbW92dwklY3gsIC0yKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQyYnl0ZXMpOgorCW1vdnEJLTQyKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC00MiglZWR4KQorTChmd2Rfd3JpdGVfMzRieXRlcyk6CisJbW92cQktMzQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTM0KCVlZHgpCitMKGZ3ZF93cml0ZV8yNmJ5dGVzKToKKwltb3ZxCS0yNiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjYoJWVkeCkKK0woZndkX3dyaXRlXzE4Ynl0ZXMpOgorCW1vdnEJLTE4KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xOCglZWR4KQorTChmd2Rfd3JpdGVfMTBieXRlcyk6CisJbW92cQktMTAoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTEwKCVlZHgpCiBMKGZ3ZF93cml0ZV8yYnl0ZXMpOgogCW1vdnp3bAktMiglZWF4KSwgJWVjeAogCW1vdncJJWN4LCAtMiglZWR4KQpAQCAtMTI1Nyw0MCArMjE4Miw1NCBAQAogI2VuZGlmCiAJUkVUVVJOCiAKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKGZ3ZF93cml0ZV80N2J5dGVzKToKLQltb3ZsCS00NyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQ3KCVlZHgpCi1MKGZ3ZF93cml0ZV80M2J5dGVzKToKLQltb3ZsCS00MyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQzKCVlZHgpCisJbW92cQktNDcoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQ3KCVlZHgpCiBMKGZ3ZF93cml0ZV8zOWJ5dGVzKToKLQltb3ZsCS0zOSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTM5KCVlZHgpCi1MKGZ3ZF93cml0ZV8zNWJ5dGVzKToKLQltb3ZsCS0zNSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTM1KCVlZHgpCisJbW92cQktMzkoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTM5KCVlZHgpCiBMKGZ3ZF93cml0ZV8zMWJ5dGVzKToKLQltb3ZsCS0zMSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTMxKCVlZHgpCi1MKGZ3ZF93cml0ZV8yN2J5dGVzKToKLQltb3ZsCS0yNyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTI3KCVlZHgpCisJbW92cQktMzEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTMxKCVlZHgpCiBMKGZ3ZF93cml0ZV8yM2J5dGVzKToKLQltb3ZsCS0yMyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTIzKCVlZHgpCi1MKGZ3ZF93cml0ZV8xOWJ5dGVzKToKLQltb3ZsCS0xOSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTE5KCVlZHgpCisJbW92cQktMjMoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTIzKCVlZHgpCiBMKGZ3ZF93cml0ZV8xNWJ5dGVzKToKLQltb3ZsCS0xNSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTE1KCVlZHgpCi1MKGZ3ZF93cml0ZV8xMWJ5dGVzKToKLQltb3ZsCS0xMSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTExKCVlZHgpCisJbW92cQktMTUoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE1KCVlZHgpCiBMKGZ3ZF93cml0ZV83Ynl0ZXMpOgogCW1vdmwJLTcoJWVheCksICVlY3gKIAltb3ZsCSVlY3gsIC03KCVlZHgpCisJbW92endsCS0zKCVlYXgpLCAlZWN4CisJbW92emJsCS0xKCVlYXgpLCAlZWF4CisJbW92dwklY3gsIC0zKCVlZHgpCisJbW92YgklYWwsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQzYnl0ZXMpOgorCW1vdnEJLTQzKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC00MyglZWR4KQorTChmd2Rfd3JpdGVfMzVieXRlcyk6CisJbW92cQktMzUoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTM1KCVlZHgpCitMKGZ3ZF93cml0ZV8yN2J5dGVzKToKKwltb3ZxCS0yNyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjcoJWVkeCkKK0woZndkX3dyaXRlXzE5Ynl0ZXMpOgorCW1vdnEJLTE5KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xOSglZWR4KQorTChmd2Rfd3JpdGVfMTFieXRlcyk6CisJbW92cQktMTEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTExKCVlZHgpCiBMKGZ3ZF93cml0ZV8zYnl0ZXMpOgogCW1vdnp3bAktMyglZWF4KSwgJWVjeAogCW1vdnpibAktMSglZWF4KSwgJWVheApAQCAtMTMwMywyMCArMjI0MiwzNzQgQEAKIAltb3ZsCURFU1QoJWVzcCksICVlYXgKICMgZW5kaWYKICNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDBieXRlc19hbGlnbik6CisJbW92ZHFhCS00MCglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC00MCglZWR4KQorTChmd2Rfd3JpdGVfMjRieXRlc19hbGlnbik6CisJbW92ZHFhCS0yNCglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC0yNCglZWR4KQorTChmd2Rfd3JpdGVfOGJ5dGVzX2FsaWduKToKKwltb3ZxCS04KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC04KCVlZHgpCitMKGZ3ZF93cml0ZV8wYnl0ZXNfYWxpZ24pOgorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zMmJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTMyKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTMyKCVlZHgpCitMKGZ3ZF93cml0ZV8xNmJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTE2KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTE2KCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzVieXRlc19hbGlnbik6CisJbW92bAktNSglZWF4KSwgJWVjeAorCW1vdmwJLTQoJWVheCksICVlYXgKKwltb3ZsCSVlY3gsIC01KCVlZHgpCisJbW92bAklZWF4LCAtNCglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV80NWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTQ1KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTQ1KCVlZHgpCitMKGZ3ZF93cml0ZV8yOWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTI5KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTI5KCVlZHgpCitMKGZ3ZF93cml0ZV8xM2J5dGVzX2FsaWduKToKKwltb3ZxCS0xMyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTMoJWVkeCkKKwltb3ZsCS01KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNSglZWR4KQorCW1vdnpibAktMSglZWF4KSwgJWVjeAorCW1vdmIJJWNsLCAtMSglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zN2J5dGVzX2FsaWduKToKKwltb3ZkcWEJLTM3KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTM3KCVlZHgpCitMKGZ3ZF93cml0ZV8yMWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTIxKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTIxKCVlZHgpCisJbW92bAktNSglZWF4KSwgJWVjeAorCW1vdmwJJWVjeCwgLTUoJWVkeCkKKwltb3Z6YmwJLTEoJWVheCksICVlY3gKKwltb3ZiCSVjbCwgLTEoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDFieXRlc19hbGlnbik6CisJbW92ZHFhCS00MSglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC00MSglZWR4KQorTChmd2Rfd3JpdGVfMjVieXRlc19hbGlnbik6CisJbW92ZHFhCS0yNSglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC0yNSglZWR4KQorTChmd2Rfd3JpdGVfOWJ5dGVzX2FsaWduKToKKwltb3ZxCS05KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC05KCVlZHgpCitMKGZ3ZF93cml0ZV8xYnl0ZXNfYWxpZ24pOgorCW1vdnpibAktMSglZWF4KSwgJWVjeAorCW1vdmIJJWNsLCAtMSglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zM2J5dGVzX2FsaWduKToKKwltb3ZkcWEJLTMzKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTMzKCVlZHgpCitMKGZ3ZF93cml0ZV8xN2J5dGVzX2FsaWduKToKKwltb3ZkcWEJLTE3KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTE3KCVlZHgpCisJbW92emJsCS0xKCVlYXgpLCAlZWN4CisJbW92YgklY2wsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQ2Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktNDYoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtNDYoJWVkeCkKK0woZndkX3dyaXRlXzMwYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzAoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzAoJWVkeCkKK0woZndkX3dyaXRlXzE0Ynl0ZXNfYWxpZ24pOgorCW1vdnEJLTE0KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xNCglZWR4KQorTChmd2Rfd3JpdGVfNmJ5dGVzX2FsaWduKToKKwltb3ZsCS02KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNiglZWR4KQorCW1vdnp3bAktMiglZWF4KSwgJWVjeAorCW1vdncJJWN4LCAtMiglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zOGJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTM4KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTM4KCVlZHgpCitMKGZ3ZF93cml0ZV8yMmJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTIyKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTIyKCVlZHgpCisJbW92bAktNiglZWF4KSwgJWVjeAorCW1vdmwJJWVjeCwgLTYoJWVkeCkKKwltb3Z6d2wJLTIoJWVheCksICVlY3gKKwltb3Z3CSVjeCwgLTIoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDJieXRlc19hbGlnbik6CisJbW92ZHFhCS00MiglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC00MiglZWR4KQorTChmd2Rfd3JpdGVfMjZieXRlc19hbGlnbik6CisJbW92ZHFhCS0yNiglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC0yNiglZWR4KQorTChmd2Rfd3JpdGVfMTBieXRlc19hbGlnbik6CisJbW92cQktMTAoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTEwKCVlZHgpCitMKGZ3ZF93cml0ZV8yYnl0ZXNfYWxpZ24pOgorCW1vdnp3bAktMiglZWF4KSwgJWVjeAorCW1vdncJJWN4LCAtMiglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zNGJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTM0KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTM0KCVlZHgpCitMKGZ3ZF93cml0ZV8xOGJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTE4KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTE4KCVlZHgpCisJbW92endsCS0yKCVlYXgpLCAlZWN4CisJbW92dwklY3gsIC0yKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQ3Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktNDcoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtNDcoJWVkeCkKK0woZndkX3dyaXRlXzMxYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzEoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzEoJWVkeCkKK0woZndkX3dyaXRlXzE1Ynl0ZXNfYWxpZ24pOgorCW1vdnEJLTE1KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xNSglZWR4KQorTChmd2Rfd3JpdGVfN2J5dGVzX2FsaWduKToKKwltb3ZsCS03KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNyglZWR4KQorCW1vdnp3bAktMyglZWF4KSwgJWVjeAorCW1vdnpibAktMSglZWF4KSwgJWVheAorCW1vdncJJWN4LCAtMyglZWR4KQorCW1vdmIJJWFsLCAtMSglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zOWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTM5KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTM5KCVlZHgpCitMKGZ3ZF93cml0ZV8yM2J5dGVzX2FsaWduKToKKwltb3ZkcWEJLTIzKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTIzKCVlZHgpCisJbW92bAktNyglZWF4KSwgJWVjeAorCW1vdmwJJWVjeCwgLTcoJWVkeCkKKwltb3Z6d2wJLTMoJWVheCksICVlY3gKKwltb3Z6YmwJLTEoJWVheCksICVlYXgKKwltb3Z3CSVjeCwgLTMoJWVkeCkKKwltb3ZiCSVhbCwgLTEoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDNieXRlc19hbGlnbik6CisJbW92ZHFhCS00MyglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC00MyglZWR4KQorTChmd2Rfd3JpdGVfMjdieXRlc19hbGlnbik6CisJbW92ZHFhCS0yNyglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC0yNyglZWR4KQorTChmd2Rfd3JpdGVfMTFieXRlc19hbGlnbik6CisJbW92cQktMTEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTExKCVlZHgpCitMKGZ3ZF93cml0ZV8zYnl0ZXNfYWxpZ24pOgorCW1vdnp3bAktMyglZWF4KSwgJWVjeAorCW1vdnpibAktMSglZWF4KSwgJWVheAorCW1vdncJJWN4LCAtMyglZWR4KQorCW1vdmIJJWFsLCAtMSglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zNWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTM1KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTM1KCVlZHgpCitMKGZ3ZF93cml0ZV8xOWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTE5KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTE5KCVlZHgpCisJbW92endsCS0zKCVlYXgpLCAlZWN4CisJbW92emJsCS0xKCVlYXgpLCAlZWF4CisJbW92dwklY3gsIC0zKCVlZHgpCisJbW92YgklYWwsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQ0Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktNDQoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtNDQoJWVkeCkKK0woZndkX3dyaXRlXzI4Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMjgoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMjgoJWVkeCkKK0woZndkX3dyaXRlXzEyYnl0ZXNfYWxpZ24pOgorCW1vdnEJLTEyKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xMiglZWR4KQorTChmd2Rfd3JpdGVfNGJ5dGVzX2FsaWduKToKKwltb3ZsCS00KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNCglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV8zNmJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTM2KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTM2KCVlZHgpCitMKGZ3ZF93cml0ZV8yMGJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTIwKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTIwKCVlZHgpCisJbW92bAktNCglZWF4KSwgJWVjeAorCW1vdmwJJWVjeCwgLTQoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgogCVJFVFVSTl9FTkQKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKGxhcmdlX3BhZ2UpOgogCW1vdmRxdQkoJWVheCksICV4bW0xCisjaWZkZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmRxdQkleG1tMCwgKCVlZGkpCisjZW5kaWYKIAlsZWEJMTYoJWVheCksICVlYXgKLQltb3ZkcXUJJXhtbTAsICglZXNpKQogCW1vdm50ZHEJJXhtbTEsICglZWR4KQogCWxlYQkxNiglZWR4KSwgJWVkeAotCVBPUCAoJWVzaSkKIAlsZWEJLTB4OTAoJWVjeCksICVlY3gKIAlQT1AgKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKGxhcmdlX3BhZ2VfbG9vcCk6CiAJbW92ZHF1CSglZWF4KSwgJXhtbTAKIAltb3ZkcXUJMHgxMCglZWF4KSwgJXhtbTEKQEAgLTEzNzEsMzggKzI2NjQsMjIgQEAKIAlzZmVuY2UKIAlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZIChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAogTChia193cml0ZV80NGJ5dGVzKToKLQltb3ZsCTQwKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCA0MCglZWR4KQotTChia193cml0ZV80MGJ5dGVzKToKLQltb3ZsCTM2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAzNiglZWR4KQorCW1vdnEJMzYoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMzYoJWVkeCkKIEwoYmtfd3JpdGVfMzZieXRlcyk6Ci0JbW92bAkzMiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMzIoJWVkeCkKLUwoYmtfd3JpdGVfMzJieXRlcyk6Ci0JbW92bAkyOCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMjgoJWVkeCkKKwltb3ZxCTI4KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDI4KCVlZHgpCiBMKGJrX3dyaXRlXzI4Ynl0ZXMpOgotCW1vdmwJMjQoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDI0KCVlZHgpCi1MKGJrX3dyaXRlXzI0Ynl0ZXMpOgotCW1vdmwJMjAoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDIwKCVlZHgpCisJbW92cQkyMCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAyMCglZWR4KQogTChia193cml0ZV8yMGJ5dGVzKToKLQltb3ZsCTE2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAxNiglZWR4KQotTChia193cml0ZV8xNmJ5dGVzKToKLQltb3ZsCTEyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAxMiglZWR4KQorCW1vdnEJMTIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMTIoJWVkeCkKIEwoYmtfd3JpdGVfMTJieXRlcyk6Ci0JbW92bAk4KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCA4KCVlZHgpCi1MKGJrX3dyaXRlXzhieXRlcyk6Ci0JbW92bAk0KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCA0KCVlZHgpCisJbW92cQk0KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDQoJWVkeCkKIEwoYmtfd3JpdGVfNGJ5dGVzKToKIAltb3ZsCSglZWF4KSwgJWVjeAogCW1vdmwJJWVjeCwgKCVlZHgpCkBAIC0xNDE2LDM3ICsyNjkzLDQ3IEBACiAjZW5kaWYKIAlSRVRVUk4KIAotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKK0woYmtfd3JpdGVfNDBieXRlcyk6CisJbW92cQkzMiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzMiglZWR4KQorTChia193cml0ZV8zMmJ5dGVzKToKKwltb3ZxCTI0KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDI0KCVlZHgpCitMKGJrX3dyaXRlXzI0Ynl0ZXMpOgorCW1vdnEJMTYoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMTYoJWVkeCkKK0woYmtfd3JpdGVfMTZieXRlcyk6CisJbW92cQk4KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDgoJWVkeCkKK0woYmtfd3JpdGVfOGJ5dGVzKToKKwltb3ZxCSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAlMRU4oJWVzcCksICVlY3gKKwlhZGQJJWVjeCwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CiBMKGJrX3dyaXRlXzQ1Ynl0ZXMpOgotCW1vdmwJNDEoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDQxKCVlZHgpCi1MKGJrX3dyaXRlXzQxYnl0ZXMpOgotCW1vdmwJMzcoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDM3KCVlZHgpCisJbW92cQkzNyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzNyglZWR4KQogTChia193cml0ZV8zN2J5dGVzKToKLQltb3ZsCTMzKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAzMyglZWR4KQotTChia193cml0ZV8zM2J5dGVzKToKLQltb3ZsCTI5KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyOSglZWR4KQorCW1vdnEJMjkoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMjkoJWVkeCkKIEwoYmtfd3JpdGVfMjlieXRlcyk6Ci0JbW92bAkyNSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMjUoJWVkeCkKLUwoYmtfd3JpdGVfMjVieXRlcyk6Ci0JbW92bAkyMSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMjEoJWVkeCkKKwltb3ZxCTIxKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDIxKCVlZHgpCiBMKGJrX3dyaXRlXzIxYnl0ZXMpOgotCW1vdmwJMTcoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDE3KCVlZHgpCi1MKGJrX3dyaXRlXzE3Ynl0ZXMpOgotCW1vdmwJMTMoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDEzKCVlZHgpCisJbW92cQkxMyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAxMyglZWR4KQogTChia193cml0ZV8xM2J5dGVzKToKLQltb3ZsCTkoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDkoJWVkeCkKLUwoYmtfd3JpdGVfOWJ5dGVzKToKLQltb3ZsCTUoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDUoJWVkeCkKKwltb3ZxCTUoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgNSglZWR4KQogTChia193cml0ZV81Ynl0ZXMpOgogCW1vdmwJMSglZWF4KSwgJWVjeAogCW1vdmwJJWVjeCwgMSglZWR4KQpAQCAtMTQ2Miw0MCArMjc0OSw3OSBAQAogI2VuZGlmCiAJUkVUVVJOCiAKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CitMKGJrX3dyaXRlXzQxYnl0ZXMpOgorCW1vdnEJMzMoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMzMoJWVkeCkKK0woYmtfd3JpdGVfMzNieXRlcyk6CisJbW92cQkyNSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAyNSglZWR4KQorTChia193cml0ZV8yNWJ5dGVzKToKKwltb3ZxCTE3KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDE3KCVlZHgpCitMKGJrX3dyaXRlXzE3Ynl0ZXMpOgorCW1vdnEJOSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCA5KCVlZHgpCitMKGJrX3dyaXRlXzlieXRlcyk6CisJbW92cQkxKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDEoJWVkeCkKKwltb3Z6YmwJKCVlYXgpLCAlZWN4CisJbW92YgklY2wsICglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCUxFTiglZXNwKSwgJWVjeAorCWFkZAklZWN4LCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKIEwoYmtfd3JpdGVfNDZieXRlcyk6Ci0JbW92bAk0MiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgNDIoJWVkeCkKLUwoYmtfd3JpdGVfNDJieXRlcyk6Ci0JbW92bAkzOCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMzgoJWVkeCkKKwltb3ZxCTM4KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDM4KCVlZHgpCiBMKGJrX3dyaXRlXzM4Ynl0ZXMpOgotCW1vdmwJMzQoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDM0KCVlZHgpCi1MKGJrX3dyaXRlXzM0Ynl0ZXMpOgotCW1vdmwJMzAoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDMwKCVlZHgpCisJbW92cQkzMCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzMCglZWR4KQogTChia193cml0ZV8zMGJ5dGVzKToKLQltb3ZsCTI2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyNiglZWR4KQotTChia193cml0ZV8yNmJ5dGVzKToKLQltb3ZsCTIyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyMiglZWR4KQorCW1vdnEJMjIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMjIoJWVkeCkKIEwoYmtfd3JpdGVfMjJieXRlcyk6Ci0JbW92bAkxOCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMTgoJWVkeCkKLUwoYmtfd3JpdGVfMThieXRlcyk6Ci0JbW92bAkxNCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMTQoJWVkeCkKKwltb3ZxCTE0KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDE0KCVlZHgpCiBMKGJrX3dyaXRlXzE0Ynl0ZXMpOgotCW1vdmwJMTAoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDEwKCVlZHgpCi1MKGJrX3dyaXRlXzEwYnl0ZXMpOgotCW1vdmwJNiglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgNiglZWR4KQorCW1vdnEJNiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCA2KCVlZHgpCiBMKGJrX3dyaXRlXzZieXRlcyk6CiAJbW92bAkyKCVlYXgpLCAlZWN4CiAJbW92bAklZWN4LCAyKCVlZHgpCisJbW92endsCSglZWF4KSwgJWVjeAorCW1vdncJJWN4LCAoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAlMRU4oJWVzcCksICVlY3gKKwlhZGQJJWVjeCwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGJrX3dyaXRlXzQyYnl0ZXMpOgorCW1vdnEJMzQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMzQoJWVkeCkKK0woYmtfd3JpdGVfMzRieXRlcyk6CisJbW92cQkyNiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAyNiglZWR4KQorTChia193cml0ZV8yNmJ5dGVzKToKKwltb3ZxCTE4KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDE4KCVlZHgpCitMKGJrX3dyaXRlXzE4Ynl0ZXMpOgorCW1vdnEJMTAoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMTAoJWVkeCkKK0woYmtfd3JpdGVfMTBieXRlcyk6CisJbW92cQkyKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDIoJWVkeCkKIEwoYmtfd3JpdGVfMmJ5dGVzKToKIAltb3Z6d2wJKCVlYXgpLCAlZWN4CiAJbW92dwklY3gsICglZWR4KQpAQCAtMTUwOCw0MCArMjgzNCw1NCBAQAogI2VuZGlmCiAJUkVUVVJOCiAKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKGJrX3dyaXRlXzQ3Ynl0ZXMpOgotCW1vdmwJNDMoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDQzKCVlZHgpCi1MKGJrX3dyaXRlXzQzYnl0ZXMpOgotCW1vdmwJMzkoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDM5KCVlZHgpCisJbW92cQkzOSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzOSglZWR4KQogTChia193cml0ZV8zOWJ5dGVzKToKLQltb3ZsCTM1KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAzNSglZWR4KQotTChia193cml0ZV8zNWJ5dGVzKToKLQltb3ZsCTMxKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAzMSglZWR4KQorCW1vdnEJMzEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMzEoJWVkeCkKIEwoYmtfd3JpdGVfMzFieXRlcyk6Ci0JbW92bAkyNyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMjcoJWVkeCkKLUwoYmtfd3JpdGVfMjdieXRlcyk6Ci0JbW92bAkyMyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMjMoJWVkeCkKKwltb3ZxCTIzKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDIzKCVlZHgpCiBMKGJrX3dyaXRlXzIzYnl0ZXMpOgotCW1vdmwJMTkoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDE5KCVlZHgpCi1MKGJrX3dyaXRlXzE5Ynl0ZXMpOgotCW1vdmwJMTUoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDE1KCVlZHgpCisJbW92cQkxNSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAxNSglZWR4KQogTChia193cml0ZV8xNWJ5dGVzKToKLQltb3ZsCTExKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAxMSglZWR4KQotTChia193cml0ZV8xMWJ5dGVzKToKLQltb3ZsCTcoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDcoJWVkeCkKKwltb3ZxCTcoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgNyglZWR4KQogTChia193cml0ZV83Ynl0ZXMpOgogCW1vdmwJMyglZWF4KSwgJWVjeAogCW1vdmwJJWVjeCwgMyglZWR4KQorCW1vdnp3bAkxKCVlYXgpLCAlZWN4CisJbW92dwklY3gsIDEoJWVkeCkKKwltb3Z6YmwJKCVlYXgpLCAlZWF4CisJbW92YgklYWwsICglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCUxFTiglZXNwKSwgJWVjeAorCWFkZAklZWN4LCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woYmtfd3JpdGVfNDNieXRlcyk6CisJbW92cQkzNSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzNSglZWR4KQorTChia193cml0ZV8zNWJ5dGVzKToKKwltb3ZxCTI3KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDI3KCVlZHgpCitMKGJrX3dyaXRlXzI3Ynl0ZXMpOgorCW1vdnEJMTkoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMTkoJWVkeCkKK0woYmtfd3JpdGVfMTlieXRlcyk6CisJbW92cQkxMSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAxMSglZWR4KQorTChia193cml0ZV8xMWJ5dGVzKToKKwltb3ZxCTMoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMyglZWR4KQogTChia193cml0ZV8zYnl0ZXMpOgogCW1vdnp3bAkxKCVlYXgpLCAlZWN4CiAJbW92dwklY3gsIDEoJWVkeCkKQEAgLTE1NTgsNyArMjg5OCw3IEBACiAKIAogCS5wdXNoc2VjdGlvbiAucm9kYXRhLnNzc2UzLCJhIixAcHJvZ2JpdHMKLQlBTElHTiAoMikKKwkucDJhbGlnbiAyCiBMKHRhYmxlXzQ4Ynl0ZXNfZndkKToKIAkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMGJ5dGVzKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCiAJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzFieXRlcyksIEwodGFibGVfNDhieXRlc19md2QpKQpAQCAtMTYwOSw3ICsyOTQ5LDU4IEBACiAJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzQ2Ynl0ZXMpLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKIAkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNDdieXRlcyksIEwodGFibGVfNDhieXRlc19md2QpKQogCi0JQUxJR04gKDIpCisJLnAyYWxpZ24gMgorTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbik6CisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzBieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzNieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV80Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzZieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV83Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfOGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzlieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xMGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzExYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMTJieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xM2J5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzE0Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMTVieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xNmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzE3Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMThieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xOWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzIwYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMjFieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8yMmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzIzYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMjRieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8yNWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzI2Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMjdieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8yOGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzI5Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMzBieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8zMWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzMyYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMzNieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8zNGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzM1Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMzZieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8zN2J5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzM4Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMzlieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV80MGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzQxYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNDJieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV80M2J5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzQ0Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNDVieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV80NmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzQ3Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKworCS5wMmFsaWduIDIKIEwoc2hsX3RhYmxlKToKIAkuaW50CUpNUFRCTCAoTChzaGxfMCksIEwoc2hsX3RhYmxlKSkKIAkuaW50CUpNUFRCTCAoTChzaGxfMSksIEwoc2hsX3RhYmxlKSkKQEAgLTE2MjgsNyArMzAxOSw3IEBACiAJLmludAlKTVBUQkwgKEwoc2hsXzE0KSwgTChzaGxfdGFibGUpKQogCS5pbnQJSk1QVEJMIChMKHNobF8xNSksIEwoc2hsX3RhYmxlKSkKIAotCUFMSUdOICgyKQorCS5wMmFsaWduIDIKIEwodGFibGVfNDhfYnl0ZXNfYndkKToKIAkuaW50CUpNUFRCTCAoTChia193cml0ZV8wYnl0ZXMpLCBMKHRhYmxlXzQ4X2J5dGVzX2J3ZCkpCiAJLmludAlKTVBUQkwgKEwoYmtfd3JpdGVfMWJ5dGVzKSwgTCh0YWJsZV80OF9ieXRlc19id2QpKQpAQCAtMTY4MiwxMiArMzA3MywxMiBAQAogCS5wb3BzZWN0aW9uCiAKICNpZmRlZiBVU0VfQVNfTUVNTU9WRQotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKIEwoY29weV9iYWNrd2FyZCk6Ci0JUFVTSCAoJWVzaSkKLQltb3ZsCSVlYXgsICVlc2kKKwlQVVNIICglZWRpKQorCW1vdmwJJWVheCwgJWVkaQogCWxlYQkoJWVjeCwlZWR4LDEpLCVlZHgKLQlsZWEJKCVlY3gsJWVzaSwxKSwlZXNpCisJbGVhCSglZWN4LCVlZGksMSksJWVkaQogCXRlc3RsCSQweDMsICVlZHgKIAlqbnoJTChia19hbGlnbikKIApAQCAtMTcwMiw2MCArMzA5Myw1MyBAQAogTChia193cml0ZV9tb3JlMzJieXRlcyk6CiAJLyogQ29weSAzMiBieXRlcyBhdCBhIHRpbWUuICAqLwogCXN1YgkkMzIsICVlY3gKLQltb3ZsCS00KCVlc2kpLCAlZWF4Ci0JbW92bAklZWF4LCAtNCglZWR4KQotCW1vdmwJLTgoJWVzaSksICVlYXgKLQltb3ZsCSVlYXgsIC04KCVlZHgpCi0JbW92bAktMTIoJWVzaSksICVlYXgKLQltb3ZsCSVlYXgsIC0xMiglZWR4KQotCW1vdmwJLTE2KCVlc2kpLCAlZWF4Ci0JbW92bAklZWF4LCAtMTYoJWVkeCkKLQltb3ZsCS0yMCglZXNpKSwgJWVheAotCW1vdmwJJWVheCwgLTIwKCVlZHgpCi0JbW92bAktMjQoJWVzaSksICVlYXgKLQltb3ZsCSVlYXgsIC0yNCglZWR4KQotCW1vdmwJLTI4KCVlc2kpLCAlZWF4Ci0JbW92bAklZWF4LCAtMjgoJWVkeCkKLQltb3ZsCS0zMiglZXNpKSwgJWVheAotCW1vdmwJJWVheCwgLTMyKCVlZHgpCisJbW92cQktOCglZWRpKSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtOCglZWR4KQorCW1vdnEJLTE2KCVlZGkpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xNiglZWR4KQorCW1vdnEJLTI0KCVlZGkpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0yNCglZWR4KQorCW1vdnEJLTMyKCVlZGkpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0zMiglZWR4KQogCXN1YgkkMzIsICVlZHgKLQlzdWIJJDMyLCAlZXNpCisJc3ViCSQzMiwgJWVkaQogCiBMKGJrX3dyaXRlX2xlc3MzMmJ5dGVzKToKLQltb3ZsCSVlc2ksICVlYXgKKwltb3ZsCSVlZGksICVlYXgKIAlzdWIJJWVjeCwgJWVkeAogCXN1YgklZWN4LCAlZWF4Ci0JUE9QICglZXNpKQorCVBPUCAoJWVkaSkKIEwoYmtfd3JpdGVfbGVzczMyYnl0ZXNfMik6CiAJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OF9ieXRlc19id2QpLCAlZWN4LCA0KQogCi0JQ0ZJX1BVU0ggKCVlc2kpCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKGJrX2FsaWduKToKIAljbXAJJDgsICVlY3gKIAlqYmUJTChia193cml0ZV9sZXNzMzJieXRlcykKIAl0ZXN0bAkkMSwgJWVkeAogCS8qIFdlIGdldCBoZXJlIG9ubHkgaWYgKEVEWCAmIDMgKSAhPSAwIHNvIGlmIChFRFggJiAxKSA9PTAsCi0JICAgdGhlbiAoRURYICYgMikgbXVzdCBiZSAhPSAwLiAgKi8KKwl0aGVuCShFRFggJiAyKSBtdXN0IGJlICE9IDAuICAqLwogCWp6CUwoYmtfZ290MikKLQlzdWIJJDEsICVlc2kKKwlzdWIJJDEsICVlZGkKIAlzdWIJJDEsICVlY3gKIAlzdWIJJDEsICVlZHgKLQltb3Z6YmwJKCVlc2kpLCAlZWF4CisJbW92emJsCSglZWRpKSwgJWVheAogCW1vdmIJJWFsLCAoJWVkeCkKIAogCXRlc3RsCSQyLCAlZWR4CiAJanoJTChia19hbGlnbmVkXzQpCiAKIEwoYmtfZ290Mik6Ci0Jc3ViCSQyLCAlZXNpCisJc3ViCSQyLCAlZWRpCiAJc3ViCSQyLCAlZWN4CiAJc3ViCSQyLCAlZWR4Ci0JbW92endsCSglZXNpKSwgJWVheAorCW1vdnp3bAkoJWVkaSksICVlYXgKIAltb3Z3CSVheCwgKCVlZHgpCiAJam1wCUwoYmtfYWxpZ25lZF80KQogCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAogTChia193cml0ZV9tb3JlNjRieXRlcyk6CiAJLyogQ2hlY2sgYWxpZ25tZW50IG9mIGxhc3QgYnl0ZS4gICovCiAJdGVzdGwJJDE1LCAlZWR4CkBAIC0xNzYzLDQ1ICszMTQ3LDQ2IEBACiAKIC8qIEVEWCBpcyBhbGlnbmVkIDQgYnl0ZXMsIGJ1dCBub3QgMTYgYnl0ZXMuICAqLwogTChia19zc3NlM19hbGlnbik6Ci0Jc3ViCSQ0LCAlZXNpCisJc3ViCSQ0LCAlZWRpCiAJc3ViCSQ0LCAlZWN4CiAJc3ViCSQ0LCAlZWR4Ci0JbW92bAkoJWVzaSksICVlYXgKKwltb3ZsCSglZWRpKSwgJWVheAogCW1vdmwJJWVheCwgKCVlZHgpCiAKIAl0ZXN0bAkkMTUsICVlZHgKIAlqeglMKGJrX3Nzc2UzX2NweV9wcmUpCiAKLQlzdWIJJDQsICVlc2kKKwlzdWIJJDQsICVlZGkKIAlzdWIJJDQsICVlY3gKIAlzdWIJJDQsICVlZHgKLQltb3ZsCSglZXNpKSwgJWVheAorCW1vdmwJKCVlZGkpLCAlZWF4CiAJbW92bAklZWF4LCAoJWVkeCkKIAogCXRlc3RsCSQxNSwgJWVkeAogCWp6CUwoYmtfc3NzZTNfY3B5X3ByZSkKIAotCXN1YgkkNCwgJWVzaQorCXN1YgkkNCwgJWVkaQogCXN1YgkkNCwgJWVjeAogCXN1YgkkNCwgJWVkeAotCW1vdmwJKCVlc2kpLCAlZWF4CisJbW92bAkoJWVkaSksICVlYXgKIAltb3ZsCSVlYXgsICglZWR4KQogCiBMKGJrX3Nzc2UzX2NweV9wcmUpOgogCWNtcAkkNjQsICVlY3gKIAlqYglMKGJrX3dyaXRlX21vcmUzMmJ5dGVzKQogCisJLnAyYWxpZ24gNAogTChia19zc3NlM19jcHkpOgotCXN1YgkkNjQsICVlc2kKKwlzdWIJJDY0LCAlZWRpCiAJc3ViCSQ2NCwgJWVjeAogCXN1YgkkNjQsICVlZHgKLQltb3ZkcXUJMHgzMCglZXNpKSwgJXhtbTMKKwltb3ZkcXUJMHgzMCglZWRpKSwgJXhtbTMKIAltb3ZkcWEJJXhtbTMsIDB4MzAoJWVkeCkKLQltb3ZkcXUJMHgyMCglZXNpKSwgJXhtbTIKKwltb3ZkcXUJMHgyMCglZWRpKSwgJXhtbTIKIAltb3ZkcWEJJXhtbTIsIDB4MjAoJWVkeCkKLQltb3ZkcXUJMHgxMCglZXNpKSwgJXhtbTEKKwltb3ZkcXUJMHgxMCglZWRpKSwgJXhtbTEKIAltb3ZkcWEJJXhtbTEsIDB4MTAoJWVkeCkKLQltb3ZkcXUJKCVlc2kpLCAleG1tMAorCW1vdmRxdQkoJWVkaSksICV4bW0wCiAJbW92ZHFhCSV4bW0wLCAoJWVkeCkKIAljbXAJJDY0LCAlZWN4CiAJamFlCUwoYmtfc3NzZTNfY3B5KQpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2xlYWsuYyBiL2xpYmMvYmlvbmljL21hbGxvY19kZWJ1Z19sZWFrLmMKaW5kZXggZTBiY2VlOS4uZTU4NDUwMiAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2xlYWsuYworKysgYi9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfbGVhay5jCkBAIC0yNSwyNiArMjUsMjYgQEAKICAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgogICogU1VDSCBEQU1BR0UuCiAgKi8KKworI2luY2x1ZGUgPGRsZmNuLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHN0ZGRlZi5oPgotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dW53aW5kLmg+Ci0jaW5jbHVkZSA8ZGxmY24uaD4KIAotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvdW4uaD4KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KICNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogI2luY2x1ZGUgPHN5cy9zeXN0ZW1fcHJvcGVydGllcy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy91bi5oPgogCiAjaW5jbHVkZSAiZGxtYWxsb2MuaCIKICNpbmNsdWRlICJsb2dkLmgiCkBAIC0zNzIsNyArMzcyLDExIEBACiAKIHZvaWQqIGNoa19tYWxsb2Moc2l6ZV90IGJ5dGVzKQogewotICAgIGNoYXIqIGJ1ZmZlciA9IChjaGFyKilkbG1hbGxvYyhieXRlcyArIENIS19PVkVSSEVBRF9TSVpFKTsKKyAgICBzaXplX3Qgc2l6ZSA9IGJ5dGVzICsgQ0hLX09WRVJIRUFEX1NJWkU7CisgICAgaWYgKHNpemUgPCBieXRlcykgeyAvLyBPdmVyZmxvdy4KKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHVpbnQ4X3QqIGJ1ZmZlciA9ICh1aW50OF90KikgZGxtYWxsb2Moc2l6ZSk7CiAgICAgaWYgKGJ1ZmZlcikgewogICAgICAgICBtZW1zZXQoYnVmZmVyLCBDSEtfU0VOVElORUxfVkFMVUUsIGJ5dGVzICsgQ0hLX09WRVJIRUFEX1NJWkUpOwogICAgICAgICBzaXplX3Qgb2Zmc2V0ID0gZGxtYWxsb2NfdXNhYmxlX3NpemUoYnVmZmVyKSAtIHNpemVvZihzaXplX3QpOwpAQCAtNTA1LDcgKzUwOSwxMiBAQAogICAgIC8vIDEuIGFsbG9jYXRlIGVub3VnaCBtZW1vcnkgYW5kIGluY2x1ZGUgb3VyIGhlYWRlcgogICAgIC8vIDIuIHNldCB0aGUgYmFzZSBwb2ludGVyIHRvIGJlIHJpZ2h0IGFmdGVyIG91ciBoZWFkZXIKIAotICAgIHZvaWQqIGJhc2UgPSBkbG1hbGxvYyhieXRlcyArIHNpemVvZihBbGxvY2F0aW9uRW50cnkpKTsKKyAgICBzaXplX3Qgc2l6ZSA9IGJ5dGVzICsgc2l6ZW9mKEFsbG9jYXRpb25FbnRyeSk7CisgICAgaWYgKHNpemUgPCBieXRlcykgeyAvLyBPdmVyZmxvdy4KKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgdm9pZCogYmFzZSA9IGRsbWFsbG9jKHNpemUpOwogICAgIGlmIChiYXNlICE9IE5VTEwpIHsKICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZnQWxsb2NhdGlvbnNNdXRleCk7CiAKQEAgLTYxNSw2ICs2MjQsMTAgQEAKICAgICAvLyB3ZSB3aWxsIGFsaWduIGJ5IGF0IGxlYXN0IE1BTExPQ19BTElHTk1FTlQgYnl0ZXMKICAgICAvLyBhbmQgYXQgbW9zdCBhbGlnbm1lbnQtTUFMTE9DX0FMSUdOTUVOVCBieXRlcwogICAgIHNpemVfdCBzaXplID0gKGFsaWdubWVudC1NQUxMT0NfQUxJR05NRU5UKSArIGJ5dGVzOworICAgIGlmIChzaXplIDwgYnl0ZXMpIHsgLy8gT3ZlcmZsb3cuCisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKwogICAgIHZvaWQqIGJhc2UgPSBsZWFrX21hbGxvYyhzaXplKTsKICAgICBpZiAoYmFzZSAhPSBOVUxMKSB7CiAgICAgICAgIGludHB0cl90IHB0ciA9IChpbnRwdHJfdCliYXNlOwpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvcHRocmVhZC5jIGIvbGliYy9iaW9uaWMvcHRocmVhZC5jCmluZGV4IDVjYWQxNjcuLjJlMmMwOWQgMTAwNjQ0Ci0tLSBhL2xpYmMvYmlvbmljL3B0aHJlYWQuYworKysgYi9saWJjL2Jpb25pYy9wdGhyZWFkLmMKQEAgLTI1LDMxICsyNSwzMiBAQAogICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAgKiBTVUNIIERBTUFHRS4KICAqLwotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPG1lbW9yeS5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3lzL2F0b21pY3MuaD4KLSNpbmNsdWRlIDxiaW9uaWNfdGxzLmg+CiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8dGltZS5oPgotI2luY2x1ZGUgInB0aHJlYWRfaW50ZXJuYWwuaCIKLSNpbmNsdWRlICJ0aHJlYWRfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPG1lbW9yeS5oPgotI2luY2x1ZGUgPGFzc2VydC5oPgotI2luY2x1ZGUgPG1hbGxvYy5oPgotI2luY2x1ZGUgPGJpb25pY19mdXRleC5oPgotI2luY2x1ZGUgPGJpb25pY19hdG9taWNfaW5saW5lLmg+CiAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8YmlvbmljX3B0aHJlYWQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlICJiaW9uaWNfYXRvbWljX2lubGluZS5oIgorI2luY2x1ZGUgImJpb25pY19mdXRleC5oIgorI2luY2x1ZGUgImJpb25pY19wdGhyZWFkLmgiCisjaW5jbHVkZSAiYmlvbmljX3Rscy5oIgorI2luY2x1ZGUgInB0aHJlYWRfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJ0aHJlYWRfcHJpdmF0ZS5oIgogCiBleHRlcm4gdm9pZCBwdGhyZWFkX2RlYnVnX211dGV4X2xvY2tfY2hlY2socHRocmVhZF9tdXRleF90ICptdXRleCk7CiBleHRlcm4gdm9pZCBwdGhyZWFkX2RlYnVnX211dGV4X3VubG9ja19jaGVjayhwdGhyZWFkX211dGV4X3QgKm11dGV4KTsKQEAgLTgwLDYgKzgxLDggQEAKIAogdm9pZCBBVFRSSUJVVEVTIF90aHJlYWRfY3JlYXRlZF9ob29rKHBpZF90IHRocmVhZF9pZCk7CiAKK3N0YXRpYyBjb25zdCBpbnQga1B0aHJlYWRJbml0RmFpbGVkID0gMTsKKwogI2RlZmluZSBQVEhSRUFEX0FUVFJfRkxBR19ERVRBQ0hFRCAgICAgIDB4MDAwMDAwMDEKICNkZWZpbmUgUFRIUkVBRF9BVFRSX0ZMQUdfVVNFUl9TVEFDSyAgICAweDAwMDAwMDAyCiAKQEAgLTk3LDM1ICsxMDAsMTYgQEAKICAgICAuc2NoZWRfcHJpb3JpdHkgPSAwCiB9OwogCi0jZGVmaW5lICBJTklUX1RIUkVBRFMgIDEKLQotc3RhdGljIHB0aHJlYWRfaW50ZXJuYWxfdCogIGdUaHJlYWRMaXN0ID0gTlVMTDsKK3N0YXRpYyBwdGhyZWFkX2ludGVybmFsX3QqIGdUaHJlYWRMaXN0ID0gTlVMTDsKIHN0YXRpYyBwdGhyZWFkX211dGV4X3QgZ1RocmVhZExpc3RMb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKIHN0YXRpYyBwdGhyZWFkX211dGV4X3QgZ0RlYnVnZ2VyTm90aWZpY2F0aW9uTG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CiAKIAotLyogd2Ugc2ltcGx5IG1hbGxvYy9mcmVlIHRoZSBpbnRlcm5hbCBwdGhyZWFkX2ludGVybmFsX3Qgc3RydWN0dXJlcy4gd2UgbWF5Ci0gKiB3YW50IHRvIHVzZSBhIGRpZmZlcmVudCBhbGxvY2F0aW9uIHNjaGVtZSBpbiB0aGUgZnV0dXJlLCBidXQgdGhpcyBvbmUgc2hvdWxkCi0gKiBiZSBsYXJnZWx5IGVub3VnaAotICovCi1zdGF0aWMgcHRocmVhZF9pbnRlcm5hbF90KgotX3B0aHJlYWRfaW50ZXJuYWxfYWxsb2Modm9pZCkKLXsKLSAgICBwdGhyZWFkX2ludGVybmFsX3QqICAgdGhyZWFkOwotCi0gICAgdGhyZWFkID0gY2FsbG9jKCBzaXplb2YoKnRocmVhZCksIDEgKTsKLSAgICBpZiAodGhyZWFkKQotICAgICAgICB0aHJlYWQtPmludGVybiA9IDE7Ci0KLSAgICByZXR1cm4gdGhyZWFkOwotfQotCiBzdGF0aWMgdm9pZAotX3B0aHJlYWRfaW50ZXJuYWxfZnJlZSggcHRocmVhZF9pbnRlcm5hbF90KiAgdGhyZWFkICkKK19wdGhyZWFkX2ludGVybmFsX2ZyZWUocHRocmVhZF9pbnRlcm5hbF90KiB0aHJlYWQpCiB7Ci0gICAgaWYgKHRocmVhZCAmJiB0aHJlYWQtPmludGVybikgewotICAgICAgICB0aHJlYWQtPmludGVybiA9IDA7ICAvKiBqdXN0IGluIGNhc2UgKi8KLSAgICAgICAgZnJlZSAodGhyZWFkKTsKKyAgICBpZiAodGhyZWFkICE9IE5VTEwpIHsKKyAgICAgICAgZnJlZSh0aHJlYWQpOwogICAgIH0KIH0KIApAQCAtMTk0LDMyICsxNzgsMzUgQEAKIAogCiAvKgotICogVGhpcyB0cmFtcG9saW5lIGlzIGNhbGxlZCBmcm9tIHRoZSBhc3NlbWJseSBjbG9uZSgpIGZ1bmN0aW9uCisgKiBUaGlzIHRyYW1wb2xpbmUgaXMgY2FsbGVkIGZyb20gdGhlIGFzc2VtYmx5IF9wdGhyZWFkX2Nsb25lKCkgZnVuY3Rpb24uCiAgKi8KIHZvaWQgX190aHJlYWRfZW50cnkoaW50ICgqZnVuYykodm9pZCopLCB2b2lkICphcmcsIHZvaWQgKip0bHMpCiB7Ci0gICAgaW50IHJldFZhbHVlOwotICAgIHB0aHJlYWRfaW50ZXJuYWxfdCAqIHRockluZm87Ci0KICAgICAvLyBXYWl0IGZvciBvdXIgY3JlYXRpbmcgdGhyZWFkIHRvIHJlbGVhc2UgdXMuIFRoaXMgbGV0cyBpdCBoYXZlIHRpbWUgdG8KLSAgICAvLyBub3RpZnkgZ2RiIGFib3V0IHRoaXMgdGhyZWFkIGJlZm9yZSBpdCBzdGFydHMgZG9pbmcgYW55dGhpbmcuCisgICAgLy8gbm90aWZ5IGdkYiBhYm91dCB0aGlzIHRocmVhZCBiZWZvcmUgd2Ugc3RhcnQgZG9pbmcgYW55dGhpbmcuCiAgICAgLy8KICAgICAvLyBUaGlzIGFsc28gcHJvdmlkZXMgdGhlIG1lbW9yeSBiYXJyaWVyIG5lZWRlZCB0byBlbnN1cmUgdGhhdCBhbGwgbWVtb3J5CiAgICAgLy8gYWNjZXNzZXMgcHJldmlvdXNseSBtYWRlIGJ5IHRoZSBjcmVhdGluZyB0aHJlYWQgYXJlIHZpc2libGUgdG8gdXMuCi0gICAgcHRocmVhZF9tdXRleF90ICogc3RhcnRfbXV0ZXggPSAocHRocmVhZF9tdXRleF90ICopJnRsc1tUTFNfU0xPVF9TRUxGXTsKKyAgICBwdGhyZWFkX211dGV4X3QqIHN0YXJ0X211dGV4ID0gKHB0aHJlYWRfbXV0ZXhfdCopICZ0bHNbVExTX1NMT1RfU0VMRl07CiAgICAgcHRocmVhZF9tdXRleF9sb2NrKHN0YXJ0X211dGV4KTsKICAgICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koc3RhcnRfbXV0ZXgpOwogCi0gICAgdGhySW5mbyA9IChwdGhyZWFkX2ludGVybmFsX3QgKikgdGxzW1RMU19TTE9UX1RIUkVBRF9JRF07CisgICAgcHRocmVhZF9pbnRlcm5hbF90KiB0aHJlYWQgPSAocHRocmVhZF9pbnRlcm5hbF90KikgdGxzW1RMU19TTE9UX1RIUkVBRF9JRF07CisgICAgX19pbml0X3Rscyh0bHMsIHRocmVhZCk7CiAKLSAgICBfX2luaXRfdGxzKCB0bHMsIHRockluZm8gKTsKKyAgICBpZiAoKHRocmVhZC0+aW50ZXJuYWxfZmxhZ3MgJiBrUHRocmVhZEluaXRGYWlsZWQpICE9IDApIHsKKyAgICAgICAgcHRocmVhZF9leGl0KE5VTEwpOworICAgIH0KIAotICAgIHB0aHJlYWRfZXhpdCggKHZvaWQqKWZ1bmMoYXJnKSApOworICAgIGludCByZXN1bHQgPSBmdW5jKGFyZyk7CisgICAgcHRocmVhZF9leGl0KCh2b2lkKikgcmVzdWx0KTsKIH0KIAogX19MSUJDX0FCSV9QUklWQVRFX18KLXZvaWQgX2luaXRfdGhyZWFkKHB0aHJlYWRfaW50ZXJuYWxfdCAqIHRocmVhZCwgcGlkX3Qga2VybmVsX2lkLCBwdGhyZWFkX2F0dHJfdCAqIGF0dHIsIHZvaWQgKiBzdGFja19iYXNlKQoraW50IF9pbml0X3RocmVhZChwdGhyZWFkX2ludGVybmFsX3QgKiB0aHJlYWQsIHBpZF90IGtlcm5lbF9pZCwgcHRocmVhZF9hdHRyX3QgKiBhdHRyLCB2b2lkICogc3RhY2tfYmFzZSkKIHsKKyAgICBpbnQgZXJyb3IgPSAwOworCiAgICAgaWYgKGF0dHIgPT0gTlVMTCkgewogICAgICAgICB0aHJlYWQtPmF0dHIgPSBnRGVmYXVsdFB0aHJlYWRBdHRyOwogICAgIH0gZWxzZSB7CkBAIC0yMjgsNDAgKzIxNSw0MiBAQAogICAgIHRocmVhZC0+YXR0ci5zdGFja19iYXNlID0gc3RhY2tfYmFzZTsKICAgICB0aHJlYWQtPmtlcm5lbF9pZCAgICAgICA9IGtlcm5lbF9pZDsKIAotICAgIC8vIHNldCB0aGUgc2NoZWR1bGluZyBwb2xpY3kvcHJpb3JpdHkgb2YgdGhlIHRocmVhZAorICAgIC8vIE1ha2UgYSBub3RlIG9mIHdoZXRoZXIgdGhlIHVzZXIgc3VwcGxpZWQgdGhpcyBzdGFjayAoc28gd2Uga25vdyB3aGV0aGVyIG9yIG5vdCB0byBmcmVlIGl0KS4KKyAgICBpZiAoYXR0ci0+c3RhY2tfYmFzZSA9PSBzdGFja19iYXNlKSB7CisgICAgICAgIHRocmVhZC0+YXR0ci5mbGFncyB8PSBQVEhSRUFEX0FUVFJfRkxBR19VU0VSX1NUQUNLOworICAgIH0KKworICAgIC8vIFNldCB0aGUgc2NoZWR1bGluZyBwb2xpY3kvcHJpb3JpdHkgb2YgdGhlIHRocmVhZC4KICAgICBpZiAodGhyZWFkLT5hdHRyLnNjaGVkX3BvbGljeSAhPSBTQ0hFRF9OT1JNQUwpIHsKICAgICAgICAgc3RydWN0IHNjaGVkX3BhcmFtIHBhcmFtOwogICAgICAgICBwYXJhbS5zY2hlZF9wcmlvcml0eSA9IHRocmVhZC0+YXR0ci5zY2hlZF9wcmlvcml0eTsKLSAgICAgICAgc2NoZWRfc2V0c2NoZWR1bGVyKGtlcm5lbF9pZCwgdGhyZWFkLT5hdHRyLnNjaGVkX3BvbGljeSwgJnBhcmFtKTsKKyAgICAgICAgaWYgKHNjaGVkX3NldHNjaGVkdWxlcihrZXJuZWxfaWQsIHRocmVhZC0+YXR0ci5zY2hlZF9wb2xpY3ksICZwYXJhbSkgPT0gLTEpIHsKKyAgICAgICAgICAgIGVycm9yID0gZXJybm87CisgICAgICAgIH0KICAgICB9CiAKICAgICBwdGhyZWFkX2NvbmRfaW5pdCgmdGhyZWFkLT5qb2luX2NvbmQsIE5VTEwpOwogICAgIHRocmVhZC0+am9pbl9jb3VudCA9IDA7CiAKICAgICB0aHJlYWQtPmNsZWFudXBfc3RhY2sgPSBOVUxMOworCisgICAgX3B0aHJlYWRfaW50ZXJuYWxfYWRkKHRocmVhZCk7CisgICAgcmV0dXJuIGVycm9yOwogfQogCi0KLS8qIFhYWCBzdGFja3Mgbm90IHJlY2xhaW1lZCBpZiB0aHJlYWQgc3Bhd24gZmFpbHMgKi8KLS8qIFhYWCBzdGFja3MgYWRkcmVzcyBzcGFjZXMgc2hvdWxkIGJlIHJldXNlZCBpZiBhdmFpbGFibGUgYWdhaW4gKi8KLQogc3RhdGljIHZvaWQgKm1rc3RhY2soc2l6ZV90IHNpemUsIHNpemVfdCBndWFyZF9zaXplKQogewotICAgIHZvaWQgKiBzdGFjazsKLQogICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbW1hcF9sb2NrKTsKIAotICAgIHN0YWNrID0gbW1hcChOVUxMLCBzaXplLAotICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAotICAgICAgICAgICAgICAgICBNQVBfUFJJVkFURSB8IE1BUF9BTk9OWU1PVVMgfCBNQVBfTk9SRVNFUlZFLAotICAgICAgICAgICAgICAgICAtMSwgMCk7Ci0KLSAgICBpZihzdGFjayA9PSBNQVBfRkFJTEVEKSB7CisgICAgaW50IHByb3QgPSBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFOworICAgIGludCBmbGFncyA9IE1BUF9QUklWQVRFIHwgTUFQX0FOT05ZTU9VUyB8IE1BUF9OT1JFU0VSVkU7CisgICAgdm9pZCogc3RhY2sgPSBtbWFwKE5VTEwsIHNpemUsIHByb3QsIGZsYWdzLCAtMSwgMCk7CisgICAgaWYgKHN0YWNrID09IE1BUF9GQUlMRUQpIHsKICAgICAgICAgc3RhY2sgPSBOVUxMOwogICAgICAgICBnb3RvIGRvbmU7CiAgICAgfQogCi0gICAgaWYobXByb3RlY3Qoc3RhY2ssIGd1YXJkX3NpemUsIFBST1RfTk9ORSkpeworICAgIGlmIChtcHJvdGVjdChzdGFjaywgZ3VhcmRfc2l6ZSwgUFJPVF9OT05FKSA9PSAtMSkgewogICAgICAgICBtdW5tYXAoc3RhY2ssIHNpemUpOwogICAgICAgICBzdGFjayA9IE5VTEw7CiAgICAgICAgIGdvdG8gZG9uZTsKQEAgLTI5OCwxMyArMjg3LDcgQEAKIGludCBwdGhyZWFkX2NyZWF0ZShwdGhyZWFkX3QgKnRocmVhZF9vdXQsIHB0aHJlYWRfYXR0cl90IGNvbnN0ICogYXR0ciwKICAgICAgICAgICAgICAgICAgICB2b2lkICooKnN0YXJ0X3JvdXRpbmUpKHZvaWQgKiksIHZvaWQgKiBhcmcpCiB7Ci0gICAgY2hhciogICBzdGFjazsKLSAgICB2b2lkKiogIHRsczsKLSAgICBpbnQgdGlkOwotICAgIHB0aHJlYWRfbXV0ZXhfdCAqIHN0YXJ0X211dGV4OwotICAgIHB0aHJlYWRfaW50ZXJuYWxfdCAqIHRocmVhZDsKLSAgICBpbnQgICAgICAgICAgICAgICAgICBtYWRlc3RhY2sgPSAwOwotICAgIGludCAgICAgb2xkX2Vycm5vID0gZXJybm87CisgICAgaW50IG9sZF9lcnJubyA9IGVycm5vOwogCiAgICAgLyogdGhpcyB3aWxsIGluZm9ybSB0aGUgcmVzdCBvZiB0aGUgQyBsaWJyYXJ5IHRoYXQgYXQgbGVhc3Qgb25lIHRocmVhZAogICAgICAqIHdhcyBjcmVhdGVkLiB0aGlzIHdpbGwgZW5mb3JjZSBjZXJ0YWluIGZ1bmN0aW9ucyB0byBhY3F1aXJlL3JlbGVhc2UKQEAgLTMxNSwzMSArMjk4LDI4IEBACiAgICAgICovCiAgICAgX19pc3RocmVhZGVkID0gMTsKIAotICAgIHRocmVhZCA9IF9wdGhyZWFkX2ludGVybmFsX2FsbG9jKCk7Ci0gICAgaWYgKHRocmVhZCA9PSBOVUxMKQorICAgIHB0aHJlYWRfaW50ZXJuYWxfdCogdGhyZWFkID0gY2FsbG9jKHNpemVvZigqdGhyZWFkKSwgMSk7CisgICAgaWYgKHRocmVhZCA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBFTk9NRU07CisgICAgfQogCiAgICAgaWYgKGF0dHIgPT0gTlVMTCkgewogICAgICAgICBhdHRyID0gJmdEZWZhdWx0UHRocmVhZEF0dHI7CiAgICAgfQogCiAgICAgLy8gbWFrZSBzdXJlIHRoZSBzdGFjayBpcyBQQUdFX1NJWkUgYWxpZ25lZAotICAgIHNpemVfdCBzdGFja1NpemUgPSAoYXR0ci0+c3RhY2tfc2l6ZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAoUEFHRV9TSVpFLTEpKSAmIH4oUEFHRV9TSVpFLTEpOwotCi0gICAgaWYgKCFhdHRyLT5zdGFja19iYXNlKSB7Ci0gICAgICAgIHN0YWNrID0gbWtzdGFjayhzdGFja1NpemUsIGF0dHItPmd1YXJkX3NpemUpOwotICAgICAgICBpZihzdGFjayA9PSBOVUxMKSB7CisgICAgc2l6ZV90IHN0YWNrX3NpemUgPSAoYXR0ci0+c3RhY2tfc2l6ZSArIChQQUdFX1NJWkUtMSkpICYgfihQQUdFX1NJWkUtMSk7CisgICAgdWludDhfdCogc3RhY2sgPSBhdHRyLT5zdGFja19iYXNlOworICAgIGlmIChzdGFjayA9PSBOVUxMKSB7CisgICAgICAgIHN0YWNrID0gbWtzdGFjayhzdGFja19zaXplLCBhdHRyLT5ndWFyZF9zaXplKTsKKyAgICAgICAgaWYgKHN0YWNrID09IE5VTEwpIHsKICAgICAgICAgICAgIF9wdGhyZWFkX2ludGVybmFsX2ZyZWUodGhyZWFkKTsKICAgICAgICAgICAgIHJldHVybiBFTk9NRU07CiAgICAgICAgIH0KLSAgICAgICAgbWFkZXN0YWNrID0gMTsKLSAgICB9IGVsc2UgewotICAgICAgICBzdGFjayA9IGF0dHItPnN0YWNrX2Jhc2U7CiAgICAgfQogCiAgICAgLy8gTWFrZSByb29tIGZvciBUTFMKLSAgICB0bHMgPSAodm9pZCoqKShzdGFjayArIHN0YWNrU2l6ZSAtIEJJT05JQ19UTFNfU0xPVFMqc2l6ZW9mKHZvaWQqKSk7CisgICAgdm9pZCoqIHRscyA9ICh2b2lkKiopKHN0YWNrICsgc3RhY2tfc2l6ZSAtIEJJT05JQ19UTFNfU0xPVFMqc2l6ZW9mKHZvaWQqKSk7CiAKICAgICAvLyBDcmVhdGUgYSBtdXRleCBmb3IgdGhlIHRocmVhZCBpbiBUTFNfU0xPVF9TRUxGIHRvIHdhaXQgb24gb25jZSBpdCBzdGFydHMgc28gd2UgY2FuIGtlZXAKICAgICAvLyBpdCBmcm9tIGRvaW5nIGFueXRoaW5nIHVudGlsIGFmdGVyIHdlIG5vdGlmeSB0aGUgZGVidWdnZXIgYWJvdXQgaXQKQEAgLTM0Nyw0MyArMzI3LDQ3IEBACiAgICAgLy8gVGhpcyBhbHNvIHByb3ZpZGVzIHRoZSBtZW1vcnkgYmFycmllciB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFsbAogICAgIC8vIG1lbW9yeSBhY2Nlc3NlcyBwcmV2aW91c2x5IHBlcmZvcm1lZCBieSB0aGlzIHRocmVhZCBhcmUgdmlzaWJsZSB0bwogICAgIC8vIHRoZSBuZXcgdGhyZWFkLgotICAgIHN0YXJ0X211dGV4ID0gKHB0aHJlYWRfbXV0ZXhfdCAqKSAmdGxzW1RMU19TTE9UX1NFTEZdOworICAgIHB0aHJlYWRfbXV0ZXhfdCogc3RhcnRfbXV0ZXggPSAocHRocmVhZF9tdXRleF90KikgJnRsc1tUTFNfU0xPVF9TRUxGXTsKICAgICBwdGhyZWFkX211dGV4X2luaXQoc3RhcnRfbXV0ZXgsIE5VTEwpOwogICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhzdGFydF9tdXRleCk7CiAKICAgICB0bHNbVExTX1NMT1RfVEhSRUFEX0lEXSA9IHRocmVhZDsKIAotICAgIHRpZCA9IF9fcHRocmVhZF9jbG9uZSgoaW50KCopKHZvaWQqKSlzdGFydF9yb3V0aW5lLCB0bHMsCi0gICAgICAgICAgICAgICAgQ0xPTkVfRklMRVMgfCBDTE9ORV9GUyB8IENMT05FX1ZNIHwgQ0xPTkVfU0lHSEFORAotICAgICAgICAgICAgICAgIHwgQ0xPTkVfVEhSRUFEIHwgQ0xPTkVfU1lTVlNFTSB8IENMT05FX0RFVEFDSEVELAotICAgICAgICAgICAgICAgIGFyZyk7CisgICAgaW50IGZsYWdzID0gQ0xPTkVfRklMRVMgfCBDTE9ORV9GUyB8IENMT05FX1ZNIHwgQ0xPTkVfU0lHSEFORCB8CisgICAgICAgICAgICAgICAgQ0xPTkVfVEhSRUFEIHwgQ0xPTkVfU1lTVlNFTSB8IENMT05FX0RFVEFDSEVEOworICAgIGludCB0aWQgPSBfX3B0aHJlYWRfY2xvbmUoKGludCgqKSh2b2lkKikpc3RhcnRfcm91dGluZSwgdGxzLCBmbGFncywgYXJnKTsKIAotICAgIGlmKHRpZCA8IDApIHsKLSAgICAgICAgaW50ICByZXN1bHQ7Ci0gICAgICAgIGlmIChtYWRlc3RhY2spCi0gICAgICAgICAgICBtdW5tYXAoc3RhY2ssIHN0YWNrU2l6ZSk7CisgICAgaWYgKHRpZCA8IDApIHsKKyAgICAgICAgaW50IGNsb25lX2Vycm5vID0gZXJybm87CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHN0YXJ0X211dGV4KTsKKyAgICAgICAgaWYgKHN0YWNrICE9IGF0dHItPnN0YWNrX2Jhc2UpIHsKKyAgICAgICAgICAgIG11bm1hcChzdGFjaywgc3RhY2tfc2l6ZSk7CisgICAgICAgIH0KICAgICAgICAgX3B0aHJlYWRfaW50ZXJuYWxfZnJlZSh0aHJlYWQpOwotICAgICAgICByZXN1bHQgPSBlcnJubzsKICAgICAgICAgZXJybm8gPSBvbGRfZXJybm87Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiBjbG9uZV9lcnJubzsKICAgICB9CiAKLSAgICBfaW5pdF90aHJlYWQodGhyZWFkLCB0aWQsIChwdGhyZWFkX2F0dHJfdCopYXR0ciwgc3RhY2spOworICAgIGludCBpbml0X2Vycm5vID0gX2luaXRfdGhyZWFkKHRocmVhZCwgdGlkLCAocHRocmVhZF9hdHRyX3QqKSBhdHRyLCBzdGFjayk7CisgICAgaWYgKGluaXRfZXJybm8gIT0gMCkgeworICAgICAgICAvLyBNYXJrIHRoZSB0aHJlYWQgZGV0YWNoZWQgYW5kIGxldCBpdHMgX190aHJlYWRfZW50cnkgcnVuIHRvCisgICAgICAgIC8vIGNvbXBsZXRpb24uIChJdCdsbCBqdXN0IGV4aXQgaW1tZWRpYXRlbHksIGNsZWFuaW5nIHVwIGl0cyByZXNvdXJjZXMuKQorICAgICAgICB0aHJlYWQtPmludGVybmFsX2ZsYWdzIHw9IGtQdGhyZWFkSW5pdEZhaWxlZDsKKyAgICAgICAgdGhyZWFkLT5hdHRyLmZsYWdzIHw9IFBUSFJFQURfQVRUUl9GTEFHX0RFVEFDSEVEOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhzdGFydF9tdXRleCk7CisgICAgICAgIGVycm5vID0gb2xkX2Vycm5vOworICAgICAgICByZXR1cm4gaW5pdF9lcnJubzsKKyAgICB9CiAKLSAgICBfcHRocmVhZF9pbnRlcm5hbF9hZGQodGhyZWFkKTsKLQotICAgIGlmICghbWFkZXN0YWNrKQotICAgICAgICB0aHJlYWQtPmF0dHIuZmxhZ3MgfD0gUFRIUkVBRF9BVFRSX0ZMQUdfVVNFUl9TVEFDSzsKLQotICAgIC8vIE5vdGlmeSBhbnkgZGVidWdnZXJzIGFib3V0IHRoZSBuZXcgdGhyZWFkCisgICAgLy8gTm90aWZ5IGFueSBkZWJ1Z2dlcnMgYWJvdXQgdGhlIG5ldyB0aHJlYWQuCiAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZnRGVidWdnZXJOb3RpZmljYXRpb25Mb2NrKTsKICAgICBfdGhyZWFkX2NyZWF0ZWRfaG9vayh0aWQpOwogICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZnRGVidWdnZXJOb3RpZmljYXRpb25Mb2NrKTsKIAotICAgIC8vIExldCB0aGUgdGhyZWFkIGRvIGl0J3MgdGhpbmcKKyAgICAvLyBMZXQgdGhlIHRocmVhZCBydW4uCiAgICAgcHRocmVhZF9tdXRleF91bmxvY2soc3RhcnRfbXV0ZXgpOwogCi0gICAgKnRocmVhZF9vdXQgPSAocHRocmVhZF90KXRocmVhZDsKKyAgICAqdGhyZWFkX291dCA9IChwdGhyZWFkX3QpIHRocmVhZDsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNTkzLDYgKzU3NywxNyBAQAogICAgICAgICBfcHRocmVhZF9pbnRlcm5hbF9yZW1vdmUodGhyZWFkKTsKICAgICAgICAgX3B0aHJlYWRfaW50ZXJuYWxfZnJlZSh0aHJlYWQpOwogICAgIH0gZWxzZSB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmZ1RocmVhZExpc3RMb2NrKTsKKworICAgICAgIC8qIG1ha2Ugc3VyZSB0aGF0IHRoZSB0aHJlYWQgc3RydWN0IGRvZXNuJ3QgaGF2ZSBzdGFsZSBwb2ludGVycyB0byBhIHN0YWNrIHRoYXQKKyAgICAgICAgKiB3aWxsIGJlIHVubWFwcGVkIGFmdGVyIHRoZSBleGl0IGNhbGwgYmVsb3cuCisgICAgICAgICovCisgICAgICAgIGlmICghdXNlcl9zdGFjaykgeworICAgICAgICAgICAgdGhyZWFkLT5hdHRyLnN0YWNrX2Jhc2UgPSBOVUxMOworICAgICAgICAgICAgdGhyZWFkLT5hdHRyLnN0YWNrX3NpemUgPSAwOworICAgICAgICAgICAgdGhyZWFkLT50bHMgPSBOVUxMOworICAgICAgICB9CisKICAgICAgICAvKiB0aGUgam9pbl9jb3VudCBmaWVsZCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBudW1iZXIgb2YgdGhyZWFkcyB3YWl0aW5nIGZvcgogICAgICAgICAqIHRoZSB0ZXJtaW5hdGlvbiBvZiB0aGlzIHRocmVhZCB3aXRoIHB0aHJlYWRfam9pbigpLAogICAgICAgICAqCkBAIC02MDUsNyArNjAwLDYgQEAKICAgICAgICAgKiBpcyBnb25lIChhcyB3ZWxsIGFzIGl0cyBUTFMgYXJlYSkuIHdoZW4gYW5vdGhlciB0aHJlYWQgY2FsbHMgcHRocmVhZF9qb2luKCkKICAgICAgICAgKiBvbiBpdCwgaXQgd2lsbCBpbW1lZGlhdGVseSBmcmVlIHRoZSB0aHJlYWQgYW5kIHJldHVybi4KICAgICAgICAgKi8KLSAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZnVGhyZWFkTGlzdExvY2spOwogICAgICAgICB0aHJlYWQtPnJldHVybl92YWx1ZSA9IHJldHZhbDsKICAgICAgICAgaWYgKHRocmVhZC0+am9pbl9jb3VudCA+IDApIHsKICAgICAgICAgICAgIHB0aHJlYWRfY29uZF9icm9hZGNhc3QoJnRocmVhZC0+am9pbl9jb25kKTsKQEAgLTE5NTgsNyArMTk1Miw5IEBACiAgICAgICAgICAqIHNpbWlsYXJseSwgaXQgaXMgcG9zc2libGUgdG8gaGF2ZSB0aHItPnRscyA9PSBOVUxMIGZvciB0aHJlYWRzIHRoYXQKICAgICAgICAgICogd2VyZSBqdXN0IHJlY2VudGx5IGNyZWF0ZWQgdGhyb3VnaCBwdGhyZWFkX2NyZWF0ZSgpIGJ1dCB3aG9zZQogICAgICAgICAgKiBzdGFydHVwIHRyYW1wb2xpbmUgKF9fdGhyZWFkX2VudHJ5KSBoYXNuJ3QgYmVlbiBydW4geWV0IGJ5IHRoZQotICAgICAgICAgKiBzY2hlZHVsZXIuIHNvIGNoZWNrIGZvciB0aGlzIHRvby4KKyAgICAgICAgICogc2NoZWR1bGVyLiB0aHItPnRscyB3aWxsIGFsc28gYmUgTlVMTCBhZnRlciBpdCdzIHN0YWNrIGhhcyBiZWVuCisgICAgICAgICAqIHVubWFwcGVkIGJ1dCBiZWZvcmUgdGhlIG9uZ29pbmcgcHRocmVhZF9qb2luKCkgaXMgZmluaXNoZWQuCisgICAgICAgICAqIHNvIGNoZWNrIGZvciB0aGlzIHRvby4KICAgICAgICAgICovCiAgICAgICAgIGlmICh0aHItPmpvaW5fY291bnQgPCAwIHx8ICF0aHItPnRscykKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvcHRocmVhZF9pbnRlcm5hbC5oIGIvbGliYy9iaW9uaWMvcHRocmVhZF9pbnRlcm5hbC5oCmluZGV4IDI2OGNhY2YuLjJiZDExMGMgMTAwNjQ0Ci0tLSBhL2xpYmMvYmlvbmljL3B0aHJlYWRfaW50ZXJuYWwuaAorKysgYi9saWJjL2Jpb25pYy9wdGhyZWFkX2ludGVybmFsLmgKQEAgLTQxLDEyICs0MSwxMiBAQAogICAgIHB0aHJlYWRfY29uZF90ICAgICAgICAgICAgICBqb2luX2NvbmQ7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIGpvaW5fY291bnQ7CiAgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZTsKLSAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuOworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF9mbGFnczsKICAgICBfX3B0aHJlYWRfY2xlYW51cF90KiAgICAgICAgY2xlYW51cF9zdGFjazsKICAgICB2b2lkKiogICAgICAgICAgICAgICAgICAgICAgdGxzOyAgICAgICAgIC8qIHRocmVhZC1sb2NhbCBzdG9yYWdlIGFyZWEgKi8KIH0gcHRocmVhZF9pbnRlcm5hbF90OwogCi1leHRlcm4gdm9pZCBfaW5pdF90aHJlYWQocHRocmVhZF9pbnRlcm5hbF90ICogdGhyZWFkLCBwaWRfdCBrZXJuZWxfaWQsIHB0aHJlYWRfYXR0cl90ICogYXR0ciwgdm9pZCAqIHN0YWNrX2Jhc2UpOworZXh0ZXJuIGludCBfaW5pdF90aHJlYWQocHRocmVhZF9pbnRlcm5hbF90ICogdGhyZWFkLCBwaWRfdCBrZXJuZWxfaWQsIHB0aHJlYWRfYXR0cl90ICogYXR0ciwgdm9pZCAqIHN0YWNrX2Jhc2UpOwogdm9pZCBfcHRocmVhZF9pbnRlcm5hbF9hZGQoIHB0aHJlYWRfaW50ZXJuYWxfdCogIHRocmVhZCApOwogcHRocmVhZF9pbnRlcm5hbF90KiBfX2dldF90aHJlYWQodm9pZCk7CiAKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zeXMvbGludXgtc3lzY2FsbHMuaCBiL2xpYmMvaW5jbHVkZS9zeXMvbGludXgtc3lzY2FsbHMuaAppbmRleCBkMDllOTU1Li5jOGE2NTRjIDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvc3lzL2xpbnV4LXN5c2NhbGxzLmgKKysrIGIvbGliYy9pbmNsdWRlL3N5cy9saW51eC1zeXNjYWxscy5oCkBAIC0xLDE3ICsxLDk0IEBACiAvKiBhdXRvLWdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSwgZG8gbm90IHRvdWNoICovCiAjaWZuZGVmIF9CSU9OSUNfTElOVVhfU1lTQ0FMTFNfSF8KKyNkZWZpbmUgX0JJT05JQ19MSU5VWF9TWVNDQUxMU19IXwogCi0jaWYgIWRlZmluZWQgX19BU01fQVJNX1VOSVNURF9IICYmICFkZWZpbmVkIF9fQVNNX0kzODZfVU5JU1REX0gKKyNpZiAhZGVmaW5lZCBfX0FTTV9BUk1fVU5JU1REX0ggJiYgIWRlZmluZWQgX19BU01fSTM4Nl9VTklTVERfSCAmJiAhZGVmaW5lZCBfX0FTTV9NSVBTX1VOSVNURF9ICiAjaWYgZGVmaW5lZCBfX2FybV9fICYmICFkZWZpbmVkIF9fQVJNX0VBQklfXyAmJiAhZGVmaW5lZCBfX3RodW1iX18KLSAgIyAgZGVmaW5lIF9fTlJfU1lTQ0FMTF9CQVNFICAweDkwMDAwMAotICAjZWxzZQotICAjICBkZWZpbmUgIF9fTlJfU1lTQ0FMTF9CQVNFICAwCi0gICNlbmRpZgorICAjICBkZWZpbmUgX19OUl9TWVNDQUxMX0JBU0UgMHg5MDAwMDAKKyNlbGlmIGRlZmluZWQoX19taXBzX18pCisgICMgIGRlZmluZSBfX05SX1NZU0NBTExfQkFTRSA0MDAwCisjZWxzZQorICAjICBkZWZpbmUgX19OUl9TWVNDQUxMX0JBU0UgMAorI2VuZGlmCiAKICNkZWZpbmUgX19OUl9leGl0ICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEpCiAjZGVmaW5lIF9fTlJfZm9yayAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyKQotI2RlZmluZSBfX05SX2Nsb25lICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTIwKQorI2RlZmluZSBfX05SX3JlYWQgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMykKKyNkZWZpbmUgX19OUl93cml0ZSAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQpCisjZGVmaW5lIF9fTlJfb3BlbiAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1KQorI2RlZmluZSBfX05SX2Nsb3NlICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNikKKyNkZWZpbmUgX19OUl9saW5rICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDkpCisjZGVmaW5lIF9fTlJfdW5saW5rICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMCkKICNkZWZpbmUgX19OUl9leGVjdmUgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDExKQorI2RlZmluZSBfX05SX2NoZGlyICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTIpCisjZGVmaW5lIF9fTlJfbWtub2QgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNCkKKyNkZWZpbmUgX19OUl9jaG1vZCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1KQorI2RlZmluZSBfX05SX2xzZWVrICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTkpCisjZGVmaW5lIF9fTlJfZ2V0cGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMCkKKyNkZWZpbmUgX19OUl9tb3VudCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxKQorI2RlZmluZSBfX05SX3B0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjYpCisjZGVmaW5lIF9fTlJfcGF1c2UgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOSkKKyNkZWZpbmUgX19OUl9hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzKQorI2RlZmluZSBfX05SX3N5bmMgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzYpCisjZGVmaW5lIF9fTlJfcmVuYW1lICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzOCkKKyNkZWZpbmUgX19OUl9ta2RpciAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDM5KQorI2RlZmluZSBfX05SX3JtZGlyICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDApCisjZGVmaW5lIF9fTlJfZHVwICAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0MSkKKyNkZWZpbmUgX19OUl90aW1lcyAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQzKQorI2RlZmluZSBfX05SX2JyayAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDUpCisjZGVmaW5lIF9fTlJfYWNjdCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1MSkKKyNkZWZpbmUgX19OUl91bW91bnQyICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDUyKQorI2RlZmluZSBfX05SX2lvY3RsICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTQpCisjZGVmaW5lIF9fTlJfZmNudGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1NSkKKyNkZWZpbmUgX19OUl9zZXRwZ2lkICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDU3KQorI2RlZmluZSBfX05SX3VtYXNrICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNjApCisjZGVmaW5lIF9fTlJfY2hyb290ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2MSkKKyNkZWZpbmUgX19OUl9kdXAyICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDYzKQorI2RlZmluZSBfX05SX2dldHBwaWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNjQpCisjZGVmaW5lIF9fTlJfc2V0c2lkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2NikKKyNkZWZpbmUgX19OUl9zaWdhY3Rpb24gICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDY3KQorI2RlZmluZSBfX05SX3NpZ3N1c3BlbmQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzIpCisjZGVmaW5lIF9fTlJfc2lncGVuZGluZyAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3MykKKyNkZWZpbmUgX19OUl9zZXRybGltaXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDc1KQorI2RlZmluZSBfX05SX2dldHJ1c2FnZSAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzcpCisjZGVmaW5lIF9fTlJfZ2V0dGltZW9mZGF5ICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3OCkKKyNkZWZpbmUgX19OUl9zZXR0aW1lb2ZkYXkgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDc5KQorI2RlZmluZSBfX05SX3N5bWxpbmsgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgODMpCisjZGVmaW5lIF9fTlJfcmVhZGxpbmsgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA4NSkKKyNkZWZpbmUgX19OUl9yZWJvb3QgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDg4KQorI2RlZmluZSBfX05SX211bm1hcCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTEpCisjZGVmaW5lIF9fTlJfdHJ1bmNhdGUgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5MikKKyNkZWZpbmUgX19OUl9mdHJ1bmNhdGUgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDkzKQorI2RlZmluZSBfX05SX2ZjaG1vZCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTQpCisjZGVmaW5lIF9fTlJfZ2V0cHJpb3JpdHkgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5NikKKyNkZWZpbmUgX19OUl9zZXRwcmlvcml0eSAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDk3KQorI2RlZmluZSBfX05SX3N5c2xvZyAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTAzKQorI2RlZmluZSBfX05SX3N5c2xvZyAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTAzKQorI2RlZmluZSBfX05SX3NldGl0aW1lciAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTA0KQorI2RlZmluZSBfX05SX2dldGl0aW1lciAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTA1KQorI2RlZmluZSBfX05SX3dhaXQ0ICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTE0KQorI2RlZmluZSBfX05SX3N5c2luZm8gICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTE2KQorI2RlZmluZSBfX05SX2ZzeW5jICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTE4KQorI2RlZmluZSBfX05SX2Nsb25lICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTIwKQorI2RlZmluZSBfX05SX3VuYW1lICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTIyKQorI2RlZmluZSBfX05SX21wcm90ZWN0ICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTI1KQorI2RlZmluZSBfX05SX3NpZ3Byb2NtYXNrICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTI2KQorI2RlZmluZSBfX05SX2luaXRfbW9kdWxlICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTI4KQorI2RlZmluZSBfX05SX2RlbGV0ZV9tb2R1bGUgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTI5KQorI2RlZmluZSBfX05SX2dldHBnaWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTMyKQorI2RlZmluZSBfX05SX2ZjaGRpciAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTMzKQorI2RlZmluZSBfX05SX3BlcnNvbmFsaXR5ICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTM2KQorI2RlZmluZSBfX05SX19sbHNlZWsgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQwKQorI2RlZmluZSBfX05SX19uZXdzZWxlY3QgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQyKQorI2RlZmluZSBfX05SX2Zsb2NrICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQzKQorI2RlZmluZSBfX05SX21zeW5jICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQ0KQorI2RlZmluZSBfX05SX3JlYWR2ICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQ1KQorI2RlZmluZSBfX05SX3dyaXRldiAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQ2KQorI2RlZmluZSBfX05SX3BlcmZfZXZlbnRfb3BlbiAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzY0KQorCisjaWZkZWYgX19hcm1fXworI2RlZmluZSBfX05SX2V4aXRfZ3JvdXAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjQ4KQorI2RlZmluZSBfX05SX3dhaXRpZCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjgwKQogI2RlZmluZSBfX05SX3NldHVpZDMyICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjEzKQogI2RlZmluZSBfX05SX2dldHVpZDMyICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTk5KQogI2RlZmluZSBfX05SX2dldGdpZDMyICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjAwKQpAQCAtMjIsODggKzk5LDUzIEBACiAjZGVmaW5lIF9fTlJfZ2V0dGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjQpCiAjZGVmaW5lIF9fTlJfcmVhZGFoZWFkICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjUpCiAjZGVmaW5lIF9fTlJfZ2V0Z3JvdXBzMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDUpCi0jZGVmaW5lIF9fTlJfZ2V0cGdpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMzIpCi0jZGVmaW5lIF9fTlJfZ2V0cHBpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2NCkKLSNkZWZpbmUgX19OUl9zZXRzaWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDY2KQogI2RlZmluZSBfX05SX3NldGdpZDMyICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjE0KQogI2RlZmluZSBfX05SX3NldHJldWlkMzIgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjAzKQogI2RlZmluZSBfX05SX3NldHJlc3VpZDMyICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjA4KQogI2RlZmluZSBfX05SX3NldHJlc2dpZDMyICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjEwKQotI2RlZmluZSBfX05SX2JyayAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDUpCi0jZGVmaW5lIF9fTlJfcHRyYWNlICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNikKLSNkZWZpbmUgX19OUl9nZXRwcmlvcml0eSAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDk2KQotI2RlZmluZSBfX05SX3NldHByaW9yaXR5ICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTcpCi0jZGVmaW5lIF9fTlJfc2V0cmxpbWl0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3NSkKICNkZWZpbmUgX19OUl91Z2V0cmxpbWl0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MSkKLSNkZWZpbmUgX19OUl9nZXRydXNhZ2UgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDc3KQogI2RlZmluZSBfX05SX3NldGdyb3VwczMyICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjA2KQotI2RlZmluZSBfX05SX3NldHBnaWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTcpCisjZGVmaW5lIF9fTlJfdmZvcmsgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTApCiAjZGVmaW5lIF9fTlJfc2V0cmVnaWQzMiAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDQpCi0jZGVmaW5lIF9fTlJfY2hyb290ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2MSkKICNkZWZpbmUgX19OUl9wcmN0bCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3MikKICNkZWZpbmUgX19OUl9jYXBnZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NCkKICNkZWZpbmUgX19OUl9jYXBzZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NSkKICNkZWZpbmUgX19OUl9zaWdhbHRzdGFjayAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NikKLSNkZWZpbmUgX19OUl9hY2N0ICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDUxKQotI2RlZmluZSBfX05SX3JlYWQgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMykKLSNkZWZpbmUgX19OUl93cml0ZSAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQpCiAjZGVmaW5lIF9fTlJfcHJlYWQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODApCiAjZGVmaW5lIF9fTlJfcHdyaXRlNjQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODEpCi0jZGVmaW5lIF9fTlJfb3BlbiAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1KQotI2RlZmluZSBfX05SX2Nsb3NlICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNikKLSNkZWZpbmUgX19OUl9sc2VlayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5KQotI2RlZmluZSBfX05SX19sbHNlZWsgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQwKQotI2RlZmluZSBfX05SX2dldHBpZCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjApCisjZGVmaW5lIF9fTlJfb3BlbmF0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjIpCiAjZGVmaW5lIF9fTlJfbW1hcDIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTIpCi0jZGVmaW5lIF9fTlJfbXVubWFwICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5MSkKICNkZWZpbmUgX19OUl9tcmVtYXAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MykKLSNkZWZpbmUgX19OUl9tc3luYyAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE0NCkKLSNkZWZpbmUgX19OUl9tcHJvdGVjdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEyNSkKKyNkZWZpbmUgX19OUl9tYWR2aXNlICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMCkKICNkZWZpbmUgX19OUl9tbG9jayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1MCkKICNkZWZpbmUgX19OUl9tdW5sb2NrICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1MSkKLSNkZWZpbmUgX19OUl9pb2N0bCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDU0KQotI2RlZmluZSBfX05SX3JlYWR2ICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQ1KQotI2RlZmluZSBfX05SX3dyaXRldiAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQ2KQotI2RlZmluZSBfX05SX2ZjbnRsICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTUpCi0jZGVmaW5lIF9fTlJfZmxvY2sgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDMpCi0jZGVmaW5lIF9fTlJfZmNobW9kICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5NCkKLSNkZWZpbmUgX19OUl9kdXAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQxKQorI2RlZmluZSBfX05SX21pbmNvcmUgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjE5KQogI2RlZmluZSBfX05SX3BpcGUgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDIpCi0jZGVmaW5lIF9fTlJfZHVwMiAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2MykKLSNkZWZpbmUgX19OUl9fbmV3c2VsZWN0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE0MikKLSNkZWZpbmUgX19OUl9mdHJ1bmNhdGUgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDkzKQorI2RlZmluZSBfX05SX3BpcGUyICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzU5KQogI2RlZmluZSBfX05SX2Z0cnVuY2F0ZTY0ICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTk0KQotI2RlZmluZSBfX05SX2ZzeW5jICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTE4KQorI2RlZmluZSBfX05SX2dldGRlbnRzNjQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjE3KQogI2RlZmluZSBfX05SX2ZkYXRhc3luYyAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQ4KQogI2RlZmluZSBfX05SX2ZjaG93bjMyICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjA3KQotI2RlZmluZSBfX05SX3N5bmMgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzYpCiAjZGVmaW5lIF9fTlJfZmNudGw2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjEpCisjZGVmaW5lIF9fTlJfZnN0YXRmczY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjcpCiAjZGVmaW5lIF9fTlJfc2VuZGZpbGUgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODcpCisjZGVmaW5lIF9fTlJfZnN0YXRhdDY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjcpCisjZGVmaW5lIF9fTlJfbWtkaXJhdCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjMpCisjZGVmaW5lIF9fTlJfZmNob3duYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjUpCisjZGVmaW5lIF9fTlJfZmNobW9kYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMzMpCisjZGVmaW5lIF9fTlJfcmVuYW1lYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjkpCiAjZGVmaW5lIF9fTlJfZnNldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjgpCiAjZGVmaW5lIF9fTlJfZmdldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzEpCiAjZGVmaW5lIF9fTlJfZmxpc3R4YXR0ciAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzQpCiAjZGVmaW5lIF9fTlJfZnJlbW92ZXhhdHRyICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzcpCi0jZGVmaW5lIF9fTlJfbGluayAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5KQotI2RlZmluZSBfX05SX3VubGluayAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTApCi0jZGVmaW5lIF9fTlJfY2hkaXIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMikKLSNkZWZpbmUgX19OUl9ta25vZCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE0KQotI2RlZmluZSBfX05SX2NobW9kICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTUpCisjZGVmaW5lIF9fTlJfdW5saW5rYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjgpCiAjZGVmaW5lIF9fTlJfY2hvd24zMiAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTIpCiAjZGVmaW5lIF9fTlJfbGNob3duMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTgpCi0jZGVmaW5lIF9fTlJfbW91bnQgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMSkKLSNkZWZpbmUgX19OUl91bW91bnQyICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDUyKQogI2RlZmluZSBfX05SX2ZzdGF0NjQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTk3KQogI2RlZmluZSBfX05SX3N0YXQ2NCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTk1KQogI2RlZmluZSBfX05SX2xzdGF0NjQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTk2KQotI2RlZmluZSBfX05SX21rZGlyICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzkpCi0jZGVmaW5lIF9fTlJfcmVhZGxpbmsgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA4NSkKLSNkZWZpbmUgX19OUl9ybWRpciAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQwKQotI2RlZmluZSBfX05SX3JlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzgpCiAjZGVmaW5lIF9fTlJfZ2V0Y3dkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODMpCi0jZGVmaW5lIF9fTlJfYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMykKLSNkZWZpbmUgX19OUl9zeW1saW5rICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDgzKQotI2RlZmluZSBfX05SX2ZjaGRpciAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTMzKQotI2RlZmluZSBfX05SX3RydW5jYXRlICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTIpCisjZGVmaW5lIF9fTlJfZmFjY2Vzc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMzQpCiAjZGVmaW5lIF9fTlJfc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjYpCiAjZGVmaW5lIF9fTlJfbHNldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjcpCiAjZGVmaW5lIF9fTlJfZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjkpCkBAIC0xMTIsNjIgKzE1NCw4IEBACiAjZGVmaW5lIF9fTlJfbGxpc3R4YXR0ciAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzMpCiAjZGVmaW5lIF9fTlJfcmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzUpCiAjZGVmaW5lIF9fTlJfbHJlbW92ZXhhdHRyICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzYpCi0jZGVmaW5lIF9fTlJfcGF1c2UgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOSkKLSNkZWZpbmUgX19OUl9nZXR0aW1lb2ZkYXkgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDc4KQotI2RlZmluZSBfX05SX3NldHRpbWVvZmRheSAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzkpCi0jZGVmaW5lIF9fTlJfdGltZXMgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0MykKLSNkZWZpbmUgX19OUl9uYW5vc2xlZXAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MikKLSNkZWZpbmUgX19OUl9nZXRpdGltZXIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEwNSkKLSNkZWZpbmUgX19OUl9zZXRpdGltZXIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEwNCkKLSNkZWZpbmUgX19OUl9zaWdhY3Rpb24gICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDY3KQotI2RlZmluZSBfX05SX3NpZ3Byb2NtYXNrICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTI2KQotI2RlZmluZSBfX05SX3NpZ3N1c3BlbmQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzIpCi0jZGVmaW5lIF9fTlJfcnRfc2lnYWN0aW9uICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzQpCi0jZGVmaW5lIF9fTlJfcnRfc2lncHJvY21hc2sgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzUpCi0jZGVmaW5lIF9fTlJfcnRfc2lndGltZWR3YWl0ICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzcpCi0jZGVmaW5lIF9fTlJfc2lncGVuZGluZyAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3MykKLSNkZWZpbmUgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXIgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NikKLSNkZWZpbmUgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXIgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NykKLSNkZWZpbmUgX19OUl9zY2hlZF95aWVsZCAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1OCkKLSNkZWZpbmUgX19OUl9zY2hlZF9zZXRwYXJhbSAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NCkKLSNkZWZpbmUgX19OUl9zY2hlZF9nZXRwYXJhbSAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NSkKLSNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4ICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1OSkKLSNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWluICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MCkKLSNkZWZpbmUgX19OUl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MSkKLSNkZWZpbmUgX19OUl9zY2hlZF9zZXRhZmZpbml0eSAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MSkKLSNkZWZpbmUgX19OUl9zY2hlZF9nZXRhZmZpbml0eSAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MikKLSNkZWZpbmUgX19OUl91bmFtZSAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEyMikKLSNkZWZpbmUgX19OUl93YWl0NCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDExNCkKLSNkZWZpbmUgX19OUl91bWFzayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDYwKQotI2RlZmluZSBfX05SX3JlYm9vdCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgODgpCi0jZGVmaW5lIF9fTlJfc3lzbG9nICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDMpCi0jZGVmaW5lIF9fTlJfaW5pdF9tb2R1bGUgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjgpCi0jZGVmaW5lIF9fTlJfZGVsZXRlX21vZHVsZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjkpCi0jZGVmaW5lIF9fTlJfc3lzbG9nICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDMpCi0jZGVmaW5lIF9fTlJfc3lzaW5mbyAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMTYpCi0jZGVmaW5lIF9fTlJfcGVyc29uYWxpdHkgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMzYpCi0jZGVmaW5lIF9fTlJfcGVyZl9ldmVudF9vcGVuICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNjQpCi0jZGVmaW5lIF9fTlJfZnV0ZXggICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDApCi0jZGVmaW5lIF9fTlJfcG9sbCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjgpCi0KLSNpZmRlZiBfX2FybV9fCi0jZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDgpCi0jZGVmaW5lIF9fTlJfd2FpdGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODApCi0jZGVmaW5lIF9fTlJfdmZvcmsgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTApCi0jZGVmaW5lIF9fTlJfb3BlbmF0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjIpCi0jZGVmaW5lIF9fTlJfbWFkdmlzZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjApCi0jZGVmaW5lIF9fTlJfbWluY29yZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTkpCi0jZGVmaW5lIF9fTlJfcGlwZTIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNTkpCi0jZGVmaW5lIF9fTlJfZ2V0ZGVudHM2NCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTcpCi0jZGVmaW5lIF9fTlJfZnN0YXRmczY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjcpCi0jZGVmaW5lIF9fTlJfZnN0YXRhdDY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjcpCi0jZGVmaW5lIF9fTlJfbWtkaXJhdCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjMpCi0jZGVmaW5lIF9fTlJfZmNob3duYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjUpCi0jZGVmaW5lIF9fTlJfZmNobW9kYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMzMpCi0jZGVmaW5lIF9fTlJfcmVuYW1lYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjkpCi0jZGVmaW5lIF9fTlJfdW5saW5rYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjgpCi0jZGVmaW5lIF9fTlJfZmFjY2Vzc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMzQpCiAjZGVmaW5lIF9fTlJfc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjYpCisjZGVmaW5lIF9fTlJfbmFub3NsZWVwICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjIpCiAjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjMpCiAjZGVmaW5lIF9fTlJfY2xvY2tfc2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjIpCiAjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0cmVzICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjQpCkBAIC0xNzksNiArMTY3LDkgQEAKICNkZWZpbmUgX19OUl90aW1lcl9kZWxldGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MSkKICNkZWZpbmUgX19OUl91dGltZXMgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2OSkKICNkZWZpbmUgX19OUl91dGltZW5zYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDM0OCkKKyNkZWZpbmUgX19OUl9ydF9zaWdhY3Rpb24gICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NCkKKyNkZWZpbmUgX19OUl9ydF9zaWdwcm9jbWFzayAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NSkKKyNkZWZpbmUgX19OUl9ydF9zaWd0aW1lZHdhaXQgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NykKICNkZWZpbmUgX19OUl9zb2NrZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4MSkKICNkZWZpbmUgX19OUl9zb2NrZXRwYWlyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4OCkKICNkZWZpbmUgX19OUl9iaW5kICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4MikKQEAgLTE5NCw2NCArMTg1LDI3MSBAQAogI2RlZmluZSBfX05SX2dldHNvY2tvcHQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjk1KQogI2RlZmluZSBfX05SX3NlbmRtc2cgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjk2KQogI2RlZmluZSBfX05SX3JlY3Ztc2cgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjk3KQorI2RlZmluZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlciAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU2KQorI2RlZmluZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlciAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU3KQorI2RlZmluZSBfX05SX3NjaGVkX3lpZWxkICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU4KQorI2RlZmluZSBfX05SX3NjaGVkX3NldHBhcmFtICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU0KQorI2RlZmluZSBfX05SX3NjaGVkX2dldHBhcmFtICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU1KQorI2RlZmluZSBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9tYXggICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU5KQorI2RlZmluZSBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9taW4gICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTYwKQorI2RlZmluZSBfX05SX3NjaGVkX3JyX2dldF9pbnRlcnZhbCAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTYxKQorI2RlZmluZSBfX05SX3NjaGVkX3NldGFmZmluaXR5ICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjQxKQorI2RlZmluZSBfX05SX3NjaGVkX2dldGFmZmluaXR5ICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjQyKQogI2RlZmluZSBfX05SX2dldGNwdSAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzQ1KQogI2RlZmluZSBfX05SX2lvcHJpb19zZXQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzE0KQogI2RlZmluZSBfX05SX2lvcHJpb19nZXQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzE1KQorI2RlZmluZSBfX05SX2Z1dGV4ICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjQwKQogI2RlZmluZSBfX05SX2Vwb2xsX2NyZWF0ZSAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjUwKQogI2RlZmluZSBfX05SX2Vwb2xsX2N0bCAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjUxKQogI2RlZmluZSBfX05SX2Vwb2xsX3dhaXQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjUyKQogI2RlZmluZSBfX05SX2lub3RpZnlfaW5pdCAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzE2KQogI2RlZmluZSBfX05SX2lub3RpZnlfYWRkX3dhdGNoICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzE3KQogI2RlZmluZSBfX05SX2lub3RpZnlfcm1fd2F0Y2ggICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzE4KQorI2RlZmluZSBfX05SX3BvbGwgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTY4KQogI2RlZmluZSBfX05SX2V2ZW50ZmQyICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzU2KQogI2RlZmluZSBfX05SX0FSTV9zZXRfdGxzICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTgzMDQ1KQogI2RlZmluZSBfX05SX0FSTV9jYWNoZWZsdXNoICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTgzMDQyKQogI2VuZGlmCiAKICNpZmRlZiBfX2kzODZfXwotI2RlZmluZSBfX05SX2V4aXRfZ3JvdXAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjUyKQogI2RlZmluZSBfX05SX3dhaXRwaWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNykKLSNkZWZpbmUgX19OUl93YWl0aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4NCkKICNkZWZpbmUgX19OUl9raWxsICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDM3KQotI2RlZmluZSBfX05SX3RraWxsICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjM4KQotI2RlZmluZSBfX05SX3Rna2lsbCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjcwKQotI2RlZmluZSBfX05SX3NldF90aHJlYWRfYXJlYSAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjQzKQotI2RlZmluZSBfX05SX29wZW5hdCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjk1KQotI2RlZmluZSBfX05SX21hZHZpc2UgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjE5KQorI2RlZmluZSBfX05SX3BpcGUgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDIpCisjZGVmaW5lIF9fTlJfc29ja2V0Y2FsbCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDIpCisjZGVmaW5lIF9fTlJfZmRhdGFzeW5jICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDgpCisjZGVmaW5lIF9fTlJfbWxvY2sgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTApCisjZGVmaW5lIF9fTlJfbXVubG9jayAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTEpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0cGFyYW0gICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTQpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0cGFyYW0gICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTUpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTYpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTcpCisjZGVmaW5lIF9fTlJfc2NoZWRfeWllbGQgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTgpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTkpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjApCisjZGVmaW5lIF9fTlJfc2NoZWRfcnJfZ2V0X2ludGVydmFsICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjEpCisjZGVmaW5lIF9fTlJfbmFub3NsZWVwICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjIpCisjZGVmaW5lIF9fTlJfbXJlbWFwICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjMpCisjZGVmaW5lIF9fTlJfcG9sbCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjgpCisjZGVmaW5lIF9fTlJfcHJjdGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzIpCisjZGVmaW5lIF9fTlJfcnRfc2lnYWN0aW9uICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzQpCisjZGVmaW5lIF9fTlJfcnRfc2lncHJvY21hc2sgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzUpCisjZGVmaW5lIF9fTlJfcnRfc2lndGltZWR3YWl0ICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzcpCisjZGVmaW5lIF9fTlJfcHJlYWQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODApCisjZGVmaW5lIF9fTlJfcHdyaXRlNjQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODEpCisjZGVmaW5lIF9fTlJfZ2V0Y3dkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODMpCisjZGVmaW5lIF9fTlJfY2FwZ2V0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODQpCisjZGVmaW5lIF9fTlJfY2Fwc2V0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODUpCisjZGVmaW5lIF9fTlJfc2lnYWx0c3RhY2sgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODYpCisjZGVmaW5lIF9fTlJfc2VuZGZpbGUgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODcpCisjZGVmaW5lIF9fTlJfdWdldHJsaW1pdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTEpCisjZGVmaW5lIF9fTlJfbW1hcDIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTIpCisjZGVmaW5lIF9fTlJfZnRydW5jYXRlNjQgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTQpCisjZGVmaW5lIF9fTlJfc3RhdDY0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTUpCisjZGVmaW5lIF9fTlJfbHN0YXQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTYpCisjZGVmaW5lIF9fTlJfZnN0YXQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTcpCisjZGVmaW5lIF9fTlJfbGNob3duMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTgpCisjZGVmaW5lIF9fTlJfZ2V0dWlkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTkpCisjZGVmaW5lIF9fTlJfZ2V0Z2lkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDApCisjZGVmaW5lIF9fTlJfZ2V0ZXVpZDMyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDEpCisjZGVmaW5lIF9fTlJfZ2V0ZWdpZDMyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDIpCisjZGVmaW5lIF9fTlJfc2V0cmV1aWQzMiAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDMpCisjZGVmaW5lIF9fTlJfc2V0cmVnaWQzMiAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDQpCisjZGVmaW5lIF9fTlJfZ2V0Z3JvdXBzMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDUpCisjZGVmaW5lIF9fTlJfc2V0Z3JvdXBzMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDYpCisjZGVmaW5lIF9fTlJfZmNob3duMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDcpCisjZGVmaW5lIF9fTlJfc2V0cmVzdWlkMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDgpCisjZGVmaW5lIF9fTlJfZ2V0cmVzdWlkMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDkpCisjZGVmaW5lIF9fTlJfc2V0cmVzZ2lkMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTApCisjZGVmaW5lIF9fTlJfZ2V0cmVzZ2lkMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTEpCisjZGVmaW5lIF9fTlJfY2hvd24zMiAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTIpCisjZGVmaW5lIF9fTlJfc2V0dWlkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTMpCisjZGVmaW5lIF9fTlJfc2V0Z2lkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTQpCiAjZGVmaW5lIF9fTlJfbWluY29yZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTgpCi0jZGVmaW5lIF9fTlJfcGlwZTIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMzEpCisjZGVmaW5lIF9fTlJfbWFkdmlzZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTkpCiAjZGVmaW5lIF9fTlJfZ2V0ZGVudHM2NCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjApCi0jZGVmaW5lIF9fTlJfZnN0YXRmczY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjkpCi0jZGVmaW5lIF9fTlJfZnN0YXRhdDY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDApCi0jZGVmaW5lIF9fTlJfbWtkaXJhdCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTYpCi0jZGVmaW5lIF9fTlJfZmNob3duYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTgpCi0jZGVmaW5lIF9fTlJfZmNobW9kYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDYpCi0jZGVmaW5lIF9fTlJfcmVuYW1lYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDIpCi0jZGVmaW5lIF9fTlJfdW5saW5rYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDEpCi0jZGVmaW5lIF9fTlJfZmFjY2Vzc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDcpCi0jZGVmaW5lIF9fTlJfc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjgpCi0jZGVmaW5lIF9fTlJfY2xvY2tfZ2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjUpCi0jZGVmaW5lIF9fTlJfY2xvY2tfc2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjQpCi0jZGVmaW5lIF9fTlJfY2xvY2tfZ2V0cmVzICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjYpCi0jZGVmaW5lIF9fTlJfY2xvY2tfbmFub3NsZWVwICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjcpCisjZGVmaW5lIF9fTlJfZmNudGw2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjEpCisjZGVmaW5lIF9fTlJfZ2V0dGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjQpCisjZGVmaW5lIF9fTlJfcmVhZGFoZWFkICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjUpCisjZGVmaW5lIF9fTlJfc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjYpCisjZGVmaW5lIF9fTlJfbHNldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjcpCisjZGVmaW5lIF9fTlJfZnNldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjgpCisjZGVmaW5lIF9fTlJfZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjkpCisjZGVmaW5lIF9fTlJfbGdldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzApCisjZGVmaW5lIF9fTlJfZmdldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzEpCisjZGVmaW5lIF9fTlJfbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzIpCisjZGVmaW5lIF9fTlJfbGxpc3R4YXR0ciAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzMpCisjZGVmaW5lIF9fTlJfZmxpc3R4YXR0ciAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzQpCisjZGVmaW5lIF9fTlJfcmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzUpCisjZGVmaW5lIF9fTlJfbHJlbW92ZXhhdHRyICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzYpCisjZGVmaW5lIF9fTlJfZnJlbW92ZXhhdHRyICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzcpCisjZGVmaW5lIF9fTlJfdGtpbGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzgpCisjZGVmaW5lIF9fTlJfZnV0ZXggICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDApCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0YWZmaW5pdHkgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDEpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHkgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDIpCisjZGVmaW5lIF9fTlJfc2V0X3RocmVhZF9hcmVhICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDMpCisjZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTIpCisjZGVmaW5lIF9fTlJfZXBvbGxfY3JlYXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTQpCisjZGVmaW5lIF9fTlJfZXBvbGxfY3RsICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTUpCisjZGVmaW5lIF9fTlJfZXBvbGxfd2FpdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTYpCiAjZGVmaW5lIF9fTlJfdGltZXJfY3JlYXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTkpCiAjZGVmaW5lIF9fTlJfdGltZXJfc2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjApCiAjZGVmaW5lIF9fTlJfdGltZXJfZ2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjEpCiAjZGVmaW5lIF9fTlJfdGltZXJfZ2V0b3ZlcnJ1biAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjIpCiAjZGVmaW5lIF9fTlJfdGltZXJfZGVsZXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjMpCisjZGVmaW5lIF9fTlJfY2xvY2tfc2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjQpCisjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjUpCisjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0cmVzICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjYpCisjZGVmaW5lIF9fTlJfY2xvY2tfbmFub3NsZWVwICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjcpCisjZGVmaW5lIF9fTlJfc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjgpCisjZGVmaW5lIF9fTlJfZnN0YXRmczY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjkpCisjZGVmaW5lIF9fTlJfdGdraWxsICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNzApCiAjZGVmaW5lIF9fTlJfdXRpbWVzICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNzEpCi0jZGVmaW5lIF9fTlJfdXRpbWVuc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjApCi0jZGVmaW5lIF9fTlJfc29ja2V0Y2FsbCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDIpCi0jZGVmaW5lIF9fTlJfZ2V0Y3B1ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTgpCisjZGVmaW5lIF9fTlJfd2FpdGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODQpCiAjZGVmaW5lIF9fTlJfaW9wcmlvX3NldCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODkpCiAjZGVmaW5lIF9fTlJfaW9wcmlvX2dldCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTApCi0jZGVmaW5lIF9fTlJfZXBvbGxfY3JlYXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTQpCi0jZGVmaW5lIF9fTlJfZXBvbGxfY3RsICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTUpCi0jZGVmaW5lIF9fTlJfZXBvbGxfd2FpdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTYpCiAjZGVmaW5lIF9fTlJfaW5vdGlmeV9pbml0ICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTEpCiAjZGVmaW5lIF9fTlJfaW5vdGlmeV9hZGRfd2F0Y2ggICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTIpCiAjZGVmaW5lIF9fTlJfaW5vdGlmeV9ybV93YXRjaCAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTMpCisjZGVmaW5lIF9fTlJfb3BlbmF0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTUpCisjZGVmaW5lIF9fTlJfbWtkaXJhdCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTYpCisjZGVmaW5lIF9fTlJfZmNob3duYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTgpCisjZGVmaW5lIF9fTlJfZnN0YXRhdDY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDApCisjZGVmaW5lIF9fTlJfdW5saW5rYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDEpCisjZGVmaW5lIF9fTlJfcmVuYW1lYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDIpCisjZGVmaW5lIF9fTlJfZmNobW9kYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDYpCisjZGVmaW5lIF9fTlJfZmFjY2Vzc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDcpCisjZGVmaW5lIF9fTlJfZ2V0Y3B1ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTgpCisjZGVmaW5lIF9fTlJfdXRpbWVuc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjApCiAjZGVmaW5lIF9fTlJfZXZlbnRmZDIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjgpCisjZGVmaW5lIF9fTlJfcGlwZTIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMzEpCisjZW5kaWYKKworI2lmZGVmIF9fbWlwc19fCisjZGVmaW5lIF9fTlJfc3lzY2FsbCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAwKQorI2RlZmluZSBfX05SX3dhaXRwaWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNykKKyNkZWZpbmUgX19OUl9sY2hvd24gICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2KQorI2RlZmluZSBfX05SX3NldHVpZCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjMpCisjZGVmaW5lIF9fTlJfZ2V0dWlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNCkKKyNkZWZpbmUgX19OUl9raWxsICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDM3KQorI2RlZmluZSBfX05SX3NldGdpZCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDYpCisjZGVmaW5lIF9fTlJfZ2V0Z2lkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0NykKKyNkZWZpbmUgX19OUl9nZXRldWlkICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQ5KQorI2RlZmluZSBfX05SX2dldGVnaWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTApCisjZGVmaW5lIF9fTlJfc2V0cmV1aWQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3MCkKKyNkZWZpbmUgX19OUl9zZXRyZWdpZCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDcxKQorI2RlZmluZSBfX05SX2dldHJsaW1pdCAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzYpCisjZGVmaW5lIF9fTlJfZ2V0Z3JvdXBzICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA4MCkKKyNkZWZpbmUgX19OUl9zZXRncm91cHMgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDgxKQorI2RlZmluZSBfX05SX2ZjaG93biAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTUpCisjZGVmaW5lIF9fTlJfY2FjaGVmbHVzaCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDcpCisjZGVmaW5lIF9fTlJfZmRhdGFzeW5jICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTIpCisjZGVmaW5lIF9fTlJfbWxvY2sgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTQpCisjZGVmaW5lIF9fTlJfbXVubG9jayAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTUpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0cGFyYW0gICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTgpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0cGFyYW0gICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTkpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjApCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjEpCisjZGVmaW5lIF9fTlJfc2NoZWRfeWllbGQgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjIpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjMpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjQpCisjZGVmaW5lIF9fTlJfc2NoZWRfcnJfZ2V0X2ludGVydmFsICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjUpCisjZGVmaW5lIF9fTlJfbmFub3NsZWVwICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjYpCisjZGVmaW5lIF9fTlJfbXJlbWFwICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjcpCisjZGVmaW5lIF9fTlJfYWNjZXB0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjgpCisjZGVmaW5lIF9fTlJfYmluZCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjkpCisjZGVmaW5lIF9fTlJfY29ubmVjdCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzApCisjZGVmaW5lIF9fTlJfZ2V0cGVlcm5hbWUgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzEpCisjZGVmaW5lIF9fTlJfZ2V0c29ja25hbWUgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzIpCisjZGVmaW5lIF9fTlJfZ2V0c29ja29wdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzMpCisjZGVmaW5lIF9fTlJfbGlzdGVuICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzQpCisjZGVmaW5lIF9fTlJfcmVjdmZyb20gICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzYpCisjZGVmaW5lIF9fTlJfcmVjdm1zZyAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzcpCisjZGVmaW5lIF9fTlJfc2VuZG1zZyAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNzkpCisjZGVmaW5lIF9fTlJfc2VuZHRvICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODApCisjZGVmaW5lIF9fTlJfc2V0c29ja29wdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODEpCisjZGVmaW5lIF9fTlJfc2h1dGRvd24gICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODIpCisjZGVmaW5lIF9fTlJfc29ja2V0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODMpCisjZGVmaW5lIF9fTlJfc29ja2V0cGFpciAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODQpCisjZGVmaW5lIF9fTlJfc2V0cmVzdWlkICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODUpCisjZGVmaW5lIF9fTlJfZ2V0cmVzdWlkICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODYpCisjZGVmaW5lIF9fTlJfcG9sbCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxODgpCisjZGVmaW5lIF9fTlJfc2V0cmVzZ2lkICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTApCisjZGVmaW5lIF9fTlJfZ2V0cmVzZ2lkICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTEpCisjZGVmaW5lIF9fTlJfcHJjdGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTIpCisjZGVmaW5lIF9fTlJfcnRfc2lnYWN0aW9uICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTQpCisjZGVmaW5lIF9fTlJfcnRfc2lncHJvY21hc2sgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTUpCisjZGVmaW5lIF9fTlJfcnRfc2lndGltZWR3YWl0ICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTcpCisjZGVmaW5lIF9fTlJfcHJlYWQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDApCisjZGVmaW5lIF9fTlJfcHdyaXRlNjQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDEpCisjZGVmaW5lIF9fTlJfY2hvd24gICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDIpCisjZGVmaW5lIF9fTlJfZ2V0Y3dkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDMpCisjZGVmaW5lIF9fTlJfY2FwZ2V0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDQpCisjZGVmaW5lIF9fTlJfY2Fwc2V0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDUpCisjZGVmaW5lIF9fTlJfc2lnYWx0c3RhY2sgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDYpCisjZGVmaW5lIF9fTlJfc2VuZGZpbGUgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDcpCisjZGVmaW5lIF9fTlJfbW1hcDIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTApCisjZGVmaW5lIF9fTlJfZnRydW5jYXRlNjQgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTIpCisjZGVmaW5lIF9fTlJfc3RhdDY0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTMpCisjZGVmaW5lIF9fTlJfbHN0YXQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTQpCisjZGVmaW5lIF9fTlJfZnN0YXQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTUpCisjZGVmaW5lIF9fTlJfbWluY29yZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTcpCisjZGVmaW5lIF9fTlJfbWFkdmlzZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTgpCisjZGVmaW5lIF9fTlJfZ2V0ZGVudHM2NCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTkpCisjZGVmaW5lIF9fTlJfZmNudGw2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjApCisjZGVmaW5lIF9fTlJfZ2V0dGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjIpCisjZGVmaW5lIF9fTlJfcmVhZGFoZWFkICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjMpCisjZGVmaW5lIF9fTlJfc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjQpCisjZGVmaW5lIF9fTlJfbHNldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjUpCisjZGVmaW5lIF9fTlJfZnNldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjYpCisjZGVmaW5lIF9fTlJfZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjcpCisjZGVmaW5lIF9fTlJfbGdldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjgpCisjZGVmaW5lIF9fTlJfZmdldHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMjkpCisjZGVmaW5lIF9fTlJfbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzApCisjZGVmaW5lIF9fTlJfbGxpc3R4YXR0ciAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzEpCisjZGVmaW5lIF9fTlJfZmxpc3R4YXR0ciAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzIpCisjZGVmaW5lIF9fTlJfcmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzMpCisjZGVmaW5lIF9fTlJfbHJlbW92ZXhhdHRyICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzQpCisjZGVmaW5lIF9fTlJfZnJlbW92ZXhhdHRyICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzUpCisjZGVmaW5lIF9fTlJfdGtpbGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzYpCisjZGVmaW5lIF9fTlJfZnV0ZXggICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzgpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0YWZmaW5pdHkgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzkpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHkgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDApCisjZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDYpCisjZGVmaW5lIF9fTlJfZXBvbGxfY3JlYXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDgpCisjZGVmaW5lIF9fTlJfZXBvbGxfY3RsICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDkpCisjZGVmaW5lIF9fTlJfZXBvbGxfd2FpdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTApCisjZGVmaW5lIF9fTlJfc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTUpCisjZGVmaW5lIF9fTlJfZnN0YXRmczY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTYpCisjZGVmaW5lIF9fTlJfdGltZXJfY3JlYXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTcpCisjZGVmaW5lIF9fTlJfdGltZXJfc2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTgpCisjZGVmaW5lIF9fTlJfdGltZXJfZ2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTkpCisjZGVmaW5lIF9fTlJfdGltZXJfZ2V0b3ZlcnJ1biAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjApCisjZGVmaW5lIF9fTlJfdGltZXJfZGVsZXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjEpCisjZGVmaW5lIF9fTlJfY2xvY2tfc2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjIpCisjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0dGltZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjMpCisjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0cmVzICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjQpCisjZGVmaW5lIF9fTlJfY2xvY2tfbmFub3NsZWVwICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjUpCisjZGVmaW5lIF9fTlJfdGdraWxsICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjYpCisjZGVmaW5lIF9fTlJfdXRpbWVzICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNjcpCisjZGVmaW5lIF9fTlJfd2FpdGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNzgpCisjZGVmaW5lIF9fTlJfc2V0X3RocmVhZF9hcmVhICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODMpCisjZGVmaW5lIF9fTlJfaW5vdGlmeV9pbml0ICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODQpCisjZGVmaW5lIF9fTlJfaW5vdGlmeV9hZGRfd2F0Y2ggICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODUpCisjZGVmaW5lIF9fTlJfaW5vdGlmeV9ybV93YXRjaCAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODYpCisjZGVmaW5lIF9fTlJfb3BlbmF0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODgpCisjZGVmaW5lIF9fTlJfbWtkaXJhdCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODkpCisjZGVmaW5lIF9fTlJfZmNob3duYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTEpCisjZGVmaW5lIF9fTlJfZnN0YXRhdDY0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTMpCisjZGVmaW5lIF9fTlJfdW5saW5rYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTQpCisjZGVmaW5lIF9fTlJfcmVuYW1lYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTUpCisjZGVmaW5lIF9fTlJfZmNobW9kYXQgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTkpCisjZGVmaW5lIF9fTlJfZmFjY2Vzc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMDApCisjZGVmaW5lIF9fTlJfZ2V0Y3B1ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTIpCisjZGVmaW5lIF9fTlJfaW9wcmlvX3NldCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTQpCisjZGVmaW5lIF9fTlJfaW9wcmlvX2dldCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTUpCisjZGVmaW5lIF9fTlJfdXRpbWVuc2F0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTYpCisjZGVmaW5lIF9fTlJfZXZlbnRmZDIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjUpCisjZGVmaW5lIF9fTlJfcGlwZTIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMjgpCiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC9hcmNoLWFybS9hc20vdWNvbnRleHQuaCBiL2xpYmMva2VybmVsL2FyY2gtYXJtL2FzbS91Y29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YTg3OWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2tlcm5lbC9hcmNoLWFybS9hc20vdWNvbnRleHQuaApAQCAtMCwwICsxLDM0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9BU01BUk1fVUNPTlRFWFRfSAorI2RlZmluZSBfQVNNQVJNX1VDT05URVhUX0gKKyNpbmNsdWRlIDxhc20vZnBzdGF0ZS5oPgorc3RydWN0IHVjb250ZXh0IHsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgdW5zaWduZWQgbG9uZyB1Y19mbGFnczsKKyBzdHJ1Y3QgdWNvbnRleHQgKnVjX2xpbms7Cisgc3RhY2tfdCB1Y19zdGFjazsKKyBzdHJ1Y3Qgc2lnY29udGV4dCB1Y19tY29udGV4dDsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgc2lnc2V0X3QgdWNfc2lnbWFzazsKKyBpbnQgX3VudXNlZFszMiAtIChzaXplb2YgKHNpZ3NldF90KSAvIHNpemVvZiAoaW50KSldOworIHVuc2lnbmVkIGxvbmcgdWNfcmVnc3BhY2VbMTI4XSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyg4KSkpOworfTsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL2FyY2gtbWlwcy9hc20vc2lnbmFsLmggYi9saWJjL2tlcm5lbC9hcmNoLW1pcHMvYXNtL3NpZ25hbC5oCmluZGV4IGI1MWFkNzEuLjVmNWFjNzcgMTAwNjQ0Ci0tLSBhL2xpYmMva2VybmVsL2FyY2gtbWlwcy9hc20vc2lnbmFsLmgKKysrIGIvbGliYy9rZXJuZWwvYXJjaC1taXBzL2FzbS9zaWduYWwuaApAQCAtOTIsMzIgKzkyLDMzIEBACiAjZGVmaW5lIE1JTlNJR1NUS1NaIDIwNDgKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAjZGVmaW5lIFNJR1NUS1NaIDgxOTIKK3N0cnVjdCBzaWdpbmZvOwogI2RlZmluZSBTSUdfQkxPQ0sgMSAgCiAjZGVmaW5lIFNJR19VTkJMT0NLIDIgIAotI2RlZmluZSBTSUdfU0VUTUFTSyAzICAKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIFNJR19TRVRNQVNLIDMgIAogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3NpZ25hbC5oPgogc3RydWN0IHNpZ2FjdGlvbiB7CiAgdW5zaWduZWQgaW50IHNhX2ZsYWdzOwotIHVuaW9uIHsKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgdW5pb24gewogIF9fc2lnaGFuZGxlcl90IHNhX2hhbmRsZXI7CiAgdm9pZCAoKnNhX3NpZ2FjdGlvbikgKGludCwgc3RydWN0IHNpZ2luZm8gKiwgdm9pZCAqKTsKICB9IF9fc2lnYWN0aW9uX2hhbmRsZXI7Ci0jZGVmaW5lIHNhX2hhbmRsZXIgX19zaWdhY3Rpb25faGFuZGxlci5zYV9oYW5kbGVyCiAvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2RlZmluZSBzYV9oYW5kbGVyIF9fc2lnYWN0aW9uX2hhbmRsZXIuc2FfaGFuZGxlcgogI2RlZmluZSBzYV9zaWdhY3Rpb24gX19zaWdhY3Rpb25faGFuZGxlci5zYV9zaWdhY3Rpb24KICBzaWdzZXRfdCBzYV9tYXNrOwogfTsKLXN0cnVjdCBrX3NpZ2FjdGlvbiB7CiAvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworc3RydWN0IGtfc2lnYWN0aW9uIHsKICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOwogfTsKIHR5cGVkZWYgc3RydWN0IHNpZ2FsdHN0YWNrIHsKLSB2b2lkICpzc19zcDsKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgdm9pZCAqc3Nfc3A7CiAgc2l6ZV90IHNzX3NpemU7CiAgaW50IHNzX2ZsYWdzOwogfSBzdGFja190OwotI2VuZGlmCiAvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2VuZGlmCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC9hcmNoLW1pcHMvYXNtL3Vjb250ZXh0LmggYi9saWJjL2tlcm5lbC9hcmNoLW1pcHMvYXNtL3Vjb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE0ZDY3ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMva2VybmVsL2FyY2gtbWlwcy9hc20vdWNvbnRleHQuaApAQCAtMCwwICsxLDE5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvdWNvbnRleHQuaD4KZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL2FyY2gteDg2L2FzbS91Y29udGV4dC5oIGIvbGliYy9rZXJuZWwvYXJjaC14ODYvYXNtL3Vjb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIzMjZlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMva2VybmVsL2FyY2gteDg2L2FzbS91Y29udGV4dC5oCkBAIC0wLDAgKzEsMjQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKiogICBUbyBlZGl0IHRoZSBjb250ZW50IG9mIHRoaXMgaGVhZGVyLCBtb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAqKiogICBzb3VyY2UgZmlsZSAoZS5nLiB1bmRlciBleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbC8pIHRoZW4KKyAqKiogICBydW4gYmlvbmljL2xpYmMva2VybmVsL3Rvb2xzL3VwZGF0ZV9hbGwucHkKKyAqKioKKyAqKiogICBBbnkgbWFudWFsIGNoYW5nZSBoZXJlIHdpbGwgYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHRoaXMgc2NyaXB0IHdpbGwKKyAqKiogICBiZSBydW4uIFlvdSd2ZSBiZWVuIHdhcm5lZCEKKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX0FTTV9YODZfVUNPTlRFWFRfSAorI2RlZmluZSBfQVNNX1g4Nl9VQ09OVEVYVF9ICisjZGVmaW5lIFVDX0ZQX1hTVEFURSAweDEgIAorI2luY2x1ZGUgPGFzbS1nZW5lcmljL3Vjb250ZXh0Lmg+CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLworI2VuZGlmCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC9jb21tb24vYXNtLWdlbmVyaWMvdWNvbnRleHQuaCBiL2xpYmMva2VybmVsL2NvbW1vbi9hc20tZ2VuZXJpYy91Y29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNmQxY2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2tlcm5lbC9jb21tb24vYXNtLWdlbmVyaWMvdWNvbnRleHQuaApAQCAtMCwwICsxLDMwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioKKyAqKiogICBUaGlzIGhlYWRlciB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBhIExpbnV4IGtlcm5lbCBoZWFkZXIKKyAqKiogICBvZiB0aGUgc2FtZSBuYW1lLCB0byBtYWtlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgdXNlcnNwYWNlIHRvCisgKioqICAgY2FsbCBpbnRvIHRoZSBrZXJuZWwgYXZhaWxhYmxlIHRvIGxpYmMuICBJdCBjb250YWlucyBvbmx5IGNvbnN0YW50cywKKyAqKiogICBzdHJ1Y3R1cmVzLCBhbmQgbWFjcm9zIGdlbmVyYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBoZWFkZXIsIGFuZCB0aHVzLAorICoqKiAgIGNvbnRhaW5zIG5vIGNvcHlyaWdodGFibGUgaW5mb3JtYXRpb24uCisgKioqCisgKioqICAgVG8gZWRpdCB0aGUgY29udGVudCBvZiB0aGlzIGhlYWRlciwgbW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nCisgKioqICAgc291cmNlIGZpbGUgKGUuZy4gdW5kZXIgZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvKSB0aGVuCisgKioqICAgcnVuIGJpb25pYy9saWJjL2tlcm5lbC90b29scy91cGRhdGVfYWxsLnB5CisgKioqCisgKioqICAgQW55IG1hbnVhbCBjaGFuZ2UgaGVyZSB3aWxsIGJlIGxvc3QgdGhlIG5leHQgdGltZSB0aGlzIHNjcmlwdCB3aWxsCisgKioqICAgYmUgcnVuLiBZb3UndmUgYmVlbiB3YXJuZWQhCisgKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9fQVNNX0dFTkVSSUNfVUNPTlRFWFRfSAorI2RlZmluZSBfX0FTTV9HRU5FUklDX1VDT05URVhUX0gKK3N0cnVjdCB1Y29udGV4dCB7CisgdW5zaWduZWQgbG9uZyB1Y19mbGFnczsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgc3RydWN0IHVjb250ZXh0ICp1Y19saW5rOworIHN0YWNrX3QgdWNfc3RhY2s7Cisgc3RydWN0IHNpZ2NvbnRleHQgdWNfbWNvbnRleHQ7Cisgc2lnc2V0X3QgdWNfc2lnbWFzazsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCit9OworI2VuZGlmCmRpZmYgLS1naXQgYS9saWJjL25ldGJzZC9yZXNvbHYvcmVzX2NhY2hlLmMgYi9saWJjL25ldGJzZC9yZXNvbHYvcmVzX2NhY2hlLmMKaW5kZXggOWFlNjI3Yy4uMGJiMmYyMyAxMDA2NDQKLS0tIGEvbGliYy9uZXRic2QvcmVzb2x2L3Jlc19jYWNoZS5jCisrKyBiL2xpYmMvbmV0YnNkL3Jlc29sdi9yZXNfY2FjaGUuYwpAQCAtMTQzMyw2ICsxNDMzLDI3IEBACiAgICAgX2NhY2hlX3JlbW92ZV9wKGNhY2hlLCBsb29rdXApOwogfQogCisvKiBSZW1vdmUgYWxsIGV4cGlyZWQgZW50cmllcyBmcm9tIHRoZSBoYXNoIHRhYmxlLgorICovCitzdGF0aWMgdm9pZCBfY2FjaGVfcmVtb3ZlX2V4cGlyZWQoQ2FjaGUqIGNhY2hlKSB7CisgICAgRW50cnkqIGU7CisgICAgdGltZV90IG5vdyA9IF90aW1lX25vdygpOworCisgICAgZm9yIChlID0gY2FjaGUtPm1ydV9saXN0Lm1ydV9uZXh0OyBlICE9ICZjYWNoZS0+bXJ1X2xpc3Q7KSB7CisgICAgICAgIC8vIEVudHJ5IGlzIG9sZCwgcmVtb3ZlCisgICAgICAgIGlmIChub3cgPj0gZS0+ZXhwaXJlcykgeworICAgICAgICAgICAgRW50cnkqKiBsb29rdXAgPSBfY2FjaGVfbG9va3VwX3AoY2FjaGUsIGUpOworICAgICAgICAgICAgaWYgKCpsb29rdXAgPT0gTlVMTCkgeyAvKiBzaG91bGQgbm90IGhhcHBlbiAqLworICAgICAgICAgICAgICAgIFhMT0coIiVzOiBFTlRSWSBOT1QgSU4gSFRBQkxFID8iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGUgPSBlLT5tcnVfbmV4dDsKKyAgICAgICAgICAgIF9jYWNoZV9yZW1vdmVfcChjYWNoZSwgbG9va3VwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGUgPSBlLT5tcnVfbmV4dDsKKyAgICAgICAgfQorICAgIH0KK30KIAogUmVzb2x2Q2FjaGVTdGF0dXMKIF9yZXNvbHZfY2FjaGVfbG9va3VwKCBzdHJ1Y3QgcmVzb2x2X2NhY2hlKiAgY2FjaGUsCkBAIC0xNTQ3LDcgKzE1NjgsMTAgQEAKICAgICB9CiAKICAgICBpZiAoY2FjaGUtPm51bV9lbnRyaWVzID49IGNhY2hlLT5tYXhfZW50cmllcykgewotICAgICAgICBfY2FjaGVfcmVtb3ZlX29sZGVzdChjYWNoZSk7CisgICAgICAgIF9jYWNoZV9yZW1vdmVfZXhwaXJlZChjYWNoZSk7CisgICAgICAgIGlmIChjYWNoZS0+bnVtX2VudHJpZXMgPj0gY2FjaGUtPm1heF9lbnRyaWVzKSB7CisgICAgICAgICAgICBfY2FjaGVfcmVtb3ZlX29sZGVzdChjYWNoZSk7CisgICAgICAgIH0KICAgICAgICAgLyogbmVlZCB0byBsb29rdXAgYWdhaW4gKi8KICAgICAgICAgbG9va3VwID0gX2NhY2hlX2xvb2t1cF9wKGNhY2hlLCBrZXkpOwogICAgICAgICBlICAgICAgPSAqbG9va3VwOwpkaWZmIC0tZ2l0IGEvbGliYy90b29scy9iaW9uaWNfdXRpbHMucHkgYi9saWJjL3Rvb2xzL2Jpb25pY191dGlscy5weQppbmRleCAwYmM5NDdiLi5hYmI3ODIwIDEwMDY0NAotLS0gYS9saWJjL3Rvb2xzL2Jpb25pY191dGlscy5weQorKysgYi9saWJjL3Rvb2xzL2Jpb25pY191dGlscy5weQpAQCAtNCwxMyArNCwxMyBAQAogCiAjIHN1cHBvcnQgQmlvbmljIGFyY2hpdGVjdHVyZXMsIGFkZCBuZXcgb25lcyBhcyBhcHByb3ByaWF0ZQogIwotYmlvbmljX2FyY2hzID0gWyAiYXJtIiwgIng4NiIgXQorYmlvbmljX2FyY2hzID0gWyAiYXJtIiwgIng4NiIsICJtaXBzIiBdCiAKICMgYmFzaWMgZGVidWdnaW5nIHRyYWNlIHN1cHBvcnQKICMgY2FsbCBEX3NldGxldmVsIHRvIHNldCB0aGUgdmVyYm9zaXR5IGxldmVsCiAjIGFuZCBEKCksIEQyKCksIEQzKCksIEQ0KCkgdG8gYWRkIHRyYWNlcwogIwotdmVyYm9zZSA9IDEKK3ZlcmJvc2UgPSAwCiAKIGRlZiBEKG1zZyk6CiAgICAgZ2xvYmFsIHZlcmJvc2UKQEAgLTE3OCw3ICsxNzgsNyBAQAogICAgICAgICBzZWxmLnN5c2NhbGxzID0gW10KICAgICAgICAgc2VsZi5saW5lbm8gICA9IDAKIAotICAgIGRlZiBFKG1zZyk6CisgICAgZGVmIEUoc2VsZiwgbXNnKToKICAgICAgICAgcHJpbnQgIiVkOiAlcyIgJSAoc2VsZi5saW5lbm8sIG1zZykKIAogICAgIGRlZiBwYXJzZV9saW5lKHNlbGYsIGxpbmUpOgpAQCAtMjM4LDM2ICsyMzgsNTUgQEAKIAogICAgICAgICBudW1iZXIgPSBsaW5lW3Bvc19ycGFyZW4rMTpdLnN0cmlwKCkKICAgICAgICAgaWYgbnVtYmVyID09ICJzdHViIjoKLSAgICAgICAgICAgIHN5c2NhbGxfaWQgID0gLTEKLSAgICAgICAgICAgIHN5c2NhbGxfaWQyID0gLTEKKyAgICAgICAgICAgIHN5c2NhbGxfY29tbW9uID0gLTEKKyAgICAgICAgICAgIHN5c2NhbGxfYXJtICA9IC0xCisgICAgICAgICAgICBzeXNjYWxsX3g4NiA9IC0xCisgICAgICAgICAgICBzeXNjYWxsX21pcHMgPSAtMQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGlmIG51bWJlclswXSA9PSAnIyc6CiAgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlclsxOl0uc3RyaXAoKQogICAgICAgICAgICAgICAgIG51bWJlcnMgPSBzdHJpbmcuc3BsaXQobnVtYmVyLCcsJykKLSAgICAgICAgICAgICAgICBzeXNjYWxsX2lkICA9IGludChudW1iZXJzWzBdKQotICAgICAgICAgICAgICAgIHN5c2NhbGxfaWQyID0gc3lzY2FsbF9pZAotICAgICAgICAgICAgICAgIGlmIGxlbihudW1iZXJzKSA+IDE6Ci0gICAgICAgICAgICAgICAgICAgIHN5c2NhbGxfaWQyID0gaW50KG51bWJlcnNbMV0pCisgICAgICAgICAgICAgICAgaWYgbGVuKG51bWJlcnMpID09IDE6CisgICAgICAgICAgICAgICAgICAgIHN5c2NhbGxfY29tbW9uID0gaW50KG51bWJlcnNbMF0pCisgICAgICAgICAgICAgICAgICAgIHN5c2NhbGxfYXJtID0gLTEKKyAgICAgICAgICAgICAgICAgICAgc3lzY2FsbF94ODYgPSAtMQorICAgICAgICAgICAgICAgICAgICBzeXNjYWxsX21pcHMgPSAtMQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihudW1iZXJzKSA9PSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9jb21tb24gPSAtMQorICAgICAgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9hcm0gID0gaW50KG51bWJlcnNbMF0pCisgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsX3g4NiA9IGludChudW1iZXJzWzFdKQorICAgICAgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9taXBzID0gaW50KG51bWJlcnNbMl0pCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBFKCJpbnZhbGlkIHN5c2NhbGwgbnVtYmVyIGZvcm1hdCBpbiAnJXMnIiAlIGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICBFKCJpbnZhbGlkIHN5c2NhbGwgbnVtYmVyIGluICclcyciICUgbGluZSkKICAgICAgICAgICAgICAgICByZXR1cm4KIAotCQlnbG9iYWwgdmVyYm9zZQorICAgICAgICBnbG9iYWwgdmVyYm9zZQogICAgICAgICBpZiB2ZXJib3NlID49IDI6Ci0gICAgICAgICAgICBpZiBjYWxsX2lkIDwgMDoKLSAgICAgICAgICAgICAgICBwcmludCAiJXM6ICVkLCVkIiAlIChzeXNjYWxsX25hbWUsIHN5c2NhbGxfaWQsIHN5c2NhbGxfaWQyKQorICAgICAgICAgICAgaWYgY2FsbF9pZCA9PSAtMToKKyAgICAgICAgICAgICAgICBpZiBzeXNjYWxsX2NvbW1vbiA9PSAtMToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiVzOiAlZCwlZCwlZCIgJSAoc3lzY2FsbF9uYW1lLCBzeXNjYWxsX2FybSwgc3lzY2FsbF94ODYsIHN5c2NhbGxfbWlwcykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCAiJXM6ICVkIiAlIChzeXNjYWxsX25hbWUsIHN5c2NhbGxfY29tbW9uKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwcmludCAiJXMoJWQpOiAlZCwlZCIgJSAoc3lzY2FsbF9uYW1lLCBjYWxsX2lkLCBzeXNjYWxsX2lkLCBzeXNjYWxsX2lkMikKKyAgICAgICAgICAgICAgICBpZiBzeXNjYWxsX2NvbW1vbiA9PSAtMToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiVzKCVkKTogJWQsJWQsJWQiICUgKHN5c2NhbGxfbmFtZSwgY2FsbF9pZCwgc3lzY2FsbF9hcm0sIHN5c2NhbGxfeDg2LCBzeXNjYWxsX21pcHMpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiVzKCVkKTogJWQiICUgKHN5c2NhbGxfbmFtZSwgY2FsbF9pZCwgc3lzY2FsbF9jb21tb24pCiAKLSAgICAgICAgdCA9IHsgImlkIiAgICAgOiBzeXNjYWxsX2lkLAotICAgICAgICAgICAgICAiaWQyIiAgICA6IHN5c2NhbGxfaWQyLAorICAgICAgICB0ID0geyAiYXJtaWQiICA6IHN5c2NhbGxfYXJtLAorICAgICAgICAgICAgICAieDg2aWQiICA6IHN5c2NhbGxfeDg2LAorICAgICAgICAgICAgICAibWlwc2lkIiA6IHN5c2NhbGxfbWlwcywKKyAgICAgICAgICAgICAgImNvbW1vbiIgOiBzeXNjYWxsX2NvbW1vbiwKICAgICAgICAgICAgICAgImNpZCIgICAgOiBjYWxsX2lkLAogICAgICAgICAgICAgICAibmFtZSIgICA6IHN5c2NhbGxfbmFtZSwKICAgICAgICAgICAgICAgImZ1bmMiICAgOiBzeXNjYWxsX2Z1bmMsCiAgICAgICAgICAgICAgICJwYXJhbXMiIDogc3lzY2FsbF9wYXJhbXMsCiAgICAgICAgICAgICAgICJkZWNsIiAgIDogIiUtMTVzICAlcyAoJXMpOyIgJSAocmV0dXJuX3R5cGUsIHN5c2NhbGxfZnVuYywgcGFyYW1zKSB9Ci0KICAgICAgICAgc2VsZi5zeXNjYWxscy5hcHBlbmQodCkKIAogICAgIGRlZiBwYXJzZV9maWxlKHNlbGYsIGZpbGVfcGF0aCk6CmRpZmYgLS1naXQgYS9saWJjL3Rvb2xzL2NoZWNrc3lzY2FsbHMucHkgYi9saWJjL3Rvb2xzL2NoZWNrc3lzY2FsbHMucHkKaW5kZXggMmM1NjNkNy4uMjg2ZTcyNyAxMDA3NTUKLS0tIGEvbGliYy90b29scy9jaGVja3N5c2NhbGxzLnB5CisrKyBiL2xpYmMvdG9vbHMvY2hlY2tzeXNjYWxscy5weQpAQCAtNzAsMTAgKzcwLDE3IEBACiByZV9ucl9jbG9ja19saW5lID0gcmUuY29tcGlsZSggciIjZGVmaW5lIF9fTlJfKFx3KilccypcKF9fTlJfdGltZXJfY3JlYXRlXCsoXHcqKVwpIiApCiByZV9hcm1fbnJfbGluZSAgID0gcmUuY29tcGlsZSggciIjZGVmaW5lIF9fQVJNX05SXyhcdyopXHMqXChfX0FSTV9OUl9CQVNFXCtccyooXHcqKVwpIiApCiByZV94ODZfbGluZSAgICAgID0gcmUuY29tcGlsZSggciIjZGVmaW5lIF9fTlJfKFx3KilccyooWzAtOV0qKSIgKQorcmVfbWlwc19saW5lICAgICA9IHJlLmNvbXBpbGUoIHIiI2RlZmluZSBfX05SXyhcdyopXHMqXChfX05SX0xpbnV4XHMqXCtccyooWzAtOV0qKVwpIiApCiAKICMgbm93IHJlYWQgdGhlIExpbnV4IGFybSBoZWFkZXIKIGRlZiBwcm9jZXNzX25yX2xpbmUobGluZSxkaWN0KToKIAorICAgIG0gPSByZV9taXBzX2xpbmUubWF0Y2gobGluZSkKKyAgICBpZiBtOgorICAgICAgICBpZiBkaWN0WyJMaW51eCJdPT00MDAwOgorICAgICAgICAgICAgZGljdFttLmdyb3VwKDEpXSA9IGludChtLmdyb3VwKDIpKQorICAgICAgICByZXR1cm4KKwogICAgIG0gPSByZV9ucl9saW5lLm1hdGNoKGxpbmUpCiAgICAgaWYgbToKICAgICAgICAgZGljdFttLmdyb3VwKDEpXSA9IGludChtLmdyb3VwKDIpKQpAQCAtMTE4LDYgKzEyNSw3IEBACiAKIGFybV9kaWN0ID0ge30KIHg4Nl9kaWN0ID0ge30KK21pcHNfZGljdCA9IHt9CiAKICMgcmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIGxpbnV4X3Jvb3QsIGlmIGFueQogaWYgbGludXhfcm9vdFstMV0gPT0gJy8nOgpAQCAtMTQxLDggKzE0OSwxNSBAQAogICAgICAgICBwcmludCAibWF5YmUgdXNpbmcgYSBkaWZmZXJlbnQgc2V0IG9mIGtlcm5lbCBoZWFkZXJzIG1pZ2h0IGhlbHAuIgogICAgICAgICBzeXMuZXhpdCgxKQogCittaXBzX3VuaXN0ZCA9IGZpbmRfYXJjaF9oZWFkZXIobGludXhfcm9vdCwgIm1pcHMiLCAidW5pc3RkLmgiKQoraWYgbm90IG1pcHNfdW5pc3RkOgorICAgIHByaW50ICJXRUlSRDogQ291bGQgbm90IGxvY2F0ZSB0aGUgTWlwcyB1bmlzdGQuaCBrZXJuZWwgaGVhZGVyIGZpbGUsIgorICAgIHByaW50ICJtYXliZSB1c2luZyBhIGRpZmZlcmVudCBzZXQgb2Yga2VybmVsIGhlYWRlcnMgbWlnaHQgaGVscC4iCisgICAgc3lzLmV4aXQoMSkKKwogcHJvY2Vzc19oZWFkZXIoIGFybV91bmlzdGQsIGFybV9kaWN0ICkKIHByb2Nlc3NfaGVhZGVyKCB4ODZfdW5pc3RkLCB4ODZfZGljdCApCitwcm9jZXNzX2hlYWRlciggbWlwc191bmlzdGQsIG1pcHNfZGljdCApCiAKICMgbm93IHBlcmZvcm0gdGhlIGNvbXBhcmlzb24KIGVycm9ycyA9IDAKQEAgLTE1NCwxOCArMTY5LDE5IEBACiAgICAgICAgIHNjX2lkICAgPSBzY1tpZG5hbWVdCiAgICAgICAgIGlmIHNjX2lkID49IDA6CiAgICAgICAgICAgICBpZiBub3QgYXJjaF9kaWN0Lmhhc19rZXkoc2NfbmFtZSk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgIiVzIHN5c2NhbGwgJXMgbm90IGRlZmluZWQsIHNob3VsZCBiZSAlZCAhISIgJSAoYXJjaG5hbWUsIHNjX25hbWUsIHNjX2lkKQorICAgICAgICAgICAgICAgIHByaW50ICJlcnJvcjogJXMgc3lzY2FsbCAlcyBub3QgZGVmaW5lZCwgc2hvdWxkIGJlICVkIiAlIChhcmNobmFtZSwgc2NfbmFtZSwgc2NfaWQpCiAgICAgICAgICAgICAgICAgZXJyb3JzICs9IDEKICAgICAgICAgICAgIGVsaWYgbm90IGFyY2hfZGljdC5oYXNfa2V5KHNjX25hbWUpOgotICAgICAgICAgICAgICAgIHByaW50ICIlcyBzeXNjYWxsICVzIGlzIG5vdCBpbXBsZW1lbnRlZCEiICUgKGFyY2huYW1lLCBzY19uYW1lKQorICAgICAgICAgICAgICAgIHByaW50ICJlcnJvcjogJXMgc3lzY2FsbCAlcyBpcyBub3QgaW1wbGVtZW50ZWQiICUgKGFyY2huYW1lLCBzY19uYW1lKQogICAgICAgICAgICAgICAgIGVycm9ycyArPSAxCiAgICAgICAgICAgICBlbGlmIGFyY2hfZGljdFtzY19uYW1lXSAhPSBzY19pZDoKLSAgICAgICAgICAgICAgICBwcmludCAiJXMgc3lzY2FsbCAlcyBzaG91bGQgYmUgJWQgaW5zdGVhZCBvZiAlZCAhISIgJSAoYXJjaG5hbWUsIHNjX25hbWUsIGFyY2hfZGljdFtzY19uYW1lXSwgc2NfaWQpCisgICAgICAgICAgICAgICAgcHJpbnQgImVycm9yOiAlcyBzeXNjYWxsICVzIHNob3VsZCBiZSAlZCBpbnN0ZWFkIG9mICVkIiAlIChhcmNobmFtZSwgc2NfbmFtZSwgYXJjaF9kaWN0W3NjX25hbWVdLCBzY19pZCkKICAgICAgICAgICAgICAgICBlcnJvcnMgKz0gMQogICAgIHJldHVybiBlcnJvcnMKIAotZXJyb3JzICs9IGNoZWNrX3N5c2NhbGxzKCJhcm0iLCAiaWQiLCBhcm1fZGljdCkKLWVycm9ycyArPSBjaGVja19zeXNjYWxscygieDg2IiwgImlkMiIsIHg4Nl9kaWN0KQorZXJyb3JzICs9IGNoZWNrX3N5c2NhbGxzKCJhcm0iLCAiYXJtaWQiLCBhcm1fZGljdCkKK2Vycm9ycyArPSBjaGVja19zeXNjYWxscygieDg2IiwgIng4NmlkIiwgeDg2X2RpY3QpCitlcnJvcnMgKz0gY2hlY2tfc3lzY2FsbHMoIm1pcHMiLCAibWlwc2lkIiwgbWlwc19kaWN0KQogCiBpZiBlcnJvcnMgPT0gMDoKICAgICBwcmludCAiY29uZ3JhdHVsYXRpb25zLCBldmVyeXRoaW5nJ3MgZmluZSAhISIKZGlmZiAtLWdpdCBhL2xpYmMvdG9vbHMvZ2Vuc3lzY2FsbHMucHkgYi9saWJjL3Rvb2xzL2dlbnN5c2NhbGxzLnB5CmluZGV4IGJmYTlmY2MuLjIxZDJmMWQgMTAwNzU1Ci0tLSBhL2xpYmMvdG9vbHMvZ2Vuc3lzY2FsbHMucHkKKysrIGIvbGliYy90b29scy9nZW5zeXNjYWxscy5weQpAQCAtMSwxMSArMSwxMiBAQAogIyEvdXNyL2Jpbi9weXRob24KICMKLSMgdGhpcyB0b29sIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHN5c2NhbGwgYXNzbWJsZXIgdGVtcGxhdGVzCi0jIHRvIGJlIHBsYWNlZCBpbnRvIGFyY2gteDg2L3N5c2NhbGxzLCBhcyB3ZWxsIGFzIHRoZSBjb250ZW50Ci0jIG9mIGFyY2gteDg2L2xpbnV4L19zeXNjYWxscy5oCisjIHRoaXMgdG9vbCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBzeXNjYWxsIGFzc2VtYmxlciB0ZW1wbGF0ZXMKKyMgdG8gYmUgcGxhY2VkIGludG8gYXJjaC17YXJtLHg4NixtaXBzfS9zeXNjYWxscywgYXMgd2VsbCBhcyB0aGUgY29udGVudAorIyBvZiBhcmNoLXthcm0seDg2LG1pcHN9L2xpbnV4L19zeXNjYWxscy5oCiAjCiAKIGltcG9ydCBzeXMsIG9zLnBhdGgsIGdsb2IsIHJlLCBjb21tYW5kcywgZmlsZWNtcCwgc2h1dGlsCitpbXBvcnQgZ2V0cGFzcwogCiBmcm9tIGJpb25pY191dGlscyBpbXBvcnQgKgogCkBAIC0zMSw5ICszMiwxMCBAQAogYmlvbmljX3RlbXAgPSAiL3RtcC9iaW9uaWNfZ2Vuc3lzY2FsbHMvIgogCiAjIGFsbCBhcmNoaXRlY3R1cmVzLCB1cGRhdGUgYXMgeW91IHNlZSBmaXQKLWFsbF9hcmNocyA9IFsgImFybSIsICJ4ODYiIF0KK2FsbF9hcmNocyA9IFsgImFybSIsICJ4ODYiLCAibWlwcyIgXQogCiBkZWYgbWFrZV9kaXIoIHBhdGggKToKKyAgICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKHBhdGgpCiAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgpOgogICAgICAgICBwYXJlbnQgPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkKICAgICAgICAgaWYgcGFyZW50OgpAQCAtMTgzLDYgKzE4NSwzMiBAQAogICAgIC5mbmVuZAogIiIiCiAKKyMgbWlwcyBhc3NlbWJsZXIgdGVtcGxhdGVzIGZvciBlYWNoIHN5c2NhbGwgc3R1YgorIworbWlwc19jYWxsID0gIiIiLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsICUoZm5hbWUpcworICAgIC5hbGlnbiA0CisgICAgLmVudCAlKGZuYW1lKXMKKworJShmbmFtZSlzOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsICUoaWRuYW1lKXMKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCAlKGZuYW1lKXMKKyIiIgorCiBkZWYgcGFyYW1fdXNlc182NGJpdHMocGFyYW0pOgogICAgICIiIlJldHVybnMgVHJ1ZSBpZmYgYSBzeXNjYWxsIHBhcmFtZXRlciBkZXNjcmlwdGlvbiBjb3JyZXNwb25kcwogICAgICAgIHRvIGEgNjQtYml0IHR5cGUuIiIiCkBAIC0zMzEsMjMgKzM1OSwxMCBAQAogICAgICAgICAgICAgICAgIHJldHVybiB0aHVtYl9jYWxsX2xvbmcgJSB0CiAgICAgICAgIHJldHVybiB0aHVtYl9jYWxsX2RlZmF1bHQgJSB0CiAKLQotICAgIGRlZiBzdXBlcmhfZ2Vuc3R1YihzZWxmLCBmbmFtZSwgZmxhZ3MsIGlkbmFtZSk6Ci0gICAgICAgIG51bWFyZ3MgPSBpbnQoZmxhZ3MpCisgICAgZGVmIG1pcHNfZ2Vuc3R1YihzZWxmLGZuYW1lLCBpZG5hbWUpOgogICAgICAgICB0ID0geyAiZm5hbWUiICA6IGZuYW1lLAotICAgICAgICAgICAgICAiaWRuYW1lIiA6IGlkbmFtZSwKLSAgICAgICAgICAgICAgIm51bWFyZ3MiIDogbnVtYXJncyB9Ci0gICAgICAgIHN1cGVyaF9jYWxsID0gc3VwZXJoX2hlYWRlcgotICAgICAgICBpZiBmbGFnczoKLSAgICAgICAgICAgIGlmIG51bWFyZ3MgPT0gNToKLSAgICAgICAgICAgICAgICBzdXBlcmhfY2FsbCArPSBzdXBlcmhfNWFyZ3NfaGVhZGVyCi0gICAgICAgICAgICBpZiBudW1hcmdzID09IDY6Ci0gICAgICAgICAgICAgICAgc3VwZXJoX2NhbGwgKz0gc3VwZXJoXzZhcmdzX2hlYWRlcgotICAgICAgICAgICAgaWYgbnVtYXJncyA9PSA3OgotICAgICAgICAgICAgICAgIHN1cGVyaF9jYWxsICs9IHN1cGVyaF83YXJnc19oZWFkZXIKLSAgICAgICAgc3VwZXJoX2NhbGwgKz0gc3VwZXJoX2NhbGxfZGVmYXVsdAotICAgICAgICByZXR1cm4gc3VwZXJoX2NhbGwgJSB0Ci0KKyAgICAgICAgICAgICAgImlkbmFtZSIgOiBpZG5hbWUgfQorICAgICAgICByZXR1cm4gbWlwc19jYWxsICUgdAogCiAgICAgZGVmIHByb2Nlc3NfZmlsZShzZWxmLGlucHV0KToKICAgICAgICAgcGFyc2VyID0gU3lzQ2FsbHNUeHRQYXJzZXIoKQpAQCAtMzYwLDcgKzM3NSw3IEBACiAgICAgICAgICAgICBzeXNjYWxsX3BhcmFtcyA9IHRbInBhcmFtcyJdCiAgICAgICAgICAgICBzeXNjYWxsX25hbWUgICA9IHRbIm5hbWUiXQogCi0gICAgICAgICAgICBpZiB0WyJpZCJdID49IDA6CisgICAgICAgICAgICBpZiB0WyJjb21tb24iXSA+PSAwIG9yIHRbImFybWlkIl0gPj0gMDoKICAgICAgICAgICAgICAgICBudW1fcmVncyA9IGNvdW50X2FybV9wYXJhbV9yZWdpc3RlcnMoc3lzY2FsbF9wYXJhbXMpCiAgICAgICAgICAgICAgICAgaWYgZ2VuX3RodW1iX3N0dWJzOgogICAgICAgICAgICAgICAgICAgICB0WyJhc20tdGh1bWIiXSA9IHNlbGYudGh1bWJfZ2Vuc3R1YihzeXNjYWxsX2Z1bmMsbnVtX3JlZ3MsIl9fTlJfIitzeXNjYWxsX25hbWUpCkBAIC0zNzAsNyArMzg1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgIHRbImFzbS1hcm0iXSAgID0gc2VsZi5hcm1fZ2Vuc3R1YihzeXNjYWxsX2Z1bmMsbnVtX3JlZ3MsIl9fTlJfIitzeXNjYWxsX25hbWUpCiAKLSAgICAgICAgICAgIGlmIHRbImlkMiJdID49IDA6CisgICAgICAgICAgICBpZiB0WyJjb21tb24iXSA+PSAwIG9yIHRbIng4NmlkIl0gPj0gMDoKICAgICAgICAgICAgICAgICBudW1fcmVncyA9IGNvdW50X2dlbmVyaWNfcGFyYW1fcmVnaXN0ZXJzKHN5c2NhbGxfcGFyYW1zKQogICAgICAgICAgICAgICAgIGlmIHRbImNpZCJdID49IDA6CiAgICAgICAgICAgICAgICAgICAgIHRbImFzbS14ODYiXSA9IHNlbGYueDg2X2dlbnN0dWJfY2lkKHN5c2NhbGxfZnVuYywgbnVtX3JlZ3MsICJfX05SXyIrc3lzY2FsbF9uYW1lLCB0WyJjaWQiXSkKQEAgLTM4MCw1NSArMzk1LDY1IEBACiAgICAgICAgICAgICAgICAgRSgiY2lkIGZvciBkaXNwYXRjaCBzeXNjYWxscyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgeDg2IGluICIKICAgICAgICAgICAgICAgICAgICInJXMnIiAlIHN5c2NhbGxfbmFtZSkKICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGlmIHRbImNvbW1vbiJdID49IDAgb3IgdFsibWlwc2lkIl0gPj0gMDoKKyAgICAgICAgICAgICAgICB0WyJhc20tbWlwcyJdID0gc2VsZi5taXBzX2dlbnN0dWIoc3lzY2FsbF9mdW5jLCJfX05SXyIrc3lzY2FsbF9uYW1lKQogCiAKICAgICBkZWYgZ2VuX05SX3N5c2NhbGwoc2VsZixmcCxuYW1lLGlkKToKICAgICAgICAgZnAud3JpdGUoICIjZGVmaW5lIF9fTlJfJS0yNXMgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgJWQpXG4iICUgKG5hbWUsaWQpICkKIAotICAgICMgbm93IGR1bXAgdGhlIGNvbnRlbnQgb2YgbGludXgvX3N5c2NhbGxzLmgKKyAgICAjIG5vdyBkdW1wIHRoZSBjb250ZW50IG9mIGxpbnV4LXN5c2NhbGxzLmgKICAgICBkZWYgZ2VuX2xpbnV4X3N5c2NhbGxzX2goc2VsZik6CiAgICAgICAgIHBhdGggPSAiaW5jbHVkZS9zeXMvbGludXgtc3lzY2FsbHMuaCIKICAgICAgICAgRCggImdlbmVyYXRpbmcgIitwYXRoICkKICAgICAgICAgZnAgPSBjcmVhdGVfZmlsZSggcGF0aCApCiAgICAgICAgIGZwLndyaXRlKCAiLyogYXV0by1nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHksIGRvIG5vdCB0b3VjaCAqL1xuIiApCi0gICAgICAgIGZwLndyaXRlKCAiI2lmbmRlZiBfQklPTklDX0xJTlVYX1NZU0NBTExTX0hfXG5cbiIgKQotICAgICAgICBmcC53cml0ZSggIiNpZiAhZGVmaW5lZCBfX0FTTV9BUk1fVU5JU1REX0ggJiYgIWRlZmluZWQgX19BU01fSTM4Nl9VTklTVERfSFxuIiApCisgICAgICAgIGZwLndyaXRlKCAiI2lmbmRlZiBfQklPTklDX0xJTlVYX1NZU0NBTExTX0hfXG4iICkKKyAgICAgICAgZnAud3JpdGUoICIjZGVmaW5lIF9CSU9OSUNfTElOVVhfU1lTQ0FMTFNfSF9cblxuIiApCisgICAgICAgIGZwLndyaXRlKCAiI2lmICFkZWZpbmVkIF9fQVNNX0FSTV9VTklTVERfSCAmJiAhZGVmaW5lZCBfX0FTTV9JMzg2X1VOSVNURF9IICYmICFkZWZpbmVkIF9fQVNNX01JUFNfVU5JU1REX0hcbiIgKQogICAgICAgICBmcC53cml0ZSggIiNpZiBkZWZpbmVkIF9fYXJtX18gJiYgIWRlZmluZWQgX19BUk1fRUFCSV9fICYmICFkZWZpbmVkIF9fdGh1bWJfX1xuIiApCi0gICAgICAgIGZwLndyaXRlKCAiICAjICBkZWZpbmUgX19OUl9TWVNDQUxMX0JBU0UgIDB4OTAwMDAwXG4iICkKLSAgICAgICAgZnAud3JpdGUoICIgICNlbHNlXG4iICkKLSAgICAgICAgZnAud3JpdGUoICIgICMgIGRlZmluZSAgX19OUl9TWVNDQUxMX0JBU0UgIDBcbiIgKQotICAgICAgICBmcC53cml0ZSggIiAgI2VuZGlmXG5cbiIgKQorICAgICAgICBmcC53cml0ZSggIiAgIyAgZGVmaW5lIF9fTlJfU1lTQ0FMTF9CQVNFIDB4OTAwMDAwXG4iICkKKyAgICAgICAgZnAud3JpdGUoICIjZWxpZiBkZWZpbmVkKF9fbWlwc19fKVxuIiApCisgICAgICAgIGZwLndyaXRlKCAiICAjICBkZWZpbmUgX19OUl9TWVNDQUxMX0JBU0UgNDAwMFxuIiApCisgICAgICAgIGZwLndyaXRlKCAiI2Vsc2VcbiIgKQorICAgICAgICBmcC53cml0ZSggIiAgIyAgZGVmaW5lIF9fTlJfU1lTQ0FMTF9CQVNFIDBcbiIgKQorICAgICAgICBmcC53cml0ZSggIiNlbmRpZlxuXG4iICkKIAogICAgICAgICAjIGZpcnN0LCBhbGwgY29tbW9uIHN5c2NhbGxzCi0gICAgICAgIGZvciBzYyBpbiBzZWxmLnN5c2NhbGxzOgotICAgICAgICAgICAgc2NfaWQgID0gc2NbImlkIl0KLSAgICAgICAgICAgIHNjX2lkMiA9IHNjWyJpZDIiXQorICAgICAgICBmb3Igc2MgaW4gc29ydGVkKHNlbGYuc3lzY2FsbHMsa2V5PWxhbWJkYSB4OnhbImNvbW1vbiJdKToKKyAgICAgICAgICAgIHNjX2lkICA9IHNjWyJjb21tb24iXQogICAgICAgICAgICAgc2NfbmFtZSA9IHNjWyJuYW1lIl0KLSAgICAgICAgICAgIGlmIHNjX2lkID09IHNjX2lkMiBhbmQgc2NfaWQgPj0gMDoKKyAgICAgICAgICAgIGlmIHNjX2lkID49IDA6CiAgICAgICAgICAgICAgICAgc2VsZi5nZW5fTlJfc3lzY2FsbCggZnAsIHNjX25hbWUsIHNjX2lkICkKIAogICAgICAgICAjIG5vdywgYWxsIGFybS1zcGVjaWZpYyBzeXNjYWxscwogICAgICAgICBmcC53cml0ZSggIlxuI2lmZGVmIF9fYXJtX19cbiIgKTsKICAgICAgICAgZm9yIHNjIGluIHNlbGYuc3lzY2FsbHM6Ci0gICAgICAgICAgICBzY19pZCAgPSBzY1siaWQiXQotICAgICAgICAgICAgc2NfaWQyID0gc2NbImlkMiJdCisgICAgICAgICAgICBzY19pZCAgPSBzY1siYXJtaWQiXQogICAgICAgICAgICAgc2NfbmFtZSA9IHNjWyJuYW1lIl0KLSAgICAgICAgICAgIGlmIHNjX2lkICE9IHNjX2lkMiBhbmQgc2NfaWQgPj0gMDoKKyAgICAgICAgICAgIGlmIHNjX2lkID49IDA6CiAgICAgICAgICAgICAgICAgc2VsZi5nZW5fTlJfc3lzY2FsbCggZnAsIHNjX25hbWUsIHNjX2lkICkKICAgICAgICAgZnAud3JpdGUoICIjZW5kaWZcbiIgKTsKIAogICAgICAgICBnZW5fc3lzY2FsbHMgPSB7fQogICAgICAgICAjIGZpbmFsbHksIGFsbCBpMzg2LXNwZWNpZmljIHN5c2NhbGxzCiAgICAgICAgIGZwLndyaXRlKCAiXG4jaWZkZWYgX19pMzg2X19cbiIgKTsKLSAgICAgICAgZm9yIHNjIGluIHNlbGYuc3lzY2FsbHM6Ci0gICAgICAgICAgICBzY19pZCAgPSBzY1siaWQiXQotICAgICAgICAgICAgc2NfaWQyID0gc2NbImlkMiJdCisgICAgICAgIGZvciBzYyBpbiBzb3J0ZWQoc2VsZi5zeXNjYWxscyxrZXk9bGFtYmRhIHg6eFsieDg2aWQiXSk6CisgICAgICAgICAgICBzY19pZCAgPSBzY1sieDg2aWQiXQogICAgICAgICAgICAgc2NfbmFtZSA9IHNjWyJuYW1lIl0KLSAgICAgICAgICAgIGlmIHNjX2lkICE9IHNjX2lkMiBhbmQgc2NfaWQyID49IDAgYW5kIHNjX25hbWUgbm90IGluIGdlbl9zeXNjYWxsczoKLSAgICAgICAgICAgICAgICBzZWxmLmdlbl9OUl9zeXNjYWxsKCBmcCwgc2NfbmFtZSwgc2NfaWQyICkKKyAgICAgICAgICAgIGlmIHNjX2lkID49IDAgYW5kIHNjX25hbWUgbm90IGluIGdlbl9zeXNjYWxsczoKKyAgICAgICAgICAgICAgICBzZWxmLmdlbl9OUl9zeXNjYWxsKCBmcCwgc2NfbmFtZSwgc2NfaWQgKQogICAgICAgICAgICAgICAgIGdlbl9zeXNjYWxsc1tzY19uYW1lXSA9IFRydWUKICAgICAgICAgZnAud3JpdGUoICIjZW5kaWZcbiIgKTsKIAorICAgICAgICAjIGFsbCBtaXBzLXNwZWNpZmljIHN5c2NhbGxzCisgICAgICAgIGZwLndyaXRlKCAiXG4jaWZkZWYgX19taXBzX19cbiIgKTsKKyAgICAgICAgZm9yIHNjIGluIHNvcnRlZChzZWxmLnN5c2NhbGxzLGtleT1sYW1iZGEgeDp4WyJtaXBzaWQiXSk6CisgICAgICAgICAgICBzY19pZCA9IHNjWyJtaXBzaWQiXQorICAgICAgICAgICAgaWYgc2NfaWQgPj0gMDoKKyAgICAgICAgICAgICAgICBzZWxmLmdlbl9OUl9zeXNjYWxsKCBmcCwgc2NbIm5hbWUiXSwgc2NfaWQgKQorICAgICAgICBmcC53cml0ZSggIiNlbmRpZlxuIiApOworCiAgICAgICAgIGZwLndyaXRlKCAiXG4jZW5kaWZcbiIgKQogICAgICAgICBmcC53cml0ZSggIlxuI2VuZGlmIC8qIF9CSU9OSUNfTElOVVhfU1lTQ0FMTFNfSF8gKi9cbiIgKTsKICAgICAgICAgZnAuY2xvc2UoKQpAQCAtNDQ1LDYgKzQ3MCw3IEBACiAgICAgICAgIGFyY2hfdGVzdCA9IHsKICAgICAgICAgICAgICJhcm0iOiBsYW1iZGEgeDogeC5oYXNfa2V5KCJhc20tYXJtIikgb3IgeC5oYXNfa2V5KCJhc20tdGh1bWIiKSwKICAgICAgICAgICAgICJ4ODYiOiBsYW1iZGEgeDogeC5oYXNfa2V5KCJhc20teDg2IiksCisgICAgICAgICAgICAibWlwcyI6IGxhbWJkYSB4OiB4Lmhhc19rZXkoImFzbS1taXBzIikKICAgICAgICAgfQogCiAgICAgICAgIGZvciBzYyBpbiBzZWxmLnN5c2NhbGxzOgpAQCAtNDU0LDYgKzQ4MCw3IEBACiAgICAgICAgIGZwLmNsb3NlKCkKICAgICAgICAgc2VsZi5vdGhlcl9maWxlcy5hcHBlbmQoIHBhdGggKQogCisKICAgICAjIG5vdyBnZW5lcmF0ZSBlYWNoIHN5c2NhbGwgc3R1YgogICAgIGRlZiBnZW5fc3lzY2FsbF9zdHVicyhzZWxmKToKICAgICAgICAgZm9yIHNjIGluIHNlbGYuc3lzY2FsbHM6CkBAIC00ODEsNiArNTA4LDEzIEBACiAgICAgICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICAgICAgICAgIHNlbGYubmV3X3N0dWJzLmFwcGVuZCggZm5hbWUgKQogCisgICAgICAgICAgICBpZiBzYy5oYXNfa2V5KCJhc20tbWlwcyIpIGFuZCAnbWlwcycgaW4gYWxsX2FyY2hzOgorICAgICAgICAgICAgICAgIGZuYW1lID0gImFyY2gtbWlwcy9zeXNjYWxscy8lcy5TIiAlIHNjWyJmdW5jIl0KKyAgICAgICAgICAgICAgICBEMiggIj4+PiBnZW5lcmF0aW5nICIrZm5hbWUgKQorICAgICAgICAgICAgICAgIGZwID0gY3JlYXRlX2ZpbGUoIGZuYW1lICkKKyAgICAgICAgICAgICAgICBmcC53cml0ZShzY1siYXNtLW1pcHMiXSkKKyAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCisgICAgICAgICAgICAgICAgc2VsZi5uZXdfc3R1YnMuYXBwZW5kKCBmbmFtZSApCiAKICAgICBkZWYgIHJlZ2VuZXJhdGUoc2VsZik6CiAgICAgICAgIEQoICJzY2FubmluZyBmb3IgZXhpc3RpbmcgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHN0dWIgZmlsZXMiICkKQEAgLTQ5OCw3ICs1MzIsNyBAQAogCiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyggYmlvbmljX3RlbXAgKToKICAgICAgICAgICAgIEQoICJjcmVhdGluZyAlcyIgJSBiaW9uaWNfdGVtcCApCi0gICAgICAgICAgICBvcy5ta2RpciggYmlvbmljX3RlbXAgKQorICAgICAgICAgICAgbWFrZV9kaXIoIGJpb25pY190ZW1wICkKIAogIyAgICAgICAgRCggInA0IGVkaXRpbmcgc291cmNlIGZpbGVzIiApCiAjICAgICAgICBmb3IgYXJjaCBpbiBhbGxfYXJjaHM6CmRpZmYgLS1naXQgYS9saWJkbC9BbmRyb2lkLm1rIGIvbGliZGwvQW5kcm9pZC5tawppbmRleCBkMjI4OWY4Li5mYjAxZWMyIDEwMDY0NAotLS0gYS9saWJkbC9BbmRyb2lkLm1rCisrKyBiL2xpYmRsL0FuZHJvaWQubWsKQEAgLTM0LDIxICszNCw2IEBACiBMT0NBTF9BTExPV19VTkRFRklORURfU1lNQk9MUyA6PSB0cnVlCiBMT0NBTF9TWVNURU1fU0hBUkVEX0xJQlJBUklFUyA6PSAKIAotaWZlcSAoJChUQVJHRVRfQVJDSCksc2gpCi0jIGZvciBTdXBlckgsIGFkZGl0aW9uYWwgY29kZSBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIC5jdG9ycyBzZWN0aW9uLgotR0VOX1NPQkVHSU4gOj0gJChUQVJHRVRfT1VUX1NUQVRJQ19MSUJSQVJJRVMpL3NvYmVnaW4ubwotJChHRU5fU09CRUdJTik6ICQoTE9DQUxfUEFUSCkvYXJjaC1zaC9zb2JlZ2luLlMKLQlAbWtkaXIgLXAgJChkaXIgJEApCi0JJChUQVJHRVRfQ0MpIC1vICRAIC1jICQ8Ci0KLUdFTl9TT0VORCA6PSAkKFRBUkdFVF9PVVRfU1RBVElDX0xJQlJBUklFUykvc29lbmQubwotJChHRU5fU09FTkQpOiAkKExPQ0FMX1BBVEgpL2FyY2gtc2gvc29lbmQuUwotCUBta2RpciAtcCAkKGRpciAkQCkKLQkkKFRBUkdFVF9DQykgLW8gJEAgLWMgJDwKLQotTE9DQUxfQURESVRJT05BTF9ERVBFTkRFTkNJRVMgOj0gJChHRU5fU09CRUdJTikgJChHRU5fU09FTkQpCi1lbmRpZgotCiBpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCiAKIEJVSUxEX0RMVEVTVDo9MApkaWZmIC0tZ2l0IGEvbGliZGwvYXJjaC1zaC9zb2JlZ2luLlMgYi9saWJkbC9hcmNoLXNoL3NvYmVnaW4uUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTc2YjFhNi4uMDAwMDAwMAotLS0gYS9saWJkbC9hcmNoLXNoL3NvYmVnaW4uUworKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVGhlIEFuZHJvaWQgT3BlbiBQcm9qZWN0Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotICAgIC50ZXh0Ci0gICAgLmFsaWduIDQKLSAgICAudHlwZSAgX2luaXQsI2Z1bmN0aW9uCi0gICAgLmdsb2JsIF9pbml0Ci0KLSMgVGhlIHRvb2xjaGFpbiBmb3IgU0gtTGludXggZG9lcyBub3QgcHJvZHVjZSBJTklUX0FSUkFZIGluZm9ybWF0aW9uIHdoaWNoCi0jIGJpb25pYyBsaW5rZXIgcmVsaWVzIG9uLiAgSW5zdGVhZCBvZiBpdCwgVGhlIHRvb2xjaGFpbiBmb3IgU0gtTGludXggcHJvZHVjZXMKLSMgSU5JVCBpbmZvcm1hdGlvbiB3aGVuIGl0IGZpbmQgdGhlIGZ1bmN0aW9uIHdob3NlIG5hbWUgaXMgJ19pbml0Jy4KLSMKLV9pbml0OgotICAgIHN0cy5sICAgcHIsIEAtcjE1Ci0gICAgbW92LmwgICByOCwgQC1yMTUKLSAgICBtb3YubCAgIDBmLCByOCAgICAgIC8qIGZpcnN0IGVudHJ5IGlzIGludmFsaWQgKi8KLS5MX2xvb3A6Ci0gICAgYWRkICAgICAjNCwgcjgKLSAgICBtb3YubCAgIEByOCwgcjAKLSAgICBjbXAvZXEgICMwLCByMCAgICAgIC8qIFplcm8gdGVyaW1uYXRlZC4gU2VlICdzb2VuZC5zbycuICovCi0gICAgYnQgICAgICAuTF9lbmQKLSAgICBqc3IgICAgIEByMCAgICAgICAgIC8qIGludm9rZSBhIGNvbnN0cnVjdG9yICovCi0gICAgbm9wCi0gICAgYnJhICAgICAuTF9sb29wCi0gICAgbm9wCi0uTF9lbmQ6Ci0gICAgbW92LmwgICBAcjE1KywgcjgKLSAgICBsZHMubCAgIEByMTUrLCBwcgotCi0gICAgcnRzCi0gICAgbm9wCi0KLSAgICAuYmFsaWduIDQKLTA6ICAubG9uZyAgIF9fQ1RPUl9MSVNUX18KLQotIyB0aGUgLmN0b3JzIHNlY3Rpb24gY29udGFpbnMgYSBsaXN0IG9mIHBvaW50ZXJzIHRvICJjb25zdHJ1Y3RvciIKLSMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBjYWxsZWQgaW4gb3JkZXIgZHVyaW5nIEMgbGlicmFyeSBpbml0aWFsaXphdGlvbiwKLSMganVzdCBiZWZvcmUgdGhlIHByb2dyYW0gaXMgYmVpbmcgcnVuLiBUaGlzIGlzIGEgQysrIHJlcXVpcmVtZW50Ci0jCi0jIHRoZSBsYXN0IGVudHJ5IHNoYWxsIGJlIDAsIGFuZCBpcyBkZWZpbmVkIGluIGNydGVuZC5TCi0jCi0gICAgLnNlY3Rpb24gLmN0b3JzLCAiYXciCi0gICAgLmdsb2JsIF9fQ1RPUl9MSVNUX18KLV9fQ1RPUl9MSVNUX186Ci0gICAgLmxvbmcgICAtMQotCmRpZmYgLS1naXQgYS9saWJkbC9hcmNoLXNoL3NvZW5kLlMgYi9saWJkbC9hcmNoLXNoL3NvZW5kLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmYTk4YTQuLjAwMDAwMDAKLS0tIGEvbGliZGwvYXJjaC1zaC9zb2VuZC5TCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBUaGUgQW5kcm9pZCBPcGVuIFByb2plY3QKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSAgICAuc2VjdGlvbiAuY3RvcnMsICJhdyIKLSAgICAubG9uZyAwCi0KZGlmZiAtLWdpdCBhL2xpYmRsL2xpYmRsLmMgYi9saWJkbC9saWJkbC5jCmluZGV4IDg3MmMwYzkuLjFkNTFjMzcgMTAwNjQ0Ci0tLSBhL2xpYmRsL2xpYmRsLmMKKysrIGIvbGliZGwvbGliZGwuYwpAQCAtMjYsMTEgKzI2LDExIEBACiAKICNpZmRlZiBfX2FybV9fCiB2b2lkICpkbF91bndpbmRfZmluZF9leGlkeCh2b2lkICpwYywgaW50ICpwY291bnQpIHsgcmV0dXJuIDA7IH0KLSNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19zaF9fKQorI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3NoX18pIHx8IGRlZmluZWQoX19taXBzX18pCiAvKiB3ZSBtdW5nZSB0aGUgY2IgZGVmaW5pdGlvbiBzbyB3ZSBkb24ndCBoYXZlIHRvIGluY2x1ZGUgYW55IGhlYWRlcnMgaGVyZS4KICAqIEl0IHdvbid0IGFmZmVjdCBhbnl0aGluZyBzaW5jZSB0aGVzZSBhcmUganVzdCBzeW1ib2xzIGFueXdheSAqLwogaW50IGRsX2l0ZXJhdGVfcGhkcihpbnQgKCpjYikodm9pZCAqaW5mbywgdm9pZCAqc2l6ZSwgdm9pZCAqZGF0YSksCiAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpIHsgcmV0dXJuIDA7IH0KICNlbHNlCi0jZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLiBPbmx5IGFybSBhbmQgeDg2IGFyZSBzdXBwb3J0ZWQuCisjZXJyb3IgVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLiBPbmx5IG1pcHMsIGFybSBhbmQgeDg2IGFyZSBzdXBwb3J0ZWQuCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYm0vQW5kcm9pZC5tayBiL2xpYm0vQW5kcm9pZC5tawppbmRleCA1N2U0ZDRjLi4wN2NiN2RiIDEwMDY0NAotLS0gYS9saWJtL0FuZHJvaWQubWsKKysrIGIvbGlibS9BbmRyb2lkLm1rCkBAIC0xNTIsNiArMTUyLDcgQEAKIAlzcmMvc19pc25hbi5jIFwKIAlzcmMvc19tb2RmLmMKIAorbGlibV9jb21tb25fY2ZsYWdzIDo9CiAKIGlmZXEgKCQoVEFSR0VUX0FSQ0gpLGFybSkKICAgbGlibV9jb21tb25fc3JjX2ZpbGVzICs9IFwKQEAgLTE2MiwyMSArMTYzLDI5IEBACiAJc3JjL3Nfc2NhbGJuZi5jCiAKICAgbGlibV9jb21tb25faW5jbHVkZXMgPSAkKExPQ0FMX1BBVEgpL2FybQorZW5kaWYKIAotZWxzZQotICBpZmVxICgkKFRBUkdFVF9PUyktJChUQVJHRVRfQVJDSCksbGludXgteDg2KQotICAgIGxpYm1fY29tbW9uX3NyY19maWxlcyArPSBcCitpZmVxICgkKFRBUkdFVF9PUyktJChUQVJHRVRfQVJDSCksbGludXgteDg2KQorICBsaWJtX2NvbW1vbl9zcmNfZmlsZXMgKz0gXAogCWkzODcvZmVudi5jIFwKIAlpMzg3L3Nfc2NhbGJubC5TIFwKIAlpMzg3L3Nfc2NhbGJuLlMgXAogCWkzODcvc19zY2FsYm5mLlMKIAotICAgIGxpYm1fY29tbW9uX2luY2x1ZGVzID0gJChMT0NBTF9QQVRIKS9pMzg2ICQoTE9DQUxfUEFUSCkvaTM4NwotICBlbHNlCi0gICAgJChlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1cmUiKQotICBlbmRpZgorICBsaWJtX2NvbW1vbl9pbmNsdWRlcyA9ICQoTE9DQUxfUEFUSCkvaTM4NiAkKExPQ0FMX1BBVEgpL2kzODcKIGVuZGlmCitpZmVxICgkKFRBUkdFVF9BUkNIKSxtaXBzKQorICBsaWJtX2NvbW1vbl9zcmNfZmlsZXMgKz0gXAorCW1pcHMvZmVudi5jIFwKKwlzcmMvZV9sZGV4cGYuYyBcCisJc3JjL3Nfc2NhbGJsbi5jIFwKKwlzcmMvc19zY2FsYm4uYyBcCisJc3JjL3Nfc2NhbGJuZi5jCiAKKyAgbGlibV9jb21tb25faW5jbHVkZXMgPSAkKExPQ0FMX1BBVEgpL21pcHMKKyAgIyBOZWVkIHRvIGJ1aWxkICpyaW50KiBmdW5jdGlvbnMKKyAgbGlibV9jb21tb25fY2ZsYWdzICs9IC1mbm8tYnVpbHRpbi1yaW50ZiAtZm5vLWJ1aWx0aW4tcmludAorZW5kaWYKIAogIyBsaWJtLmEKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE4OCw2ICsxOTcsNyBAQAogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KIExPQ0FMX0NfSU5DTFVERVMgKz0gJChsaWJtX2NvbW1vbl9pbmNsdWRlcykKK0xPQ0FMX0NGTEFHUyA6PSAkKGxpYm1fY29tbW9uX2NmbGFncykKIAogTE9DQUxfTU9EVUxFOj0gbGlibQogCkBAIC0yMDYsNiArMjE2LDcgQEAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQogCiBMT0NBTF9DX0lOQ0xVREVTICs9ICQobGlibV9jb21tb25faW5jbHVkZXMpCitMT0NBTF9DRkxBR1MgOj0gJChsaWJtX2NvbW1vbl9jZmxhZ3MpCiAKIExPQ0FMX01PRFVMRTo9IGxpYm0KIApkaWZmIC0tZ2l0IGEvbGlibS9taXBzL01ha2VmaWxlLmluYyBiL2xpYm0vbWlwcy9NYWtlZmlsZS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJiZmFhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYm0vbWlwcy9NYWtlZmlsZS5pbmMKQEAgLTAsMCArMSwzIEBACisjICRGcmVlQlNEOiBzcmMvbGliL21zdW4vbWlwcy9NYWtlZmlsZS5pbmMsdiAxLjEgMjAwOC8wNC8yNiAxMjoyMDoyOSBpbXAgRXhwICQKKworTERCTF9QUkVDID0gNTMKZGlmZiAtLWdpdCBhL2xpYm0vbWlwcy9fZnBtYXRoLmggYi9saWJtL21pcHMvX2ZwbWF0aC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNmU4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJtL21pcHMvX2ZwbWF0aC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDAyLCAyMDAzIERhdmlkIFNjaHVsdHogPGRhc0BGcmVlQlNELk9SRz4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogJEZyZWVCU0Q6IHNyYy9saWIvbGliYy9taXBzL19mcG1hdGguaCx2IDEuMSAyMDA4LzA0LzI2IDEyOjA3OjU5IGltcCBFeHAgJAorICovCisKK3VuaW9uIElFRUVsMmJpdHMgeworCWxvbmcgZG91YmxlCWU7CisJc3RydWN0IHsKKyNpZm5kZWYgX19NSVBTRUJfXworCQl1bnNpZ25lZCBpbnQJbWFubAk6MzI7CisJCXVuc2lnbmVkIGludAltYW5oCToyMDsKKwkJdW5zaWduZWQgaW50CWV4cAk6MTE7CisJCXVuc2lnbmVkIGludAlzaWduCToxOworI2Vsc2UKKwkJdW5zaWduZWQgaW50CQlzaWduCToxOworCQl1bnNpZ25lZCBpbnQJCWV4cAk6MTE7CisJCXVuc2lnbmVkIGludAkJbWFuaAk6MjA7CisJCXVuc2lnbmVkIGludAkJbWFubAk6MzI7CisjZW5kaWYKKwl9IGJpdHM7Cit9OworCisjZGVmaW5lCUxEQkxfTkJJVAkwCisjZGVmaW5lCW1hc2tfbmJpdF9sKHUpCSgodm9pZCkwKQorI2RlZmluZQlMREJMX0lNUExJQ0lUX05CSVQKKworI2RlZmluZQlMREJMX01BTkhfU0laRQkyMAorI2RlZmluZQlMREJMX01BTkxfU0laRQkzMgorCisjZGVmaW5lCUxEQkxfVE9fQVJSQVkzMih1LCBhKSBkbyB7CQkJXAorCShhKVswXSA9ICh1aW50MzJfdCkodSkuYml0cy5tYW5sOwkJXAorCShhKVsxXSA9ICh1aW50MzJfdCkodSkuYml0cy5tYW5oOwkJXAorfSB3aGlsZSgwKQpkaWZmIC0tZ2l0IGEvbGlibS9taXBzL2ZlbnYuYyBiL2xpYm0vbWlwcy9mZW52LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVmNTJkYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYm0vbWlwcy9mZW52LmMKQEAgLTAsMCArMSwzNSBAQAorLyotCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQgRGF2aWQgU2NodWx0eiA8ZGFzQEZyZWVCU0QuT1JHPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKiAkRnJlZUJTRDogc3JjL2xpYi9tc3VuL21pcHMvZmVudi5jLHYgMS4xIDIwMDgvMDQvMjYgMTI6MjA6MjkgaW1wIEV4cCAkCisgKi8KKworI2luY2x1ZGUgPGZlbnYuaD4KKworLyoKKyAqIEhvcGVmdWxseSB0aGUgc3lzdGVtIElEIGJ5dGUgaXMgaW1tdXRhYmxlLCBzbyBpdCdzIHZhbGlkIHRvIHVzZQorICogdGhpcyBhcyBhIGRlZmF1bHQgZW52aXJvbm1lbnQuCisgKi8KK2NvbnN0IGZlbnZfdCBfX2ZlX2RmbF9lbnYgPSAwOwpkaWZmIC0tZ2l0IGEvbGlibS9taXBzL2ZlbnYuaCBiL2xpYm0vbWlwcy9mZW52LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDYxYTY5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYm0vbWlwcy9mZW52LmgKQEAgLTAsMCArMSwyMTggQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDUgRGF2aWQgU2NodWx0eiA8ZGFzQEZyZWVCU0QuT1JHPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKiAkRnJlZUJTRDogc3JjL2xpYi9tc3VuL21pcHMvZmVudi5oLHYgMS4xIDIwMDgvMDQvMjYgMTI6MjA6MjkgaW1wIEV4cCAkCisgKi8KKworI2lmbmRlZglfRkVOVl9IXworI2RlZmluZQlfRkVOVl9IXworCisjaW5jbHVkZSA8c3lzL190eXBlcy5oPgorCit0eXBlZGVmCV9fdWludDMyX3QJZmVudl90OwordHlwZWRlZglfX3VpbnQzMl90CWZleGNlcHRfdDsKKworLyogRXhjZXB0aW9uIGZsYWdzICovCisjZGVmaW5lCUZFX0lOVkFMSUQJMHgwMDAxCisjZGVmaW5lCUZFX0RJVkJZWkVSTwkweDAwMDIKKyNkZWZpbmUJRkVfT1ZFUkZMT1cJMHgwMDA0CisjZGVmaW5lCUZFX1VOREVSRkxPVwkweDAwMDgKKyNkZWZpbmUJRkVfSU5FWEFDVAkweDAwMTAKKyNkZWZpbmUJRkVfQUxMX0VYQ0VQVAkoRkVfRElWQllaRVJPIHwgRkVfSU5FWEFDVCB8IFwKKwkJCSBGRV9JTlZBTElEIHwgRkVfT1ZFUkZMT1cgfCBGRV9VTkRFUkZMT1cpCisKKy8qIFJvdW5kaW5nIG1vZGVzICovCisjZGVmaW5lCUZFX1RPTkVBUkVTVAkweDAwMDAKKyNkZWZpbmUJRkVfVE9XQVJEWkVSTwkweDAwMDEKKyNkZWZpbmUJRkVfVVBXQVJECTB4MDAwMgorI2RlZmluZQlGRV9ET1dOV0FSRAkweDAwMDMKKyNkZWZpbmUJX1JPVU5EX01BU0sJKEZFX1RPTkVBUkVTVCB8IEZFX0RPV05XQVJEIHwgXAorCQkJIEZFX1VQV0FSRCB8IEZFX1RPV0FSRFpFUk8pCisvKiBfX0JFR0lOX0RFQ0xTICovCisKKy8qIERlZmF1bHQgZmxvYXRpbmctcG9pbnQgZW52aXJvbm1lbnQgKi8KK2V4dGVybiBjb25zdCBmZW52X3QJX19mZV9kZmxfZW52OworI2RlZmluZQlGRV9ERkxfRU5WCSgmX19mZV9kZmxfZW52KQorCisvKiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gbWFwIHN0YXR1cyBmbGFnIHBvc2l0aW9ucyB0byBtYXNrIGZsYWcgcG9zaXRpb25zICovCisjZGVmaW5lIF9GUFVTV19TSElGVAkxNgorI2RlZmluZQlfRU5BQkxFX01BU0sJKEZFX0FMTF9FWENFUFQgPDwgX0ZQVVNXX1NISUZUKQorCisjaWZkZWYJQVJNX0hBUkRfRkxPQVQKKyNkZWZpbmUJX19yZnMoX19mcHNyKQlfX2FzbSBfX3ZvbGF0aWxlKCJyZnMgJTAiIDogIj1yIiAoKihfX2Zwc3IpKSkKKyNkZWZpbmUJX193ZnMoX19mcHNyKQlfX2FzbSBfX3ZvbGF0aWxlKCJ3ZnMgJTAiIDogOiAiciIgKF9fZnBzcikpCisjZWxzZQorI2RlZmluZSBfX3JmcyhfX2Zwc3IpCisjZGVmaW5lIF9fd2ZzKF9fZnBzcikKKyNlbmRpZgorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZWNsZWFyZXhjZXB0KGludCBfX2V4Y2VwdHMpCit7CisJZmV4Y2VwdF90IF9fZnBzcjsKKworCV9fcmZzKCZfX2Zwc3IpOworCV9fZnBzciAmPSB+X19leGNlcHRzOworCV9fd2ZzKF9fZnBzcik7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmVnZXRleGNlcHRmbGFnKGZleGNlcHRfdCAqX19mbGFncCwgaW50IF9fZXhjZXB0cykKK3sKKwlmZXhjZXB0X3QgX19mcHNyOworCisJX19yZnMoJl9fZnBzcik7CisJKl9fZmxhZ3AgPSBfX2Zwc3IgJiBfX2V4Y2VwdHM7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmVzZXRleGNlcHRmbGFnKGNvbnN0IGZleGNlcHRfdCAqX19mbGFncCwgaW50IF9fZXhjZXB0cykKK3sKKwlmZXhjZXB0X3QgX19mcHNyOworCisJX19yZnMoJl9fZnBzcik7CisJX19mcHNyICY9IH5fX2V4Y2VwdHM7CisJX19mcHNyIHw9ICpfX2ZsYWdwICYgX19leGNlcHRzOworCV9fd2ZzKF9fZnBzcik7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmVyYWlzZWV4Y2VwdChpbnQgX19leGNlcHRzKQoreworCWZleGNlcHRfdCBfX2V4ID0gX19leGNlcHRzOworCisJZmVzZXRleGNlcHRmbGFnKCZfX2V4LCBfX2V4Y2VwdHMpOwkvKiBYWFggKi8KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZXRlc3RleGNlcHQoaW50IF9fZXhjZXB0cykKK3sKKwlmZXhjZXB0X3QgX19mcHNyOworCisJX19yZnMoJl9fZnBzcik7CisJcmV0dXJuIChfX2Zwc3IgJiBfX2V4Y2VwdHMpOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZWdldHJvdW5kKHZvaWQpCit7CisKKwkvKgorCSAqIEFwcGFyZW50bHksIHRoZSByb3VuZGluZyBtb2RlIGlzIHNwZWNpZmllZCBhcyBwYXJ0IG9mIHRoZQorCSAqIGluc3RydWN0aW9uIGZvcm1hdCBvbiBBUk0sIHNvIHRoZSBkeW5hbWljIHJvdW5kaW5nIG1vZGUgaXMKKwkgKiBpbmRldGVybWluYXRlLiAgU29tZSBGUFVzIG1heSBkaWZmZXIuCisJICovCisJcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2Zlc2V0cm91bmQoaW50IF9fcm91bmQpCit7CisKKwlyZXR1cm4gKC0xKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmVnZXRlbnYoZmVudl90ICpfX2VudnApCit7CisKKwlfX3JmcyhfX2VudnApOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2ZlaG9sZGV4Y2VwdChmZW52X3QgKl9fZW52cCkKK3sKKwlmZW52X3QgX19lbnY7CisKKwlfX3JmcygmX19lbnYpOworCSpfX2VudnAgPSBfX2VudjsKKwlfX2VudiAmPSB+KEZFX0FMTF9FWENFUFQgfCBfRU5BQkxFX01BU0spOworCV9fd2ZzKF9fZW52KTsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZXNldGVudihjb25zdCBmZW52X3QgKl9fZW52cCkKK3sKKworCV9fd2ZzKCpfX2VudnApOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2ZldXBkYXRlZW52KGNvbnN0IGZlbnZfdCAqX19lbnZwKQoreworCWZleGNlcHRfdCBfX2Zwc3I7CisKKwlfX3JmcygmX19mcHNyKTsKKwlfX3dmcygqX19lbnZwKTsKKwlmZXJhaXNlZXhjZXB0KF9fZnBzciAmIEZFX0FMTF9FWENFUFQpOworCXJldHVybiAoMCk7Cit9CisKKyNpZiBfX0JTRF9WSVNJQkxFCisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2ZlZW5hYmxlZXhjZXB0KGludCBfX21hc2spCit7CisJZmVudl90IF9fb2xkX2Zwc3IsIF9fbmV3X2Zwc3I7CisKKwlfX3JmcygmX19vbGRfZnBzcik7CisJX19uZXdfZnBzciA9IF9fb2xkX2Zwc3IgfCAoX19tYXNrICYgRkVfQUxMX0VYQ0VQVCkgPDwgX0ZQVVNXX1NISUZUOworCV9fd2ZzKF9fbmV3X2Zwc3IpOworCXJldHVybiAoKF9fb2xkX2Zwc3IgPj4gX0ZQVVNXX1NISUZUKSAmIEZFX0FMTF9FWENFUFQpOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZWRpc2FibGVleGNlcHQoaW50IF9fbWFzaykKK3sKKwlmZW52X3QgX19vbGRfZnBzciwgX19uZXdfZnBzcjsKKworCV9fcmZzKCZfX29sZF9mcHNyKTsKKwlfX25ld19mcHNyID0gX19vbGRfZnBzciAmIH4oKF9fbWFzayAmIEZFX0FMTF9FWENFUFQpIDw8IF9GUFVTV19TSElGVCk7CisJX193ZnMoX19uZXdfZnBzcik7CisJcmV0dXJuICgoX19vbGRfZnBzciA+PiBfRlBVU1dfU0hJRlQpICYgRkVfQUxMX0VYQ0VQVCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2ZlZ2V0ZXhjZXB0KHZvaWQpCit7CisJZmVudl90IF9fZnBzcjsKKworCV9fcmZzKCZfX2Zwc3IpOworCXJldHVybiAoKF9fZnBzciAmIF9FTkFCTEVfTUFTSykgPj4gX0ZQVVNXX1NISUZUKTsKK30KKworI2VuZGlmIC8qIF9fQlNEX1ZJU0lCTEUgKi8KKworLyogX19FTkRfREVDTFMgKi8KKworI2VuZGlmCS8qICFfRkVOVl9IXyAqLworCmRpZmYgLS1naXQgYS9saWJtL3NoL19mcG1hdGguaCBiL2xpYm0vc2gvX2ZwbWF0aC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzVlYzdiLi4wMDAwMDAwCi0tLSBhL2xpYm0vc2gvX2ZwbWF0aC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgIERlcml2ZWQgZnJvbSAiYmlvbmljL2xpYm0vYXJtL19mcG1hdGguaCIKLSAqICAgQ29weXJpZ2h0IChjKSAyMDAyLCAyMDAzIERhdmlkIFNjaHVsdHogPGRhc0BGcmVlQlNELk9SRz4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCi0gKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCi0gKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUwotICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECi0gKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKLSAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotLyoKLSAqIEFzc3VtZXMgdGhhdCAnbG9uZyBkb3VibGUnIG9uIFNILWxpbnV4IGlzIGp1c3QgYW4gYWxpYXMgZm9yICdkb3VibGUnLgotICovCi11bmlvbiBJRUVFbDJiaXRzIHsKLQlsb25nIGRvdWJsZQllOwotCXN0cnVjdCB7Ci0jaWYgIF9fQllURV9PUkRFUiA9PSBfX0xJVFRMRV9FTkRJQU4KLQkJdW5zaWduZWQgaW50CW1hbmwJOjMyOwotCQl1bnNpZ25lZCBpbnQJbWFuaAk6MjA7Ci0JCXVuc2lnbmVkIGludAlleHAJOjExOwotCQl1bnNpZ25lZCBpbnQJc2lnbgk6MTsKLSNlbGlmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJQU4KLQkJdW5zaWduZWQgaW50CXNpZ24JOjE7Ci0JCXVuc2lnbmVkIGludAlleHAJOjExOwotCQl1bnNpZ25lZCBpbnQJbWFuaAk6MjA7Ci0JCXVuc2lnbmVkIGludAltYW5sCTozMjsKLSNlbmRpZgotCX0gYml0czsKLX07Ci0KLS8qCi0gKiBMREJMX05CSVQgaXMgYSBtYXNrIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBpbnRlZ2VyCi0gKiBiaXQgaW4gYSBsb25nIGRvdWJsZS4gIEJ1dCBTSDQgZG9lcyBub3Qgc3VwcG9ydCBpdC4KLSAqLwotI2RlZmluZQlMREJMX05CSVQJMAotI2RlZmluZQltYXNrX25iaXRfbCh1KQkoKHZvaWQpMCkKLQotI2RlZmluZQlMREJMX01BTkhfU0laRQkyMAotI2RlZmluZQlMREJMX01BTkxfU0laRQkzMgpkaWZmIC0tZ2l0IGEvbGlibS9zaC9mZW52LmMgYi9saWJtL3NoL2ZlbnYuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E4ZjQ3Ni4uMDAwMDAwMAotLS0gYS9saWJtL3NoL2ZlbnYuYworKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0LCBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogICBEZXJpdmVkIGZyb20gImJpb25pYy9saWJtL2FybS9mZW52LmMiCi0gKiAgIENvcHlyaWdodCAoYykgMjAwNCBEYXZpZCBTY2h1bHR6IDxkYXNARnJlZUJTRC5PUkc+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLWxvbmcgX19mcHNjcl92YWx1ZXNbMl0gPSB7IDBMLCAweDgwMDAwTCB9OwpkaWZmIC0tZ2l0IGEvbGlibS9zaC9mZW52LmggYi9saWJtL3NoL2ZlbnYuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg3MmY0Ny4uMDAwMDAwMAotLS0gYS9saWJtL3NoL2ZlbnYuaAorKysgL2Rldi9udWxsCkBAIC0xLDI0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdCwgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICAgRGVyaXZlZCBmcm9tICJiaW9uaWMvbGlibS9hcm0vZmVudi5oIgotICogICBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNSBEYXZpZCBTY2h1bHR6IDxkYXNARnJlZUJTRC5PUkc+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgX0ZFTlZfSF8KLSNkZWZpbmUgX0ZFTlZfSF8KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0KLXR5cGVkZWYJdWludDMyX3QJZmVudl90OwotdHlwZWRlZgl1aW50MzJfdAlmZXhjZXB0X3Q7Ci0KLS8qIEV4Y2VwdGlvbiBmbGFncyAqLwotI2RlZmluZQlGRV9JTlZBTElECQkweDAwMTAKLSNkZWZpbmUJRkVfRElWQllaRVJPCTB4MDAwOAotI2RlZmluZQlGRV9PVkVSRkxPVwkJMHgwMDA0Ci0jZGVmaW5lCUZFX1VOREVSRkxPVwkweDAwMDIKLSNkZWZpbmUJRkVfSU5FWEFDVAkJMHgwMDAxCi0jZGVmaW5lCUZFX0FMTF9FWENFUFQJKEZFX0RJVkJZWkVSTyB8IEZFX0lORVhBQ1QgfCBcCi0JCQkJIEZFX0lOVkFMSUQgfCBGRV9PVkVSRkxPVyB8IEZFX1VOREVSRkxPVykKLQotLyogUm91bmRpbmcgbW9kZXMgKi8KLSNkZWZpbmUJRkVfVE9ORUFSRVNUCTB4MDAwMAotI2RlZmluZQlGRV9UT1dBUkRaRVJPCTB4MDAwMQotI2RlZmluZQlGRV9VUFdBUkQJMHgwMDAyIC8qIG5vdCBzdXBwb3JldGQgKi8KLSNkZWZpbmUJRkVfRE9XTldBUkQJMHgwMDAzIC8qIG5vdCBzdXBwb3JldGQgKi8KLSNkZWZpbmUJX1JPVU5EX01BU0sJKEZFX1RPTkVBUkVTVCB8IEZFX0RPV05XQVJEIHwgXAotCQkJCSBGRV9VUFdBUkQgfCBGRV9UT1dBUkRaRVJPKQotCi0vKiBiaXQgc2hpZnQgZm9yIEZQU0NSIG1hcHBpbmcgKi8KLSNkZWZpbmUJX0ZQVUVfQ0FVU0VfU0hJRlQJMTIKLSNkZWZpbmUJX0ZQVUVfRU5BQkxFX1NISUZUCTE3Ci0jZGVmaW5lCV9GUFVFX0ZMQUdfU0hJRlQJIDIKLQotLyogYml0IHNoaWZ0ZXJzICovCi0jZGVmaW5lCV9GUFVFX0NBVVNFKF9FWENTKQkoKF9FWENTKSA8PCBfRlBVRV9DQVVTRV9TSElGVCkKLSNkZWZpbmUJX0ZQVUVfRU5BQkxFKF9FWENTKQkoKF9FWENTKSA8PCBfRlBVRV9FTkFCTEVfU0hJRlQpCi0jZGVmaW5lCV9GUFVFX0ZMQUcoX0VYQ1MpCSgoX0VYQ1MpIDw8IF9GUFVFX0ZMQUdfU0hJRlQpCi0KLSNkZWZpbmUJX0dFVF9GUFVFX0NBVVNFKF9GUFVFKQkJKCgoX0ZQVUUpID4+IF9GUFVFX0NBVVNFX1NISUZUKSAmIEZFX0FMTF9FWENFUFQpCi0jZGVmaW5lCV9HRVRfRlBVRV9FTkFCTEUoX0ZQVUUpCSgoKF9GUFVFKSA+PiBfRlBVRV9FTkFCTEVfU0hJRlQpJiBGRV9BTExfRVhDRVBUKQotI2RlZmluZQlfR0VUX0ZQVUVfRkxBRyhfRlBVRSkJCSgoKF9GUFVFKSA+PiBfRlBVRV9GTEFHX1NISUZUKSAmIEZFX0FMTF9FWENFUFQpCi0KLQotLyogRlBTQ1IgcmVnaXN0ZXIgYWNjZXNzb3JzICovCi0jaWZkZWYJX19TSDRfTk9GUFVfXwotI2RlZmluZQlfX3JlYWRfZnBzY3IoX3B0cikKLSNkZWZpbmUJX193cml0ZV9mcHNjcihfdmFsKQotI2Vsc2UKLSNkZWZpbmUJX19yZWFkX2Zwc2NyKF9wdHIpCV9fYXNtIF9fdm9sYXRpbGUoInN0cyBmcHNjciwgJTAiIDogIj1yIiAoKihfcHRyKSkpCi0jZGVmaW5lCV9fd3JpdGVfZnBzY3IoX3ZhbCkJX19hc20gX192b2xhdGlsZSgibGRzICUwLCBmcHNjciIgOiA6ICJyIiAoX3ZhbCkpCi0jZW5kaWYKLQotCi0vKiBmdW5jdGlvbnMgZm9yIGxpYm0gKi8KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlY2xlYXJleGNlcHQoaW50IF9fZXhjZXB0cykKLXsKLQl1aW50MzJfdCBfX2Zwc2NyOwotCi0JX19yZWFkX2Zwc2NyKCZfX2Zwc2NyKTsKLQlfX2Zwc2NyICY9IH5fRlBVRV9GTEFHKF9fZXhjZXB0cyk7Ci0JX193cml0ZV9mcHNjcihfX2Zwc2NyKTsKLQlyZXR1cm4gKDApOwotfQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWdldGV4Y2VwdGZsYWcoZmV4Y2VwdF90ICpfX2ZsYWdwLCBpbnQgX19leGNlcHRzKQotewotCXVpbnQzMl90IF9fZnBzY3I7Ci0KLQlfX3JlYWRfZnBzY3IoJl9fZnBzY3IpOwotCSpfX2ZsYWdwID0gX0dFVF9GUFVFX0ZMQUcoX19mcHNjcikgJiBfX2V4Y2VwdHM7Ci0JcmV0dXJuICgwKTsKLX0KLQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZXNldGV4Y2VwdGZsYWcoY29uc3QgZmV4Y2VwdF90ICpfX2ZsYWdwLCBpbnQgX19leGNlcHRzKQotewotCXVpbnQzMl90IF9fZnBzY3I7Ci0KLQlfX3JlYWRfZnBzY3IoJl9fZnBzY3IpOwotCV9fZnBzY3IgJj0gfl9GUFVFX0ZMQUcoX19leGNlcHRzKTsKLQlfX2Zwc2NyIHw9IH5fRlBVRV9GTEFHKCpfX2ZsYWdwICYgX19leGNlcHRzKTsKLQlfX3dyaXRlX2Zwc2NyKF9fZnBzY3IpOwotCXJldHVybiAoMCk7Ci19Ci0KLQotc3RhdGljIF9faW5saW5lIGludAotZmVyYWlzZWV4Y2VwdChpbnQgX19leGNlcHRzKQotewotCWZleGNlcHRfdCBfX2V4ID0gX19leGNlcHRzOwotCi0JZmVzZXRleGNlcHRmbGFnKCZfX2V4LCBfX2V4Y2VwdHMpOwkvKiBYWFggKi8KLQlyZXR1cm4gKDApOwotfQotCi0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZldGVzdGV4Y2VwdChpbnQgX19leGNlcHRzKQotewotCWZleGNlcHRfdCBfX2V4OwotCi0JZmVnZXRleGNlcHRmbGFnKCZfX2V4LCAgX19leGNlcHRzKTsKLQlyZXR1cm4gKF9fZXgpOwotfQotCi0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlZ2V0cm91bmQodm9pZCkKLXsKLQl1aW50MzJfdCBfX2Zwc2NyID0gMDsKLQotCV9fcmVhZF9mcHNjcigmX19mcHNjcik7Ci0JcmV0dXJuIChfX2Zwc2NyICYgX1JPVU5EX01BU0spOwkKLX0KLQotc3RhdGljIF9faW5saW5lIGludAotZmVzZXRyb3VuZChpbnQgX19yb3VuZCkKLXsKLQl1aW50MzJfdCBfX2Zwc2NyID0gMDsKLQotCWlmIChfX3JvdW5kID09IEZFX1VQV0FSRCB8fCBfX3JvdW5kID09IEZFX0RPV05XQVJEKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAibGlibSBzdXBlcmggOiAiCi0JCQkidXB3YXJkL2Rvd253YXJkIHJvdW5kaW5nIG5vdCBzdXBwb3JldGQuXG4iKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCV9fcmVhZF9mcHNjcigmX19mcHNjcik7Ci0JX19mcHNjciAmPSB+X1JPVU5EX01BU0s7Ci0JX19mcHNjciB8PSAoX19yb3VuZCAmIF9ST1VORF9NQVNLKTsKLQlfX3dyaXRlX2Zwc2NyKF9fZnBzY3IpOwotCXJldHVybiAoMCk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlZ2V0ZW52KGZlbnZfdCAqX19lbnZwKQotewotCV9fcmVhZF9mcHNjcihfX2VudnApOwotCXJldHVybiAoMCk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlaG9sZGV4Y2VwdChmZW52X3QgKl9fZW52cCkKLXsKLQl1aW50MzJfdCBfX2Zwc2NyOwotCi0JX19yZWFkX2Zwc2NyKCZfX2Zwc2NyKTsKLQkqX19lbnZwID0gX19mcHNjcjsKLQlfX2Zwc2NyICY9IH5fRlBVRV9GTEFHKEZFX0FMTF9FWENFUFQpOwotCV9fd3JpdGVfZnBzY3IoX19mcHNjcik7Ci0JcmV0dXJuICgwKTsKLX0KLQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZXNldGVudihjb25zdCBmZW52X3QgKl9fZW52cCkKLXsKLQlfX3dyaXRlX2Zwc2NyKCpfX2VudnApOwotCXJldHVybiAoMCk7Ci19Ci0KLQotc3RhdGljIF9faW5saW5lIGludAotZmV1cGRhdGVlbnYoY29uc3QgZmVudl90ICpfX2VudnApCi17Ci0JdWludDMyX3QgX19mcHNjcjsKLQotCV9fcmVhZF9mcHNjcigmX19mcHNjcik7Ci0JX193cml0ZV9mcHNjcigqX19lbnZwKTsKLQlmZXJhaXNlZXhjZXB0KF9HRVRfRlBVRV9GTEFHKF9fZnBzY3IpKTsKLQlyZXR1cm4gKDApOwotfQotCi0jaWYgX19CU0RfVklTSUJMRQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWVuYWJsZWV4Y2VwdChpbnQgX19tYXNrKQotewotCXVpbnQzMl90IF9fb2xkX2Zwc2NyLCBfX25ld19mcHNjcjsKLQotCV9fcmVhZF9mcHNjcigmX19vbGRfZnBzY3IpOwotCV9fbmV3X2Zwc2NyID0gX19vbGRfZnBzY3IgfCBfRlBVRV9FTkFCTEUoX19tYXNrICYgRkVfQUxMX0VYQ0VQVCk7Ci0JX193cml0ZV9mcHNjcihfX25ld19mcHNjcik7Ci0JcmV0dXJuIChfR0VUX0ZQVUVfRU5BQkxFKF9fb2xkX2Zwc2NyKSk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlZGlzYWJsZWV4Y2VwdChpbnQgX19tYXNrKQotewotCXVpbnQzMl90IF9fb2xkX2Zwc2NyLCBfX25ld19mcHNjcjsKLQotCV9fcmVhZF9mcHNjcigmX19vbGRfZnBzY3IpOwotCV9fbmV3X2Zwc2NyID0gX19vbGRfZnBzY3IgJiB+KF9GUFVFX0VOQUJMRShfX21hc2sgJiBGRV9BTExfRVhDRVBUKSk7Ci0JX193cml0ZV9mcHNjcihfX25ld19mcHNjcik7Ci0JcmV0dXJuIChfR0VUX0ZQVUVfRU5BQkxFKF9fb2xkX2Zwc2NyKSk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlZ2V0ZXhjZXB0KHZvaWQpCi17Ci0JdWludDMyX3QgX19mcHNjcjsKLQotCV9fcmVhZF9mcHNjcigmX19mcHNjcik7Ci0JcmV0dXJuIChfR0VUX0ZQVUVfRU5BQkxFKF9fZnBzY3IpKTsKLX0KLQotI2VuZGlmIC8qIF9fQlNEX1ZJU0lCTEUgKi8KLQotCi0jZW5kaWYgLyogX0ZFTlZfSF8gKi8KLQpkaWZmIC0tZ2l0IGEvbGlibS9zcmMvc19mYWJzbC5jIGIvbGlibS9zcmMvc19mYWJzbC5jCmluZGV4IDIwMGE5YTUuLjI5ODMxZDIgMTAwNjQ0Ci0tLSBhL2xpYm0vc3JjL3NfZmFic2wuYworKysgYi9saWJtL3NyYy9zX2ZhYnNsLmMKQEAgLTEsNSArMSw1IEBACiAvKi0KLSAqIENvcHlyaWdodCAoYykgMjAwMyBEYWctRXJsaW5nIENv72RhbiBTbfhyZ3JhdgorICogQ29weXJpZ2h0IChjKSAyMDAzIERhZy1FcmxpbmcgU23DuHJncmF2CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjUsNyArMjUsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqICRGcmVlQlNEOiBzcmMvbGliL21zdW4vc3JjL3NfZmFic2wuYyx2IDEuMiAyMDAzLzEwLzI1IDE5OjUzOjI4IGRlcyBFeHAgJAorICogJEZyZWVCU0QkCiAgKi8KIAogI2luY2x1ZGUgPG1hdGguaD4KZGlmZiAtLWdpdCBhL2xpYnRocmVhZF9kYi9saWJ0aHJlYWRfZGIuYyBiL2xpYnRocmVhZF9kYi9saWJ0aHJlYWRfZGIuYwppbmRleCA4NmUxY2Y0Li5lNzQ5Mzc3IDEwMDY0NAotLS0gYS9saWJ0aHJlYWRfZGIvbGlidGhyZWFkX2RiLmMKKysrIGIvbGlidGhyZWFkX2RiL2xpYnRocmVhZF9kYi5jCkBAIC05OSw3ICs5OSw3IEBACiAgICAgICAgIGdFdmVudE1zZ0hhbmRsZS50aWQgPSBnRXZlbnRNc2dIYW5kbGUucGlkOwogICAgICAgICByZXR1cm4gMHg0MjsKICAgICB9Ci0jZWxzZQorI2VsaWYgZGVmaW5lZChfX2FybV9fKQogICAgIHBjID0gKHZvaWQgKilwdHJhY2UoUFRSQUNFX1BFRUtVU1IsIGhhbmRsZS0+dGlkLCAodm9pZCAqKTYwIC8qIHIxNS9wYyAqLywgTlVMTCk7CiAKICAgICBpZiAocGMgPT0gYmtwdF9hZGRyKSB7CkBAIC0xMDksNiArMTA5LDE1IEBACiAgICAgICAgIGdFdmVudE1zZ0hhbmRsZS50aWQgPSBnRXZlbnRNc2dIYW5kbGUucGlkOwogICAgICAgICByZXR1cm4gMHg0MjsKICAgICB9CisjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgIHBjID0gKHZvaWQgKilwdHJhY2UoUFRSQUNFX1BFRUtVU1IsIGhhbmRsZS0+dGlkLCAodm9pZCAqKSg2NCo0KSAvKiBwYyAqLywgTlVMTCk7CisgICAgaWYgKHBjID09IGJrcHRfYWRkcikgeworICAgICAgICAvLyBUaGUgaG9vayBmdW5jdGlvbiB0YWtlcyB0aGUgaWQgb2YgdGhlIG5ldyB0aHJlYWQgYXMgaXQncyBmaXJzdCBwYXJhbSwKKyAgICAgICAgLy8gc28gZ3JhYiBpdCBmcm9tIGEwCisgICAgICAgIGdFdmVudE1zZ0hhbmRsZS5waWQgPSBwdHJhY2UoUFRSQUNFX1BFRUtVU1IsIGhhbmRsZS0+dGlkLCAodm9pZCAqKSg0KjQpIC8qIGEwICovLCBOVUxMKTsKKyAgICAgICAgZ0V2ZW50TXNnSGFuZGxlLnRpZCA9IGdFdmVudE1zZ0hhbmRsZS5waWQ7CisgICAgICAgIHJldHVybiAweDQyOworICAgIH0KICNlbmRpZgogICAgIHJldHVybiAwOwogfQo=