ZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZmZvcm1maWxsX2VtYmVkZGVydGVzdC5jcHAgYi9mcGRmc2RrL2ZwZGZmb3JtZmlsbF9lbWJlZGRlcnRlc3QuY3BwCmluZGV4IDI3Yjg4OTAuLmExNDI1MTUgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvZnBkZmZvcm1maWxsX2VtYmVkZGVydGVzdC5jcHAKKysrIGIvZnBkZnNkay9mcGRmZm9ybWZpbGxfZW1iZWRkZXJ0ZXN0LmNwcApAQCAtMTM0LDQgKzEzNCwyNyBAQAogICBFWFBFQ1RfU1RSRVEoTCJkb25lIiwgYWxlcnRzWzBdLm1lc3NhZ2UuY19zdHIoKSk7CiB9CiAKK1RFU1RfRihGUERGRm9ybUZpbGxFbWJlZGRlcnRlc3QsIEJVR182MzQzOTQpIHsKKyAgLy8gQ2FuY2VsIHRpbWVyIGluc2lkZSB0aW1lciBjYWxsYmFjay4KKyAgRW1iZWRkZXJUZXN0VGltZXJIYW5kbGluZ0RlbGVnYXRlIGRlbGVnYXRlOworICBTZXREZWxlZ2F0ZSgmZGVsZWdhdGUpOworCisgIEVYUEVDVF9UUlVFKE9wZW5Eb2N1bWVudCgiYnVnXzYzNDM5NC5wZGYiKSk7CisgIEZQREZfUEFHRSBwYWdlID0gTG9hZFBhZ2UoMCk7CisgIEVYUEVDVF9UUlVFKHBhZ2UpOworICBEb09wZW5BY3Rpb25zKCk7CisKKyAgLy8gVGltZXJzIGZpcmUgYXQgbW9zdCBvbmNlIHBlciBBZHZhbmNlVGltZSgpLCBhbGxvdyBpbnRlcnZhbHMKKyAgLy8gdG8gZmlyZSBzZXZlcmFsIHRpbWVzIGlmIHBvc3NpYmxlLgorICBkZWxlZ2F0ZS5BZHZhbmNlVGltZSgxMDAwKTsKKyAgZGVsZWdhdGUuQWR2YW5jZVRpbWUoMTAwMCk7CisgIGRlbGVnYXRlLkFkdmFuY2VUaW1lKDEwMDApOworICBkZWxlZ2F0ZS5BZHZhbmNlVGltZSgxMDAwKTsKKyAgZGVsZWdhdGUuQWR2YW5jZVRpbWUoMTAwMCk7CisgIFVubG9hZFBhZ2UocGFnZSk7CisKKyAgY29uc3QgYXV0byYgYWxlcnRzID0gZGVsZWdhdGUuR2V0QWxlcnRzKCk7CisgIEVYUEVDVF9FUSgyVSwgYWxlcnRzLnNpemUoKSk7Cit9CisKICNlbmRpZiAgLy8gUERGX0VOQUJMRV9WOApkaWZmIC0tZ2l0IGEvZnBkZnNkay9qYXZhc2NyaXB0L0pTX09iamVjdC5jcHAgYi9mcGRmc2RrL2phdmFzY3JpcHQvSlNfT2JqZWN0LmNwcAppbmRleCBiMGEzMDdiLi45ZWMzMTYzIDEwMDY0NAotLS0gYS9mcGRmc2RrL2phdmFzY3JpcHQvSlNfT2JqZWN0LmNwcAorKysgYi9mcGRmc2RrL2phdmFzY3JpcHQvSlNfT2JqZWN0LmNwcApAQCAtMTE1LDE2ICsxMTUsMjUgQEAKIAogLy8gc3RhdGljCiB2b2lkIENKU19UaW1lcjo6VGltZXJQcm9jKGludCBpZEV2ZW50KSB7Ci0gIGNvbnN0IGF1dG8gaXQgPSBHZXRHbG9iYWxUaW1lck1hcCgpLT5maW5kKGlkRXZlbnQpOwotICBpZiAoaXQgIT0gR2V0R2xvYmFsVGltZXJNYXAoKS0+ZW5kKCkpIHsKLSAgICBDSlNfVGltZXIqIHBUaW1lciA9IGl0LT5zZWNvbmQ7Ci0gICAgaWYgKCFwVGltZXItPm1fYlByb2Nlc3NpbmcpIHsKLSAgICAgIENGWF9BdXRvUmVzdG9yZXI8Ym9vbD4gc2NvcGVkX3Byb2Nlc3NpbmcoJnBUaW1lci0+bV9iUHJvY2Vzc2luZyk7Ci0gICAgICBwVGltZXItPm1fYlByb2Nlc3NpbmcgPSB0cnVlOwotICAgICAgaWYgKHBUaW1lci0+bV9wRW1iZWRPYmopCi0gICAgICAgIHBUaW1lci0+bV9wRW1iZWRPYmotPlRpbWVyUHJvYyhwVGltZXIpOwotICAgIH0KLSAgfQorICBhdXRvIGl0ID0gR2V0R2xvYmFsVGltZXJNYXAoKS0+ZmluZChpZEV2ZW50KTsKKyAgaWYgKGl0ID09IEdldEdsb2JhbFRpbWVyTWFwKCktPmVuZCgpKQorICAgIHJldHVybjsKKworICBDSlNfVGltZXIqIHBUaW1lciA9IGl0LT5zZWNvbmQ7CisgIGlmIChwVGltZXItPm1fYlByb2Nlc3NpbmcpCisgICAgcmV0dXJuOworCisgIHBUaW1lci0+bV9iUHJvY2Vzc2luZyA9IHRydWU7CisgIGlmIChwVGltZXItPm1fcEVtYmVkT2JqKQorICAgIHBUaW1lci0+bV9wRW1iZWRPYmotPlRpbWVyUHJvYyhwVGltZXIpOworCisgIC8vIFRpbWVyIHByb2MgbWF5IGhhdmUgZGVzdHJveWVkIHRpbWVyLCBmaW5kIGl0IGFnYWluLgorICBpdCA9IEdldEdsb2JhbFRpbWVyTWFwKCktPmZpbmQoaWRFdmVudCk7CisgIGlmIChpdCA9PSBHZXRHbG9iYWxUaW1lck1hcCgpLT5lbmQoKSkKKyAgICByZXR1cm47CisKKyAgcFRpbWVyID0gaXQtPnNlY29uZDsKKyAgcFRpbWVyLT5tX2JQcm9jZXNzaW5nID0gZmFsc2U7CiB9CiAKIC8vIHN0YXRpYwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzYzNDM5NC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182MzQzOTQuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4YjQ2MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182MzQzOTQuaW4KQEAgLTAsMCArMSw4NSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA2IDAgUgorICAvTmFtZXMgPDwvSmF2YVNjcmlwdCAxMyAwIFI+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFs0IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQorICAvUmVzb3VyY2VzICA8PD4+Cis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvRFIgPDwKKyAgICAvRm9udCA8PC9IZWx2IDcgMCBSPj4KKyAgPj4KKyAgL0RBICgvSGVsdiAwIFRmIDAgZykKKyAgL0ZpZWxkcyBbNSAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKyAgL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIC9NYXRyaXggWzEgMCAwIDEgMCAwXQorICAvQkJveCBbMCAwIDc1LjkwNyAyOC40NzJdCisgIC9SZXNvdXJjZXMgIDw8CisgICAgL0ZvbnQgPDwvRlhGMCA3IDAgUj4+CisgID4+Cis+Pgorc3RyZWFtCitxCitRCisKKworZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvQWN0aW9uCisgIC9TIC9KYXZhU2NyaXB0CisgIC9KUyA1MCAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEzIDB9fSA8PAorICAvTmFtZXMgWyhzdGFydERlbGF5KSAxMSAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA1MCAwfX0gPDwKKz4+CitzdHJlYW0KK3ZhciB0aW1lciA9IGFwcC5zZXRUaW1lT3V0KCJmaXJlVGltZU91dCgpIiwgMzAwMCk7Cit2YXIgaW50ZXJ2YWwgPSBhcHAuc2V0SW50ZXJ2YWwoImZpcmVJbnRlcnZhbCgpIiwgMTAwMCk7CitmdW5jdGlvbiBmaXJlVGltZU91dCgpIHsKKyAgYXBwLmFsZXJ0KCJnb29kYnllIHdvcmxkIik7CisgIGFwcC5jbGVhckludGVydmFsKGludGVydmFsKTsKK30KK2Z1bmN0aW9uIGZpcmVJbnRlcnZhbCgpIHsKKyAgYXBwLmFsZXJ0KCJoZWxsbyB3b3JsZCIpOworICBhcHAuY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7Cit9CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKz4+Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzYzNDM5NC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjM0Mzk0LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTdhOWYyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzYzNDM5NC5wZGYKQEAgLTAsMCArMSwxMzkgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDYgMCBSCisgIC9OYW1lcyA8PC9KYXZhU2NyaXB0IDEzIDAgUj4+Cis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbNCAwIFJdCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQorICAvUmVzb3VyY2VzICA8PD4+Cis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9EUiA8PAorICAgIC9Gb250IDw8L0hlbHYgNyAwIFI+PgorICA+PgorICAvREEgKC9IZWx2IDAgVGYgMCBnKQorICAvRmllbGRzIFs1IDAgUl0KKz4+CitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCisgIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCis+PgorZW5kb2JqCis4IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIC9NYXRyaXggWzEgMCAwIDEgMCAwXQorICAvQkJveCBbMCAwIDc1LjkwNyAyOC40NzJdCisgIC9SZXNvdXJjZXMgIDw8CisgICAgL0ZvbnQgPDwvRlhGMCA3IDAgUj4+CisgID4+Cis+Pgorc3RyZWFtCitxCitRCisKKworZW5kc3RyZWFtCitlbmRvYmoKKzExIDAgb2JqIDw8CisgIC9UeXBlIC9BY3Rpb24KKyAgL1MgL0phdmFTY3JpcHQKKyAgL0pTIDUwIDAgUgorPj4KK2VuZG9iagorMTMgMCBvYmogPDwKKyAgL05hbWVzIFsoc3RhcnREZWxheSkgMTEgMCBSXQorPj4KK2VuZG9iagorNTAgMCBvYmogPDwKKz4+CitzdHJlYW0KK3ZhciB0aW1lciA9IGFwcC5zZXRUaW1lT3V0KCJmaXJlVGltZU91dCgpIiwgMzAwMCk7Cit2YXIgaW50ZXJ2YWwgPSBhcHAuc2V0SW50ZXJ2YWwoImZpcmVJbnRlcnZhbCgpIiwgMTAwMCk7CitmdW5jdGlvbiBmaXJlVGltZU91dCgpIHsKKyAgYXBwLmFsZXJ0KCJnb29kYnllIHdvcmxkIik7CisgIGFwcC5jbGVhckludGVydmFsKGludGVydmFsKTsKK30KK2Z1bmN0aW9uIGZpcmVJbnRlcnZhbCgpIHsKKyAgYXBwLmFsZXJ0KCJoZWxsbyB3b3JsZCIpOworICBhcHAuY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7Cit9CitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA1MQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDExOCAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDE4MSAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDMwMiAwMDAwMCBuIAorMDAwMDAwMDQwNCAwMDAwMCBuIAorMDAwMDAwMDUwOSAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDcwMSAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDc2OSAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDgyMiAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorPj4KK3N0YXJ0eHJlZgorMTE0MworJSVFT0YK