ZGlmZiAtLWdpdCBhL2xpYi9Lb3JBUC9Eb2N1bWVudC5wbSBiL2xpYi9Lb3JBUC9Eb2N1bWVudC5wbQppbmRleCBiOWJkZmUzLi40YWY2YzFhIDEwMDY0NAotLS0gYS9saWIvS29yQVAvRG9jdW1lbnQucG0KKysrIGIvbGliL0tvckFQL0RvY3VtZW50LnBtCkBAIC0xNSw5ICsxNSw4IEBACiBvdXIgQEFUVFIgPSBxdy90ZXh0X3NpZ2xlCiAJICAgICAgIGRvY19zaWdsZQogCSAgICAgICBjb3JwdXNfc2lnbGUKLQotCSAgICAgICBwdWJfZGF0ZQogCSAgICAgICB0aXRsZQorCSAgICAgICBwdWJfZGF0ZQogCSAgICAgICBzdWJfdGl0bGUKIAkgICAgICAgcHViX3BsYWNlCiAJICAgICAgIGF1dGhvci87CkBAIC00Nyw2ICs0Niw3IEBACiAJCQljb3JwdXNfc3ViX3RpdGxlCiAJCQljb3JwdXNfZWRpdG9yCiAJCQkvOworIyBTZXBhcmF0ZTogdGV4dF9jbGFzcywga2V5d29yZHMKIAogIyBSZW1vdmVkOiAgICBjb2xsX3RpdGxlLCBjb2xsX3N1Yl90aXRsZSwgY29sbF9hdXRob3IsIGNvbGxfZWRpdG9yCiAjIEludHJvZHVjZWQ6IGRvY190aXRsZSwgZG9jX3N1Yl90aXRsZSwgY29ycHVzX2VkaXRvciwgZG9jX2VkaXRvciwgY29ycHVzX2F1dGhvciwgZG9jX2F1dGhvcgpAQCAtMTM2LDYgKzEzNiw3IEBACiAgIG15IEBwYXRoID0gZ3JlcCB7ICRfIH0gc3BsaXRkaXIoJHNlbGYtPnBhdGgpOwogICBteSBAaGVhZGVyOwogCisgICMgUGFyc2UgdGhlIGNvcnB1cyBmaWxlLCB0aGUgZG9jIGZpbGUsIGFuZCB0aGUgdGV4dCBmaWxlIGZvciBtZXRhIGluZm9ybWF0aW9uCiAgIGZvcmVhY2ggKDAuLjIpIHsKICAgICB1bnNoaWZ0IEBoZWFkZXIsICcvJyAuIGNhdGZpbGUoQHBhdGgsICdoZWFkZXIueG1sJyk7CiAgICAgcG9wIEBwYXRoOwpAQCAtMTc2LDYgKzE3NywxMCBAQAogICByZXR1cm4gKCRzZWxmLT57dG9waWNzfSAvLyBbXSk7CiB9OwogCitzdWIgdGV4dF9jbGFzc19zdHJpbmcgeworICByZXR1cm4gam9pbiAnICcsIEB7c2hpZnQtPnRleHRfY2xhc3N9OworfQorCiBzdWIga2V5d29yZHMgewogICBteSAkc2VsZiA9IHNoaWZ0OwogICBpZiAoJF9bMF0pIHsKQEAgLTE4NCw2ICsxODksMjUgQEAKICAgcmV0dXJuICgkc2VsZi0+e2tleXdvcmRzfSAvLyBbXSk7CiB9OwogCitzdWIga2V5d29yZHNfc3RyaW5nIHsKKyAgcmV0dXJuIGpvaW4gJyAnLCBAe3NoaWZ0LT5rZXl3b3Jkc307Cit9CisKK3N1YiBfcmVtb3ZlX3ByZWZpeCB7CisgIHJldHVybiAkX1swXTsKKworICAjIFRoaXMgbWF5IHJlbmRlciBzb21lIHRpdGxlcyB3cm9uZywgZS5nLiAnVkRJIG5hY2hyaWNodGVuIDIwMTQnIC4uLgorICBteSAkdGl0bGUgPSBzaGlmdDsKKyAgbXkgJHByZWZpeCA9IHNoaWZ0OworICAkcHJlZml4ID1+IHRyIV8hLyE7CisgIGlmIChpbmRleCgkdGl0bGUsICRwcmVmaXgpID09IDApIHsKKyAgICAkdGl0bGUgPSBzdWJzdHIoJHRpdGxlLCBsZW5ndGgoJHByZWZpeCkpOworICAgICR0aXRsZSA9fiBzL15ccysvLzsKKyAgICAkdGl0bGUgPX4gcy9ccyskLy87CisgIH07CisgIHJldHVybiAkdGl0bGU7Cit9OworCiAKIHN1YiBfcGFyc2VfbWV0YSB7CiAgIG15ICRzZWxmID0gc2hpZnQ7CkBAIC0yMTEsMTkgKzIzNSwxOSBAQAogICAgICRlZGl0b3IgICAgPSAkZWRpdG9yICAgID8gJGVkaXRvci0+YWxsX3RleHQgICAgOiB1bmRlZjsKIAogICAgIGlmICgkdHlwZSBlcSAndGV4dCcpIHsKLSAgICAgICRzZWxmLT50aXRsZSgkdGl0bGUpICAgICAgICAgaWYgJHRpdGxlOworICAgICAgJHNlbGYtPnRpdGxlKF9yZW1vdmVfcHJlZml4KCR0aXRsZSwgJHNlbGYtPnRleHRfc2lnbGUpKSBpZiAkdGl0bGU7CiAgICAgICAkc2VsZi0+c3ViX3RpdGxlKCRzdWJfdGl0bGUpIGlmICRzdWJfdGl0bGU7CiAgICAgICAkc2VsZi0+ZWRpdG9yKCRlZGl0b3IpICAgICAgIGlmICRlZGl0b3I7CiAgICAgICAkc2VsZi0+YXV0aG9yKCRhdXRob3IpICAgICAgIGlmICRhdXRob3I7CiAgICAgfQogICAgIGVsc2lmICgkdHlwZSBlcSAnZG9jJykgewotICAgICAgJHNlbGYtPmRvY190aXRsZSgkdGl0bGUpICAgICAgICAgaWYgJHRpdGxlOworICAgICAgJHNlbGYtPmRvY190aXRsZShfcmVtb3ZlX3ByZWZpeCgkdGl0bGUsICRzZWxmLT5kb2Nfc2lnbGUpKSBpZiAkdGl0bGU7CiAgICAgICAkc2VsZi0+ZG9jX3N1Yl90aXRsZSgkc3ViX3RpdGxlKSBpZiAkc3ViX3RpdGxlOwogICAgICAgJHNlbGYtPmRvY19hdXRob3IoJGF1dGhvcikgICAgICAgaWYgJGF1dGhvcjsKICAgICAgICRzZWxmLT5kb2NfZWRpdG9yKCRlZGl0b3IpICAgICAgIGlmICRlZGl0b3I7CiAgICAgfQogICAgIGVsc2lmICgkdHlwZSBlcSAnY29ycHVzJykgewotICAgICAgJHNlbGYtPmNvcnB1c190aXRsZSgkdGl0bGUpICAgICAgICAgaWYgJHRpdGxlOworICAgICAgJHNlbGYtPmNvcnB1c190aXRsZShfcmVtb3ZlX3ByZWZpeCgkdGl0bGUsICRzZWxmLT5jb3JwdXNfc2lnbGUpKSBpZiAkdGl0bGU7CiAgICAgICAkc2VsZi0+Y29ycHVzX3N1Yl90aXRsZSgkc3ViX3RpdGxlKSBpZiAkc3ViX3RpdGxlOwogICAgICAgJHNlbGYtPmNvcnB1c19hdXRob3IoJGF1dGhvcikgICAgICAgaWYgJGF1dGhvcjsKICAgICAgICRzZWxmLT5jb3JwdXNfZWRpdG9yKCRlZGl0b3IpICAgICAgIGlmICRlZGl0b3I7CkBAIC0yMzIsMTUgKzI1NiwxOSBAQAogCiAgICMgTm90IGluIGFuYWx5dGljCiAgIGlmICgkdHlwZSBlcSAnY29ycHVzJykgewotICAgIGlmIChteSAkdGl0bGUgPSAkZG9tLT5hdCgnZmlsZURlc2MgPiB0aXRsZVN0bXQgPiBjXC50aXRsZScpKSB7Ci0gICAgICAkc2VsZi0+Y29ycHVzX3RpdGxlKCR0aXRsZS0+YWxsX3RleHQpIGlmICR0aXRsZS0+YWxsX3RleHQ7CisgICAgdW5sZXNzICgkc2VsZi0+Y29ycHVzX3RpdGxlKSB7CisgICAgICBpZiAobXkgJHRpdGxlID0gJGRvbS0+YXQoJ2ZpbGVEZXNjID4gdGl0bGVTdG10ID4gY1wudGl0bGUnKSkgeworCSRzZWxmLT5jb3JwdXNfdGl0bGUoX3JlbW92ZV9wcmVmaXgoJHRpdGxlLT5hbGxfdGV4dCwgJHNlbGYtPmNvcnB1c19zaWdsZSkpIGlmICR0aXRsZS0+YWxsX3RleHQ7CisgICAgICB9OwogICAgIH07CiAgIH0KIAogICAjIGRvYyB0aXRsZQogICBlbHNpZiAoJHR5cGUgZXEgJ2RvYycpIHsKLSAgICBpZiAobXkgJHRpdGxlID0gJGRvbS0+YXQoJ2ZpbGVEZXNjID4gdGl0bGVTdG10ID4gZFwudGl0bGUnKSkgewotICAgICAgJHNlbGYtPmRvY190aXRsZSgkdGl0bGUtPmFsbF90ZXh0KSBpZiAkdGl0bGUtPmFsbF90ZXh0OworICAgIHVubGVzcyAoJHNlbGYtPmRvY190aXRsZSkgeworICAgICAgaWYgKG15ICR0aXRsZSA9ICRkb20tPmF0KCdmaWxlRGVzYyA+IHRpdGxlU3RtdCA+IGRcLnRpdGxlJykpIHsKKwkkc2VsZi0+ZG9jX3RpdGxlKF9yZW1vdmVfcHJlZml4KCR0aXRsZS0+YWxsX3RleHQsICRzZWxmLT5kb2Nfc2lnbGUpKSBpZiAkdGl0bGUtPmFsbF90ZXh0OworICAgICAgfTsKICAgICB9OwogICB9CiAKQEAgLTI0OCw3ICsyNzYsNyBAQAogICBlbHNpZiAoJHR5cGUgZXEgJ3RleHQnKSB7CiAgICAgdW5sZXNzICgkc2VsZi0+dGl0bGUpIHsKICAgICAgIGlmIChteSAkdGl0bGUgPSAkZG9tLT5hdCgnZmlsZURlc2MgPiB0aXRsZVN0bXQgPiB0XC50aXRsZScpKSB7Ci0JJHNlbGYtPnRpdGxlKCR0aXRsZS0+YWxsX3RleHQpIGlmICR0aXRsZS0+YWxsX3RleHQ7CisJJHNlbGYtPnRpdGxlKF9yZW1vdmVfcHJlZml4KCR0aXRsZS0+YWxsX3RleHQsICRzZWxmLT50ZXh0X3NpZ2xlKSkgaWYgJHRpdGxlLT5hbGxfdGV4dDsKICAgICAgIH07CiAgICAgfTsKICAgfTsKQEAgLTI2MywzOSArMjkxLDM5IEBACiAgICAgJHNlbGYtPnB1Ymxpc2hlcigkcHVibGlzaGVyLT5hbGxfdGV4dCkgaWYgJHB1Ymxpc2hlci0+YWxsX3RleHQ7CiAgIH07CiAKLSAgbXkgJG1vbm8gPSAkZG9tLT5hdCgnbW9ub2dyJyk7Ci0gIGlmICgkbW9ubykgewotCi0gICAgIyBHZXQgdGl0bGUsIHN1YnRpdGxlLCBhdXRob3IsIGVkaXRvcgotICAgIG15ICR0aXRsZSAgICAgPSAkbW9uby0+YXQoJ2hcLnRpdGxlW3R5cGU9bWFpbl0nKTsKLSAgICBteSAkc3ViX3RpdGxlID0gJG1vbm8tPmF0KCdoXC50aXRsZVt0eXBlPXN1Yl0nKTsKLSAgICBteSAkYXV0aG9yICAgID0gJG1vbm8tPmF0KCdoXC5hdXRob3InKTsKLSAgICBteSAkZWRpdG9yICAgID0gJG1vbm8tPmF0KCdlZGl0b3InKTsKLQotICAgICR0aXRsZSAgICAgPSAkdGl0bGUgICAgID8gJHRpdGxlLT5hbGxfdGV4dCAgICAgOiB1bmRlZjsKLSAgICAkc3ViX3RpdGxlID0gJHN1Yl90aXRsZSA/ICRzdWJfdGl0bGUtPmFsbF90ZXh0IDogdW5kZWY7Ci0gICAgJGF1dGhvciAgICA9ICRhdXRob3IgICAgPyAkYXV0aG9yLT5hbGxfdGV4dCAgICA6IHVuZGVmOwotICAgICRlZGl0b3IgICAgPSAkZWRpdG9yICAgID8gJGVkaXRvci0+YWxsX3RleHQgICAgOiB1bmRlZjsKLQotICAgIGlmICgkdHlwZSBlcSAndGV4dCcpIHsKLSAgICAgICRzZWxmLT50aXRsZSgkdGl0bGUpICAgICAgICAgaWYgJHRpdGxlOwotICAgICAgJHNlbGYtPnN1Yl90aXRsZSgkc3ViX3RpdGxlKSBpZiAkc3ViX3RpdGxlOwotICAgICAgJHNlbGYtPmVkaXRvcigkZWRpdG9yKSAgICAgICBpZiAkZWRpdG9yOwotICAgICAgJHNlbGYtPmF1dGhvcigkYXV0aG9yKSAgICAgICBpZiAkYXV0aG9yOwotICAgIH0KLSAgICBlbHNpZiAoJHR5cGUgZXEgJ2RvYycpIHsKLSAgICAgICRzZWxmLT5kb2NfdGl0bGUoJHRpdGxlKSAgICAgICAgIGlmICR0aXRsZTsKLSAgICAgICRzZWxmLT5kb2Nfc3ViX3RpdGxlKCRzdWJfdGl0bGUpIGlmICRzdWJfdGl0bGU7Ci0gICAgICAkc2VsZi0+ZG9jX2F1dGhvcigkYXV0aG9yKSAgICAgICBpZiAkYXV0aG9yOwotICAgICAgJHNlbGYtPmRvY19lZGl0b3IoJGVkaXRvcikgICAgICAgaWYgJGVkaXRvcjsKLSAgICB9Ci0gICAgZWxzaWYgKCR0eXBlIGVxICdjb3JwdXMnKSB7Ci0gICAgICAkc2VsZi0+Y29ycHVzX3RpdGxlKCR0aXRsZSkgICAgICAgICBpZiAkdGl0bGU7Ci0gICAgICAkc2VsZi0+Y29ycHVzX3N1Yl90aXRsZSgkc3ViX3RpdGxlKSBpZiAkc3ViX3RpdGxlOwotICAgICAgJHNlbGYtPmNvcnB1c19hdXRob3IoJGF1dGhvcikgICAgICAgaWYgJGF1dGhvcjsKLSAgICAgICRzZWxmLT5jb3JwdXNfZWRpdG9yKCRlZGl0b3IpICAgICAgIGlmICRlZGl0b3I7Ci0gICAgfTsKLSAgfTsKKyMgIG15ICRtb25vID0gJGRvbS0+YXQoJ21vbm9ncicpOworIyAgaWYgKCRtb25vKSB7CisjCisjICAgICMgR2V0IHRpdGxlLCBzdWJ0aXRsZSwgYXV0aG9yLCBlZGl0b3IKKyMgICAgbXkgJHRpdGxlICAgICA9ICRtb25vLT5hdCgnaFwudGl0bGVbdHlwZT1tYWluXScpOworIyAgICBteSAkc3ViX3RpdGxlID0gJG1vbm8tPmF0KCdoXC50aXRsZVt0eXBlPXN1Yl0nKTsKKyMgICAgbXkgJGF1dGhvciAgICA9ICRtb25vLT5hdCgnaFwuYXV0aG9yJyk7CisjICAgIG15ICRlZGl0b3IgICAgPSAkbW9uby0+YXQoJ2VkaXRvcicpOworIworIyAgICAkdGl0bGUgICAgID0gJHRpdGxlICAgICA/ICR0aXRsZS0+YWxsX3RleHQgICAgIDogdW5kZWY7CisjICAgICRzdWJfdGl0bGUgPSAkc3ViX3RpdGxlID8gJHN1Yl90aXRsZS0+YWxsX3RleHQgOiB1bmRlZjsKKyMgICAgJGF1dGhvciAgICA9ICRhdXRob3IgICAgPyAkYXV0aG9yLT5hbGxfdGV4dCAgICA6IHVuZGVmOworIyAgICAkZWRpdG9yICAgID0gJGVkaXRvciAgICA/ICRlZGl0b3ItPmFsbF90ZXh0ICAgIDogdW5kZWY7CisjCisjICAgIGlmICgkdHlwZSBlcSAndGV4dCcpIHsKKyMgICAgICAkc2VsZi0+dGl0bGUoJHRpdGxlKSAgICAgICAgIGlmICR0aXRsZSAmJiAhJHNlbGYtPnRpdGxlOworIyAgICAgICRzZWxmLT5zdWJfdGl0bGUoJHN1Yl90aXRsZSkgaWYgJHN1Yl90aXRsZSAmJiAhJHNlbGYtPnN1Yl90aXRsZTsKKyMgICAgICAkc2VsZi0+ZWRpdG9yKCRlZGl0b3IpICAgICAgIGlmICRlZGl0b3IgJiYgISRzZWxmLT5lZGl0b3I7CisjICAgICAgJHNlbGYtPmF1dGhvcigkYXV0aG9yKSAgICAgICBpZiAkYXV0aG9yICYmICEkc2VsZi0+YXV0aG9yOworIyAgICB9CisjICAgIGVsc2lmICgkdHlwZSBlcSAnZG9jJykgeworIyAgICAgICRzZWxmLT5kb2NfdGl0bGUoJHRpdGxlKSAgICAgICAgIGlmICR0aXRsZSAmJiAhJHNlbGYtPmRvY190aXRsZTsKKyMgICAgICAkc2VsZi0+ZG9jX3N1Yl90aXRsZSgkc3ViX3RpdGxlKSBpZiAkc3ViX3RpdGxlICYmICEkc2VsZi0+ZG9jX3N1Yl90aXRsZTsKKyMgICAgICAkc2VsZi0+ZG9jX2F1dGhvcigkYXV0aG9yKSAgICAgICBpZiAkYXV0aG9yICYmICEkc2VsZi0+ZG9jX2F1dGhvcjsKKyMgICAgICAkc2VsZi0+ZG9jX2VkaXRvcigkZWRpdG9yKSAgICAgICBpZiAkZWRpdG9yICYmICEkc2VsZi0+ZG9jX2VkaXRvcjsKKyMgICAgfQorIyAgICBlbHNpZiAoJHR5cGUgZXEgJ2NvcnB1cycpIHsKKyMgICAgICAkc2VsZi0+Y29ycHVzX3RpdGxlKCR0aXRsZSkgICAgICAgICBpZiAkdGl0bGUgJiYgISRzZWxmLT5jb3JwdXNfdGl0bGU7CisjICAgICAgJHNlbGYtPmNvcnB1c19zdWJfdGl0bGUoJHN1Yl90aXRsZSkgaWYgJHN1Yl90aXRsZSAmJiAhJHNlbGYtPmNvcnB1c19zdWJfdGl0bGU7CisjICAgICAgJHNlbGYtPmNvcnB1c19hdXRob3IoJGF1dGhvcikgICAgICAgaWYgJGF1dGhvciAmJiAhJHNlbGYtPmNvcnB1c19hdXRob3I7CisjICAgICAgJHNlbGYtPmNvcnB1c19lZGl0b3IoJGVkaXRvcikgICAgICAgaWYgJGVkaXRvciAmJiAhJHNlbGYtPmNvcnB1c19lZGl0b3I7CisjICAgIH07CisjICB9OwogCiAgICMgR2V0IHRleHQgdHlwZQogICBteSAkdGV4dF9kZXNjID0gJGRvbS0+YXQoJ3RleHREZXNjJyk7CkBAIC00MjUsNiArNDUzLDcgQEAKIH07CiAKIAorCiBzdWIgdG9fc3RyaW5nIHsKICAgbXkgJHNlbGYgPSBzaGlmdDsKIApkaWZmIC0tZ2l0IGEvbGliL0tvckFQL0luZGV4L01hdGUvRGVwZW5kZW5jeS5wbSBiL2xpYi9Lb3JBUC9JbmRleC9NYXRlL0RlcGVuZGVuY3kucG0KaW5kZXggOGRjNzAxMC4uNGI5NzI2MSAxMDA2NDQKLS0tIGEvbGliL0tvckFQL0luZGV4L01hdGUvRGVwZW5kZW5jeS5wbQorKysgYi9saWIvS29yQVAvSW5kZXgvTWF0ZS9EZXBlbmRlbmN5LnBtCkBAIC04LDIxICs4LDI4IEBACiAgICMgVE9ETzogQ3JlYXRlIFhJUCB0cmVlIGhlcmUgLSBmb3IgaW5kaXJlY3QgZGVwZW5kZW5jeQogICAjID4+OnhpcC9kOlNVQko8aT41NjY8aT43ODkKIAorICAjIFJlbGF0aW9uIGRhdGEKICAgJCRzZWxmLT5hZGRfdG9rZW5kYXRhKAogICAgIGZvdW5kcnkgPT4gJ21hdGUnLAogICAgIGxheWVyID0+ICdkZXBlbmRlbmN5JywKICAgICBjYiA9PiBzdWIgewogICAgICAgbXkgKCRzdHJlYW0sICR0b2tlbiwgJHRva2VucykgPSBAXzsKKworICAgICAgIyBHZXQgTXVsdGlUZXJtVG9rZW4gZnJvbSBzdHJlYW0KICAgICAgIG15ICRtdHQgPSAkc3RyZWFtLT5wb3MoJHRva2VuLT5wb3MpOwogCisgICAgICAjIFNlcmlhbGl6ZWQgaW5mb3JtYXRpb24gZnJvbSB0b2tlbgogICAgICAgbXkgJGNvbnRlbnQgPSAkdG9rZW4tPmhhc2g7CiAKKyAgICAgICMgR2V0IHJlbGF0aW9uIGluZm9ybWF0aW9uCiAgICAgICBteSAkcmVsID0gJGNvbnRlbnQtPntyZWx9OwogICAgICAgJHJlbCA9IFskcmVsXSB1bmxlc3MgcmVmICRyZWwgZXEgJ0FSUkFZJzsKIAorICAgICAgIyBJdGVyYXRlIG92ZXIgcmVsYXRpb25zCiAgICAgICBmb3JlYWNoIChAJHJlbCkgewogCW15ICRsYWJlbCA9ICRfLT57LWxhYmVsfTsKIAorCSMgUmVsYXRpb24gdHlwZQogCWlmICgkXy0+ey10eXBlfSAmJiAkXy0+ey10eXBlfSBlcSAndW5hcnknKSB7CiAJICBuZXh0IGlmICRfLT57LWxhYmVsfSBlcSAnLS0nOwogCSAgJG10dC0+YWRkKApkaWZmIC0tZ2l0IGEvbGliL0tvckFQL0luZGV4L1hJUC9EZXBlbmRlbmN5LnBtIGIvbGliL0tvckFQL0luZGV4L1hJUC9EZXBlbmRlbmN5LnBtCmluZGV4IGNlOWM0MGIuLjFiNTNiMjQgMTAwNjQ0Ci0tLSBhL2xpYi9Lb3JBUC9JbmRleC9YSVAvRGVwZW5kZW5jeS5wbQorKysgYi9saWIvS29yQVAvSW5kZXgvWElQL0RlcGVuZGVuY3kucG0KQEAgLTE0LDggKzE0LDYgQEAKICAgICAgIG15ICgkc3RyZWFtLCAkdG9rZW4sICR0b2tlbnMpID0gQF87CiAgICAgICBteSAkbXR0ID0gJHN0cmVhbS0+cG9zKCR0b2tlbi0+cG9zKTsKIAotd2FybiAkdG9rZW5zOwotCiAgICAgICBteSAkY29udGVudCA9ICR0b2tlbi0+aGFzaDsKIAogICAgICAgbXkgJHJlbCA9ICRjb250ZW50LT57cmVsfTsKZGlmZiAtLWdpdCBhL2xpYi9Lb3JBUC9Ub2tlbml6ZXIucG0gYi9saWIvS29yQVAvVG9rZW5pemVyLnBtCmluZGV4IGE3NTI0MmMuLmE0YTk3MjEgMTAwNjQ0Ci0tLSBhL2xpYi9Lb3JBUC9Ub2tlbml6ZXIucG0KKysrIGIvbGliL0tvckFQL1Rva2VuaXplci5wbQpAQCAtNCw2ICs0LDcgQEAKIHVzZSBYTUw6OkZhc3Q7CiB1c2UgVHJ5OjpUaW55OwogdXNlIENhcnAgcXcvY3JvYWsvOwordXNlIFNjYWxhcjo6VXRpbCBxdy93ZWFrZW4vOwogdXNlIEtvckFQOjpUb2tlbml6ZXI6OlJhbmdlOwogdXNlIEtvckFQOjpUb2tlbml6ZXI6Ok1hdGNoOwogdXNlIEtvckFQOjpUb2tlbml6ZXI6OlNwYW5zOwpAQCAtMzM1LDcgKzMzNiw4IEBACiAKICAgaWYgKCRjYikgewogICAgIGZvcmVhY2ggKEAkdG9rZW5hcnJheSkgewotICAgICAgJGNiLT4oJHNlbGYtPnN0cmVhbSwgJF8pIGlmIGRlZmluZWQgJF8tPnBvczsKKyAgICAgICMgd2Vha2VuICR0b2tlbnM7CisgICAgICAkY2ItPigkc2VsZi0+c3RyZWFtLCAkXywgJHRva2VucykgaWYgZGVmaW5lZCAkXy0+cG9zOwogICAgICAgIywgJHRva2Vucyk7CiAgICAgfTsKICAgICByZXR1cm4gMTsKZGlmZiAtLWdpdCBhL3QvVkRJL0pBTi8wMDAwMS9kYXRhLnhtbCBiL3QvVkRJL0pBTi8wMDAwMS9kYXRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMWZkNzZmCi0tLSAvZGV2L251bGwKKysrIGIvdC9WREkvSkFOLzAwMDAxL2RhdGEueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzw/eG1sLW1vZGVsIGhyZWY9InRleHQucm5nIiB0eXBlPSJhcHBsaWNhdGlvbi94bWwiIHNjaGVtYXR5cGVucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPz4KKworPHJhd190ZXh0IGRvY2lkPSJWRElfSkFOLjAwMDAxIiB4bWxucz0iaHR0cDovL2lkcy1tYW5uaGVpbS5kZS9ucy9Lb3JBUCI+CisgIDxtZXRhZGF0YSBmaWxlPSJtZXRhZGF0YS54bWwiIC8+CisgIDx0ZXh0Pmh1aTwvdGV4dD4KKzwvcmF3X3RleHQ+CmRpZmYgLS1naXQgYS90L1ZESS9KQU4vMDAwMDEvaGVhZGVyLnhtbCBiL3QvVkRJL0pBTi8wMDAwMS9oZWFkZXIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MTk0MDcKLS0tIC9kZXYvbnVsbAorKysgYi90L1ZESS9KQU4vMDAwMDEvaGVhZGVyLnhtbApAQCAtMCwwICsxLDY5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJpc28tODg1OS0xIj8+Cis8P3htbC1tb2RlbCBocmVmPSJoZWFkZXIucm5nIiB0eXBlPSJhcHBsaWNhdGlvbi94bWwiIHNjaGVtYXR5cGVucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiPz4KKzwhRE9DVFlQRSBpZHNDb3JwdXMgUFVCTElDICItLy9JRFMvL0RURCBJRFMtWENFUyAxLjAvL0VOIiAiaHR0cDovL2NvcnBvcmEuaWRzLW1hbm5oZWltLmRlL2lkc3hjZXMxL0RURC9pZHMueGNlc2RvYy5kdGQiPgorPGlkc2hlYWRlciB0eXBlPSJ0ZXh0IiB2ZXJzaW9uPSIxLjEiPgorICA8ZmlsZURlc2M+CisgICAgPHRpdGxlU3RtdD4KKyAgICAgIDx0ZXh0c2lnbGU+VkRJMTQvSkFOLjAwMDAxPC90ZXh0c2lnbGU+CisgICAgICA8dC50aXRsZSBhc3NlbWJsYWdlPSJleHRlcm5hbCI+VkRJMTQvSkFOLjAwMDAxIFZESSBuYWNocmljaHRlbiwgMTcuMDEuMjAxNCwgUy4gMTA7IDEwLSBaeiBtaXQgWmFobDwvdC50aXRsZT4KKyAgICA8L3RpdGxlU3RtdD4KKyAgICA8cHVibGljYXRpb25TdG10PgorICAgICAgPGRpc3RyaWJ1dG9yPjwvZGlzdHJpYnV0b3I+CisgICAgICA8cHViQWRkcmVzcz48L3B1YkFkZHJlc3M+CisgICAgICA8YXZhaWxhYmlsaXR5PjwvYXZhaWxhYmlsaXR5PgorICAgICAgPHB1YkRhdGU+PC9wdWJEYXRlPgorICAgIDwvcHVibGljYXRpb25TdG10PgorICAgIDxzb3VyY2VEZXNjPgorICAgICAgPGJpYmxTdHJ1Y3Q+CisJPGFuYWx5dGljPgorCSAgPGgudGl0bGUgdHlwZT0ibWFpbiI+MTAtIFp6IG1pdCBaYWhsPC9oLnRpdGxlPgorCSAgPGguYXV0aG9yPldpbmRo9nZlbCwgS2Vyc3RpbjwvaC5hdXRob3I+CisJICA8aW1wcmludD4KKwkgIDwvaW1wcmludD4KKwkgIDxiaWJsU2NvcGUgdHlwZT0icHAiPlMuIDEwPC9iaWJsU2NvcGU+CisJICA8YmlibFNjb3BlIHR5cGU9InN1cHBsIj48L2JpYmxTY29wZT4KKwkgIDxiaWJsU2NvcGUgdHlwZT0ic3VwcGx0aXRsZSI+PC9iaWJsU2NvcGU+CisJICA8YmlibE5vdGUgbj0iMSI+SWQ6IDU3ODQ1MzwvYmlibE5vdGU+CisJPC9hbmFseXRpYz4KKwk8bW9ub2dyPgorCSAgPGgudGl0bGU+PC9oLnRpdGxlPgorCSAgPGltcHJpbnQ+CisJICAgIDxwdWJEYXRlIHR5cGU9InllYXIiPjIwMTQ8L3B1YkRhdGU+CisJICAgIDxwdWJEYXRlIHR5cGU9Im1vbnRoIj4wMTwvcHViRGF0ZT4KKwkgICAgPHB1YkRhdGUgdHlwZT0iZGF5Ij4xNzwvcHViRGF0ZT4KKwkgIDwvaW1wcmludD4KKwkgIDxiaWJsU2NvcGUgdHlwZT0iaXNzdWUiPjAzPC9iaWJsU2NvcGU+CisJICA8YmlibFNjb3BlIHR5cGU9Imlzc3VlcGxhY2UiPjwvYmlibFNjb3BlPgorCTwvbW9ub2dyPgorICAgICAgPC9iaWJsU3RydWN0PgorICAgICAgPHJlZmVyZW5jZSB0eXBlPSJjb21wbGV0ZSIgYXNzZW1ibGFnZT0icmVndWxhciI+VkRJMTQvSkFOLjAwMDAxIFZESSBuYWNocmljaHRlbiwgMTcuMDEuMjAxNCwgUy4gMTA7IDEwLSBaeiBtaXQgWmFobCBbQXVzZvxocmxpY2hlIFppdGllcnVuZyBuaWNodCB2ZXJm/GdiYXJdPC9yZWZlcmVuY2U+CisgICAgICA8cmVmZXJlbmNlIHR5cGU9InNob3J0IiBhc3NlbWJsYWdlPSJyZWd1bGFyIj5WREkxNC9KQU4uMDAwMDEgVkRJIG5hY2hyLiwgMTcuMDEuMjAxNCwgUy4gMTA8L3JlZmVyZW5jZT4KKyAgICA8L3NvdXJjZURlc2M+CisgIDwvZmlsZURlc2M+CisgIDxlbmNvZGluZ0Rlc2M+CisgICAgPHNhbXBsaW5nRGVjbD4KKyAgICA8L3NhbXBsaW5nRGVjbD4KKyAgICA8dGFnc0RlY2w+CisgICAgICA8dGFnVXNhZ2UgZ2k9InAiIG9jY3Vycz0iMiI+PC90YWdVc2FnZT4KKyAgICAgIDx0YWdVc2FnZSBnaT0icSIgb2NjdXJzPSIxIj48L3RhZ1VzYWdlPgorICAgICAgPHRhZ1VzYWdlIGdpPSJzIiBvY2N1cnM9IjMiPjwvdGFnVXNhZ2U+CisgICAgPC90YWdzRGVjbD4KKyAgPC9lbmNvZGluZ0Rlc2M+CisgIDxwcm9maWxlRGVzYz4KKyAgICA8Y3JlYXRpb24+CisgICAgICA8Y3JlYXRkYXRlPjIwMTQuMDEuMTc8L2NyZWF0ZGF0ZT4KKyAgICA8L2NyZWF0aW9uPgorICAgIDx0ZXh0Q2xhc3M+CisgICAgICA8Y2F0UmVmIHRhcmdldD0idG9waWMuRnJlaXplaXQtVW50ZXJoYWx0dW5nLlJlaXNlbiIgbj0iMC4zOCIgc2NoZW1lPSJ0b3BpYyIgLz4KKyAgICAgIDxjYXRSZWYgdGFyZ2V0PSJ0b3BpYy5Qb2xpdGlrLkF1c2xhbmQiIG49IjAuMTQiIHNjaGVtZT0idG9waWMiIC8+CisgICAgICA8aC5rZXl3b3Jkcz4KKwk8a2V5dGVybT48L2tleXRlcm0+CisgICAgICA8L2gua2V5d29yZHM+CisgICAgPC90ZXh0Q2xhc3M+CisgICAgPHRleHRkZXNjPgorICAgICAgPHRleHR0eXBlYXJ0PjwvdGV4dHR5cGVhcnQ+CisgICAgICA8dGV4dGRvbWFpbj48L3RleHRkb21haW4+CisgICAgICA8Y29sdW1uPjwvY29sdW1uPgorICAgIDwvdGV4dGRlc2M+CisgIDwvcHJvZmlsZURlc2M+Cis8L2lkc2hlYWRlcj4KZGlmZiAtLWdpdCBhL3QvVkRJL0pBTi8wMDAwMS90ZXh0LnR4dCBiL3QvVkRJL0pBTi8wMDAwMS90ZXh0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2I0NjUyCi0tLSAvZGV2L251bGwKKysrIGIvdC9WREkvSkFOLzAwMDAxL3RleHQudHh0CkBAIC0wLDAgKzEgQEAKK2h1aQpkaWZmIC0tZ2l0IGEvdC9WREkvSkFOL2hlYWRlci54bWwgYi90L1ZESS9KQU4vaGVhZGVyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzFkN2NiCi0tLSAvZGV2L251bGwKKysrIGIvdC9WREkvSkFOL2hlYWRlci54bWwKQEAgLTAsMCArMSwyNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PgorPD94bWwtbW9kZWwgaHJlZj0iaGVhZGVyLnJuZyIgdHlwZT0iYXBwbGljYXRpb24veG1sIiBzY2hlbWF0eXBlbnM9Imh0dHA6Ly9yZWxheG5nLm9yZy9ucy9zdHJ1Y3R1cmUvMS4wIj8+Cis8IURPQ1RZUEUgaWRzQ29ycHVzIFBVQkxJQyAiLS8vSURTLy9EVEQgSURTLVhDRVMgMS4wLy9FTiIgImh0dHA6Ly9jb3Jwb3JhLmlkcy1tYW5uaGVpbS5kZS9pZHN4Y2VzMS9EVEQvaWRzLnhjZXNkb2MuZHRkIj4KKzxpZHNoZWFkZXIgdHlwZT0iZG9jdW1lbnQiIHZlcnNpb249IjEuMSI+CisgIDxmaWxlRGVzYz4KKyAgICA8dGl0bGVTdG10PgorICAgICAgPGRva3VtZW50c2lnbGU+VkRJMTQvSkFOPC9kb2t1bWVudHNpZ2xlPgorICAgICAgPGQudGl0bGU+VkRJIG5hY2hyaWNodGVuLCBKYW51YXIgMjAxNDwvZC50aXRsZT4KKyAgICA8L3RpdGxlU3RtdD4KKyAgICA8cHVibGljYXRpb25TdG10PgorICAgICAgPGRpc3RyaWJ1dG9yPjwvZGlzdHJpYnV0b3I+CisgICAgICA8cHViQWRkcmVzcz48L3B1YkFkZHJlc3M+CisgICAgICA8YXZhaWxhYmlsaXR5PjwvYXZhaWxhYmlsaXR5PgorICAgICAgPHB1YkRhdGU+PC9wdWJEYXRlPgorICAgIDwvcHVibGljYXRpb25TdG10PgorICAgIDxzb3VyY2VEZXNjPgorICAgICAgPGJpYmxTdHJ1Y3Q+CisJPG1vbm9ncj4KKwkgIDxoLnRpdGxlPjwvaC50aXRsZT4KKwkgIDxpbXByaW50PgorCSAgPC9pbXByaW50PgorCTwvbW9ub2dyPgorICAgICAgPC9iaWJsU3RydWN0PgorICAgIDwvc291cmNlRGVzYz4KKyAgPC9maWxlRGVzYz4KKzwvaWRzaGVhZGVyPgpkaWZmIC0tZ2l0IGEvdC9WREkvaGVhZGVyLnhtbCBiL3QvVkRJL2hlYWRlci54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhhMjliNAotLS0gL2Rldi9udWxsCisrKyBiL3QvVkRJL2hlYWRlci54bWwKQEAgLTAsMCArMSwyNzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4KKzw/eG1sLW1vZGVsIGhyZWY9ImhlYWRlci5ybmciIHR5cGU9ImFwcGxpY2F0aW9uL3htbCIgc2NoZW1hdHlwZW5zPSJodHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCI/PgorPCFET0NUWVBFIGlkc0NvcnB1cyBQVUJMSUMgIi0vL0lEUy8vRFREIElEUy1YQ0VTIDEuMC8vRU4iICJodHRwOi8vY29ycG9yYS5pZHMtbWFubmhlaW0uZGUvaWRzeGNlczEvRFREL2lkcy54Y2VzZG9jLmR0ZCI+Cis8aWRzaGVhZGVyIHR5cGU9ImNvcnB1cyIgcGF0dGVybj0iWnRnL1pzY2hyIiB2ZXJzaW9uPSIxLjEiPgorICA8ZmlsZURlc2M+CisgICAgPHRpdGxlU3RtdD4KKyAgICAgIDxrb3JwdXNzaWdsZT5WREkxNDwva29ycHVzc2lnbGU+CisgICAgICA8Yy50aXRsZT5WREkgbmFjaHJpY2h0ZW4gMjAxNDwvYy50aXRsZT4KKyAgICA8L3RpdGxlU3RtdD4KKyAgICA8cHVibGljYXRpb25TdG10PgorICAgICAgPGRpc3RyaWJ1dG9yPgkJSW5zdGl0dXQgZvxyIERldXRzY2hlIFNwcmFjaGUJCTwvZGlzdHJpYnV0b3I+CisgICAgICA8cHViQWRkcmVzcz4JCVBvc3RmYWNoIDEwIDE2IDIxLCBELTY4MDE2IE1hbm5oZWltCTwvcHViQWRkcmVzcz4KKyAgICAgIDx0ZWxlcGhvbmU+CQkrNDkgKDApNjIxIDE1ODEgMAkJCTwvdGVsZXBob25lPgorICAgICAgPGF2YWlsYWJpbGl0eT48L2F2YWlsYWJpbGl0eT4KKyAgICAgIDxwdWJEYXRlPjwvcHViRGF0ZT4KKyAgICA8L3B1YmxpY2F0aW9uU3RtdD4KKyAgICA8c291cmNlRGVzYz4KKyAgICAgIDxiaWJsRnVsbD4KKwk8dGl0bGVTdG10PgorCSAgPHgudGl0bGU+PC94LnRpdGxlPgorCTwvdGl0bGVTdG10PgorCTxlZGl0aW9uU3RtdD4KKwk8L2VkaXRpb25TdG10PgorCTxwdWJsaWNhdGlvblN0bXQ+CisJICA8ZGlzdHJpYnV0b3I+PC9kaXN0cmlidXRvcj4KKwkgIDxwdWJBZGRyZXNzPjwvcHViQWRkcmVzcz4KKwkgIDxhdmFpbGFiaWxpdHk+PC9hdmFpbGFiaWxpdHk+CisJICA8cHViRGF0ZT48L3B1YkRhdGU+CisJPC9wdWJsaWNhdGlvblN0bXQ+CisgICAgICA8L2JpYmxGdWxsPgorICAgICAgPGJpYmxTdHJ1Y3Q+CisJPG1vbm9ncj4KKwkgIDxoLnRpdGxlIHR5cGU9Im1haW4iPlZESSBuYWNocmljaHRlbjwvaC50aXRsZT4KKwkgIDxoLnRpdGxlIHR5cGU9InN1YiI+PC9oLnRpdGxlPgorCSAgPGgudGl0bGUgdHlwZT0iYWJiciIgbGV2ZWw9Im0iPlZESSBuYWNoci48L2gudGl0bGU+CisJICA8ZWRpdG9yPlZlcmVpbiBEZXV0c2NoZXIgSW5nZW5pZXVyZTwvZWRpdG9yPgorCSAgPGltcHJpbnQ+CisJICAgIDxwdWJsaXNoZXI+VkRJIFZlcmxhZyBHbWJIPC9wdWJsaXNoZXI+CisJICAgIDxwdWJQbGFjZT5E/HNzZWxkb3JmPC9wdWJQbGFjZT4KKwkgIDwvaW1wcmludD4KKwkgIDxiaWJsU2NvcGUgdHlwZT0idm9sIj48L2JpYmxTY29wZT4KKwk8L21vbm9ncj4KKyAgICAgIDwvYmlibFN0cnVjdD4KKyAgICAgIDxyZWZlcmVuY2UgdHlwZT0ic3VwZXIiIGFzc2VtYmxhZ2U9InJlZ3VsYXIiPlZESTE0IFZESSBuYWNocmljaHRlbiwgW1dvY2hlbnplaXR1bmddOyBIcnNnLjogVmVyZWluIERldXRzY2hlciBJbmdlbmlldXJlLCBE/HNzZWxkb3JmOiBWREkgVmVybGFnIEdtYkg7IDIwMTQ8L3JlZmVyZW5jZT4KKyAgICA8L3NvdXJjZURlc2M+CisgIDwvZmlsZURlc2M+CisgIDxlbmNvZGluZ0Rlc2M+CisgICAgPHByb2plY3REZXNjPgorICAgIDwvcHJvamVjdERlc2M+CisgICAgPHNhbXBsaW5nRGVjbD4KKyAgICA8L3NhbXBsaW5nRGVjbD4KKyAgICA8ZWRpdG9yaWFsRGVjbD4KKyAgICAgIDx0cmFuc2R1Y3Rpb24+CisJVHJhRHVDRVMgLSBLb3JwdXMtVHJhbnNmb3JtYXRpb25zY29tcGlsZXIsIFZlcnNpb24gMy42LjQsCisJRXJpYyBTZXViZXJ0LCBJRFMgTWFubmhlaW0sIDcuIEFwcmlsIDIwMTQKKwlPcHRpb25lbiBiZWkgZGVyIEtvbnZlcnRpZXJ1bmc6CisJLSBEdWJsZXR0ZW4tTW9kdXM6CisJRW50ZmVybnVuZyBhbGxlciBhbHMgRHVibGV0dGVuIGtsYXNzaWZpemllcnRlbiBUZXh0ZS4KKwktIEluZGV4aWVydW5nc21vZHVzIGb8ciBDT1NNQVMgSUk6CisJRXJ6ZXVndW5nIHZvbiBFcnNhdHpyZWZlcmVuemVuIGb8ciBhdXNm/GhybGljaGUgWml0aWVydW5nLgorCUVudGZlcm51bmcgYWxsZXIgRGVrbGFyYXRpb25lbiBm/HIgRHVibGV0dGVuLgorCUVudGZlcm51bmcgdm9uIFRleHRlbiBtaXQgU3BlcnJ2ZXJtZXJrZW4uCisJRW50ZmVybnVuZyB2b24gVGV4dGVuIG1pdCBtaW5pbWFsZW0gSW5oYWx0LgorICAgICAgPC90cmFuc2R1Y3Rpb24+CisgICAgICA8cGFnaW5hdGlvbiB0eXBlPSJubyI+PC9wYWdpbmF0aW9uPgorICAgIDwvZWRpdG9yaWFsRGVjbD4KKyAgICA8Y2xhc3NEZWNsPgorICAgICAgPHRheG9ub215IGlkPSJ0b3BpYyI+CisJPGguYmlibD5UaGVtZW50YXhvbm9taWUgKHNpZWhlIGh0dHA6Ly93d3cuaWRzLW1hbm5oZWltLmRlL2tsL3Byb2pla3RlL21ldGhvZGVuL3RlLmh0bWwpPC9oLmJpYmw+CisJPGNhdGVnb3J5IGlkPSJ0b3BpYy5GaWt0aW9uIj4KKwkgIDxjYXREZXNjPkZpa3Rpb248L2NhdERlc2M+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLkZpa3Rpb24uVmVybWlzY2h0ZXMiPgorCSAgICA8Y2F0RGVzYz5GaWt0aW9uOlZlcm1pc2NodGVzPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwk8L2NhdGVnb3J5PgorCTxjYXRlZ29yeSBpZD0idG9waWMuRnJlaXplaXQtVW50ZXJoYWx0dW5nIj4KKwkgIDxjYXREZXNjPkZyZWl6ZWl0X1VudGVyaGFsdHVuZzwvY2F0RGVzYz4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuRnJlaXplaXQtVW50ZXJoYWx0dW5nLlJlaXNlbiI+CisJICAgIDxjYXREZXNjPkZyZWl6ZWl0X1VudGVyaGFsdHVuZzpSZWlzZW48L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5GcmVpemVpdC1VbnRlcmhhbHR1bmcuUnVuZGZ1bmsiPgorCSAgICA8Y2F0RGVzYz5GcmVpemVpdF9VbnRlcmhhbHR1bmc6UnVuZGZ1bms8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5GcmVpemVpdC1VbnRlcmhhbHR1bmcuVmVyZWluZS1WZXJhbnN0YWx0dW5nZW4iPgorCSAgICA8Y2F0RGVzYz5GcmVpemVpdF9VbnRlcmhhbHR1bmc6VmVyZWluZV9WZXJhbnN0YWx0dW5nZW48L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCTwvY2F0ZWdvcnk+CisJPGNhdGVnb3J5IGlkPSJ0b3BpYy5HZXN1bmRoZWl0LUVybmFlaHJ1bmciPgorCSAgPGNhdERlc2M+R2VzdW5kaGVpdF9Fcm5hZWhydW5nPC9jYXREZXNjPgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5HZXN1bmRoZWl0LUVybmFlaHJ1bmcuRXJuYWVocnVuZyI+CisJICAgIDxjYXREZXNjPkdlc3VuZGhlaXRfRXJuYWVocnVuZzpFcm5hZWhydW5nPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuR2VzdW5kaGVpdC1Fcm5hZWhydW5nLkdlc3VuZGhlaXQiPgorCSAgICA8Y2F0RGVzYz5HZXN1bmRoZWl0X0VybmFlaHJ1bmc6R2VzdW5kaGVpdDwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJPC9jYXRlZ29yeT4KKwk8Y2F0ZWdvcnkgaWQ9InRvcGljLkt1bHR1ciI+CisJICA8Y2F0RGVzYz5LdWx0dXI8L2NhdERlc2M+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLkt1bHR1ci5CaWxkZW5kZS1LdW5zdCI+CisJICAgIDxjYXREZXNjPkt1bHR1cjpCaWxkZW5kZSBLdW5zdDwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLkt1bHR1ci5EYXJzdGVsbGVuZGUtS3Vuc3QiPgorCSAgICA8Y2F0RGVzYz5LdWx0dXI6RGFyc3RlbGxlbmRlIEt1bnN0PC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuS3VsdHVyLkZpbG0iPgorCSAgICA8Y2F0RGVzYz5LdWx0dXI6RmlsbTwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLkt1bHR1ci5MaXRlcmF0dXIiPgorCSAgICA8Y2F0RGVzYz5LdWx0dXI6TGl0ZXJhdHVyPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuS3VsdHVyLk1vZGUiPgorCSAgICA8Y2F0RGVzYz5LdWx0dXI6TW9kZTwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLkt1bHR1ci5NdXNpayI+CisJICAgIDxjYXREZXNjPkt1bHR1cjpNdXNpazwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJPC9jYXRlZ29yeT4KKwk8Y2F0ZWdvcnkgaWQ9InRvcGljLk5hdHVyLVVtd2VsdCI+CisJICA8Y2F0RGVzYz5OYXR1cl9VbXdlbHQ8L2NhdERlc2M+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLk5hdHVyLVVtd2VsdC5HYXJ0ZW4iPgorCSAgICA8Y2F0RGVzYz5OYXR1cl9VbXdlbHQ6R2FydGVuPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuTmF0dXItVW13ZWx0LlRpZXJlIj4KKwkgICAgPGNhdERlc2M+TmF0dXJfVW13ZWx0OlRpZXJlPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuTmF0dXItVW13ZWx0LldldHRlci1LbGltYSI+CisJICAgIDxjYXREZXNjPk5hdHVyX1Vtd2VsdDpXZXR0ZXJfS2xpbWE8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCTwvY2F0ZWdvcnk+CisJPGNhdGVnb3J5IGlkPSJ0b3BpYy5Qb2xpdGlrIj4KKwkgIDxjYXREZXNjPlBvbGl0aWs8L2NhdERlc2M+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlBvbGl0aWsuQXVzbGFuZCI+CisJICAgIDxjYXREZXNjPlBvbGl0aWs6QXVzbGFuZDwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlBvbGl0aWsuSW5sYW5kIj4KKwkgICAgPGNhdERlc2M+UG9saXRpazpJbmxhbmQ8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5Qb2xpdGlrLktvbW11bmFscG9saXRpayI+CisJICAgIDxjYXREZXNjPlBvbGl0aWs6S29tbXVuYWxwb2xpdGlrPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwk8L2NhdGVnb3J5PgorCTxjYXRlZ29yeSBpZD0idG9waWMuUmVzdCI+CisJICA8Y2F0RGVzYz5SZXN0PC9jYXREZXNjPgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5SZXN0LmJvZXJzZW5rdXJzZSI+CisJICAgIDxjYXREZXNjPlJlc3Q6Ym9lcnNlbmt1cnNlPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuUmVzdC5nZWJ1cnQtdG9kLWhlaXJhdCI+CisJICAgIDxjYXREZXNjPlJlc3Q6Z2VidXJ0X3RvZF9oZWlyYXQ8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5SZXN0LmltcHJlc3N1bSI+CisJICAgIDxjYXREZXNjPlJlc3Q6aW1wcmVzc3VtPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuUmVzdC5pbmhhbHRzdmVyemVpY2huaXNzZSI+CisJICAgIDxjYXREZXNjPlJlc3Q6aW5oYWx0c3ZlcnplaWNobmlzc2U8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5SZXN0LmxpZ2F0YWJlbGxlbiI+CisJICAgIDxjYXREZXNjPlJlc3Q6bGlnYXRhYmVsbGVuPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuUmVzdC50YWJlbGxlbiI+CisJICAgIDxjYXREZXNjPlJlc3Q6dGFiZWxsZW48L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5SZXN0LnZlcmFuc3RhbHR1bmdzaGlud2Vpc2UiPgorCSAgICA8Y2F0RGVzYz5SZXN0OnZlcmFuc3RhbHR1bmdzaGlud2Vpc2U8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCTwvY2F0ZWdvcnk+CisJPGNhdGVnb3J5IGlkPSJ0b3BpYy5TcG9ydCI+CisJICA8Y2F0RGVzYz5TcG9ydDwvY2F0RGVzYz4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuU3BvcnQuQmFsbHNwb3J0Ij4KKwkgICAgPGNhdERlc2M+U3BvcnQ6QmFsbHNwb3J0PC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuU3BvcnQuRnVzc2JhbGwiPgorCSAgICA8Y2F0RGVzYz5TcG9ydDpGdXNzYmFsbDwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlNwb3J0Lk1vdG9yc3BvcnQiPgorCSAgICA8Y2F0RGVzYz5TcG9ydDpNb3RvcnNwb3J0PC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuU3BvcnQuUmFkc3BvcnQiPgorCSAgICA8Y2F0RGVzYz5TcG9ydDpSYWRzcG9ydDwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlNwb3J0LlRlbm5pcyI+CisJICAgIDxjYXREZXNjPlNwb3J0OlRlbm5pczwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlNwb3J0LlZlcm1pc2NodGVzIj4KKwkgICAgPGNhdERlc2M+U3BvcnQ6VmVybWlzY2h0ZXM8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5TcG9ydC5XaW50ZXJzcG9ydCI+CisJICAgIDxjYXREZXNjPlNwb3J0OldpbnRlcnNwb3J0PC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwk8L2NhdGVnb3J5PgorCTxjYXRlZ29yeSBpZD0idG9waWMuU3RhYXQtR2VzZWxsc2NoYWZ0Ij4KKwkgIDxjYXREZXNjPlN0YWF0X0dlc2VsbHNjaGFmdDwvY2F0RGVzYz4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuU3RhYXQtR2VzZWxsc2NoYWZ0LkFyYmVpdC11bmQtQmVydWYiPgorCSAgICA8Y2F0RGVzYz5TdGFhdF9HZXNlbGxzY2hhZnQ6QXJiZWl0X3VuZF9CZXJ1ZjwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlN0YWF0LUdlc2VsbHNjaGFmdC5CaWxkdW5nIj4KKwkgICAgPGNhdERlc2M+U3RhYXRfR2VzZWxsc2NoYWZ0OkJpbGR1bmc8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5TdGFhdC1HZXNlbGxzY2hhZnQuQmlvZ3JhcGhpZW4tSW50ZXJ2aWV3cyI+CisJICAgIDxjYXREZXNjPlN0YWF0X0dlc2VsbHNjaGFmdDpCaW9ncmFwaGllbl9JbnRlcnZpZXdzPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuU3RhYXQtR2VzZWxsc2NoYWZ0LkRyaXR0ZXMtUmVpY2gtUmVjaHRzZXh0cmVtaXNtdXMiPgorCSAgICA8Y2F0RGVzYz5TdGFhdF9HZXNlbGxzY2hhZnQ6RHJpdHRlc19SZWljaF9SZWNodHNleHRyZW1pc211czwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlN0YWF0LUdlc2VsbHNjaGFmdC5GYW1pbGllLUdlc2NobGVjaHQiPgorCSAgICA8Y2F0RGVzYz5TdGFhdF9HZXNlbGxzY2hhZnQ6RmFtaWxpZV9HZXNjaGxlY2h0PC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuU3RhYXQtR2VzZWxsc2NoYWZ0LktpcmNoZSI+CisJICAgIDxjYXREZXNjPlN0YWF0X0dlc2VsbHNjaGFmdDpLaXJjaGU8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5TdGFhdC1HZXNlbGxzY2hhZnQuUmVjaHQiPgorCSAgICA8Y2F0RGVzYz5TdGFhdF9HZXNlbGxzY2hhZnQ6UmVjaHQ8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5TdGFhdC1HZXNlbGxzY2hhZnQuVG9kIj4KKwkgICAgPGNhdERlc2M+U3RhYXRfR2VzZWxsc2NoYWZ0OlRvZDwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlN0YWF0LUdlc2VsbHNjaGFmdC5WZXJicmVjaGVuIj4KKwkgICAgPGNhdERlc2M+U3RhYXRfR2VzZWxsc2NoYWZ0OlZlcmJyZWNoZW48L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCTwvY2F0ZWdvcnk+CisJPGNhdGVnb3J5IGlkPSJ0b3BpYy5UZWNobmlrLUluZHVzdHJpZSI+CisJICA8Y2F0RGVzYz5UZWNobmlrX0luZHVzdHJpZTwvY2F0RGVzYz4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuVGVjaG5pay1JbmR1c3RyaWUuRURWLUVsZWt0cm9uaWsiPgorCSAgICA8Y2F0RGVzYz5UZWNobmlrX0luZHVzdHJpZTpFRFZfRWxla3Ryb25pazwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlRlY2huaWstSW5kdXN0cmllLktmeiI+CisJICAgIDxjYXREZXNjPlRlY2huaWtfSW5kdXN0cmllOktmejwvY2F0RGVzYz4KKwkgIDwvY2F0ZWdvcnk+CisJICA8Y2F0ZWdvcnkgaWQ9InRvcGljLlRlY2huaWstSW5kdXN0cmllLlRyYW5zcG9ydC1WZXJrZWhyIj4KKwkgICAgPGNhdERlc2M+VGVjaG5pa19JbmR1c3RyaWU6VHJhbnNwb3J0X1ZlcmtlaHI8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5UZWNobmlrLUluZHVzdHJpZS5VbXdlbHRzY2h1dHoiPgorCSAgICA8Y2F0RGVzYz5UZWNobmlrX0luZHVzdHJpZTpVbXdlbHRzY2h1dHo8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5UZWNobmlrLUluZHVzdHJpZS5VbmZhZWxsZSI+CisJICAgIDxjYXREZXNjPlRlY2huaWtfSW5kdXN0cmllOlVuZmFlbGxlPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwk8L2NhdGVnb3J5PgorCTxjYXRlZ29yeSBpZD0idG9waWMuV2lydHNjaGFmdC1GaW5hbnplbiI+CisJICA8Y2F0RGVzYz5XaXJ0c2NoYWZ0X0ZpbmFuemVuPC9jYXREZXNjPgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5XaXJ0c2NoYWZ0LUZpbmFuemVuLkJhbmtlbiI+CisJICAgIDxjYXREZXNjPldpcnRzY2hhZnRfRmluYW56ZW46QmFua2VuPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuV2lydHNjaGFmdC1GaW5hbnplbi5CaWxhbnplbiI+CisJICAgIDxjYXREZXNjPldpcnRzY2hhZnRfRmluYW56ZW46QmlsYW56ZW48L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5XaXJ0c2NoYWZ0LUZpbmFuemVuLk9lZmZlbnRsaWNoZS1GaW5hbnplbiI+CisJICAgIDxjYXREZXNjPldpcnRzY2hhZnRfRmluYW56ZW46T2VmZmVudGxpY2hlX0ZpbmFuemVuPC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuV2lydHNjaGFmdC1GaW5hbnplbi5Tb3ppYWxwcm9kdWt0Ij4KKwkgICAgPGNhdERlc2M+V2lydHNjaGFmdF9GaW5hbnplbjpTb3ppYWxwcm9kdWt0PC9jYXREZXNjPgorCSAgPC9jYXRlZ29yeT4KKwkgIDxjYXRlZ29yeSBpZD0idG9waWMuV2lydHNjaGFmdC1GaW5hbnplbi5XYWVocnVuZyI+CisJICAgIDxjYXREZXNjPldpcnRzY2hhZnRfRmluYW56ZW46V2FlaHJ1bmc8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCTwvY2F0ZWdvcnk+CisJPGNhdGVnb3J5IGlkPSJ0b3BpYy5XaXNzZW5zY2hhZnQiPgorCSAgPGNhdERlc2M+V2lzc2Vuc2NoYWZ0PC9jYXREZXNjPgorCSAgPGNhdGVnb3J5IGlkPSJ0b3BpYy5XaXNzZW5zY2hhZnQuUG9wdWxhZXJ3aXNzZW5zY2hhZnQiPgorCSAgICA8Y2F0RGVzYz5XaXNzZW5zY2hhZnQ6UG9wdWxhZXJ3aXNzZW5zY2hhZnQ8L2NhdERlc2M+CisJICA8L2NhdGVnb3J5PgorCTwvY2F0ZWdvcnk+CisJPGNhdGVnb3J5IGlkPSJ0b3BpYy51bmtsYXNzaWZpemllcmJhciI+CisJICA8Y2F0RGVzYz5UZXh0IGlzdCB0aGVtYXRpc2NoIG5pY2h0IGtsYXNzaWZpemllcmJhci48L2NhdERlc2M+CisJPC9jYXRlZ29yeT4KKyAgICAgIDwvdGF4b25vbXk+CisgICAgPC9jbGFzc0RlY2w+CisgIDwvZW5jb2RpbmdEZXNjPgorICA8cHJvZmlsZURlc2M+CisgICAgPGxhbmd1c2FnZT4KKyAgICAgIDxsYW5ndWFnZSBpZD0iZGUiIHVzYWdlPSIxMDAiPkRldXRzY2g8L2xhbmd1YWdlPgorICAgIDwvbGFuZ3VzYWdlPgorICAgIDx0ZXh0ZGVzYz4KKyAgICAgIDx0ZXh0dHlwZT5aZWl0dW5nOiBXb2NoZW56ZWl0dW5nPC90ZXh0dHlwZT4KKyAgICAgIDx0ZXh0dHlwZXJlZj5Xb2NoZW56ZWl0dW5nPC90ZXh0dHlwZXJlZj4KKyAgICA8L3RleHRkZXNjPgorICA8L3Byb2ZpbGVEZXNjPgorPC9pZHNoZWFkZXI+CmRpZmYgLS1naXQgYS90L2FydGlmaWNpYWwtc3VidG9rZW4udCBiL3QvYXJ0aWZpY2lhbC1zdWJ0b2tlbi50CmluZGV4IGViZjNiMzMuLjdhMzAxMDMgMTAwNjQ0Ci0tLSBhL3QvYXJ0aWZpY2lhbC1zdWJ0b2tlbi50CisrKyBiL3QvYXJ0aWZpY2lhbC1zdWJ0b2tlbi50CkBAIC0xNiw3ICsxNiw3IEBACiAKIG15ICRwYXRoID0gY2F0ZGlyKGRpcm5hbWUoX19GSUxFX18pLCAnYXJ0aWZpY2lhbCcpOwogb2sobXkgJGRvYyA9IEtvckFQOjpEb2N1bWVudC0+bmV3KCBwYXRoID0+ICRwYXRoIC4gJy8nICksICdMb2FkIEtvcmFwOjpEb2N1bWVudCcpOwotaXMoJGRvYy0+cGF0aCwgJHBhdGggLiAnLycsICdQYXRoJyk7CitsaWtlKCRkb2MtPnBhdGgsIHFyISRwYXRoLyQhLCAnUGF0aCcpOwogb2soJGRvYy0+cGFyc2UsICdQYXJzZSBkb2N1bWVudCcpOwogCiBzdWIgbmV3X3Rva2VuaXplciB7CmRpZmYgLS1naXQgYS90L21ldGEudCBiL3QvbWV0YS50CmluZGV4IDg3MTgwZGUuLjUxNTk4ODkgMTAwNjQ0Ci0tLSBhL3QvbWV0YS50CisrKyBiL3QvbWV0YS50CkBAIC0xMSwyMiArMTEsMjYgQEAKIHVzZSBGaWxlOjpCYXNlbmFtZSAnZGlybmFtZSc7CiB1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zICdjYXRkaXInOwogCisKKyMgVE9ETzogTWFrZSAndGV4dCcgLT4gJ3ByaW1hcnlUZXh0JworCiB1c2Vfb2soJ0tvckFQOjpEb2N1bWVudCcpOwogCiAjIFdQRC8wMDAwMQogbXkgJHBhdGggPSBjYXRkaXIoZGlybmFtZShfX0ZJTEVfXyksICdXUEQvMDAwMDEnKTsKIG9rKG15ICRkb2MgPSBLb3JBUDo6RG9jdW1lbnQtPm5ldyggcGF0aCA9PiAkcGF0aCAuICcvJyApLCAnTG9hZCBLb3JhcDo6RG9jdW1lbnQnKTsKLWlzKCRkb2MtPnBhdGgsICRwYXRoIC4gJy8nLCAnUGF0aCcpOworbGlrZSgkZG9jLT5wYXRoLCBxciEkcGF0aC8hLCAnUGF0aCcpOwogCiBvaygkZG9jID0gS29yQVA6OkRvY3VtZW50LT5uZXcoIHBhdGggPT4gJHBhdGggKSwgJ0xvYWQgS29yYXA6OkRvY3VtZW50Jyk7Ci1pcygkZG9jLT5wYXRoLCAkcGF0aCAuICcvJywgJ1BhdGgnKTsKK2xpa2UoJGRvYy0+cGF0aCwgcXIhJHBhdGgvJCEsICdQYXRoJyk7CiAKIG9rKCRkb2MtPnBhcnNlLCAnUGFyc2UgZG9jdW1lbnQnKTsKIAogIyBNZXRkYXRhCitpcygkZG9jLT50ZXh0X3NpZ2xlLCAnV1BEX0FBQS4wMDAwMScsICdJRCcpOworCiBpcygkZG9jLT50aXRsZSwgJ0EnLCAndGl0bGUnKTsKIG9rKCEkZG9jLT5zdWJfdGl0bGUsICdzdWJUaXRsZScpOwotaXMoJGRvYy0+dGV4dF9zaWdsZSwgJ1dQRF9BQUEuMDAwMDEnLCAnSUQnKTsKIGlzKCRkb2MtPmNvcnB1c19zaWdsZSwgJ1dQRCcsICdjb3JwdXNJRCcpOwogaXMoJGRvYy0+cHViX2RhdGUsICcyMDA1MDMyOCcsICdwdWJEYXRlJyk7CiBpcygkZG9jLT5wdWJfcGxhY2UsICdVUkw6aHR0cDovL2RlLndpa2lwZWRpYS5vcmcnLCAncHViUGxhY2UnKTsKQEAgLTM1LDIxICszOSwzMCBAQAogaXMoJGRvYy0+dGV4dF9jbGFzcy0+WzJdLCAnd2lzc2Vuc2NoYWZ0JywgJ1RleHRDbGFzcycpOwogaXMoJGRvYy0+dGV4dF9jbGFzcy0+WzNdLCAncG9wdWxhZXJ3aXNzZW5zY2hhZnQnLCAnVGV4dENsYXNzJyk7CiBvayghJGRvYy0+dGV4dF9jbGFzcy0+WzRdLCAnVGV4dENsYXNzJyk7Ci1pcygkZG9jLT5hdXRob3ItPlswXSwgJ1J1cnUnLCAnYXV0aG9yJyk7Ci1pcygkZG9jLT5hdXRob3ItPlsxXSwgJ0plbnMuT2wnLCAnYXV0aG9yJyk7Ci1pcygkZG9jLT5hdXRob3ItPlsyXSwgJ0FnbGFyZWNoJywgJ2F1dGhvcicpOwotb2soISRkb2MtPmF1dGhvci0+WzNdLCAnYXV0aG9yJyk7CitpcygkZG9jLT5hdXRob3IsICdSdXJ1OyBKZW5zLk9sOyBBZ2xhcmVjaDsgdS5hLicsICdhdXRob3InKTsKKworI2lzKCRkb2MtPmF1dGhvci0+WzBdLCAnUnVydScsICdhdXRob3InKTsKKyNpcygkZG9jLT5hdXRob3ItPlsxXSwgJ0plbnMuT2wnLCAnYXV0aG9yJyk7CisjaXMoJGRvYy0+YXV0aG9yLT5bMl0sICdBZ2xhcmVjaCcsICdhdXRob3InKTsKKyNvayghJGRvYy0+YXV0aG9yLT5bM10sICdhdXRob3InKTsKIAogIyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uCi1pcygkZG9jLT5lZGl0b3IsJ3dpa2lwZWRpYS5vcmcnLCAnRWRpdG9yJyk7CitvayghJGRvYy0+ZWRpdG9yLCAnRWRpdG9yJyk7CiBpcygkZG9jLT5wdWJsaXNoZXIsICdXaWtpcGVkaWEnLCAnUHVibGlzaGVyJyk7CiBpcygkZG9jLT5jcmVhdGlvbl9kYXRlLCAnMjAwNTAwMDAnLCAnQ3JlYXRpb24gZGF0ZScpOwotaXMoJGRvYy0+Y29sbF90aXRsZSwgJ1dpa2lwZWRpYScsICdDb2xsZWN0aW9uIHRpdGxlJyk7Ci1pcygkZG9jLT5jb2xsX3N1Yl90aXRsZSwgJ0RpZSBmcmVpZSBFbnp5a2xvcMOkZGllJywgJ0NvbGxlY3Rpb24gc3VidGl0bGUnKTsKLWlzKCRkb2MtPmNvbGxfZWRpdG9yLCAnd2lraXBlZGlhLm9yZycsICdDb2xsZWN0aW9uIGVkaXRvcicpOwotb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKIG9rKCEkZG9jLT50ZXh0X3R5cGUsICdObyB0ZXh0X3R5cGUnKTsKLW9rKCEkZG9jLT50ZXh0X3R5cGVfYXJ0LCAndGV4dF90eXBlIGFydCcpOworb2soISRkb2MtPnRleHRfdHlwZV9hcnQsICdubyB0ZXh0X3R5cGUgYXJ0Jyk7CitvayghJGRvYy0+dGV4dF90eXBlX3JlZiwgJ25vIHRleHRfdHlwZSByZWYnKTsKK29rKCEkZG9jLT50ZXh0X2RvbWFpbiwgJ25vIHRleHRfZG9tYWluJyk7CitvayghJGRvYy0+dGV4dF9jb2x1bW4sICdubyB0ZXh0X2NvbHVtbicpOworb2soISRkb2MtPmtleXdvcmRzX3N0cmluZywgJ25vIGtleXdvcmRzJyk7CitpcygkZG9jLT50ZXh0X2NsYXNzX3N0cmluZywgJ2ZyZWl6ZWl0LXVudGVyaGFsdHVuZyByZWlzZW4gd2lzc2Vuc2NoYWZ0IHBvcHVsYWVyd2lzc2Vuc2NoYWZ0JywgJ25vIHRleHQgY2xhc3NlcycpOworb2soISRkb2MtPmxhbmd1YWdlLCAnbm8gdGV4dF9jb2x1bW4nKTsKKworI2lzKCRkb2MtPmNvbGxfdGl0bGUsICdXaWtpcGVkaWEnLCAnQ29sbGVjdGlvbiB0aXRsZScpOworI2lzKCRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnRGllIGZyZWllIEVuenlrbG9ww6RkaWUnLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOworI2lzKCRkb2MtPmNvbGxfZWRpdG9yLCAnd2lraXBlZGlhLm9yZycsICdDb2xsZWN0aW9uIGVkaXRvcicpOworI29rKCEkZG9jLT5jb2xsX2F1dGhvciwgJ0NvbGxlY3Rpb24gYXV0aG9yJyk7CiAKICMgQlJaMTMvMDAwMDEKICRwYXRoID0gY2F0ZGlyKGRpcm5hbWUoX19GSUxFX18pLCAnQlJaMTMvMDAwMDEnKTsKQEAgLTYwLDIxICs3MywyNCBAQAogb2soISRkb2MtPnN1Yl90aXRsZSwgJ3N1YlRpdGxlJyk7CiBpcygkZG9jLT50ZXh0X3NpZ2xlLCAnQlJaMTNfQVBSLjAwMDAxJywgJ0lEJyk7CiBpcygkZG9jLT5jb3JwdXNfc2lnbGUsICdCUloxMycsICdjb3JwdXNJRCcpOworCisKIGlzKCRkb2MtPnB1Yl9kYXRlLCAnMjAxMzA0MDInLCAncHViRGF0ZScpOwogaXMoJGRvYy0+cHViX3BsYWNlLCAnQnJhdW5zY2h3ZWlnJywgJ3B1YlBsYWNlJyk7CisKIGlzKCRkb2MtPnRleHRfY2xhc3MtPlswXSwgJ3N0YWF0LWdlc2VsbHNjaGFmdCcsICdUZXh0Q2xhc3MnKTsKIGlzKCRkb2MtPnRleHRfY2xhc3MtPlsxXSwgJ2ZhbWlsaWUtZ2VzY2hsZWNodCcsICdUZXh0Q2xhc3MnKTsKIG9rKCEkZG9jLT50ZXh0X2NsYXNzLT5bMl0sICdUZXh0Q2xhc3MnKTsKLW9rKCEkZG9jLT5hdXRob3ItPlswXSwgJ2F1dGhvcicpOworb2soISRkb2MtPmF1dGhvciwgJ2F1dGhvcicpOwogCiAjIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24KIG9rKCEkZG9jLT5lZGl0b3IsICdFZGl0b3InKTsKIGlzKCRkb2MtPnB1Ymxpc2hlciwgJ0JyYXVuc2Nod2VpZ2VyIFplaXR1bmdzdmVybGFnLCBEcnVja2hhdXMgQWxiZXJ0IExpbWJhY2ggR21iSCAmIENvLiBLRycsICdQdWJsaXNoZXInKTsKIGlzKCRkb2MtPmNyZWF0aW9uX2RhdGUsICcyMDEzMDQwMicsICdDcmVhdGlvbiBkYXRlJyk7Ci1pcygkZG9jLT5jb2xsX3RpdGxlLCAnQnJhdW5zY2h3ZWlnZXIgWmVpdHVuZycsICdDb2xsZWN0aW9uIHRpdGxlJyk7Ci1vayghJGRvYy0+Y29sbF9zdWJfdGl0bGUsICdDb2xsZWN0aW9uIHN1YnRpdGxlJyk7Ci1vayghJGRvYy0+Y29sbF9lZGl0b3IsICdDb2xsZWN0aW9uIGVkaXRvcicpOwotb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKKyNpcygkZG9jLT5jb2xsX3RpdGxlLCAnQnJhdW5zY2h3ZWlnZXIgWmVpdHVuZycsICdDb2xsZWN0aW9uIHRpdGxlJyk7Cisjb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOworI29rKCEkZG9jLT5jb2xsX2VkaXRvciwgJ0NvbGxlY3Rpb24gZWRpdG9yJyk7Cisjb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKIGlzKCRkb2MtPnRleHRfdHlwZSwgJ1plaXR1bmc6IFRhZ2VzemVpdHVuZycsICd0ZXh0X3R5cGUnKTsKIG9rKCEkZG9jLT50ZXh0X3R5cGVfYXJ0LCAndGV4dF90eXBlIGFydCcpOwogCkBAIC05MiwxNyArMTA4LDE2IEBACiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMF0sICdmcmVpemVpdC11bnRlcmhhbHR1bmcnLCAnVGV4dENsYXNzJyk7CiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMV0sICd2ZXJlaW5lLXZlcmFuc3RhbHR1bmdlbicsICdUZXh0Q2xhc3MnKTsKIG9rKCEkZG9jLT50ZXh0X2NsYXNzLT5bMl0sICdUZXh0Q2xhc3MnKTsKLW9rKCEkZG9jLT5hdXRob3ItPlswXSwgJ2F1dGhvcicpOwotCitvayghJGRvYy0+YXV0aG9yLCAnYXV0aG9yJyk7CiAKICMgQWRkaXRpb25hbCBpbmZvcm1hdGlvbgogb2soISRkb2MtPmVkaXRvciwgJ0VkaXRvcicpOwogb2soISRkb2MtPnB1Ymxpc2hlciwgJ1B1Ymxpc2hlcicpOwogaXMoJGRvYy0+Y3JlYXRpb25fZGF0ZSwgJzIwMDEwNDAyJywgJ0NyZWF0aW9uIGRhdGUnKTsKLW9rKCEkZG9jLT5jb2xsX3RpdGxlLCAnQ29sbGVjdGlvbiB0aXRsZScpOwotb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOwotb2soISRkb2MtPmNvbGxfZWRpdG9yLCAnQ29sbGVjdGlvbiBlZGl0b3InKTsKLW9rKCEkZG9jLT5jb2xsX2F1dGhvciwgJ0NvbGxlY3Rpb24gYXV0aG9yJyk7Cisjb2soISRkb2MtPmNvbGxfdGl0bGUsICdDb2xsZWN0aW9uIHRpdGxlJyk7Cisjb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOworI29rKCEkZG9jLT5jb2xsX2VkaXRvciwgJ0NvbGxlY3Rpb24gZWRpdG9yJyk7Cisjb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKIG9rKCEkZG9jLT50ZXh0X3R5cGUsICd0ZXh0X3R5cGUnKTsKIGlzKCRkb2MtPnRleHRfdHlwZV9hcnQsICdCZXJpY2h0JywgJ3RleHRfdHlwZSBhcnQnKTsKIApAQCAtMTEyLDcgKzEyNyw4IEBACiBvaygkZG9jID0gS29yQVA6OkRvY3VtZW50LT5uZXcoIHBhdGggPT4gJHBhdGggLiAnLycgKSwgJ0xvYWQgS29yYXA6OkRvY3VtZW50Jyk7CiAKIG9rKCRkb2MtPnBhcnNlLCAnUGFyc2UgZG9jdW1lbnQnKTsKLWlzKCRkb2MtPnRpdGxlLCAnQW10c2JsYXR0IGRlcyBMYW5kZXNiZXppcmtzIEJhZGVuIFtkaXZlcnNlIEVybGFzc2VdJywgJ3RpdGxlJyk7CitpcygkZG9jLT50aXRsZSwgJ01LMi9FUkwuMDAwMDEgQW10c2JsYXR0IGRlcyBMYW5kZXNiZXppcmtzIEJhZGVuIFtkaXZlcnNlIEVybGFzc2VdLCBIcnNnLiB1bmQgU2NocmlmdGxlaXR1bmc6IFByw6RzaWRpYWxzdGVsbGUgZGVyIExhbmRlc3ZlcndhbHR1bmcgQmFkZW4gaW4gS2FybHNydWhlLiAtIEthcmxzcnVoZSwgby5KLicsICd0aXRsZScpOyAjIEFtdHNibGF0dCBkZXMgTGFuZGVzYmV6aXJrcyBCYWRlbiBbZGl2ZXJzZSBFcmxhc3NlXQorCiBvayghJGRvYy0+c3ViX3RpdGxlLCAnc3ViVGl0bGUnKTsKIGlzKCRkb2MtPnRleHRfc2lnbGUsICdNSzJfRVJMLjAwMDAxJywgJ0lEJyk7CiBpcygkZG9jLT5jb3JwdXNfc2lnbGUsICdNSzInLCAnY29ycHVzSUQnKTsKQEAgLTEyMSwyNyArMTM3LDI2IEBACiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMF0sICdwb2xpdGlrJywgJ1RleHRDbGFzcycpOwogaXMoJGRvYy0+dGV4dF9jbGFzcy0+WzFdLCAna29tbXVuYWxwb2xpdGlrJywgJ1RleHRDbGFzcycpOwogb2soISRkb2MtPnRleHRfY2xhc3MtPlsyXSwgJ1RleHRDbGFzcycpOwotb2soISRkb2MtPmF1dGhvci0+WzBdLCAnYXV0aG9yJyk7CitvayghJGRvYy0+YXV0aG9yLCAnYXV0aG9yJyk7CiAKICMgQWRkaXRpb25hbCBpbmZvcm1hdGlvbgogb2soISRkb2MtPmVkaXRvciwgJ0VkaXRvcicpOwogaXMoJGRvYy0+cHVibGlzaGVyLCAnQmFkZW5pYSBWZXJsYWcgdW5kIERydWNrZXJlaScsICdQdWJsaXNoZXInKTsKIGlzKCRkb2MtPmNyZWF0aW9uX2RhdGUsICcxOTYwMDAwMCcsICdDcmVhdGlvbiBkYXRlJyk7Ci1kaWFnICdOb24tYWNjZXB0YW5jZSBvZiBjcmVhdGlvbiBkYXRlIHJhbmdlcyBpcyB0ZW1wb3JhcnknOwotb2soISRkb2MtPmNvbGxfdGl0bGUsICdDb2xsZWN0aW9uIHRpdGxlJyk7Ci1vayghJGRvYy0+Y29sbF9zdWJfdGl0bGUsICdDb2xsZWN0aW9uIHN1YnRpdGxlJyk7Ci1vayghJGRvYy0+Y29sbF9lZGl0b3IsICdDb2xsZWN0aW9uIGVkaXRvcicpOwotb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKK2RpYWcgJ05vbi1hY2NlcHRhbmNlIG9mIGNyZWF0aW9uIGRhdGUgcmFuZ2VzIG1heSBiZSB0ZW1wb3JhcnknOworI29rKCEkZG9jLT5jb2xsX3RpdGxlLCAnQ29sbGVjdGlvbiB0aXRsZScpOworI29rKCEkZG9jLT5jb2xsX3N1Yl90aXRsZSwgJ0NvbGxlY3Rpb24gc3VidGl0bGUnKTsKKyNvayghJGRvYy0+Y29sbF9lZGl0b3IsICdDb2xsZWN0aW9uIGVkaXRvcicpOworI29rKCEkZG9jLT5jb2xsX2F1dGhvciwgJ0NvbGxlY3Rpb24gYXV0aG9yJyk7CiBpcygkZG9jLT50ZXh0X3R5cGUsICdFcmxhc3MnLCAndGV4dF90eXBlJyk7CiBvayghJGRvYy0+dGV4dF90eXBlX2FydCwgJ3RleHRfdHlwZSBhcnQnKTsKIAotCiAjIEEwMS8wMjAzNS1zdWJzdHJpbmcKICRwYXRoID0gY2F0ZGlyKGRpcm5hbWUoX19GSUxFX18pLCAnQTAxLzAyMDM1LXN1YnN0cmluZycpOwogb2soJGRvYyA9IEtvckFQOjpEb2N1bWVudC0+bmV3KCBwYXRoID0+ICRwYXRoIC4gJy8nICksICdMb2FkIEtvcmFwOjpEb2N1bWVudCcpOwogCiBvaygkZG9jLT5wYXJzZSwgJ1BhcnNlIGRvY3VtZW50Jyk7Ci1vayghJGRvYy0+dGl0bGUsICd0aXRsZScpOworaXMoJGRvYy0+dGl0bGUsICdBMDAvSkFOLjAyMDM1IFN0LiBHYWxsZXIgVGFnYmxhdHQsIDExLjAxLjIwMDAsIFJlc3NvcnQ6IFRCLVJTUCAoQWJrLiknLCAndGl0bGUnKTsKIG9rKCEkZG9jLT5zdWJfdGl0bGUsICdzdWJUaXRsZScpOwogaXMoJGRvYy0+dGV4dF9zaWdsZSwgJ0EwMF9KQU4uMDIwMzUnLCAnSUQnKTsKIGlzKCRkb2MtPmNvcnB1c19zaWdsZSwgJ0EwMCcsICdjb3JwdXNJRCcpOwpAQCAtMTUwLDIwICsxNjUsMTkgQEAKIGlzKCRkb2MtPnRleHRfY2xhc3MtPlswXSwgJ3Nwb3J0JywgJ1RleHRDbGFzcycpOwogaXMoJGRvYy0+dGV4dF9jbGFzcy0+WzFdLCAnYmFsbHNwb3J0JywgJ1RleHRDbGFzcycpOwogb2soISRkb2MtPnRleHRfY2xhc3MtPlsyXSwgJ1RleHRDbGFzcycpOwotb2soISRkb2MtPmF1dGhvci0+WzBdLCAnYXV0aG9yJyk7CitvayghJGRvYy0+YXV0aG9yLCAnYXV0aG9yJyk7CiAKICMgQWRkaXRpb25hbCBpbmZvcm1hdGlvbgogb2soISRkb2MtPmVkaXRvciwgJ0VkaXRvcicpOwogb2soISRkb2MtPnB1Ymxpc2hlciwgJ1B1Ymxpc2hlcicpOwogaXMoJGRvYy0+Y3JlYXRpb25fZGF0ZSwgIjIwMDAwMTExIiwgJ0NyZWF0aW9uIGRhdGUnKTsKLW9rKCEkZG9jLT5jb2xsX3RpdGxlLCAnQ29sbGVjdGlvbiB0aXRsZScpOwotb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOwotb2soISRkb2MtPmNvbGxfZWRpdG9yLCAnQ29sbGVjdGlvbiBlZGl0b3InKTsKLW9rKCEkZG9jLT5jb2xsX2F1dGhvciwgJ0NvbGxlY3Rpb24gYXV0aG9yJyk7Cisjb2soISRkb2MtPmNvbGxfdGl0bGUsICdDb2xsZWN0aW9uIHRpdGxlJyk7Cisjb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOworI29rKCEkZG9jLT5jb2xsX2VkaXRvciwgJ0NvbGxlY3Rpb24gZWRpdG9yJyk7Cisjb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKIG9rKCEkZG9jLT50ZXh0X3R5cGUsICd0ZXh0X3R5cGUnKTsKIGlzKCRkb2MtPnRleHRfdHlwZV9hcnQsICdCZXJpY2h0JywgJ3RleHRfdHlwZSBhcnQnKTsKIAotCiAjIEEwMS8wMjg3My1tZXRhCiAkcGF0aCA9IGNhdGRpcihkaXJuYW1lKF9fRklMRV9fKSwgJ0EwMS8wMjg3My1tZXRhJyk7CiBvaygkZG9jID0gS29yQVA6OkRvY3VtZW50LT5uZXcoIHBhdGggPT4gJHBhdGggLiAnLycgKSwgJ0xvYWQgS29yYXA6OkRvY3VtZW50Jyk7CkBAIC0xNzgsMTYgKzE5MiwxNiBAQAogaXMoJGRvYy0+dGV4dF9jbGFzcy0+WzBdLCAna3VsdHVyJywgJ1RleHRDbGFzcycpOwogaXMoJGRvYy0+dGV4dF9jbGFzcy0+WzFdLCAnZmlsbScsICdUZXh0Q2xhc3MnKTsKIG9rKCEkZG9jLT50ZXh0X2NsYXNzLT5bMl0sICdUZXh0Q2xhc3MnKTsKLW9rKCEkZG9jLT5hdXRob3ItPlswXSwgJ2F1dGhvcicpOworb2soISRkb2MtPmF1dGhvciwgJ2F1dGhvcicpOwogCiAjIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24KIG9rKCEkZG9jLT5lZGl0b3IsICdFZGl0b3InKTsKIG9rKCEkZG9jLT5wdWJsaXNoZXIsICdQdWJsaXNoZXInKTsKIGlzKCRkb2MtPmNyZWF0aW9uX2RhdGUsICIyMDAwMDExMyIsICdDcmVhdGlvbiBkYXRlJyk7Ci1vayghJGRvYy0+Y29sbF90aXRsZSwgJ0NvbGxlY3Rpb24gdGl0bGUnKTsKLW9rKCEkZG9jLT5jb2xsX3N1Yl90aXRsZSwgJ0NvbGxlY3Rpb24gc3VidGl0bGUnKTsKLW9rKCEkZG9jLT5jb2xsX2VkaXRvciwgJ0NvbGxlY3Rpb24gZWRpdG9yJyk7Ci1vayghJGRvYy0+Y29sbF9hdXRob3IsICdDb2xsZWN0aW9uIGF1dGhvcicpOworI29rKCEkZG9jLT5jb2xsX3RpdGxlLCAnQ29sbGVjdGlvbiB0aXRsZScpOworI29rKCEkZG9jLT5jb2xsX3N1Yl90aXRsZSwgJ0NvbGxlY3Rpb24gc3VidGl0bGUnKTsKKyNvayghJGRvYy0+Y29sbF9lZGl0b3IsICdDb2xsZWN0aW9uIGVkaXRvcicpOworI29rKCEkZG9jLT5jb2xsX2F1dGhvciwgJ0NvbGxlY3Rpb24gYXV0aG9yJyk7CiBvayghJGRvYy0+dGV4dF90eXBlLCAndGV4dF90eXBlJyk7CiBpcygkZG9jLT50ZXh0X3R5cGVfYXJ0LCAnQmVyaWNodCcsICd0ZXh0X3R5cGUgYXJ0Jyk7CiAKQEAgLTIwNiwyMSArMjIwLDIwIEBACiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMF0sICdnZXN1bmRoZWl0LWVybmFlaHJ1bmcnLCAnVGV4dENsYXNzJyk7CiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMV0sICdnZXN1bmRoZWl0JywgJ1RleHRDbGFzcycpOwogb2soISRkb2MtPnRleHRfY2xhc3MtPlsyXSwgJ1RleHRDbGFzcycpOwotb2soISRkb2MtPmF1dGhvci0+WzBdLCAnYXV0aG9yJyk7CitvayghJGRvYy0+YXV0aG9yLCAnYXV0aG9yJyk7CiAKICMgQWRkaXRpb25hbCBpbmZvcm1hdGlvbgogb2soISRkb2MtPmVkaXRvciwgJ0VkaXRvcicpOwogb2soISRkb2MtPnB1Ymxpc2hlciwgJ1B1Ymxpc2hlcicpOwogaXMoJGRvYy0+Y3JlYXRpb25fZGF0ZSwgIjIwMDAwMTI0IiwgJ0NyZWF0aW9uIGRhdGUnKTsKLW9rKCEkZG9jLT5jb2xsX3RpdGxlLCAnQ29sbGVjdGlvbiB0aXRsZScpOwotb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOwotb2soISRkb2MtPmNvbGxfZWRpdG9yLCAnQ29sbGVjdGlvbiBlZGl0b3InKTsKLW9rKCEkZG9jLT5jb2xsX2F1dGhvciwgJ0NvbGxlY3Rpb24gYXV0aG9yJyk7Cisjb2soISRkb2MtPmNvbGxfdGl0bGUsICdDb2xsZWN0aW9uIHRpdGxlJyk7Cisjb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOworI29rKCEkZG9jLT5jb2xsX2VkaXRvciwgJ0NvbGxlY3Rpb24gZWRpdG9yJyk7Cisjb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKIG9rKCEkZG9jLT50ZXh0X3R5cGUsICd0ZXh0X3R5cGUnKTsKIGlzKCRkb2MtPnRleHRfdHlwZV9hcnQsICdCZXJpY2h0JywgJ3RleHRfdHlwZSBhcnQnKTsKIAogCi0KICMgQTAxLzA3NDUyLWRlZXAKICRwYXRoID0gY2F0ZGlyKGRpcm5hbWUoX19GSUxFX18pLCAnQTAxLzA3NDUyLWRlZXAnKTsKIG9rKCRkb2MgPSBLb3JBUDo6RG9jdW1lbnQtPm5ldyggcGF0aCA9PiAkcGF0aCAuICcvJyApLCAnTG9hZCBLb3JhcDo6RG9jdW1lbnQnKTsKQEAgLTIzNSwyNiArMjQ4LDI3IEBACiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMF0sICdwb2xpdGlrJywgJ1RleHRDbGFzcycpOwogaXMoJGRvYy0+dGV4dF9jbGFzcy0+WzFdLCAna29tbXVuYWxwb2xpdGlrJywgJ1RleHRDbGFzcycpOwogb2soISRkb2MtPnRleHRfY2xhc3MtPlsyXSwgJ1RleHRDbGFzcycpOwotb2soISRkb2MtPmF1dGhvci0+WzBdLCAnYXV0aG9yJyk7CitvayghJGRvYy0+YXV0aG9yLCAnYXV0aG9yJyk7CiAKICMgQWRkaXRpb25hbCBpbmZvcm1hdGlvbgogb2soISRkb2MtPmVkaXRvciwgJ0VkaXRvcicpOwogb2soISRkb2MtPnB1Ymxpc2hlciwgJ1B1Ymxpc2hlcicpOwogaXMoJGRvYy0+Y3JlYXRpb25fZGF0ZSwgIjIwMDAwMTI5IiwgJ0NyZWF0aW9uIGRhdGUnKTsKLW9rKCEkZG9jLT5jb2xsX3RpdGxlLCAnQ29sbGVjdGlvbiB0aXRsZScpOwotb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOwotb2soISRkb2MtPmNvbGxfZWRpdG9yLCAnQ29sbGVjdGlvbiBlZGl0b3InKTsKLW9rKCEkZG9jLT5jb2xsX2F1dGhvciwgJ0NvbGxlY3Rpb24gYXV0aG9yJyk7Cisjb2soISRkb2MtPmNvbGxfdGl0bGUsICdDb2xsZWN0aW9uIHRpdGxlJyk7Cisjb2soISRkb2MtPmNvbGxfc3ViX3RpdGxlLCAnQ29sbGVjdGlvbiBzdWJ0aXRsZScpOworI29rKCEkZG9jLT5jb2xsX2VkaXRvciwgJ0NvbGxlY3Rpb24gZWRpdG9yJyk7Cisjb2soISRkb2MtPmNvbGxfYXV0aG9yLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKIG9rKCEkZG9jLT50ZXh0X3R5cGUsICd0ZXh0X3R5cGUnKTsKIGlzKCRkb2MtPnRleHRfdHlwZV9hcnQsICdCZXJpY2h0JywgJ3RleHRfdHlwZSBhcnQnKTsKIAorCiAjIEFSVAogJHBhdGggPSBjYXRkaXIoZGlybmFtZShfX0ZJTEVfXyksICdhcnRpZmljaWFsJyk7CiBvaygkZG9jID0gS29yQVA6OkRvY3VtZW50LT5uZXcoIHBhdGggPT4gJHBhdGggLiAnLycgKSwgJ0xvYWQgS29yYXA6OkRvY3VtZW50Jyk7Ci1pcygkZG9jLT5wYXRoLCAkcGF0aCAuICcvJywgJ1BhdGgnKTsKKyNpcygkZG9jLT5wYXRoLCAkcGF0aCAuICcvJywgJ1BhdGgnKTsKIAogb2soJGRvYyA9IEtvckFQOjpEb2N1bWVudC0+bmV3KCBwYXRoID0+ICRwYXRoICksICdMb2FkIEtvcmFwOjpEb2N1bWVudCcpOwotaXMoJGRvYy0+cGF0aCwgJHBhdGggLiAnLycsICdQYXRoJyk7CisjaXMoJGRvYy0+cGF0aCwgJHBhdGggLiAnLycsICdQYXRoJyk7CiAKIG9rKCRkb2MtPnBhcnNlLCAnUGFyc2UgZG9jdW1lbnQnKTsKIApAQCAtMjY4LDIxICsyODIsMTE5IEBACiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMF0sICdmcmVpemVpdC11bnRlcmhhbHR1bmcnLCAnVGV4dENsYXNzJyk7CiBpcygkZG9jLT50ZXh0X2NsYXNzLT5bMV0sICd2ZXJlaW5lLXZlcmFuc3RhbHR1bmdlbicsICdUZXh0Q2xhc3MnKTsKIG9rKCEkZG9jLT50ZXh0X2NsYXNzLT5bMl0sICdUZXh0Q2xhc3MnKTsKLWlzKCRkb2MtPmF1dGhvci0+WzBdLCAnUnVydScsICdhdXRob3InKTsKLWlzKCRkb2MtPmF1dGhvci0+WzFdLCAnSmVucy5PbCcsICdhdXRob3InKTsKLWlzKCRkb2MtPmF1dGhvci0+WzJdLCAnQWdsYXJlY2gnLCAnYXV0aG9yJyk7Ci1vayghJGRvYy0+YXV0aG9yLT5bM10sICdhdXRob3InKTsKKyNpcygkZG9jLT5hdXRob3ItPlswXSwgJ1J1cnUnLCAnYXV0aG9yJyk7CisjaXMoJGRvYy0+YXV0aG9yLT5bMV0sICdKZW5zLk9sJywgJ2F1dGhvcicpOworI2lzKCRkb2MtPmF1dGhvci0+WzJdLCAnQWdsYXJlY2gnLCAnYXV0aG9yJyk7CitpcygkZG9jLT5hdXRob3IsICdSdXJ1OyBKZW5zLk9sOyBBZ2xhcmVjaDsgdS5hLicsICdhdXRob3InKTsKIAogIyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uCiBpcygkZG9jLT5lZGl0b3IsICdOaWxzIERpZXdhbGQnLCAnRWRpdG9yJyk7CiBpcygkZG9jLT5wdWJsaXNoZXIsICdBcnRpZmljaWFsIGFydGljbGVzIEluYy4nLCAnUHVibGlzaGVyJyk7CiBpcygkZG9jLT5jcmVhdGlvbl9kYXRlLCAnMTk5OTA2MDEnLCAnQ3JlYXRpb24gZGF0ZScpOwotaXMoJGRvYy0+Y29sbF90aXRsZSwgJ0FydGlmaWNpYWwgYXJ0aWNsZXMnLCAnQ29sbGVjdGlvbiB0aXRsZScpOwotaXMoJGRvYy0+Y29sbF9zdWJfdGl0bGUsICdCZXN0IG9mIScsICdDb2xsZWN0aW9uIHN1YnRpdGxlJyk7Ci1pcygkZG9jLT5jb2xsX2VkaXRvciwgJ05pbHMgRGlld2FsZCcsICdDb2xsZWN0aW9uIGVkaXRvcicpOwotaXMoJGRvYy0+Y29sbF9hdXRob3IsICdOaWxzIERpZXdhbGQnLCAnQ29sbGVjdGlvbiBhdXRob3InKTsKKyNpcygkZG9jLT5jb2xsX3RpdGxlLCAnQXJ0aWZpY2lhbCBhcnRpY2xlcycsICdDb2xsZWN0aW9uIHRpdGxlJyk7CisjaXMoJGRvYy0+Y29sbF9zdWJfdGl0bGUsICdCZXN0IG9mIScsICdDb2xsZWN0aW9uIHN1YnRpdGxlJyk7CisjaXMoJGRvYy0+Y29sbF9lZGl0b3IsICdOaWxzIERpZXdhbGQnLCAnQ29sbGVjdGlvbiBlZGl0b3InKTsKKyNpcygkZG9jLT5jb2xsX2F1dGhvciwgJ05pbHMgRGlld2FsZCcsICdDb2xsZWN0aW9uIGF1dGhvcicpOwogaXMoJGRvYy0+dGV4dF90eXBlLCAnWmVpdHVuZzogVGFnZXN6ZWl0dW5nJywgJ05vIHRleHRfdHlwZScpOwogaXMoJGRvYy0+dGV4dF90eXBlX2FydCwgJ0JlcmljaHQnLCAndGV4dF90eXBlIGFydCcpOwogCisjIE11bHRpcGF0aCBoZWFkZXJzCiskcGF0aCA9IGNhdGRpcihkaXJuYW1lKF9fRklMRV9fKSwgJ1ZESS9KQU4vMDAwMDEnKTsKK29rKCRkb2MgPSBLb3JBUDo6RG9jdW1lbnQtPm5ldyggcGF0aCA9PiAkcGF0aCAuICcvJyApLCAnTG9hZCBLb3JhcDo6RG9jdW1lbnQnKTsKK2xpa2UoJGRvYy0+cGF0aCwgcXIhJHBhdGgvISwgJ1BhdGgnKTsKKworb2soJGRvYyA9IEtvckFQOjpEb2N1bWVudC0+bmV3KCBwYXRoID0+ICRwYXRoICksICdMb2FkIEtvcmFwOjpEb2N1bWVudCcpOworbGlrZSgkZG9jLT5wYXRoLCBxciEkcGF0aC8kISwgJ1BhdGgnKTsKKworb2soJGRvYy0+cGFyc2UsICdQYXJzZSBkb2N1bWVudCcpOworaXMoJGRvYy0+dGV4dF9zaWdsZSwgJ1ZESV9KQU4uMDAwMDEnLCAndGV4dCBzaWdsZScpOworaXMoJGRvYy0+ZG9jX3NpZ2xlLCAnVkRJX0pBTicsICdkb2Mgc2lnbGUnKTsKK2lzKCRkb2MtPmNvcnB1c19zaWdsZSwgJ1ZESScsICdjb3JwdXMgc2lnbGUnKTsKK2lzKCRkb2MtPnRpdGxlLCAnMTAtIFp6IG1pdCBaYWhsJywgJ3RpdGxlJyk7CitvayghJGRvYy0+c3ViX3RpdGxlLCAnc3VidGl0bGUnKTsKK2lzKCRkb2MtPnB1Yl9kYXRlLCAnMjAxNDAxMTcnLCAncHViZGF0ZScpOworaXMoJGRvYy0+cHViX3BsYWNlLCAnRMO8c3NlbGRvcmYnLCAncHVicGxhY2UnKTsKK2lzKCRkb2MtPmF1dGhvciwgJ1dpbmRow7Z2ZWwsIEtlcnN0aW4nLCAnYXV0aG9yJyk7CitpcygkZG9jLT5wdWJsaXNoZXIsICdWREkgVmVybGFnIEdtYkgnLCAncHVibGlzaGVyJyk7CitvayghJGRvYy0+ZWRpdG9yLCAnZWRpdG9yJyk7CisKK29rKCEkZG9jLT50ZXh0X3R5cGUsICd0ZXh0IHR5cGUnKTsKK29rKCEkZG9jLT50ZXh0X3R5cGVfYXJ0LCAndGV4dCB0eXBlIGFydCcpOworb2soISRkb2MtPnRleHRfdHlwZV9yZWYsICd0ZXh0IHR5cGUgcmVmJyk7CitvayghJGRvYy0+dGV4dF9jb2x1bW4sICd0ZXh0IGNvbHVtbicpOworb2soISRkb2MtPnRleHRfZG9tYWluLCAndGV4dCBkb21haW4nKTsKK29rKCEkZG9jLT5jcmVhdGlvbl9kYXRlLCAnY3JlYXRpb24gZGF0ZScpOworb2soISRkb2MtPmxpY2Vuc2UsICdMaWNlbnNlJyk7CitvayghJGRvYy0+cGFnZXMsICdQYWdlcycpOworb2soISRkb2MtPmZpbGVfZWRpdGlvbl9zdGF0ZW1lbnQsICdmaWxlIGVkaXRpb24gc3RhdGVtZW50Jyk7CitvayghJGRvYy0+YmlibF9lZGl0aW9uX3N0YXRlbWVudCwgJ2JpYmwgZWRpdGlvbiBzdGF0ZW1lbnQnKTsKK2lzKCRkb2MtPnJlZmVyZW5jZSwgJ1ZESSBuYWNocmljaHRlbiwgMTcuMDEuMjAxNCwgUy4gMTA7IDEwLSBaeiBtaXQgWmFobCBbQXVzZsO8aHJsaWNoZSBaaXRpZXJ1bmcgbmljaHQgdmVyZsO8Z2Jhcl0nLCAnUmVmZXJlbmNlJyk7CisKK29rKCEkZG9jLT5sYW5ndWFnZSwgJ0xhbmd1YWdlJyk7CitkaWFnICdUaGlzIG1heSBiZSAiZGUiIGluIHRoZSBmdXR1cmUnOworCitpcygkZG9jLT5kb2NfdGl0bGUsICdWREkgbmFjaHJpY2h0ZW4sIEphbnVhciAyMDE0JywgJ0RvYyB0aXRsZScpOworb2soISRkb2MtPmRvY19zdWJfdGl0bGUsICdEb2MgU3ViIHRpdGxlJyk7CitvayghJGRvYy0+ZG9jX2VkaXRvciwgJ0RvYyBlZGl0b3InKTsKK29rKCEkZG9jLT5kb2NfYXV0aG9yLCAnRG9jIGF1dGhvcicpOworCitpcygkZG9jLT5jb3JwdXNfdGl0bGUsICdWREkgbmFjaHJpY2h0ZW4gMjAxNCcsICdDb3JwdXMgdGl0bGUnKTsKK29rKCEkZG9jLT5jb3JwdXNfc3ViX3RpdGxlLCAnQ29ycHVzIFN1YiB0aXRsZScpOworb2soISRkb2MtPmNvcnB1c19lZGl0b3IsICdDb3JwdXMgZWRpdG9yJyk7CitvayghJGRvYy0+Y29ycHVzX2F1dGhvciwgJ0NvcnB1cyBhdXRob3InKTsKKworaXMoJGRvYy0+a2V5d29yZHNfc3RyaW5nLCAnJywgJ0tleXdvcmRzJyk7CitpcygkZG9jLT50ZXh0X2NsYXNzX3N0cmluZywgJ0ZyZWl6ZWl0LVVudGVyaGFsdHVuZyBSZWlzZW4gUG9saXRpayBBdXNsYW5kJywgJ1RleHQgY2xhc3MnKTsKKworCisjIFdERAorJHBhdGggPSBjYXRkaXIoZGlybmFtZShfX0ZJTEVfXyksICdXREQvRzI3LzM4OTg5Jyk7CitvaygkZG9jID0gS29yQVA6OkRvY3VtZW50LT5uZXcoIHBhdGggPT4gJHBhdGggLiAnLycgKSwgJ0xvYWQgS29yYXA6OkRvY3VtZW50Jyk7CitsaWtlKCRkb2MtPnBhdGgsIHFyISRwYXRoLyEsICdQYXRoJyk7CitvaygkZG9jLT5wYXJzZSwgJ1BhcnNlIGRvY3VtZW50Jyk7CisKK2lzKCRkb2MtPnRleHRfc2lnbGUsICdXREQxMV9HMjcuMzg5ODknLCAndGV4dCBzaWdsZScpOworaXMoJGRvYy0+ZG9jX3NpZ2xlLCAnV0REMTFfRzI3JywgJ2RvYyBzaWdsZScpOworaXMoJGRvYy0+Y29ycHVzX3NpZ2xlLCAnV0REMTEnLCAnY29ycHVzIHNpZ2xlJyk7CisKK2lzKCRkb2MtPnRpdGxlLCAnRGlza3Vzc2lvbjpHdW50ZXIgQS4gUGlseicsICd0aXRsZScpOworb2soISRkb2MtPnN1Yl90aXRsZSwgJ3N1YnRpdGxlJyk7CitpcygkZG9jLT5wdWJfZGF0ZSwgJzIwMTExMDI5JywgJ3B1YmRhdGUnKTsKK2lzKCRkb2MtPnB1Yl9wbGFjZSwgJ1VSTDpodHRwOi8vZGUud2lraXBlZGlhLm9yZycsICdwdWJwbGFjZScpOworCitpcygkZG9jLT5hdXRob3IsICfigqxwYSwgdS5hLicsICdhdXRob3InKTsKK2lzKCRkb2MtPnB1Ymxpc2hlciwgJ1dpa2lwZWRpYScsICdwdWJsaXNoZXInKTsKK29rKCEkZG9jLT5lZGl0b3IsICdlZGl0b3InKTsKKworaXMoJGRvYy0+dGV4dF90eXBlLCAnRGlza3Vzc2lvbmVuIHp1IEVuenlrbG9ww6RkaWUtQXJ0aWtlbG4nLCAndGV4dCB0eXBlJyk7CitvayghJGRvYy0+dGV4dF90eXBlX2FydCwgJ3RleHQgdHlwZSBhcnQnKTsKK29rKCEkZG9jLT50ZXh0X3R5cGVfcmVmLCAndGV4dCB0eXBlIHJlZicpOworb2soISRkb2MtPnRleHRfY29sdW1uLCAndGV4dCBjb2x1bW4nKTsKK29rKCEkZG9jLT50ZXh0X2RvbWFpbiwgJ3RleHQgZG9tYWluJyk7CisKK2lzKCRkb2MtPmNyZWF0aW9uX2RhdGUsICcyMDA3MDcwNycsICdjcmVhdGlvbiBkYXRlJyk7CitpcygkZG9jLT5saWNlbnNlLCAnQ0MtQlktU0EnLCAnTGljZW5zZScpOworb2soISRkb2MtPnBhZ2VzLCAnUGFnZXMnKTsKK29rKCEkZG9jLT5maWxlX2VkaXRpb25fc3RhdGVtZW50LCAnZmlsZSBlZGl0aW9uIHN0YXRlbWVudCcpOworb2soISRkb2MtPmJpYmxfZWRpdGlvbl9zdGF0ZW1lbnQsICdiaWJsIGVkaXRpb24gc3RhdGVtZW50Jyk7CitpcygkZG9jLT5yZWZlcmVuY2UsICdEaXNrdXNzaW9uOkd1bnRlciBBLiBQaWx6LCBJbjogV2lraXBlZGlhIC0gVVJMOmh0dHA6Ly9kZS53aWtpcGVkaWEub3JnL3dpa2kvRGlza3Vzc2lvbjpHdW50ZXJfQS5fUGlsejogV2lraXBlZGlhLCAyMDA3JywgJ1JlZmVyZW5jZScpOworCitpcygkZG9jLT5sYW5ndWFnZSwgJ2RlJywgJ0xhbmd1YWdlJyk7CisKK2lzKCRkb2MtPmRvY190aXRsZSwgJ1dpa2lwZWRpYSwgRGlza3Vzc2lvbmVuIHp1IEFydGlrZWxuIG1pdCBBbmZhbmdzYnVjaHN0YWJlIEcsIFRlaWwgMjcnLCAnRG9jIHRpdGxlJyk7CitvayghJGRvYy0+ZG9jX3N1Yl90aXRsZSwgJ0RvYyBTdWIgdGl0bGUnKTsKK29rKCEkZG9jLT5kb2NfZWRpdG9yLCAnRG9jIGVkaXRvcicpOworb2soISRkb2MtPmRvY19hdXRob3IsICdEb2MgYXV0aG9yJyk7CisKK2lzKCRkb2MtPmNvcnB1c190aXRsZSwgJ1dpa2lwZWRpYS5kZSAyMDExIERpc2t1c3Npb25lbicsICdDb3JwdXMgdGl0bGUnKTsKK29rKCEkZG9jLT5jb3JwdXNfc3ViX3RpdGxlLCAnQ29ycHVzIFN1YiB0aXRsZScpOworb2soISRkb2MtPmNvcnB1c19lZGl0b3IsICdDb3JwdXMgZWRpdG9yJyk7CitvayghJGRvYy0+Y29ycHVzX2F1dGhvciwgJ0NvcnB1cyBhdXRob3InKTsKKworaXMoJGRvYy0+a2V5d29yZHNfc3RyaW5nLCAnJywgJ0tleXdvcmRzJyk7CitpcygkZG9jLT50ZXh0X2NsYXNzX3N0cmluZywgJycsICdUZXh0IGNsYXNzJyk7CisKIGRvbmVfdGVzdGluZzsKIF9fRU5EX18KKworCmRpZmYgLS1naXQgYS90L3JlYWxfYnprLnQgYi90L3JlYWxfYnprLnQKaW5kZXggZDAzM2U3Ny4uYTU5MGQ0NCAxMDA2NDQKLS0tIGEvdC9yZWFsX2J6ay50CisrKyBiL3QvcmVhbF9iemsudApAQCAtNjMsNyArNjMsNyBAQAogb2soISRkb2MtPmNvcnB1c19hdXRob3IsICdDb3JyZWN0IENvcnB1cyBhdXRob3InKTsKIG9rKCEkZG9jLT5jb3JwdXNfZWRpdG9yLCAnQ29ycmVjdCBDb3JwdXMgZWRpdG9yJyk7CiAKLWlzKCRkb2MtPmRvY190aXRsZSwgJ05ldWVzIERldXRzY2hsYW5kJywgJ0NvcnJlY3QgRG9jIHRpdGxlJyk7CitpcygkZG9jLT5kb2NfdGl0bGUsICdOZXVlcyBEZXV0c2NobGFuZCwgSmFocmdhbmdzcXVlcnNjaG5pdHQgMTk1OScsICdDb3JyZWN0IERvYyB0aXRsZScpOwogaXMoJGRvYy0+ZG9jX3N1Yl90aXRsZSwgJ09yZ2FuIGRlcyBaZW50cmFsa29taXRlZXMgZGVyIFNvemlhbGlzdGlzY2hlbiBFaW5oZWl0c3BhcnRlaSBEZXV0c2NobGFuZHMnLCAnQ29ycmVjdCBEb2Mgc3ViIHRpdGxlJyk7CiBvayghJGRvYy0+ZG9jX2F1dGhvciwgJ0NvcnJlY3QgRG9jIGF1dGhvcicpOwogb2soISRkb2MtPmRvY19lZGl0b3IsICdDb3JyZWN0IGRvYyBlZGl0b3InKTsKQEAgLTEyNyw3ICsxMjcsNyBAQAogb2soIWV4aXN0cyAkb3V0cHV0LT57Y29ycHVzQXV0aG9yfSwgJ0NvcnJlY3QgQ29ycHVzIGF1dGhvcicpOwogb2soIWV4aXN0cyAkb3V0cHV0LT57Y29ycHVzRWRpdG9yfSwgJ0NvcnJlY3QgQ29ycHVzIGVkaXRvcicpOwogCi1pcygkb3V0cHV0LT57ZG9jVGl0bGV9LCAnTmV1ZXMgRGV1dHNjaGxhbmQnLCAnQ29ycmVjdCBEb2MgdGl0bGUnKTsKK2lzKCRvdXRwdXQtPntkb2NUaXRsZX0sICdOZXVlcyBEZXV0c2NobGFuZCwgSmFocmdhbmdzcXVlcnNjaG5pdHQgMTk1OScsICdDb3JyZWN0IERvYyB0aXRsZScpOwogaXMoJG91dHB1dC0+e2RvY1N1YlRpdGxlfSwgJ09yZ2FuIGRlcyBaZW50cmFsa29taXRlZXMgZGVyIFNvemlhbGlzdGlzY2hlbiBFaW5oZWl0c3BhcnRlaSBEZXV0c2NobGFuZHMnLCAnQ29ycmVjdCBEb2Mgc3ViIHRpdGxlJyk7CiBvayghZXhpc3RzICRvdXRwdXQtPntkb2NBdXRob3J9LCAnQ29ycmVjdCBEb2MgYXV0aG9yJyk7CiBvayghZXhpc3RzICRvdXRwdXQtPntkb2NFZGl0b3J9LCAnQ29ycmVjdCBkb2MgZWRpdG9yJyk7CmRpZmYgLS1naXQgYS90L3JlYWxfZ29ldGhlLnQgYi90L3JlYWxfZ29ldGhlLnQKaW5kZXggODc4NjA3Yi4uOWVmZTRjNSAxMDA2NDQKLS0tIGEvdC9yZWFsX2dvZXRoZS50CisrKyBiL3QvcmVhbF9nb2V0aGUudApAQCAtNTMsNyArNTMsNyBAQAogUkVGCiBpcygkZG9jLT5sYW5ndWFnZSwgJ2RlJywgJ0xhbmd1YWdlJyk7CiAKLWlzKCRkb2MtPmNvcnB1c190aXRsZSwgJ0dvZXRoZXMgV2Vya2UnLCAnQ29ycmVjdCBDb3JwdXMgdGl0bGUnKTsKK2lzKCRkb2MtPmNvcnB1c190aXRsZSwgJ0dvZXRoZS1Lb3JwdXMnLCAnQ29ycmVjdCBDb3JwdXMgdGl0bGUnKTsKIG9rKCEkZG9jLT5jb3JwdXNfc3ViX3RpdGxlLCAnQ29ycmVjdCBDb3JwdXMgU3ViIHRpdGxlJyk7CiBpcygkZG9jLT5jb3JwdXNfYXV0aG9yLCAnR29ldGhlLCBKb2hhbm4gV29sZmdhbmcgdm9uJywgJ0NvcnJlY3QgQ29ycHVzIGF1dGhvcicpOwogaXMoJGRvYy0+Y29ycHVzX2VkaXRvciwgJ1RydW56LCBFcmljaCcsICdDb3JyZWN0IENvcnB1cyBlZGl0b3InKTsKQEAgLTY0LDcgKzY0LDYgQEAKIG9rKCEkZG9jLT5kb2NfYXV0aG9yLCAnQ29ycmVjdCBEb2MgYXV0aG9yJyk7CiBvayghJGRvYy0+ZG9jX2VkaXRvciwgJ0NvcnJlY3QgRG9jIGVkaXRvcicpOwogCi0KICMgVG9rZW5pemF0aW9uCiB1c2Vfb2soJ0tvckFQOjpUb2tlbml6ZXInKTsKIApAQCAtMTIwLDcgKzExOSw3IEBACiBSRUYKIGlzKCRvdXRwdXQtPntsYW5ndWFnZX0sICdkZScsICdMYW5ndWFnZScpOwogCi1pcygkb3V0cHV0LT57Y29ycHVzVGl0bGV9LCAnR29ldGhlcyBXZXJrZScsICdDb3JyZWN0IENvcnB1cyB0aXRsZScpOworaXMoJG91dHB1dC0+e2NvcnB1c1RpdGxlfSwgJ0dvZXRoZS1Lb3JwdXMnLCAnQ29ycmVjdCBDb3JwdXMgdGl0bGUnKTsKIG9rKCFleGlzdHMgJG91dHB1dC0+e2NvcnB1c1N1YlRpdGxlfSwgJ0NvcnJlY3QgVGV4dCBUeXBlJyk7CiBpcygkb3V0cHV0LT57Y29ycHVzQXV0aG9yfSwgJ0dvZXRoZSwgSm9oYW5uIFdvbGZnYW5nIHZvbicsICdDb3JyZWN0IENvcnB1cyB0aXRsZScpOwogaXMoJG91dHB1dC0+e2NvcnB1c0VkaXRvcn0sICdUcnVueiwgRXJpY2gnLCAnRWRpdG9yJyk7CmRpZmYgLS1naXQgYS90L3RyYW5zZm9ybS50IGIvdC90cmFuc2Zvcm0udAppbmRleCA1MGNkMmQ3Li43ODMwNDJkIDEwMDY0NAotLS0gYS90L3RyYW5zZm9ybS50CisrKyBiL3QvdHJhbnNmb3JtLnQKQEAgLTE0LDYgKzE0LDE2IEBACiAKIHVzZV9vaygnS29yQVA6OkRvY3VtZW50Jyk7CiAKK3N1YiBfdDJoIHsKKyAgbXkgJHN0cmluZyA9IHNoaWZ0OworICAkc3RyaW5nID1+IHMvXlxbXChcZCs/LVxkKz9cKSguKz8pXF0kLyQxLzsKKyAgbXkgJWhhc2ggPSAoKTsKKyAgZm9yZWFjaCAoc3BsaXQocXIhXHwhLCAkc3RyaW5nKSkgeworICAgICRoYXNoeyRffSA9IDE7CisgIH07CisgIHJldHVybiBcJWhhc2g7Cit9OworCiBteSBAbGF5ZXJzOwogIyBwdXNoKEBsYXllcnMsIFsnQmFzZScsICdTZW50ZW5jZXMnXSk7CiBwdXNoKEBsYXllcnMsIFsnQmFzZScsICdQYXJhZ3JhcGhzJ10pOwpAQCAtNTAsMTAgKzYwLDEwIEBACiAKIG15ICRwYXRoID0gY2F0ZGlyKGRpcm5hbWUoX19GSUxFX18pLCAnV1BELzAwMDAxJyk7CiBvayhteSAkZG9jID0gS29yQVA6OkRvY3VtZW50LT5uZXcoIHBhdGggPT4gJHBhdGggLiAnLycgKSwgJ0xvYWQgS29yYXA6OkRvY3VtZW50Jyk7Ci1pcygkZG9jLT5wYXRoLCAkcGF0aCAuICcvJywgJ1BhdGgnKTsKK2xpa2UoJGRvYy0+cGF0aCwgcXIhJHBhdGgvJCEsICdQYXRoJyk7CiAKIG9rKCRkb2MgPSBLb3JBUDo6RG9jdW1lbnQtPm5ldyggcGF0aCA9PiAkcGF0aCApLCAnTG9hZCBLb3JhcDo6RG9jdW1lbnQnKTsKLWlzKCRkb2MtPnBhdGgsICRwYXRoIC4gJy8nLCAnUGF0aCcpOworbGlrZSgkZG9jLT5wYXRoLCBxciEkcGF0aC8kISwgJ1BhdGgnKTsKIAogb2soJGRvYy0+cGFyc2UsICdQYXJzZSBkb2N1bWVudCcpOwogCkBAIC03MCwxMCArODAsMTEgQEAKIGlzKCRkb2MtPnRleHRfY2xhc3MtPlsyXSwgJ3dpc3NlbnNjaGFmdCcsICdUZXh0Q2xhc3MnKTsKIGlzKCRkb2MtPnRleHRfY2xhc3MtPlszXSwgJ3BvcHVsYWVyd2lzc2Vuc2NoYWZ0JywgJ1RleHRDbGFzcycpOwogb2soISRkb2MtPnRleHRfY2xhc3MtPls0XSwgJ1RleHRDbGFzcycpOwotaXMoJGRvYy0+YXV0aG9yLT5bMF0sICdSdXJ1JywgJ2F1dGhvcicpOwotaXMoJGRvYy0+YXV0aG9yLT5bMV0sICdKZW5zLk9sJywgJ2F1dGhvcicpOwotaXMoJGRvYy0+YXV0aG9yLT5bMl0sICdBZ2xhcmVjaCcsICdhdXRob3InKTsKLW9rKCEkZG9jLT5hdXRob3ItPlszXSwgJ2F1dGhvcicpOworaXMoJGRvYy0+YXV0aG9yLCAnUnVydTsgSmVucy5PbDsgQWdsYXJlY2g7IHUuYS4nLCAnYXV0aG9yJyk7CisjaXMoJGRvYy0+YXV0aG9yLT5bMF0sICdSdXJ1JywgJ2F1dGhvcicpOworI2lzKCRkb2MtPmF1dGhvci0+WzFdLCAnSmVucy5PbCcsICdhdXRob3InKTsKKyNpcygkZG9jLT5hdXRob3ItPlsyXSwgJ0FnbGFyZWNoJywgJ2F1dGhvcicpOworI29rKCEkZG9jLT5hdXRob3ItPlszXSwgJ2F1dGhvcicpOwogCiAjIEdldCB0b2tlbnMKIHVzZV9vaygnS29yQVA6OlRva2VuaXplcicpOwpAQCAtODcsNyArOTgsNyBAQAogKSwgJ05ldyBUb2tlbml6ZXInKTsKIG9rKCR0b2tlbnMtPnBhcnNlLCAnUGFyc2UnKTsKIAotaXMoJHRva2Vucy0+cGF0aCwgJHBhdGggLiAnLycsICdQYXRoJyk7CitsaWtlKCR0b2tlbnMtPnBhdGgsIHFyISRwYXRoLyQhLCAnUGF0aCcpOwogaXMoJHRva2Vucy0+Zm91bmRyeSwgJ09wZW5OTFAnLCAnRm91bmRyeScpOwogaXMoJHRva2Vucy0+ZG9jLT50ZXh0X3NpZ2xlLCAnV1BEX0FBQS4wMDAwMScsICdEb2MgaWQnKTsKIGlzKCR0b2tlbnMtPnNob3VsZCwgMTA2OCwgJ1Nob3VsZCcpOwpAQCAtOTUsMjMgKzEwNiwzOCBAQAogaXMoJHRva2Vucy0+bmFtZSwgJ3Rva2VucycsICdOYW1lJyk7CiBpcygkdG9rZW5zLT5sYXllciwgJ1Rva2VucycsICdMYXllcicpOwogCi1pcygkdG9rZW5zLT5zdHJlYW0tPnBvcygxMTgpLT50b19zdHJpbmcsICdbKDc2My03NjgpczpMaW5pZXxpOmxpbmllfF8xMTgjNzYzLTc2OF0nLCAnVG9rZW4gaXMgY29ycmVjdCcpOworaXNfZGVlcGx5KF90MmgoJHRva2Vucy0+c3RyZWFtLT5wb3MoMTE4KS0+dG9fc3RyaW5nKSwKKyAgIF90MmgoJ1soNzYzLTc2OClzOkxpbmllfGk6bGluaWV8XzExOCM3NjMtNzY4XScpLAorICAgJ1Rva2VuIGlzIGNvcnJlY3QnKTsKIAogIyBBZGQgTWF0ZQogb2soJHRva2Vucy0+YWRkKCdNYXRlJywgJ01vcnBobycpLCAnQWRkIE1hdGUnKTsKIAotaXMoJHRva2Vucy0+c3RyZWFtLT5wb3MoMTE4KS0+dG9fc3RyaW5nLCAnWyg3NjMtNzY4KXM6TGluaWV8aTpsaW5pZXxfMTE4Izc2My03Njh8bWF0ZS9sOmxpbmllfG1hdGUvcDpOTnxtYXRlL206Y2FzZTphY2N8bWF0ZS9tOm51bWJlcjpzZ3xtYXRlL206Z2VuZGVyOmZlbV0nLCAnd2l0aCBNYXRlJyk7Citpc19kZWVwbHkoCisgIF90MmgoJHRva2Vucy0+c3RyZWFtLT5wb3MoMTE4KS0+dG9fc3RyaW5nKSwKKyAgX3QyaCgnWyg3NjMtNzY4KXM6TGluaWV8aTpsaW5pZXxfMTE4Izc2My03Njh8bWF0ZS9sOmxpbmllfG1hdGUvcDpOTnxtYXRlL206Y2FzZTphY2N8bWF0ZS9tOm51bWJlcjpzZ3xtYXRlL206Z2VuZGVyOmZlbV0nKSwKKyAgJ3dpdGggTWF0ZScpOwogCiAjIEFkZCBzZW50ZW5jZXMKIG9rKCR0b2tlbnMtPmFkZCgnQmFzZScsICdTZW50ZW5jZXMnKSwgJ0FkZCBTZW50ZW5jZXMnKTsKIAotaXMoJHRva2Vucy0+c3RyZWFtLT5wb3MoMCktPnRvX3N0cmluZywgJ1soMC0xKXM6QXxpOmF8XzAjMC0xfC06dG9rZW5zJDxpPjkyM3xtYXRlL3A6WFl8PD46YmFzZS9zOnMjMC03NCQ8aT4xM3w8PjpiYXNlL3M6dCMwLTYwODMkPGk+OTIzfC06YmFzZS9zZW50ZW5jZXMkPGk+OTZdJywgJ1N0YXJ0aW5mbycpOworaXNfZGVlcGx5KAorICBfdDJoKCR0b2tlbnMtPnN0cmVhbS0+cG9zKDApLT50b19zdHJpbmcpLAorICBfdDJoKCdbKDAtMSlzOkF8aTphfF8wIzAtMXwtOnRva2VucyQ8aT45MjN8bWF0ZS9wOlhZfDw+OmJhc2UvczpzIzAtNzQkPGk+MTM8Yj4yfDw+OmJhc2Uvczp0IzAtNjA4MyQ8aT45MjM8Yj4wfC06YmFzZS9zZW50ZW5jZXMkPGk+OTZdJyksCisgICdTdGFydGluZm8nCispOwogCiBmb3JlYWNoIChAbGF5ZXJzKSB7CiAgIG9rKCR0b2tlbnMtPmFkZChAJF8pLCAnQWRkICcuIGpvaW4oJywgJywgQCRfKSk7CiB9OwogCi1pcygkdG9rZW5zLT5zdHJlYW0tPnBvcygwKS0+dG9fc3RyaW5nLCAnWygwLTEpczpBfGk6YXxfMCMwLTF8LTp0b2tlbnMkPGk+OTIzfG1hdGUvcDpYWXw8PjpiYXNlL3M6cyMwLTc0JDxpPjEzfDw+OmJhc2Uvczp0IzAtNjA4MyQ8aT45MjN8LTpiYXNlL3NlbnRlbmNlcyQ8aT45Nnw8PjpiYXNlL3M6cCMwLTIyNCQ8aT4zNHwtOmJhc2UvcGFyYWdyYXBocyQ8aT43NnxvcGVubmxwL3A6TkV8PD46b3Blbm5scC9zOnMjMC03NCQ8aT4xM3wtOm9wZW5ubHAvc2VudGVuY2VzJDxpPjUwfDw+OmNvcmVubHAvczpzIzAtNiQ8aT4yfC06Y29yZW5scC9zZW50ZW5jZXMkPGk+NjV8Y254L2w6QXxjbngvcDpOfGNueC9zeW46QE5IfDw+OmNueC9jOm5wIzAtMSQ8aT4xfDw+OmNueC9zOnMjMC03NCQ8aT4xM3wtOmNueC9zZW50ZW5jZXMkPGk+NjJ8dHQvbDpBfHR0L3A6Tk58dHQvbDpBfHR0L3A6Rk18PD46dHQvczpzIzAtNjA4MyQ8aT45MjN8LTp0dC9zZW50ZW5jZXMkPGk+MXw+Om1hdGUvZDpQTkMkPGk+Mnx4aXAvcDpTWU1CT0x8eGlwL2w6QXw8Pjp4aXAvYzpUT1AjMC03NCQ8aT4xM3w8Pjp4aXAvYzpNQyMwLTczJDxpPjEzPGI+MXw8Pjp4aXAvYzpOUCMwLTEkPGk+MTxiPjJ8PD46eGlwL2M6TlBBIzAtMSQ8aT4xPGI+M3w8Pjp4aXAvYzpOT1VOIzAtMSQ8aT4xPGI+NHw8Pjp4aXAvYzpTWU1CT0wjMC0xJDxpPjE8Yj41fD46eGlwL2Q6U1VCSiQ8aT4zfDw6eGlwL2Q6Q09PUkQkPGk+MXw8Pjp4aXAvczpzIzAtNzQkPGk+MTN8LTp4aXAvc2VudGVuY2VzJDxpPjY0XScsICdTdGFydGluZm8nKTsKK2lzKAorICBfdDJoKCR0b2tlbnMtPnN0cmVhbS0+cG9zKDApLT50b19zdHJpbmcpLAorICBfdDJoKCdbKDAtMSlzOkF8aTphfF8wIzAtMXwtOnRva2VucyQ8aT45MjN8bWF0ZS9wOlhZfDw+OmJhc2UvczpzIzAtNzQkPGk+MTN8PD46YmFzZS9zOnQjMC02MDgzJDxpPjkyM3wtOmJhc2Uvc2VudGVuY2VzJDxpPjk2fDw+OmJhc2UvczpwIzAtMjI0JDxpPjM0fC06YmFzZS9wYXJhZ3JhcGhzJDxpPjc2fG9wZW5ubHAvcDpORXw8PjpvcGVubmxwL3M6cyMwLTc0JDxpPjEzfC06b3Blbm5scC9zZW50ZW5jZXMkPGk+NTB8PD46Y29yZW5scC9zOnMjMC02JDxpPjJ8LTpjb3JlbmxwL3NlbnRlbmNlcyQ8aT42NXxjbngvbDpBfGNueC9wOk58Y254L3N5bjpATkh8PD46Y254L2M6bnAjMC0xJDxpPjF8PD46Y254L3M6cyMwLTc0JDxpPjEzfC06Y254L3NlbnRlbmNlcyQ8aT42Mnx0dC9sOkF8dHQvcDpOTnx0dC9sOkF8dHQvcDpGTXw8Pjp0dC9zOnMjMC02MDgzJDxpPjkyM3wtOnR0L3NlbnRlbmNlcyQ8aT4xfD46bWF0ZS9kOlBOQyQ8aT4yfHhpcC9wOlNZTUJPTHx4aXAvbDpBfDw+OnhpcC9jOlRPUCMwLTc0JDxpPjEzfDw+OnhpcC9jOk1DIzAtNzMkPGk+MTM8Yj4xfDw+OnhpcC9jOk5QIzAtMSQ8aT4xPGI+Mnw8Pjp4aXAvYzpOUEEjMC0xJDxpPjE8Yj4zfDw+OnhpcC9jOk5PVU4jMC0xJDxpPjE8Yj40fDw+OnhpcC9jOlNZTUJPTCMwLTEkPGk+MTxiPjV8Pjp4aXAvZDpTVUJKJDxpPjN8PDp4aXAvZDpDT09SRCQ8aT4xfDw+OnhpcC9zOnMjMC03NCQ8aT4xM3wtOnhpcC9zZW50ZW5jZXMkPGk+NjRdJyksCisgICdTdGFydGluZm8nKTsKKworZG9uZV90ZXN0aW5nOworX19FTkRfXwogCiAKICNpcygkdG9rZW5zLT5zdHJlYW0tPnBvcygxMTgpLT50b19zdHJpbmcsCg==