ZGlmZiAtLWdpdCBhL0RvYy9saWIvbGlicGRiLnRleCBiL0RvYy9saWIvbGlicGRiLnRleAppbmRleCA2MzAxMTc1Li5hNWIzNmE2IDEwMDY0NAotLS0gYS9Eb2MvbGliL2xpYnBkYi50ZXgKKysrIGIvRG9jL2xpYi9saWJwZGIudGV4CkBAIC0yNDAsNiArMjQwLDQ1IEBACiB0aGUgYnJlYWtwb2ludCBpcyBob25vcmVkLiAgSWYgY29uZGl0aW9uIGlzIGFic2VudCwgYW55IGV4aXN0aW5nCiBjb25kaXRpb24gaXMgcmVtb3ZlZDsgaS5lLiwgdGhlIGJyZWFrcG9pbnQgaXMgbWFkZSB1bmNvbmRpdGlvbmFsLgogCitcaXRlbVtjb21tYW5kcyBcb3B0aW9uYWx7XHZhcnticG51bWJlcn19XQorCitTcGVjaWZ5IGEgbGlzdCBvZiBjb21tYW5kcyBmb3IgYnJlYWtwb2ludCBudW1iZXIgXHZhcnticG51bWJlcn0uICBUaGUKK2NvbW1hbmRzIHRoZW1zZWx2ZXMgYXBwZWFyIG9uIHRoZSBmb2xsb3dpbmcgbGluZXMuICBUeXBlIGEgbGluZQorY29udGFpbmluZyBqdXN0ICdlbmQnIHRvIHRlcm1pbmF0ZSB0aGUgY29tbWFuZHMuIEFuIGV4YW1wbGU6CisKK1xiZWdpbnt2ZXJiYXRpbX0KKyhQZGIpIGNvbW1hbmRzIDEKKyhjb20pIHByaW50IHNvbWVfdmFyaWFibGUKKyhjb20pIGVuZAorKFBkYikKK1xlbmR7dmVyYmF0aW19CisKK1RvIHJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSBhIGJyZWFrcG9pbnQsIHR5cGUgY29tbWFuZHMgYW5kCitmb2xsb3cgaXQgaW1tZWRpYXRlbHkgd2l0aCAgZW5kOyB0aGF0IGlzLCBnaXZlIG5vIGNvbW1hbmRzLgorCitXaXRoIG5vIFx2YXJ7YnBudW1iZXJ9IGFyZ3VtZW50LCBjb21tYW5kcyByZWZlcnMgdG8gdGhlIGxhc3QKK2JyZWFrcG9pbnQgc2V0LgorCitZb3UgY2FuIHVzZSBicmVha3BvaW50IGNvbW1hbmRzIHRvIHN0YXJ0IHlvdXIgcHJvZ3JhbSB1cCBhZ2Fpbi4KK1NpbXBseSB1c2UgdGhlIGNvbnRpbnVlIGNvbW1hbmQsIG9yIHN0ZXAsIG9yIGFueSBvdGhlcgorY29tbWFuZCB0aGF0IHJlc3VtZXMgZXhlY3V0aW9uLgorCitTcGVjaWZ5aW5nIGFueSBjb21tYW5kIHJlc3VtaW5nIGV4ZWN1dGlvbiAoY3VycmVudGx5IGNvbnRpbnVlLAorc3RlcCwgbmV4dCwgcmV0dXJuLCBqdW1wLCBxdWl0IGFuZCB0aGVpciBhYmJyZXZpYXRpb25zKSB0ZXJtaW5hdGVzCit0aGUgY29tbWFuZCBsaXN0IChhcyBpZiB0aGF0IGNvbW1hbmQgd2FzIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGVuZCkuCitUaGlzIGlzIGJlY2F1c2UgYW55IHRpbWUgeW91IHJlc3VtZSBleGVjdXRpb24KKyhldmVuIHdpdGggYSBzaW1wbGUgbmV4dCBvciBzdGVwKSwgeW91IG1heSBlbmNvdW50ZXLCtworYW5vdGhlciBicmVha3BvaW50LS13aGljaCBjb3VsZCBoYXZlIGl0cyBvd24gY29tbWFuZCBsaXN0LCBsZWFkaW5nIHRvCithbWJpZ3VpdGllcyBhYm91dCB3aGljaCBsaXN0IHRvIGV4ZWN1dGUuCisKKyAgIElmIHlvdSB1c2UgdGhlICdzaWxlbnQnIGNvbW1hbmQgaW4gdGhlIGNvbW1hbmQgbGlzdCwgdGhlCit1c3VhbCBtZXNzYWdlIGFib3V0IHN0b3BwaW5nIGF0IGEgYnJlYWtwb2ludCBpcyBub3QgcHJpbnRlZC4gIFRoaXMgbWF5CitiZSBkZXNpcmFibGUgZm9yIGJyZWFrcG9pbnRzIHRoYXQgYXJlIHRvIHByaW50IGEgc3BlY2lmaWMgbWVzc2FnZSBhbmQKK3RoZW4gY29udGludWUuICBJZiBub25lIG9mIHRoZSBvdGhlciBjb21tYW5kcyBwcmludCBhbnl0aGluZywgeW91CitzZWUgbm8gc2lnbiB0aGF0IHRoZSBicmVha3BvaW50IHdhcyByZWFjaGVkLgorCitcdmVyc2lvbmFkZGVkezIuNX0KKwogXGl0ZW1bcyh0ZXApXQogCiBFeGVjdXRlIHRoZSBjdXJyZW50IGxpbmUsIHN0b3AgYXQgdGhlIGZpcnN0IHBvc3NpYmxlIG9jY2FzaW9uCmRpZmYgLS1naXQgYS9MaWIvcGRiLnB5IGIvTGliL3BkYi5weQppbmRleCBiMDBmNjhiLi5mZmM3NWFlIDEwMDc1NQotLS0gYS9MaWIvcGRiLnB5CisrKyBiL0xpYi9wZGIucHkKQEAgLTg2LDYgKzg2LDEyIEBACiAgICAgICAgICAgICAgICAgc2VsZi5yY0xpbmVzLmFwcGVuZChsaW5lKQogICAgICAgICAgICAgcmNGaWxlLmNsb3NlKCkKIAorICAgICAgICBzZWxmLmNvbW1hbmRzID0ge30gIyBhc3NvY2lhdGVzIGEgY29tbWFuZCBsaXN0IHRvIGJyZWFrcG9pbnQgbnVtYmVycworICAgICAgICBzZWxmLmNvbW1hbmRzX2RvcHJvbXB0ID0ge30gIyBmb3IgZWFjaCBicCBudW0sIHRlbGxzIGlmIHRoZSBwcm9tcHQgbXVzdCBiZSBkaXNwLiBhZnRlciBleGVjaW5nIHRoZSBjbWQgbGlzdAorICAgICAgICBzZWxmLmNvbW1hbmRzX3NpbGVudCA9IHt9ICMgZm9yIGVhY2ggYnAgbnVtLCB0ZWxscyBpZiB0aGUgc3RhY2sgdHJhY2UgbXVzdCBiZSBkaXNwLiBhZnRlciBleGVjaW5nIHRoZSBjbWQgbGlzdAorICAgICAgICBzZWxmLmNvbW1hbmRzX2RlZmluaW5nID0gRmFsc2UgIyBUcnVlIHdoaWxlIGluIHRoZSBwcm9jZXNzIG9mIGRlZmluaW5nIGEgY29tbWFuZCBsaXN0CisgICAgICAgIHNlbGYuY29tbWFuZHNfYm51bSA9IE5vbmUgIyBUaGUgYnJlYWtwb2ludCBudW1iZXIgZm9yIHdoaWNoIHdlIGFyZSBkZWZpbmluZyBhIGxpc3QKKwogICAgIGRlZiByZXNldChzZWxmKToKICAgICAgICAgYmRiLkJkYi5yZXNldChzZWxmKQogICAgICAgICBzZWxmLmZvcmdldCgpCkBAIC0xMzIsNyArMTM4LDI4IEBACiAgICAgICAgICAgICAgICAgb3IgZnJhbWUuZl9saW5lbm88PSAwKToKICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIHNlbGYuX3dhaXRfZm9yX21haW5weWZpbGUgPSAwCi0gICAgICAgIHNlbGYuaW50ZXJhY3Rpb24oZnJhbWUsIE5vbmUpCisgICAgICAgIGlmIHNlbGYuYnBfY29tbWFuZHMoZnJhbWUpOgorICAgICAgICAgICAgc2VsZi5pbnRlcmFjdGlvbihmcmFtZSwgTm9uZSkKKyAgICAgICAgICAgIAorICAgIGRlZiBicF9jb21tYW5kcyhzZWxmLGZyYW1lKToKKyAgICAgICAgIiIiIENhbGwgZXZlcnkgY29tbWFuZCB0aGF0IHdhcyBzZXQgZm9yIHRoZSBjdXJyZW50IGFjdGl2ZSBicmVha3BvaW50IChpZiB0aGVyZSBpcyBvbmUpCisgICAgICAgIFJldHVybnMgVHJ1ZSBpZiB0aGUgbm9ybWFsIGludGVyYWN0aW9uIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkLCBGYWxzZSBvdGhlcndpc2UgIiIiCisgICAgICAgICNzZWxmLmN1cnJlbnRicCBpcyBzZXQgaW4gYmRiLnB5IGluIGJkYi5icmVha19oZXJlIGlmIGEgYnJlYWtwb2ludCB3YXMgaGl0CisgICAgICAgIGlmIGdldGF0dHIoc2VsZiwiY3VycmVudGJwIixGYWxzZSkgYW5kIHNlbGYuY3VycmVudGJwIGluIHNlbGYuY29tbWFuZHM6CisgICAgICAgICAgICBjdXJyZW50YnAgPSBzZWxmLmN1cnJlbnRicAorICAgICAgICAgICAgc2VsZi5jdXJyZW50YnAgPSAwCisgICAgICAgICAgICBsYXN0Y21kX2JhY2sgPSBzZWxmLmxhc3RjbWQKKyAgICAgICAgICAgIHNlbGYuc2V0dXAoZnJhbWUsIE5vbmUpCisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmNvbW1hbmRzW2N1cnJlbnRicF06CisgICAgICAgICAgICAgICAgc2VsZi5vbmVjbWQobGluZSkKKyAgICAgICAgICAgIHNlbGYubGFzdGNtZCA9IGxhc3RjbWRfYmFjaworICAgICAgICAgICAgaWYgbm90IHNlbGYuY29tbWFuZHNfc2lsZW50W2N1cnJlbnRicF06CisgICAgICAgICAgICAgICAgc2VsZi5wcmludF9zdGFja19lbnRyeShzZWxmLnN0YWNrW3NlbGYuY3VyaW5kZXhdKQorICAgICAgICAgICAgaWYgc2VsZi5jb21tYW5kc19kb3Byb21wdFtjdXJyZW50YnBdOgorICAgICAgICAgICAgICAgIHNlbGYuY21kbG9vcCgpCisgICAgICAgICAgICBzZWxmLmZvcmdldCgpCisgICAgICAgICAgICByZXR1cm4gCisgICAgICAgIHJldHVybiAxCiAKICAgICBkZWYgdXNlcl9yZXR1cm4oc2VsZiwgZnJhbWUsIHJldHVybl92YWx1ZSk6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSByZXR1cm4gdHJhcCBpcyBzZXQgaGVyZS4iIiIKQEAgLTE5NywxMiArMjI0LDcwIEBACiAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmVbOm1hcmtlcl0ucnN0cmlwKCkKICAgICAgICAgcmV0dXJuIGxpbmUKIAorICAgIGRlZiBvbmVjbWQoc2VsZiwgbGluZSk6CisgICAgICAgICIiIkludGVycHJldCB0aGUgYXJndW1lbnQgYXMgdGhvdWdoIGl0IGhhZCBiZWVuIHR5cGVkIGluIHJlc3BvbnNlCisgICAgICAgIHRvIHRoZSBwcm9tcHQuIAorICAgICAgICAKKyAgICAgICAgQ2hlY2tzIHdldGhlciAgdGhpcyBsaW5lIGlzIHR5cGVkIGluIHRoZSBub3JtYWwgcHJvbXB0IG9yIGluIGEgYnJlYWtwb2ludCBjb21tYW5kIGxpc3QgZGVmaW5pdGlvbgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuY29tbWFuZHNfZGVmaW5pbmc6CisgICAgICAgICAgICByZXR1cm4gY21kLkNtZC5vbmVjbWQoc2VsZiwgbGluZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZV9jb21tYW5kX2RlZihsaW5lKQorCisgICAgZGVmIGhhbmRsZV9jb21tYW5kX2RlZihzZWxmLGxpbmUpOiAgICAgICAgCisgICAgICAgICIiIiBIYW5kbGVzIG9uZSBjb21tYW5kIGxpbmUgZHVyaW5nIGNvbW1hbmQgbGlzdCBkZWZpbml0aW9uLiAiIiIKKyAgICAgICAgY21kLCBhcmcsIGxpbmUgPSBzZWxmLnBhcnNlbGluZShsaW5lKQorICAgICAgICBpZiBjbWQgPT0gJ3NpbGVudCc6CisgICAgICAgICAgICBzZWxmLmNvbW1hbmRzX3NpbGVudFtzZWxmLmNvbW1hbmRzX2JudW1dID0gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuICMgY29udGludWUgdG8gaGFuZGxlIG90aGVyIGNtZCBkZWYgaW4gdGhlIGNtZCBsaXN0CisgICAgICAgIGVsaWYgY21kID09ICdlbmQnOgorICAgICAgICAgICAgc2VsZi5jbWRxdWV1ZSA9IFtdCisgICAgICAgICAgICByZXR1cm4gMSAjIGVuZCBvZiBjbWQgbGlzdAorICAgICAgICBjbWRsaXN0ID0gc2VsZi5jb21tYW5kc1tzZWxmLmNvbW1hbmRzX2JudW1dCisgICAgICAgIGlmIChhcmcpOgorICAgICAgICAgICAgY21kbGlzdC5hcHBlbmQoY21kKycgJythcmcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjbWRsaXN0LmFwcGVuZChjbWQpCisgICAgICAgICMgRGV0ZXJtaW5lIGlmIHdlIG11c3Qgc3RvcAorICAgICAgICB0cnk6CisgICAgICAgICAgICBmdW5jID0gZ2V0YXR0cihzZWxmLCAnZG9fJyArIGNtZCkKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgZnVuYyA9IHNlbGYuZGVmYXVsdAorICAgICAgICBpZiBmdW5jLmZ1bmNfbmFtZSBpbiBzZWxmLmNvbW1hbmRzX3Jlc3VtaW5nIDogIyBvbmUgb2YgdGhlIHJlc3VtaW5nIGNvbW1hbmRzLiAKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZHNfZG9wcm9tcHRbc2VsZi5jb21tYW5kc19ibnVtXSA9IEZhbHNlCisgICAgICAgICAgICBzZWxmLmNtZHF1ZXVlID0gW10KKyAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIHJldHVybiAKKwogICAgICMgQ29tbWFuZCBkZWZpbml0aW9ucywgY2FsbGVkIGJ5IGNtZGxvb3AoKQogICAgICMgVGhlIGFyZ3VtZW50IGlzIHRoZSByZW1haW5pbmcgc3RyaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUKICAgICAjIFJldHVybiB0cnVlIHRvIGV4aXQgZnJvbSB0aGUgY29tbWFuZCBsb29wCiAKICAgICBkb19oID0gY21kLkNtZC5kb19oZWxwCiAKKyAgICBkZWYgZG9fY29tbWFuZHMoc2VsZiwgYXJnKToKKyAgICAgICAgIiIiRGVmaW5lcyBhIGxpc3Qgb2YgY29tbWFuZHMgYXNzb2NpYXRlZCB0byBhIGJyZWFrcG9pbnQKKyAgICAgICAgVGhvc2UgY29tbWFuZHMgd2lsbCBiZSBleGVjdXRlZCB3aGVuZXZlciB0aGUgYnJlYWtwb2ludCBjYXVzZXMgdGhlIHByb2dyYW0gdG8gc3RvcCBleGVjdXRpb24uIiIiCisgICAgICAgIGlmIG5vdCBhcmc6CisgICAgICAgICAgICBibnVtID0gbGVuKGJkYi5CcmVha3BvaW50LmJwYnludW1iZXIpLTEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBibnVtID0gaW50KGFyZykKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBwcmludCAiVXNhZ2UgOiBjb21tYW5kcyBbYm51bV1cbiAgICAgICAgLi4uXG4gICAgICAgIGVuZCIKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi5jb21tYW5kc19ibnVtID0gYm51bQorICAgICAgICBzZWxmLmNvbW1hbmRzW2JudW1dID0gW10KKyAgICAgICAgc2VsZi5jb21tYW5kc19kb3Byb21wdFtibnVtXSA9IFRydWUKKyAgICAgICAgc2VsZi5jb21tYW5kc19zaWxlbnRbYm51bV0gPSBGYWxzZQorICAgICAgICBwcm9tcHRfYmFjayA9IHNlbGYucHJvbXB0CisgICAgICAgIHNlbGYucHJvbXB0ID0gJyhjb20pICcKKyAgICAgICAgc2VsZi5jb21tYW5kc19kZWZpbmluZyA9IFRydWUKKyAgICAgICAgc2VsZi5jbWRsb29wKCkKKyAgICAgICAgc2VsZi5jb21tYW5kc19kZWZpbmluZyA9IEZhbHNlCisgICAgICAgIHNlbGYucHJvbXB0ID0gcHJvbXB0X2JhY2sKKwogICAgIGRlZiBkb19icmVhayhzZWxmLCBhcmcsIHRlbXBvcmFyeSA9IDApOgogICAgICAgICAjIGJyZWFrIFsgKFtmaWxlbmFtZTpdbGluZW5vIHwgZnVuY3Rpb24pIFssICJjb25kaXRpb24iXSBdCiAgICAgICAgIGlmIG5vdCBhcmc6CkBAIC02ODYsNiArNzcxLDkgQEAKICAgICAgICAgaWYgYXJnc1swXSBpbiBzZWxmLmFsaWFzZXM6CiAgICAgICAgICAgICBkZWwgc2VsZi5hbGlhc2VzW2FyZ3NbMF1dCiAKKyAgICAjbGlzdCBvZiBhbGwgdGhlIGNvbW1hbmRzIG1ha2luZyB0aGUgcHJvZ3JhbSByZXN1bWUgZXhlY3V0aW9uLgorICAgIGNvbW1hbmRzX3Jlc3VtaW5nID0gWydkb19jb250aW51ZScsICdkb19zdGVwJywgJ2RvX25leHQnLCAnZG9fcmV0dXJuJywgJ2RvX3F1aXQnLCAnZG9fanVtcCddCisKICAgICAjIFByaW50IGEgdHJhY2ViYWNrIHN0YXJ0aW5nIGF0IHRoZSB0b3Agc3RhY2sgZnJhbWUuCiAgICAgIyBUaGUgbW9zdCByZWNlbnRseSBlbnRlcmVkIGZyYW1lIGlzIHByaW50ZWQgbGFzdDsKICAgICAjIHRoaXMgaXMgZGlmZmVyZW50IGZyb20gZGJ4IGFuZCBnZGIsIGJ1dCBjb25zaXN0ZW50IHdpdGgKQEAgLTkzOSw2ICsxMDI3LDQxIEBACiAgICAgICAgIHByaW50ICIiInVuYWxpYXMgbmFtZQogRGVsZXRlcyB0aGUgc3BlY2lmaWVkIGFsaWFzLiIiIgogCisgICAgZGVmIGhlbHBfY29tbWFuZHMoc2VsZik6CisgICAgICAgIHByaW50ICIiImNvbW1hbmRzIFticG51bWJlcl0KKyhjb20pIC4uLgorKGNvbSkgZW5kCisoUGRiKQorCitTcGVjaWZ5IGEgbGlzdCBvZiBjb21tYW5kcyBmb3IgYnJlYWtwb2ludCBudW1iZXIgYnBudW1iZXIuICBUaGUKK2NvbW1hbmRzIHRoZW1zZWx2ZXMgYXBwZWFyIG9uIHRoZSBmb2xsb3dpbmcgbGluZXMuICBUeXBlIGEgbGluZQorY29udGFpbmluZyBqdXN0ICdlbmQnIHRvIHRlcm1pbmF0ZSB0aGUgY29tbWFuZHMuCisKK1RvIHJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSBhIGJyZWFrcG9pbnQsIHR5cGUgY29tbWFuZHMgYW5kCitmb2xsb3cgaXQgaW1tZWRpYXRlbHkgd2l0aCAgZW5kOyB0aGF0IGlzLCBnaXZlIG5vIGNvbW1hbmRzLgorCitXaXRoIG5vIGJwbnVtYmVyIGFyZ3VtZW50LCBjb21tYW5kcyByZWZlcnMgdG8gdGhlIGxhc3QKK2JyZWFrcG9pbnQgc2V0LgorCitZb3UgY2FuIHVzZSBicmVha3BvaW50IGNvbW1hbmRzIHRvIHN0YXJ0IHlvdXIgcHJvZ3JhbSB1cCBhZ2Fpbi4KK1NpbXBseSB1c2UgdGhlIGNvbnRpbnVlIGNvbW1hbmQsIG9yIHN0ZXAsIG9yIGFueSBvdGhlcgorY29tbWFuZCB0aGF0IHJlc3VtZXMgZXhlY3V0aW9uLgorCitTcGVjaWZ5aW5nIGFueSBjb21tYW5kIHJlc3VtaW5nIGV4ZWN1dGlvbiAoY3VycmVudGx5IGNvbnRpbnVlLAorc3RlcCwgbmV4dCwgcmV0dXJuLCBqdW1wLCBxdWl0IGFuZCB0aGVpciBhYmJyZXZpYXRpb25zKSB0ZXJtaW5hdGVzCit0aGUgY29tbWFuZCBsaXN0IChhcyBpZiB0aGF0IGNvbW1hbmQgd2FzIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGVuZCkuCitUaGlzIGlzIGJlY2F1c2UgYW55IHRpbWUgeW91IHJlc3VtZSBleGVjdXRpb24KKyhldmVuIHdpdGggYSBzaW1wbGUgbmV4dCBvciBzdGVwKSwgeW91IG1heSBlbmNvdW50ZXK3Cithbm90aGVyIGJyZWFrcG9pbnQtLXdoaWNoIGNvdWxkIGhhdmUgaXRzIG93biBjb21tYW5kIGxpc3QsIGxlYWRpbmcgdG8KK2FtYmlndWl0aWVzIGFib3V0IHdoaWNoIGxpc3QgdG8gZXhlY3V0ZS4KKworICAgSWYgeW91IHVzZSB0aGUgJ3NpbGVudCcgY29tbWFuZCBpbiB0aGUgY29tbWFuZCBsaXN0LCB0aGUKK3VzdWFsIG1lc3NhZ2UgYWJvdXQgc3RvcHBpbmcgYXQgYSBicmVha3BvaW50IGlzIG5vdCBwcmludGVkLiAgVGhpcyBtYXkKK2JlIGRlc2lyYWJsZSBmb3IgYnJlYWtwb2ludHMgdGhhdCBhcmUgdG8gcHJpbnQgYSBzcGVjaWZpYyBtZXNzYWdlIGFuZAordGhlbiBjb250aW51ZS4gIElmIG5vbmUgb2YgdGhlIG90aGVyIGNvbW1hbmRzIHByaW50IGFueXRoaW5nLCB5b3UKK3NlZSBubyBzaWduIHRoYXQgdGhlIGJyZWFrcG9pbnQgd2FzIHJlYWNoZWQuCisiIiIKKwogICAgIGRlZiBoZWxwX3BkYihzZWxmKToKICAgICAgICAgaGVscCgpCiAKZGlmZiAtLWdpdCBhL01pc2MvTkVXUyBiL01pc2MvTkVXUwppbmRleCA5ZTU0N2ZkLi5kNGJmY2Q0IDEwMDY0NAotLS0gYS9NaXNjL05FV1MKKysrIGIvTWlzYy9ORVdTCkBAIC03Miw2ICs3Miw4IEBACiBMaWJyYXJ5CiAtLS0tLS0tCiAKKy0gUGF0Y2ggIzc5MDcxMDogQWRkIGJyZWFrcG9pbnQgY29tbWFuZCBsaXN0cyBpbiBwZGIuCisKIC0gUGF0Y2ggIzEwNjM5MTQ6IEFkZCBUa2ludGVyLk1pc2MuY2xpcGJvYXJkX2dldCgpLgogCiAtIFBhdGNoICMxMTkxNzAwOiBBZGp1c3QgY29sdW1uIGFsaWdubWVudCBpbiBiZGIgYnJlYWtwb2ludCBsaXN0cy4K