ZGlmZiAtLWdpdCBhL2xpYi9Lb3JBUC9EZWYucG0gYi9saWIvS29yQVAvRGVmLnBtCmluZGV4IGI3MWRjZTguLmEyMDRjNWMgMTAwNjQ0Ci0tLSBhL2xpYi9Lb3JBUC9EZWYucG0KKysrIGIvbGliL0tvckFQL0RlZi5wbQpAQCAtMSw2ICsxLDcgQEAKIHBhY2thZ2UgS29yQVA6OkRlZjsKIHVzZSBLb3JBUDo6VmlydHVhbENvcnB1czo6R3JvdXA7CiB1c2UgSU86OlVuY29tcHJlc3M6OkJ1bnppcDIgcXcoJEJ1bnppcDJFcnJvcik7Cit1c2UgTW9qbzo6VXRpbCBxdyFkZWNvZGUhOwogdXNlIElPOjpGaWxlOwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKQEAgLTc5LDYgKzgwLDcgQEAKICAgd2hpbGUgKCFlb2YoJGZoKSkgewogICAgIG15ICRsaW5lID0gPCRmaD47CiAgICAgY2hvbXAgJGxpbmU7CisgICAgJGxpbmUgPSBkZWNvZGUgJ2xhdGluLTEnLCAkbGluZTsKIAogICAgICMgU2tpcCBlbXB0eSBsaW5lcwogICAgIGlmICghJGxpbmUgfHwgbGVuZ3RoKCRsaW5lKSA9PSAwIHx8ICRsaW5lID1+IC9eW1xzXHRcbl0qJC8pIHsKQEAgLTIzNCw3ICsyMzYsNyBAQAogCiAgICAgZWxzaWYgKCRrZXkgZXEgJ2NvJykgewogICAgICAgIyBDb3VudHJ5LAl6LkIuIERFIGbDvHIgVGV4dCBpbiBEZXV0c2NobGFuZCBlcnNjaGllbmVuCi0gICAgICB3YXJuICRrZXkgLiAnIGlzIG5vdCB5ZXQgc3VwcG9ydGVkJzsKKyAgICAgICR7JHZjfS0+dW5pb25fZmllbGQocHViUGxhY2VLZXkgPT4gJHZhbHVlKTsKICAgICB9CiAKICAgICBlbHNpZiAoJGtleSBlcSAndGwnKSB7CmRpZmYgLS1naXQgYS9saWIvS29yQVAvRGVmTGlzdC5wbSBiL2xpYi9Lb3JBUC9EZWZMaXN0LnBtCmluZGV4IDA3NmI5N2QuLjlmNTg4NTYgMTAwNjQ0Ci0tLSBhL2xpYi9Lb3JBUC9EZWZMaXN0LnBtCisrKyBiL2xpYi9Lb3JBUC9EZWZMaXN0LnBtCkBAIC0zLDYgKzMsNyBAQAogdXNlIEtvckFQOjpWaXJ0dWFsQ29ycHVzOjpHcm91cDsKIHVzZSBLb3JBUDo6VmlydHVhbENvcnB1czo6RG9jOwogdXNlIEZpbGU6OlNwZWM6OkZ1bmN0aW9ucyBxdyFjYXRmaWxlITsKK3VzZSBNb2pvOjpVdGlsIHF3J2VuY29kZSc7CiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzOwogCkBAIC00OCw3ICs0OSw2IEBACiAKICAgICBlbHNpZiAoJGxpbmUgPX4gL14oW15cdF0rPylcdCsoLio/KVx0KC4rPylcLz8kLykgewogICAgICAgJHNlbGYtPnJlZ2V4X3RvX3ZjKCQxLCQyLCQzKTsKLSAgICAgICMgcHJpbnQgJDEsJzogLycuJDMuJy8nLCJcbiI7CiAgICAgfQogCiAgICAgZWxzaWYgKCRsaW5lID1+IC9eXHMqJC8pIHsKQEAgLTc5LDcgKzc5LDggQEAKICAgIyBPdXRwdXQKICAgbXkgJG91dCA9IGNhdGZpbGUoJHNlbGYtPntvdXRwdXR9LCAkZmlsZSAuICcuanNvbicpOwogICBpZiAob3BlbihteSAka29yYWwsICc+JyAuICRvdXQpKSB7Ci0gICAgcHJpbnQgJGtvcmFsICRkZWYtPnRvX3N0cmluZzsKKyAgICBiaW5tb2RlKCRrb3JhbCk7CisgICAgcHJpbnQgJGtvcmFsIGVuY29kZSgndXRmLTgnLCAkZGVmLT50b19zdHJpbmcpOwogICAgIGNsb3NlKCRrb3JhbCk7CiAgICAgcmV0dXJuOwogICB9OwpAQCAtOTgsNyArOTksOCBAQAogICAjIE91dHB1dAogICBteSAkb3V0ID0gY2F0ZmlsZSgkc2VsZi0+e291dHB1dH0sICRuYW1lIC4gJy5qc29uJyk7CiAgIGlmIChvcGVuKG15ICRrb3JhbCwgJz4nIC4gJG91dCkpIHsKLSAgICBwcmludCAka29yYWwgJHZjLT50b19zdHJpbmc7CisgICAgYmlubW9kZSgka29yYWwpOworICAgIHByaW50ICRrb3JhbCBlbmNvZGUoJ3V0Zi04JywgJHZjLT50b19zdHJpbmcpOwogICAgIGNsb3NlKCRrb3JhbCk7CiAgICAgcmV0dXJuOwogICB9OwpkaWZmIC0tZ2l0IGEvbGliL0tvckFQL1ZpcnR1YWxDb3JwdXMvR3JvdXAucG0gYi9saWIvS29yQVAvVmlydHVhbENvcnB1cy9Hcm91cC5wbQppbmRleCBiY2RjOTVjLi44ZTc3ZmZmIDEwMDY0NAotLS0gYS9saWIvS29yQVAvVmlydHVhbENvcnB1cy9Hcm91cC5wbQorKysgYi9saWIvS29yQVAvVmlydHVhbENvcnB1cy9Hcm91cC5wbQpAQCAtNzYsNiArNzYsMTAgQEAKIHN1YiB0b19rb3JhbCB7CiAgIG15ICRzZWxmID0gc2hpZnQ7CiAKKyAgdW5sZXNzICgkc2VsZi0+e29wc30pIHsKKyAgICByZXR1cm47CisgIH07CisKICAgIyBTaW5nbGUgb2JqZWN0CiAgIGlmIChAeyRzZWxmLT57b3BzfX0gPT0gMSkgewogICAgIHJldHVybiAkc2VsZi0+e29wc30tPlswXS0+bmFtZSgkc2VsZi0+bmFtZSktPmZsYXR0ZW47CmRpZmYgLS1naXQgYS9zY3JpcHQvY29zbWFzdmMya29yYWxxdWVyeSBiL3NjcmlwdC9jb3NtYXN2YzJrb3JhbHF1ZXJ5CmluZGV4IDRjM2U1YjAuLmUzZWRkNWYgMTAwNzU1Ci0tLSBhL3NjcmlwdC9jb3NtYXN2YzJrb3JhbHF1ZXJ5CisrKyBiL3NjcmlwdC9jb3NtYXN2YzJrb3JhbHF1ZXJ5CkBAIC02LDYgKzYsOCBAQAogdXNlIGxpYiAnbGliJzsKIHVzZSBHZXRvcHQ6Okxvbmc7CiAKK2Jpbm1vZGUoU1RERVJSLCAnOmVuY29kaW5nKFVURi04KScpOworCiAjIDIwMjAtMDUtMjAKICMgICBQcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBDMiBkZWYtZmlsZXMuCiAjIDIwMjAtMDUtMjkKZGlmZiAtLWdpdCBhL3QvZGF0YS9jb3JwLWEuZGVmIGIvdC9kYXRhL2NvcnAtYS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNjNzFkOQotLS0gL2Rldi9udWxsCisrKyBiL3QvZGF0YS9jb3JwLWEuZGVmCkBAIC0wLDAgKzEsMyBAQAorPG5hbWU+S29ycG9yYSBhdXMg1nN0ZXJyZWljaDwvbmFtZT4KKzxjbz5BPC9jbz4KKzxlbmQ+PC9lbmQ+CmRpZmYgLS1naXQgYS90L2xpc3QydmMtZGVmLnQgYi90L2xpc3QydmMtZGVmLnQKaW5kZXggOTViMjEyZS4uMTdiZWNlMCAxMDA2NDQKLS0tIGEvdC9saXN0MnZjLWRlZi50CisrKyBiL3QvbGlzdDJ2Yy1kZWYudApAQCAtNSw5ICs1LDExIEBACiB1c2UgRmlsZTo6QmFzZW5hbWU7CiB1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwogdXNlIERhdGE6OkR1bXBlcjsKK3VzZSB1dGY4OwogCiB1c2UgVGVzdDo6T3V0cHV0OwogdXNlIE1vam86OkpTT04gJ2RlY29kZV9qc29uJzsKK3VzZSBNb2pvOjpVdGlsIHF3J2RlY29kZSBlbmNvZGUnOwogCiBteSAkc2NyaXB0ID0gY2F0ZmlsZShkaXJuYW1lKF9fRklMRV9fKSwgJy4uJywgJ3NjcmlwdCcsICdjb3NtYXN2YzJrb3JhbHF1ZXJ5Jyk7CiBteSAkbGlzdDEgPSBjYXRmaWxlKGRpcm5hbWUoX19GSUxFX18pLCAnZGF0YScsICdsaXN0Mi5kZWYnKTsKQEAgLTg4LDUgKzkwLDE0IEBACiBpcygkanNvbi0+e3ZhbHVlfS0+WzFdLCAnQTk3L0FQUi8wMDAwMicsICdWYWx1ZScpOwogaXMoJGpzb24tPnt2YWx1ZX0tPlstMV0sICdBOTcvQVBSLzAxMDAxJywgJ1ZhbHVlJyk7CiAKK215ICRjb3JwYSA9IGNhdGZpbGUoZGlybmFtZShfX0ZJTEVfXyksICdkYXRhJywgJ2NvcnAtYS5kZWYnKTsKKyRqc29uID0gZGVjb2RlX2pzb24oZW5jb2RlKCd1dGYtOCcsam9pbignJywgYCRzY3JpcHQgZGVmICRjb3JwYWApKSk7CisKK2lzKCRqc29uLT57J2NvbGxlY3Rpb24nfS0+eydAdHlwZSd9LCAna29yYWw6ZG9jJywgJ3R5cGUnKTsKK2lzKCRqc29uLT57J2NvbGxlY3Rpb24nfS0+eydrZXknfSwgJ3B1YlBsYWNlS2V5JywgJ3R5cGUnKTsKK2lzKCRqc29uLT57J2NvbGxlY3Rpb24nfS0+eyd2YWx1ZSd9LCAnQScsICd0eXBlJyk7CitpcygkanNvbi0+eydjb2xsZWN0aW9uJ30tPnsnY29tbWVudCd9LCAnbmFtZToiS29ycG9yYSBhdXMgw5ZzdGVycmVpY2giJywgJ3R5cGUnKTsKKworCiBkb25lX3Rlc3Rpbmc7CiBfX0VORF9fCg==