ZGlmZiAtLWdpdCBhL2NwdS9pMzg2L3NjNTIwL3NjNTIwX3RpbWVyLmMgYi9jcHUvaTM4Ni9zYzUyMC9zYzUyMF90aW1lci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1Nzg1MTEKLS0tIC9kZXYvbnVsbAorKysgYi9jcHUvaTM4Ni9zYzUyMC9zYzUyMF90aW1lci5jCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDIKKyAqIERhbmllbCBFbmdzdHL2bSwgT21pY3JvbiBDZXRpIEFCIDxkYW5pZWxAb21pY3Jvbi5zZT4uCisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworLyogc3R1ZmYgc3BlY2lmaWMgZm9yIHRoZSBzYzUyMCwgYnV0IGluZGVwZW5kZW50IG9mIGltcGxlbWVudGF0aW9uICovCisKKyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxhc20vaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8YXNtL2ljL3NjNTIwLmg+CisKK3ZvaWQgcmVzZXRfdGltZXIodm9pZCkKK3sKKwl3cml0ZV9tbWNyX3dvcmQoU0M1MjBfR1BUTVIwQ05ULCAwKTsKKwl3cml0ZV9tbWNyX3dvcmQoU0M1MjBfR1BUTVIwQ1RMLCAweDYwMDEpOworCit9CisKK3Vsb25nIGdldF90aW1lcih1bG9uZyBiYXNlKQoreworCS8qIGZpeG1lOiAzMCBvciAzMyAqLworCXJldHVybglyZWFkX21tY3Jfd29yZChTQzUyMF9HUFRNUjBDTlQpIC8gMzM7Cit9CisKK3ZvaWQgc2V0X3RpbWVyKHVsb25nIHQpCit7CisJLyogRml4TWU6IHVzZSB0d28gY2FzY2FkZSBjb3VwbGVkIHRpbWVycyAqLworCXdyaXRlX21tY3Jfd29yZChTQzUyMF9HUFRNUjBDVEwsIDB4NDAwMSk7CisJd3JpdGVfbW1jcl93b3JkKFNDNTIwX0dQVE1SMENOVCwgdCozMyk7CisJd3JpdGVfbW1jcl93b3JkKFNDNTIwX0dQVE1SMENUTCwgMHg2MDAxKTsKK30KKworCit2b2lkIHVkZWxheSh1bnNpZ25lZCBsb25nIHVzZWMpCit7CisJaW50IG09MDsKKwlsb25nIHU7CisKKwlyZWFkX21tY3Jfd29yZChTQzUyMF9TV1RNUk1JTExJKTsKKwlyZWFkX21tY3Jfd29yZChTQzUyMF9TV1RNUk1JQ1JPKTsKKworI2lmIDAKKwkvKiBkbyBub3QgZW5hYmxlIHRoaXMgbGluZSwgdWRlbGF5IGlzIHVzZWQgaW4gdGhlIHNlcmlhbCBkcml2ZXIgLT4gcmVjdXJzaW9uICovCisJcHJpbnRmKCJ1ZGVsYXk6ICVsZCBtLnUgJWQuJWQgIHRtLnR1ICVkLiVkXG4iLCB1c2VjLCBtLCB1LCB0bSwgdHUpOworI2VuZGlmCisJd2hpbGUgKDEpIHsKKworCQltICs9IHJlYWRfbW1jcl93b3JkKFNDNTIwX1NXVE1STUlMTEkpOworCQl1ID0gcmVhZF9tbWNyX3dvcmQoU0M1MjBfU1dUTVJNSUNSTykgKyAobSAqIDEwMDApOworCisJCWlmICh1c2VjIDw9IHUpIHsKKwkJCWJyZWFrOworCQl9CisJfQorfQo=