ZGlmZiAtLWdpdCBhL01hYy9Ub29scy9JREUvU3BsYXNoLnB5IGIvTWFjL1Rvb2xzL0lERS9TcGxhc2gucHkKaW5kZXggODY4YzZkMi4uNjMxODgxMCAxMDA2NDQKLS0tIGEvTWFjL1Rvb2xzL0lERS9TcGxhc2gucHkKKysrIGIvTWFjL1Rvb2xzL0lERS9TcGxhc2gucHkKQEAgLTcwLDE0ICs3MCwxMiBAQAogCiBfa2VlcHNwbGFzaHNjcmVlbm9wZW4gPSAwCiAKLWFib3V0dGV4dDEgPSAiIiJUaGUgUHl0aG9uIEludGVncmF0ZWQgRGV2ZWxvcGVtZW50IEVudmlyb25tZW50IGZvciB0aGUgTWFjaW50b3NogQorYWJvdXR0ZXh0MSA9ICIiIlRoZSBQeXRob24gSW50ZWdyYXRlZCBEZXZlbG9wbWVudCBFbnZpcm9ubWVudCBmb3IgdGhlIE1hY2ludG9zaIEKIFZlcnNpb246ICVzCiBDb3B5cmlnaHQgMTk5Ny0yMDAwIEp1c3QgdmFuIFJvc3N1bSwgTGV0dGVycm9yLiA8anVzdEBsZXR0ZXJyb3IuY29tPgogCiBQeXRob24gJXMKICVzCi1Xcml0dGVuIGJ5IEd1aWRvIHZhbiBSb3NzdW0gd2l0aCBKYWNrIEphbnNlbiAoYW5kIG90aGVycykKLQogU2VlOiA8aHR0cDovL3d3dy5weXRob24ub3JnLz4gZm9yIGluZm9ybWF0aW9uIGFuZCBkb2N1bWVudGF0aW9uLiIiIgogCiBmbGF1d2VrdWwgPSBbCSdHb29kZGF5LCBCcnVjZS4nLCAKQEAgLTkzLDggKzkxLDExIEBACiBCaWN5Y2xlIFJlcGFpciBNYW4hIiIiCiAJCQldCiAKK2RlZiBza2lwZG91YmxlcmV0dXJucyh0ZXh0KToKKwlyZXR1cm4gc3RyaW5nLnJlcGxhY2UodGV4dCwgJ1xuXG4nLCAnXG4nKQorCiBkZWYgbmwycmV0dXJuKHRleHQpOgotCXJldHVybiBzdHJpbmcuam9pbihzdHJpbmcuc3BsaXQodGV4dCwgJ1xuJyksICdccicpCisJcmV0dXJuIHN0cmluZy5yZXBsYWNlKHRleHQsICdcbicsICdccicpCiAKIGRlZiBVcGRhdGVTcGxhc2goZHJhd2RpYWxvZyA9IDAsIHdoYXQgPSAwKToKIAlpZiBkcmF3ZGlhbG9nOgpAQCAtMTA5LDExICsxMTAsMTEgQEAKIAkJZm9udElEID0gZ2VuZXZhCiAJUWQuVGV4dEZvbnQoZm9udElEKQogCVFkLlRleHRTaXplKDkpCi0JcmVjdCA9ICgxMCwgMTI1LCAzOTAsIDI2MCkKKwlyZWN0ID0gKDEwLCAxMTUsIDM5MCwgMjkwKQogCWlmIG5vdCB3aGF0OgogCQlpbXBvcnQgX19tYWluX18KLQkJYWJvdXR0eHQgPSBubDJyZXR1cm4oYWJvdXR0ZXh0MSAgXAotCQkJJSAoX19tYWluX18uX192ZXJzaW9uX18sIHN5cy52ZXJzaW9uLCBzeXMuY29weXJpZ2h0KSkKKwkJYWJvdXR0eHQgPSBubDJyZXR1cm4oYWJvdXR0ZXh0MSAlICgKKwkJCQlfX21haW5fXy5fX3ZlcnNpb25fXywgc3lzLnZlcnNpb24sIHNraXBkb3VibGVyZXR1cm5zKHN5cy5jb3B5cmlnaHQpKSkKIAllbHNlOgogCQlpbXBvcnQgcmFuZG9tCiAJCWFib3V0dHh0ID0gbmwycmV0dXJuKHJhbmRvbS5jaG9pY2UoZmxhdXdla3VsKSkKQEAgLTEzMyw3ICsxMzQsNyBAQAogCXRpbWUgPSBFdnQuVGlja0NvdW50KCkKIAl3aGF0dGV4dCA9IDAKIAl3aGlsZSBfa2VlcHNwbGFzaHNjcmVlbm9wZW46Ci0JCW9rLCBldmVudCA9IEV2dC5FdmVudEF2YWlsKGhpZ2hMZXZlbEV2ZW50TWFzaykKKykJCW9rLCBldmVudCA9IEV2dC5FdmVudEF2YWlsKGhpZ2hMZXZlbEV2ZW50TWFzaykKIAkJaWYgb2s6CiAJCQkjIGdvdCBhcHBsZSBldmVudCwgYmFjayB0byBtYWlubG9vcAogCQkJYnJlYWsK