Lyogdmk6IHNldCBzdz00IHRzPTQ6ICovCi8qCiAqIHNldHNpZC5jIC0tIGV4ZWN1dGUgYSBjb21tYW5kIGluIGEgbmV3IHNlc3Npb24KICogUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KICogSW4gdGhlIHB1YmxpYyBkb21haW4uCiAqCiAqIDE5OTktMDItMjIgQXJrYWRpdXN6IE1ptmtpZXdpY3ogPG1pc2lla0BwbGQuT1JHLlBMPgogKiAtIGFkZGVkIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIDIwMDEtMDEtMTggSm9obiBGcmVtbGluIDx2aWlAcGVuZ3VpbnBvd2VyZWQuY29tPgogKiAtIGZvcmsgaW4gY2FzZSB3ZSBhcmUgcHJvY2VzcyBncm91cCBsZWFkZXIKICoKICogMjAwNC0xMS0xMiBQYXVsIEZveAogKiAtIGJ1c3lib3hlZAogKi8KCiNpbmNsdWRlICJidXN5Ym94LmgiCgppbnQgc2V0c2lkX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7CmludCBzZXRzaWRfbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CglpZiAoYXJnYyA8IDIpCgkJYmJfc2hvd191c2FnZSgpOwoKCWlmIChnZXRwZ3JwKCkgPT0gZ2V0cGlkKCkpIHsKCQlzd2l0Y2ggKGZvcmsoKSkgewoJCWNhc2UgLTE6CgkJCWJiX3BlcnJvcl9tc2dfYW5kX2RpZSgiZm9yayIpOwoJCWNhc2UgMDoKCQkJYnJlYWs7CgkJZGVmYXVsdDoJLyogcGFyZW50ICovCgkJCWV4aXQoMCk7CgkJfQoJfQoJLyogY2hpbGQgKi8KCglzZXRzaWQoKTsgIC8qIG5vIGVycm9yIHBvc3NpYmxlICovCgoJQkJfRVhFQ1ZQKGFyZ3ZbMV0sIGFyZ3YgKyAxKTsKCgliYl9wZXJyb3JfbXNnX2FuZF9kaWUoIiVzIiwgYXJndlsxXSk7Cn0K