ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IDZlNTMxMTEuLjFjOGMwZWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgRmViIDI1CisqY2hhbmdlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIE1heSAxMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTE5LDggKzkxOSw4IEBACiAKIAkJCQkJCQkqOnkqICo6eWFuayogKkU4NTAqCiA6W3JhbmdlXXlbYW5rXSBbeF0JWWFuayBbcmFuZ2VdIGxpbmVzIFtpbnRvIHJlZ2lzdGVyIHhdLiBZYW5raW5nIHRvIHRoZQotCQkJIiogb3IgIisgcmVnaXN0ZXJzIGlzIHBvc3NpYmxlIG9ubHkgaW4gR1VJIHZlcnNpb25zIG9yCi0JCQl3aGVuIHRoZSB8K3h0ZXJtX2NsaXBib2FyZHwgZmVhdHVyZSBpcyBpbmNsdWRlZC4KKwkJCSIqIG9yICIrIHJlZ2lzdGVycyBpcyBwb3NzaWJsZSBvbmx5IHdoZW4gdGhlCisJCQl8K2NsaXBib2FyZHwgZmVhdHVyZSBpcyBpbmNsdWRlZC4KIAogOltyYW5nZV15W2Fua10gW3hdIHtjb3VudH0KIAkJCVlhbmsge2NvdW50fSBsaW5lcywgc3RhcnRpbmcgd2l0aCBsYXN0IGxpbmUgbnVtYmVyCkBAIC0xMzkwLDE2ICsxMzkwLDE5IEBACiBtaWRkbGUtY29tbWVudCBsZWFkZXIgd2l0aCB0aGUgZW5kLWNvbW1lbnQgbGVhZGVyIGFuZCBhcHBseSBhbnkgc3BlY2lmaWVkCiBhbGlnbm1lbnQsIGxlYXZpbmcganVzdCAiICovIi4gIFRoZXJlIGlzIG5vIG5lZWQgdG8gaGl0IEJhY2tTcGFjZSBmaXJzdC4KIAorV2hlbiB0aGVyZSBpcyBhIG1hdGNoIHdpdGggYSBtaWRkbGUgcGFydCwgYnV0IHRoZXJlIGFsc28gaXMgYSBtYWNoaW5nIGVuZCBwYXJ0Cit3aGljaCBpcyBsb25nZXIsIHRoZSBlbmQgcGFydCBpcyB1c2VkLiAgVGhpcyBtYWtlcyBhIEMgc3R5bGUgY29tbWVudCB3b3JrCit3aXRob3V0IHJlcXVpcmluZyB0aGUgbWlkZGxlIHBhcnQgdG8gZW5kIHdpdGggYSBzcGFjZS4KIAogSGVyZSBpcyBhbiBleGFtcGxlIG9mIGFsaWdubWVudCBmbGFncyBhdCB3b3JrIHRvIG1ha2UgYSBjb21tZW50IHN0YW5kIG91dAotKGtpbmQgb2YgbG9va3MgbGlrZSBhIDEgdG9vKS4gQ29uc2lkZXIgY29tbWVudCBzdHJpbmcgPgotCXNyOi8qKiosbToqKixleDI6KioqKioqLwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKioKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKjwtLXJpZ2h0IGFsaWduZWQgZnJvbSAiciIgZmxhZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCi1vZmZzZXQgMiBzcGFjZXMgZnJvbSB0aGUgIjIiIGZsYWctLS0+KioKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioqKioqLworKGtpbmQgb2YgbG9va3MgbGlrZSBhIDEgdG9vKS4gQ29uc2lkZXIgY29tbWVudCBzdHJpbmc6ID4KKwk6c2V0IGNvbW1lbnRzPXNyOi8qKiosbToqKixleC0yOioqKioqKi8KKzwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqKiB+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKio8LS1yaWdodCBhbGlnbmVkIGZyb20gInIiIGZsYWcgfgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqIH4KK29mZnNldCAyIHNwYWNlcyBmb3IgdGhlICItMiIgZmxhZy0tLT4qKiB+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqKioqKi8gfgogSW4gdGhpcyBjYXNlLCB0aGUgZmlyc3QgY29tbWVudCB3YXMgdHlwZWQsIHRoZW4gcmV0dXJuIHdhcyBwcmVzc2VkIDQgdGltZXMsCiB0aGVuICIvIiB3YXMgcHJlc3NlZCB0byBlbmQgdGhlIGNvbW1lbnQuCiAKQEAgLTE0MTcsOCArMTQyMCw4IEBACiBhbGlnbm1lbnQgZmxhZ3MgZWl0aGVyLiBUaGUgc2FtZSBiZWhhdmlvdXIgY2FuIGJlIGRlZmluZWQgaW4gdGhvc2Ugb3RoZXIKIGZvcm1hdHRpbmcgb3B0aW9ucy4gT25lIGNvbnNpZGVyYXRpb24gaXMgdGhhdCAnY2luZGVudCcgaGFzIGFkZGl0aW9uYWwgb3B0aW9ucwogZm9yIGNvbnRleHQgYmFzZWQgaW5kZW50aW5nIG9mIGNvbW1lbnRzIGJ1dCBjYW5ub3QgcmVwbGljYXRlIG1hbnkgdGhyZWUgcGllY2UKLWluZGVudCBhbGlnbm1lbnRzLiAgSG93ZXZlciwgJ2luZGVudGV4cHInIGlzIGhhcyB0aGUgYWJpbGl0eSB0byB3b3JrIGJldHRlcgotd2l0aCB0aHJlZSBwaWVjZSBjb21tZW50cy4KK2luZGVudCBhbGlnbm1lbnRzLiAgSG93ZXZlciwgJ2luZGVudGV4cHInIGhhcyB0aGUgYWJpbGl0eSB0byB3b3JrIGJldHRlciB3aXRoCit0aHJlZSBwaWVjZSBjb21tZW50cy4KIAogT3RoZXIgZXhhbXBsZXM6ID4KICAgICJiOioiCUluY2x1ZGVzIGxpbmVzIHN0YXJ0aW5nIHdpdGggIioiLCBidXQgbm90IGlmIHRoZSAiKiIgaXMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggOGM0NjRhOC4uMjk1ZmU0YSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBNYXIgMTgKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIE1heSAxMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNTQ1LDcgKzE1NDUsOSBAQAogCiAJCQkJCSp2OnJlZ2lzdGVyKiAqcmVnaXN0ZXItdmFyaWFibGUqCiB2OnJlZ2lzdGVyCVRoZSBuYW1lIG9mIHRoZSByZWdpc3RlciBpbiBlZmZlY3QgZm9yIHRoZSBjdXJyZW50IG5vcm1hbCBtb2RlCi0JCWNvbW1hbmQuICBJZiBub25lIGlzIHN1cHBsaWVkIGl0IGlzIHRoZSBkZWZhdWx0IHJlZ2lzdGVyLgorCQljb21tYW5kLiAgSWYgbm9uZSBpcyBzdXBwbGllZCBpdCBpcyB0aGUgZGVmYXVsdCByZWdpc3RlciAnIicsCisJCXVubGVzcyAnY2xpcGJvYXJkJyBjb250YWlucyAidW5uYW1lZCIgb3IgInVubmFtZWRwbHVzIiwgdGhlbgorCQlpdCBpcyAnKicgb3IgJysnLgogCQlBbHNvIHNlZSB8Z2V0cmVnKCl8IGFuZCB8c2V0cmVnKCl8CiAKIAkJCQkJKnY6c2Nyb2xsc3RhcnQqICpzY3JvbGxzdGFydC12YXJpYWJsZSoKQEAgLTYyMjIsNyArNjIyNCw4IEBACiBwb3N0c2NyaXB0CQlDb21waWxlZCB3aXRoIFBvc3RTY3JpcHQgZmlsZSBwcmludGluZy4KIHByaW50ZXIJCQlDb21waWxlZCB3aXRoIHw6aGFyZGNvcHl8IHN1cHBvcnQuCiBwcm9maWxlCQkJQ29tcGlsZWQgd2l0aCB8OnByb2ZpbGV8IHN1cHBvcnQuCi1weXRob24JCQlDb21waWxlZCB3aXRoIFB5dGhvbiBpbnRlcmZhY2UuCitweXRob24JCQlDb21waWxlZCB3aXRoIFB5dGhvbiAyLnggaW50ZXJmYWNlLiB8aGFzLXB5dGhvbnwKK3B5dGhvbjMJCQlDb21waWxlZCB3aXRoIFB5dGhvbiAzLnggaW50ZXJmYWNlLiB8aGFzLXB5dGhvbnwKIHFueAkJCVFOWCB2ZXJzaW9uIG9mIFZpbS4KIHF1aWNrZml4CQlDb21waWxlZCB3aXRoIHxxdWlja2ZpeHwgc3VwcG9ydC4KIHJlbHRpbWUJCQlDb21waWxlZCB3aXRoIHxyZWx0aW1lKCl8IHN1cHBvcnQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9mb2xkLnR4dCBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CmluZGV4IDI0YThkY2IuLjRmMjc5MzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ZvbGQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CkBAIC02MCw3ICs2MCw3IEBACiBUaGUgbmVzdGluZyBvZiBmb2xkcyBpcyBsaW1pdGVkIHdpdGggJ2ZvbGRuZXN0bWF4Jy4KIAogU29tZSBsaW5lcyBhcmUgaWdub3JlZCBhbmQgZ2V0IHRoZSBmb2xkIGxldmVsIG9mIHRoZSBsaW5lIGFib3ZlIG9yIGJlbG93IGl0LAotd2hhdGV2ZXIgaXMgdGhlIGxvd2VzdC4gIFRoZXNlIGFyZSBlbXB0eSBvciB3aGl0ZSBsaW5lcyBhbmQgbGluZXMgc3RhcnRpbmcKK3doaWNoZXZlciBpcyBsb3dlci4gIFRoZXNlIGFyZSBlbXB0eSBvciB3aGl0ZSBsaW5lcyBhbmQgbGluZXMgc3RhcnRpbmcKIHdpdGggYSBjaGFyYWN0ZXIgaW4gJ2ZvbGRpZ25vcmUnLiAgV2hpdGUgc3BhY2UgaXMgc2tpcHBlZCBiZWZvcmUgY2hlY2tpbmcgZm9yCiBjaGFyYWN0ZXJzIGluICdmb2xkaWdub3JlJy4gIEZvciBDIHVzZSAiIyIgdG8gaWdub3JlIHByZXByb2Nlc3NvciBsaW5lcy4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcHl0aC50eHQgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAppbmRleCA1MWY5MzZlLi40M2M0MzU2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9weXRoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTAgT2N0IDIwCisqaWZfcHl0aC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIE1heSAwNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBQYXVsIE1vb3JlCkBAIC0zNzcsNiArMzc3LDE4IEBACiAzLiBZb3UgdW5kZWZpbmUgUFlfTk9fUlRMRF9HTE9CQUwgaW4gYXV0by9jb25maWcuaCBhZnRlciBjb25maWd1cmF0aW9uLiAgVGhpcwogICAgbWF5IGNyYXNoIFZpbSB0aG91Z2guCiAKKwkJCQkJCQkqaGFzLXB5dGhvbioKK1lvdSBjYW4gdGVzdCB3aGF0IFB5dGhvbiB2ZXJzaW9uIGlzIGF2YWlsYWJsZSB3aXRoOiA+CisJaWYgaGFzKCdweXRob24nKQorCSAgZWNobyAndGhlcmUgaXMgUHl0b24gMi54JworICAJZWxzZWlmIGhhcygncHl0aG9uMycpCisJICBlY2hvICd0aGVyZSBpcyBQeXRob24gMy54JworCWVuZGlmCisKK05vdGUgaG93ZXZlciwgdGhhdCB3aGVuIFB5dGhvbiAyIGFuZCAzIGFyZSBib3RoIGF2YWlsYWJsZSBhbmQgbG9hZGVkCitkeW5hbWljYWxseSwgdGhlc2UgaGFzKCkgY2FsbHMgd2lsbCB0cnkgdG8gbG9hZCB0aGVtLiAgSWYgb25seSBvbmUgY2FuIGJlCitsb2FkZWQgYXQgYSB0aW1lLCBqdXN0IGNoZWNraW5nIGlmIFB5dGhvbiAyIG9yIDMgYXJlIGF2YWlsYWJsZSB3aWxsIHByZXZlbnQKK3RoZSBvdGhlciBvbmUgZnJvbSBiZWluZyBhdmFpbGFibGUuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21hcC50eHQgYi9ydW50aW1lL2RvYy9tYXAudHh0CmluZGV4IDI5YjllOWYuLmVjMjFkMTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21hcC50eHQKKysrIGIvcnVudGltZS9kb2MvbWFwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgQXByIDEzCisqbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIE1heSAxMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDgwLDkgKzQ4MCw5IEBACiBoYXZlIHRvIHR5cGUgQ1RSTC1WIHR3byB0aW1lcykuICBVbmZvcnR1bmF0ZWx5LCB5b3UgY2Fubm90IGRvIHRoaXMgaW4gYSB2aW1yYwogZmlsZS4KIAkJCQkJCQkqPE5vcD4qCi1BIGVhc2llciB3YXkgdG8gZ2V0IGEgbWFwcGluZyB0aGF0IGRvZXNuJ3QgcHJvZHVjZSBhbnl0aGluZywgaXMgdG8gdXNlICI8Tm9wPiIKLWZvciB0aGUge3Joc30uICBUaGlzIG9ubHkgd29ya3Mgd2hlbiB0aGUgfDw+fCBub3RhdGlvbiBpcyBlbmFibGVkLiAgRm9yCi1leGFtcGxlLCB0byBtYWtlIHN1cmUgdGhhdCBmdW5jdGlvbiBrZXkgOCBkb2VzIG5vdGhpbmcgYXQgYWxsOiA+CitBbiBlYXNpZXIgd2F5IHRvIGdldCBhIG1hcHBpbmcgdGhhdCBkb2Vzbid0IHByb2R1Y2UgYW55dGhpbmcsIGlzIHRvIHVzZQorIjxOb3A+IiBmb3IgdGhlIHtyaHN9LiAgVGhpcyBvbmx5IHdvcmtzIHdoZW4gdGhlIHw8Pnwgbm90YXRpb24gaXMgZW5hYmxlZC4KK0ZvciBleGFtcGxlLCB0byBtYWtlIHN1cmUgdGhhdCBmdW5jdGlvbiBrZXkgOCBkb2VzIG5vdGhpbmcgYXQgYWxsOiA+CiAJOm1hcCAgPEY4PiAgPE5vcD4KIAk6bWFwISA8Rjg+ICA8Tm9wPgogPApAQCAtNDk1LDcgKzQ5NSw3IEBACiAJOnNldCBlbmNvZGluZz11dGYtOAogVGhlIG1hcHBpbmcgZm9yIDxNLUM+IGlzIGRlZmluZWQgd2l0aCB0aGUgbGF0aW4xIGVuY29kaW5nLCByZXN1bHRpbmcgaW4gYSAweGMzCiBieXRlLiAgSWYgeW91IHR5cGUgdGhlIGNoYXJhY3RlciDhICgweGUxIDxNLWE+KSBpbiBVVEYtOCBlbmNvZGluZyB0aGlzIGlzIHRoZQotdHdvIGJ5dGVzIDB4YzMgMHhhMS4gIFlvdSBkb24ndCB3YW50IHRoZSAweGMzIGJ5dGUgdG8gYmUgbWFwcGVkIHRoZW4sCit0d28gYnl0ZXMgMHhjMyAweGExLiAgWW91IGRvbid0IHdhbnQgdGhlIDB4YzMgYnl0ZSB0byBiZSBtYXBwZWQgdGhlbiBvcgogb3RoZXJ3aXNlIGl0IHdvdWxkIGJlIGltcG9zc2libGUgdG8gdHlwZSB0aGUg4SBjaGFyYWN0ZXIuCiAKIAkJCQkJKjxMZWFkZXI+KiAqbWFwbGVhZGVyKgpAQCAtMTE3NywxMyArMTE3NywxNSBAQAogY29tbWFuZCBjYW4gdGFrZSBhcmd1bWVudHMsIHVzaW5nIHRoZSAtbmFyZ3MgYXR0cmlidXRlLiAgVmFsaWQgY2FzZXMgYXJlOgogCiAJLW5hcmdzPTAgICAgTm8gYXJndW1lbnRzIGFyZSBhbGxvd2VkICh0aGUgZGVmYXVsdCkKLQktbmFyZ3M9MSAgICBFeGFjdGx5IG9uZSBhcmd1bWVudCBpcyByZXF1aXJlZAotCS1uYXJncz0qICAgIEFueSBudW1iZXIgb2YgYXJndW1lbnRzIGFyZSBhbGxvd2VkICgwLCAxLCBvciBtYW55KQorCS1uYXJncz0xICAgIEV4YWN0bHkgb25lIGFyZ3VtZW50IGlzIHJlcXVpcmUsIGl0IGluY2x1ZGVzIHNwYWNlcyAKKwktbmFyZ3M9KiAgICBBbnkgbnVtYmVyIG9mIGFyZ3VtZW50cyBhcmUgYWxsb3dlZCAoMCwgMSwgb3IgbWFueSksCisJCSAgICBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UKIAktbmFyZ3M9PyAgICAwIG9yIDEgYXJndW1lbnRzIGFyZSBhbGxvd2VkCiAJLW5hcmdzPSsgICAgQXJndW1lbnRzIG11c3QgYmUgc3VwcGxpZWQsIGJ1dCBhbnkgbnVtYmVyIGFyZSBhbGxvd2VkCiAKIEFyZ3VtZW50cyBhcmUgY29uc2lkZXJlZCB0byBiZSBzZXBhcmF0ZWQgYnkgKHVuZXNjYXBlZCkgc3BhY2VzIG9yIHRhYnMgaW4gdGhpcwotY29udGV4dC4KK2NvbnRleHQsIGV4Y2VwdCB3aGVuIHRoZXJlIGlzIG9uZSBhcmd1bWVudCwgdGhlbiB0aGUgd2hpdGUgc3BhY2UgaXMgcGFydCBvZgordGhlIGFyZ3VtZW50LgogCiBOb3RlIHRoYXQgYXJndW1lbnRzIGFyZSB1c2VkIGFzIHRleHQsIG5vdCBhcyBleHByZXNzaW9ucy4gIFNwZWNpZmljYWxseSwKICJzOnZhciIgd2lsbCB1c2UgdGhlIHNjcmlwdC1sb2NhbCB2YXJpYWJsZSBpbiB0aGUgc2NyaXB0IHdoZXJlIHRoZSBjb21tYW5kIHdhcwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWVzc2FnZS50eHQgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAppbmRleCAyYTVmMGY1Li45N2M0NTI1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAorKysgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptZXNzYWdlLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgSmFuIDMwCisqbWVzc2FnZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIE1heSAxMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjcsOCArMjcsOCBAQAogVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UgYWNjaWRlbnRhbGx5IHR5cGVkIDxTcGFjZT4gYXQgdGhlIGhpdC1lbnRlcgogcHJvbXB0LiAgWW91IGFyZSB0aGVuIGJhY2sgYXQgdGhlIGhpdC1lbnRlciBwcm9tcHQgYW5kIGNhbiB0aGVuIHNjcm9sbCBmdXJ0aGVyCiBiYWNrLgotTm90ZTogd2hlbiB5b3Ugc3RvcHBlZCB0aGUgb3V0cHV0IHdpdGggInEiIGF0IHRoZSBtb3JlIHByb21wdCBvbmx5IHVwIHRvIHRoYXQKLXBvaW50IHdpbGwgYmUgZGlzcGxheWVkLgorTm90ZTogSWYgdGhlIG91dHB1dCBoYXMgYmVlbiBzdG9wcGVkIHdpdGggInEiIGF0IHRoZSBtb3JlIHByb21wdCwgaXQgd2lsbCBvbmx5CitiZSBkaXNwbGF5ZWQgdXAgdG8gdGhpcyBwb2ludC4KIFRoZSBwcmV2aW91cyBjb21tYW5kIG91dHB1dCBpcyBjbGVhcmVkIHdoZW4gYW5vdGhlciBjb21tYW5kIHByb2R1Y2VzIG91dHB1dC4KIAogSWYgeW91IGFyZSB1c2luZyB0cmFuc2xhdGVkIG1lc3NhZ2VzLCB0aGUgZmlyc3QgcHJpbnRlZCBsaW5lIHRlbGxzIHdobwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCBhMzY3ZTA2Li42YmEyMWZlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIEFwciAxNQorKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgQXByIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTgxNSw3ICs4MTUsNyBAQAogCWJlZW4gc2V0LgogCiAJCQkJCQkJKidiYWNrZ3JvdW5kJyogKidiZycqCi0nYmFja2dyb3VuZCcgJ2JnJwlzdHJpbmcJKGRlZmF1bHQgImRhcmsiIG9yICJsaWdodCIpCisnYmFja2dyb3VuZCcgJ2JnJwlzdHJpbmcJKGRlZmF1bHQgImRhcmsiIG9yICJsaWdodCIsIHNlZSBiZWxvdykKIAkJCWdsb2JhbAogCQkJe25vdCBpbiBWaX0KIAlXaGVuIHNldCB0byAiZGFyayIsIFZpbSB3aWxsIHRyeSB0byB1c2UgY29sb3JzIHRoYXQgbG9vayBnb29kIG9uIGEKQEAgLTg0OSw2ICs4NDksMTIgQEAKIAljb2xvcikuICBUbyBnZXQgYXJvdW5kIHRoaXMsIGZvcmNlIHRoZSBHVUkgd2luZG93IHRvIGJlIG9wZW5lZCBieQogCXB1dHRpbmcgYSAiOmd1aSIgY29tbWFuZCBpbiB0aGUgLmd2aW1yYyBmaWxlLCBiZWZvcmUgd2hlcmUgdGhlIHZhbHVlCiAJb2YgJ2JhY2tncm91bmQnIGlzIHVzZWQgKGUuZy4sIGJlZm9yZSAiOnN5bnRheCBvbiIpLgorCisJRm9yIE1TLURPUywgV2luZG93cyBhbmQgT1MvMiB0aGUgZGVmYXVsdCBpcyAiZGFyayIuCisJRm9yIG90aGVyIHN5c3RlbXMgImRhcmsiIGlzIHVzZWQgd2hlbiAndGVybScgaXMgImxpbnV4IiwKKwkic2NyZWVuLmxpbnV4IiwgImN5Z3dpbiIgb3IgInB1dHR5Iiwgb3IgJENPTE9SRkdCRyBzdWdnZXN0cyBhIGRhcmsKKwliYWNrZ3JvdW5kLiAgT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IGlzICJsaWdodCIuCisKIAlOb3JtYWxseSB0aGlzIG9wdGlvbiB3b3VsZCBiZSBzZXQgaW4gdGhlIC52aW1yYyBmaWxlLiAgUG9zc2libHkKIAlkZXBlbmRpbmcgb24gdGhlIHRlcm1pbmFsIG5hbWUuICBFeGFtcGxlOiA+CiAJCTppZiAmdGVybSA9PSAicGN0ZXJtIgpAQCAtMzA5NCw3ICszMTAwLDcgQEAKIAljbG9zZWQuICBBbHNvIGZvciBtYW51YWxseSBjbG9zZWQgZm9sZHMuICBXaXRoIHRoZSBkZWZhdWx0IHZhbHVlIG9mCiAJb25lIGEgZm9sZCBjYW4gb25seSBiZSBjbG9zZWQgaWYgaXQgdGFrZXMgdXAgdHdvIG9yIG1vcmUgc2NyZWVuIGxpbmVzLgogCVNldCB0byB6ZXJvIHRvIGJlIGFibGUgdG8gY2xvc2UgZm9sZHMgb2YganVzdCBvbmUgc2NyZWVuIGxpbmUuCi0JTm90ZSB0aGF0IHRoaXMgb25seSBoYXMgYW4gZWZmZWN0IG9mIHdoYXQgaXMgZGlzcGxheWVkLiAgQWZ0ZXIgdXNpbmcKKwlOb3RlIHRoYXQgdGhpcyBvbmx5IGhhcyBhbiBlZmZlY3Qgb24gd2hhdCBpcyBkaXNwbGF5ZWQuICBBZnRlciB1c2luZwogCSJ6YyIgdG8gY2xvc2UgYSBmb2xkLCB3aGljaCBpcyBkaXNwbGF5ZWQgb3BlbiBiZWNhdXNlIGl0J3Mgc21hbGxlcgogCXRoYW4gJ2ZvbGRtaW5saW5lcycsIGEgZm9sbG93aW5nICJ6YyIgbWF5IGNsb3NlIGEgY29udGFpbmluZyBmb2xkLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zeW50YXgudHh0IGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dAppbmRleCBjMzA5MjY3Li5mZjgyNDNhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zeW50YXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIEFwciAwNgorKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBNYXkgMDYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTEwMiw2ICsxMTAyLDggQEAKIEZMRVhXSUtJCQkJCSpmbGV4d2lraS52aW0qICpmdC1mbGV4d2lraS1zeW50YXgqCiAKIEZsZXhXaWtpIGlzIGFuIEFTUC5ORVQtYmFzZWQgd2lraSBwYWNrYWdlIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmZsZXh3aWtpLmNvbQorTk9URTogdGhpcyBzaXRlIGN1cnJlbnRseSBkb2Vzbid0IHdvcmssIG9uIFdpa2lwZWRpYSBpcyBtZW50aW9uZWQgdGhhdAorZGV2ZWxvcG1lbnQgc3RvcHBlZCBpbiAyMDA5LgogCiBTeW50YXggaGlnaGxpZ2h0aW5nIGlzIGF2YWlsYWJsZSBmb3IgdGhlIG1vc3QgY29tbW9uIGVsZW1lbnRzIG9mIEZsZXhXaWtpCiBzeW50YXguIFRoZSBhc3NvY2lhdGVkIGZ0cGx1Z2luIHNjcmlwdCBzZXRzIHNvbWUgYnVmZmVyLWxvY2FsIG9wdGlvbnMgdG8gbWFrZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggYmVlMzljMS4uNTBhMWQ0ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC00MjM0LDYgKzQyMzQsNyBAQAogRTg0OAlzeW50YXgudHh0CS8qRTg0OCoKIEU4NDkJc3ludGF4LnR4dAkvKkU4NDkqCiBFODUJb3B0aW9ucy50eHQJLypFODUqCitFODUwCWNoYW5nZS50eHQJLypFODUwKgogRTg2CXdpbmRvd3MudHh0CS8qRTg2KgogRTg3CXdpbmRvd3MudHh0CS8qRTg3KgogRTg4CXdpbmRvd3MudHh0CS8qRTg4KgpAQCAtNjA1Nyw2ICs2MDU4LDcgQEAKIGhhbmd1bGluLnR4dAloYW5ndWxpbi50eHQJLypoYW5ndWxpbi50eHQqCiBoYXMoKQlldmFsLnR4dAkvKmhhcygpKgogaGFzLXBhdGNoCWV2YWwudHh0CS8qaGFzLXBhdGNoKgoraGFzLXB5dGhvbglpZl9weXRoLnR4dAkvKmhhcy1weXRob24qCiBoYXNfa2V5KCkJZXZhbC50eHQJLypoYXNfa2V5KCkqCiBoYXNrZWxsLnZpbQlzeW50YXgudHh0CS8qaGFza2VsbC52aW0qCiBoYXNsb2NhbGRpcigpCWV2YWwudHh0CS8qaGFzbG9jYWxkaXIoKSoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggM2FkYzM2Yy4uYjk2ZjI1NSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIEFwciAyOAorKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBNYXkgMTAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzIsMzAgKzMyLDE4IEBACiAKIEdvIHRocm91Z2ggbW9yZSBjb3Zlcml0eSByZXBvcnRzLgogCi1QYXRjaCBmb3IgYmVoYXZpb3Igb2YgOmN3aW5kb3cuIChJbmdvIEthcmthdCwgMjAxMSBBcHIgMTUpCi0KLUNvbmZpZ3VyZSBmaXggZm9yIGZpbmRpbmcgZXhjdGFncy4gKEhvbmcgWHUsIDIwMTEgQXBybCAyKQotCi1XaGVuICdjb2xvcmNvbHVtbicgaXMgc2V0IGxvY2FsbHkgdG8gYSB3aW5kb3csICI6bmV3IiBvcGVucyBhIHdpbmRvdyB3aXRoIHRoZQotc2FtZSBoaWdobGlnaHRpbmcgYnV0ICdjb2xvcmNvbHVtbicgaXMgZW1wdHkuIChUeXJ1LCAyMDEwIE5vdiAxNSkKLVBhdGNoIGJ5IENocmlzdGlhbiBCcmFiYW5kdCwgMjAxMSBGZWIgMTMgKGJ1dCBtb3ZlIGZ1cnRoZXIgZG93bikuCi0KLVBhdGNoIGZvciBjb25maWd1cmUgcmVsYXRlZCB0byBSdWJ5IG9uIE1hYyBPUyBYLiAoQmpvcm4gV2luY2tsZXIsIDIwMTEgSmFuIDE0KQotCi1QYXRjaCB0byBtYWtlIG1rZGlyKCkgd29yayBwcm9wZXJseSBmb3IgZGlmZmVyZW50IGVuY29kaW5ncy4gKFl1a2loaXJvCi1OYWthZGFpcmEsIDIwMTEgQXByIDIzKQotCi1VcGRhdGVkIFBIUCBzeW50YXggZmlsZS4gKEphc29uIFdvb2ZlbmRlbiwgMjAxMSBBcHIgMjIpCi0KLUFTQ0lJIFZpbSBsb2dvJ3MgKEVybGluZyBXZXN0ZW52aWssIDIwMTEgQXByIDE5KSAgQWRkIHRvIHdlYnNpdGUuCi0KIENyYXNoIGluIGF1dG9jb21wbGV0ZSwgdmFsZ3JpbmQgbG9nLiAoR3JlZyBXZWJlciwgMjAxMSBBcHIgMjIpCiAKLVBhdGNoIGZvciBzdGF0aWMgY29kZSBhbmFseXNpcyBlcnJvcnMgaW4gcmlzY09TLiAoRG9taW5pcXVlIFBlbGxlLCAyMDEwIERlYyAzKQorRXggY29tbWFuZCAiOnMvIFw/LyAvZyIgc3BsaXRzIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbnRvIGJ5dGVzLiAoRG9taW5pcXVlCitQZWxsZSwgMjAxMSBNYXkgNykuCiAKLVBhdGNoIHRvIHNldCB2OnJlZ2lzdGVyIG9uIHN0YXJ0dXAuIChJbmdvIEthcmthdCwgMjAxMSBKYW4gMTYpCitJbiBjb21tYW5kIGxpbmUgd2luZG93ICI6Y2xvc2UiIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4gKFRvbnkgTWVjaGVseW5jaywgMjAwOQorSnVuIDEpCitQYXRjaCBieSBKZWFuLVJlbmUgRGF2aWQsIDIwMTEgQXByIDMwLgogCi1SaXNjIE9TIGd1aSBoYXMgb2J2aW91cyBlcnJvcnMuICBEcm9wIGl0PworV2hlbiAiYiIgaXMgYSBzeW1saW5rIHRvIGRpcmVjdG9yeSAiYSIsIHJlc29sdmUoImIvIikgZG9lc24ndCByZXN1bHQgaW4gImEvIi4KKyhaeVgsIDIwMTEgRmViIDEyKQorUGF0Y2ggYnkgSmVhbi1SZW5lIERhdmlkLCAyMDExIEFwciAzMC4KIAogUGF0Y2ggdG8gc2V0IHY6cmVnaXN0ZXIgZGVmYXVsdCBkZXBlbmRpbmcgb24gInVubmFtZWQiIGluICdjbGlwYm9hcmQnLiAoSW5nbwogS2Fya2F0LCAyMDExIEphbiAxNikKQEAgLTk2LDYgKzg0LDkgQEAKIAogUGF0Y2ggZm9yIFB5dGhvbiAzIHN1cHBvcnQuIChsaWx5ZGp3ZywgMjAxMSBGZWIgMjQpCiAKK1BhdGNoIHRvIG1ha2UgcHV0dGluZyBmcm9tIGNsaXBib2FyZCBsaW5ld2lzZSB3aGVuIHRoZSB0ZXh0IGVuZHMgaW4gYSBuZXdsaW5lLgorKFN1bmcgUGFlKSAgRG8gd2Ugd2FudCB0aGlzPworCiBCdWlsZGluZyB0aGUgTWluZ1cgdmVyc2lvbiB3aXRob3V0IGNsaXBib2FyZCBidXQgd2l0aCBtdWx0aS1ieXRlIGRvZXNuJ3QKIHdvcmsuIChCaWxsIExhbSwgMjAxMCBTZXAgMTgpCiAKQEAgLTEwNSwxMiArOTYsMjYgQEAKIFBhdGNoIHRvIGRpc2FsbG93IGZvcmsoKSB3aGVuIF9fQVBQTEVfXyBpcyBkZWZpbmVkLiAoSGlzYXNoaSBUIEZ1amluYWthLCAyMDEwCiBOb3YgMjUpCiAKKzcgICBPdXRwdXQgZm9yICI6c2NyaXB0bmFtZXMiIGFuZCAiOmJyZWFrbGlzdCIgc2hvdWxkIHNob3J0ZW4gdGhlIGZpbGUgbmFtZXM6CisgICAgdXNlICJ+LyIgd2hlbiBwb3NzaWJsZS4KK1BhdGNoIGJ5IEplYW4tUmVuZSBEYXZpZCwgMjAxMSBNYXkgMS4KKworUGF0Y2ggZm9yIGJldHRlciAjaWYgMCBzeW50YXggaGlnaGxpZ2h0aW5nIGZvciBDIGNvZGUuIChCZW4gU2NobWlkdCwgMjAxMSBKYW4KKzIwKQorQ2hhbmdlIHRvIEMgc3ludGF4IGZvbGRpbmcgdG8gbWFrZSBpdCB3b3JrIG11Y2ggZmFzdGVyLCBidXQgYSBiaXQgbGVzcworcmVsaWFibGUuIChMZWNoIExvcmVucywgMjAwOSBOb3YgOSkgIEVuYWJsZSB3aXRoIGFuIG9wdGlvbj8KK01vc3QgdGltZSBpcyBzcGVudCBpbiBpbl9pZF9saXN0KCkuCitVcGRhdGVkIHRvIG1lcmdlIGJvdGggcGF0Y2hlcy4gKEJlbiBTY2htaWR0LCAyMDExIE1heSAyKQorCiBHVEs6IFBhdGNoIHRvIGZpeCBtZW51IHBvcHBpbmcgZG93bi4gKEhvbmcgWHUsIDIwMTAgRGVjIDQsIERlYyA1KQogVXBkYXRlIDIwMTEgRmViIDMuCiAKIFBhdGNoIHRvIHVzZSBwaXBlcyBvbiBXaW4zMi4gIChWaW5jZW50IEJlcnRob3V4LCAyMDExIEZlYiAyOCkKIFVwZGF0ZSBNYXIgMSB1c2luZyAnc2hlbGx0ZW1wJy4KIAorUGF0Y2ggdG8gc3VwcG9ydCBVVEYtOCBmb3IgSGFuZ3VsLiAoU2hhd24gWS5ILiBLaW0sIDIwMTEgTWF5IDEpCitOZWVkcyBtb3JlIHdvcmsuCisKICJnaDxEZWw+IiBkZWxldGVzIHRoZSBjdXJyZW50IGxpbmUsIGV4Y2VwdCB3aGVuIGl0J3MgdGhlIGxhc3QgbGluZS4KIEhpbnQgYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDExIE1hciAyMgogCkBAIC0xNTAsNiArMTU1LDEyIEBACiAgICBiYWNrdHJhY2UgZnJvbSB5b3VyIGRlYnVnZ2VyIGlmIHlvdSBicmVhayBvbiB0aGUgZ2RrX3hfZXJyb3IoKSBmdW5jdGlvbi4pCiBDaGVjayB0aGF0IG51bWJlciBvZiBwaXhlbHMgZG9lc24ndCBnbyBhYm92ZSA2NTUzNT8KIAorOCAgIEFkZCBhbiBldmVudCBsaWtlIEN1cnNvckhvbGQgdGhhdCBpcyB0cmlnZ2VyZWQgcmVwZWF0ZWRseSwgbm90IGp1c3Qgb25jZQorICAgIGFmdGVyIHR5cGluZyBzb21ldGhpbmcuCitOZWVkIGZvciBDdXJzb3JIb2xkIHRoYXQgcmV0cmlnZ2Vycy4gIFVzZSBhIGtleSB0aGF0IGRvZXNuJ3QgZG8gYW55dGhpbmcsIG9yIGEKK2Z1bmN0aW9uIHRoYXQgcmVzZXRzIGRpZF9jdXJzb3Job2xkLgorUGF0Y2ggYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDExIE1heSA2LgorCiBDdXJzb3JIb2xkIHJlcGVhdHMgdHlwZWQga2V5IHdoZW4gaXQncyB0aGUgc3RhcnQgb2YgYSBtYXBwaW5nLgogKFdpbGwgR3JheSwgMjAxMSBNYXIgMjMpCiAKQEAgLTM3MiwxMSArMzgzLDYgQEAKIElzIH4vYmluIChsaXRlcmFsbHkpIGluICRQQVRIIHN1cHBvc2VkIHRvIHdvcms/ICAoUGF1bCwgMjAxMCBNYXJjaCAyOSkKIExvb2tzIGxpa2Ugb25seSBiYXNoIGNhbiBkbyBpdC4gKFlha292IExlcm5lcikKIAotOCAgIEFkZCBhbiBldmVudCBsaWtlIEN1cnNvckhvbGQgdGhhdCBpcyB0cmlnZ2VyZWQgcmVwZWF0ZWRseSwgbm90IGp1c3Qgb25jZQotICAgIGFmdGVyIHR5cGluZyBzb21ldGhpbmcuCi1OZWVkIGZvciBDdXJzb3JIb2xkIHRoYXQgcmV0cmlnZ2Vycy4gIFVzZSBhIGtleSB0aGF0IGRvZXNuJ3QgZG8gYW55dGhpbmcsIG9yIGEKLWZ1bmN0aW9uIHRoYXQgcmVzZXRzIGRpZF9jdXJzb3Job2xkLgotCiBDc2NvcGUgImNzIGFkZCIgc3RvcHBlZCB3b3JraW5nIHNvbWV3aGF0IGJlZm9yZSA3LjIuNDM4LiAoR2FyeSBKb2huc29uLCAyMDEwCiBKdW4gMjkpICBDYXVzZWQgYnkgNy4yLjQzMz8KIApAQCAtNDAxLDggKzQwNyw2IEBACiBGaW5kIHRhaWw/ICBNaWdodCBoYXZlIGEgLyBpbiBhcmd1bWVudC4gIEZpbmQgc3BhY2U/ICBNaWdodCBoYXZlIHNwYWNlIGluCiBwYXRoLgogCi0iOnNvcnQgbiIgdHJlYXRzIGVtcHR5IGxpbmUgYXMgaGlnaGVyIHRoYW4gemVyby4gKEJlZXlhd25lZCwgMjAxMCBPY3QgMTMpCi0KIFRlc3QgNTEgZmFpbHMgd2hlbiBsYW5ndWFnZSBzZXQgdG8gR2VybWFuLiAoTWFyY28sIDIwMTEgSmFuIDkpCiBEb21pbmlxdWUgY2FuJ3QgcmVwcm9kdWMgaXQuCiAKQEAgLTQ0MCwxMyArNDQ0LDYgQEAKIG1vZGUuIChJc3JhZWwgQ2hhdWNhLCAyMDEwIE1heSAxMywgbW9yZSBpbiBzZWNvbmQgbXNnKQogQnJlYWsgdW5kbyB3aGVuIENUUkwtUiA9IGNoYW5nZXMgdGhlIHRleHQ/ICBPciBzYXZlIG1vcmUgbGluZXM/CiAKLVBhdGNoIGZvciBiZXR0ZXIgI2lmIDAgc3ludGF4IGhpZ2hsaWdodGluZyBmb3IgQyBjb2RlLiAoQmVuIFNjaG1pZHQsIDIwMTEgSmFuCi0yMCkKLQotQ2hhbmdlIHRvIEMgc3ludGF4IGZvbGRpbmcgdG8gbWFrZSBpdCB3b3JrIG11Y2ggZmFzdGVyLCBidXQgYSBiaXQgbGVzcwotcmVsaWFibGUuIChMZWNoIExvcmVucywgMjAwOSBOb3YgOSkgIEVuYWJsZSB3aXRoIGFuIG9wdGlvbj8KLU1vc3QgdGltZSBpcyBzcGVudCBpbiBpbl9pZF9saXN0KCkuCi0KIFNsb3cgY29tYmluYXRpb24gb2YgZm9sZGluZyBhbmQgUEhQIHN5bnRheCBoaWdobGlnaHRpbmcuICBTY3JpcHQgdG8gcmVwcm9kdWNlCiBpdC4gIENhdXNlZCBieSAic3ludGF4IHN5bmMgZnJvbXN0YXJ0IiBpbiBjb21iaW5hdGlvbiB3aXRoIHBhdGNoIDcuMi4yNzQuCiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDEwIE1heSAyNykKQEAgLTQ1OSw5ICs0NTYsNiBAQAogVXNpbmcgIjpjYWxsIGZvbyNkLmYoKSIgZG9lc24ndCBhdXRvbG9hZCB0aGUgImZvby52aW0iIGZpbGUuICBXb3JrcyBPSyBmb3IKIGVjaG8sIGp1c3Qgbm90IGZvciAgIjpjYWxsIiBhbmQgIjpjYWxsIGNhbGwoKSIuIChUZWQsIDIwMTEgTWFyIDE3KQogCi1JbiBjb21tYW5kIGxpbmUgd2luZG93ICI6Y2xvc2UiIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4gKFRvbnkgTWVjaGVseW5jaywgMjAwOQotSnVuIDEpCi0KIENhbm5vdCB1c2UgZ2V0Y2hhcigpIGluc2lkZSA6bm9ybWFsIGFuZCB1c2luZyBhbiBleHByZXNzaW9uIG1hcHBpbmcuICBJcyB0aGlzCiBzdXBwb3NlZCB0byB3b3JrPyAgKFh5WCwgMjAxMCBTZXAgMjIpCiAKQEAgLTU4NSw5ICs1NzksNiBAQAogUGVyaGFwcyB3ZSBuZWVkIHRvIHVzZSBhIGhpZGRlbiB3aW5kb3cgZm9yIGFwcGx5aW5nIGF1dG9jb21tYW5kcyB0byBhIGJ1ZmZlcgogdGhhdCBkb2Vzbid0IGhhdmUgYSB3aW5kb3cuCiAKLVdoZW4gImIiIGlzIGEgc3ltbGluayB0byBkaXJlY3RvcnkgImEiLCByZXNvbHZlKCJiLyIpIGRvZXNuJ3QgcmVzdWx0IGluICJhLyIuCi0oWnlYLCAyMDExIEZlYiAxMikKLQogV2hlbiB1c2luZyAiYWIgZm9vIGJhciIgYW5kIG1hcHBpbmcgPFRhYj4gdG8gPEVzYz4sIHByZXNzaW5nIDxUYWI+IGFmdGVyIGZvbwogZG9lc24ndCB0cmlnZ2VyIHRoZSBhYmJyZXZpYXRpb24gbGlrZSA8RXNjPiB3b3VsZC4gKFJhbWFuYSBLdW1hciwgMjAwOSBTZXAgNikKIApAQCAtMTg1Nyw3ICsxODQ4LDcgQEAKIDggICBXaGVuIHRyYW5zbGF0aW5nIG1lbnVzIGlnbm9yZSB0aGUgcGFydCBhZnRlciB0aGUgVGFiLCB0aGUgc2hvcnRjdXQuICBTbwogICAgIHRoYXQgdGhlIHNhbWUgbWVudSBpdGVtIHdpdGggYSBkaWZmZXJlbnQgc2hvcnRjdXQgKGUuZy4sIGZvciB0aGUgTWFjKSBhcmUKICAgICBzdGlsbCB0cmFuc2xhdGVkLgotOCAgIEFkZCBtZW51IHNlcGFyYXRvcnMgZm9yIEFtaWdhLCBSSVNDT1MuCis4ICAgQWRkIG1lbnUgc2VwYXJhdG9ycyBmb3IgQW1pZ2EuCiA4ICAgQWRkIHdheSB0byBzcGVjaWZ5IHRoZSBmaWxlIGZpbHRlciBmb3IgdGhlIGJyb3dzZSBkaWFsb2cuICBBdCBsZWFzdCBmb3IKICAgICBicm93c2UoKS4KIDggICBBZGQgZGlhbG9nIGZvciBzZWFyY2gvcmVwbGFjZSB0byBvdGhlciBHVUlzPyAgVGsgaGFzIHNvbWV0aGluZyBmb3IgdGhpcywKQEAgLTIxMDIsOCArMjA5Myw2IEBACiA2ICAgUHl0aG9uOiAiOnB5IHJhd19pbnB1dCgncHJvbXB0JykiIGRvZXNuJ3Qgd29yay4gKE1hbnUgSGFjaykKIDggICBDb21tYW5kIGxpbmUgY29tcGxldGlvbjogYnVmZmVycyAiZm9vLnR4dCIgYW5kICIuLi9iL2Zvby50eHQiLCBjb21wbGV0aW5nCiAgICAgIjpidWYgZm9vPFRhYj4iIGRvZXNuJ3QgZmluZCB0aGUgc2Vjb25kIG9uZS4gKEdlb3JnZSBWLiBSZWlsbHkpCi03ICAgT3V0cHV0IGZvciAiOnNjcmlwdG5hbWVzIiBhbmQgIjpicmVha2xpc3QiIHNob3VsZCBzaG9ydGVuIHRoZSBmaWxlIG5hbWVzOgotICAgIHVzZSAifi8iIHdoZW4gcG9zc2libGUuCiA3ICAgbWJfb2ZmMmNlbGxzKCkgZG9lc24ndCB3b3JrIGNvcnJlY3RseSBvbiB0aGUgdGFpbCBieXRlIG9mIGEgZG91YmxlLWJ5dGUKICAgICBjaGFyYWN0ZXIuIChZYXN1aGlybyBNYXRzdW1vdG8pICBJdCBzaG91bGQgcmV0dXJuIDEgd2hlbiB1c2VkIG9uIGEgdGFpbAogICAgIGJ5dGUsIGxpa2UgZm9yIHV0Zi04LiAgU3RvcmUgc2Vjb25kIGJ5dGUgb2YgZG91YmxlLWJ5dGUgaW4gU2NyZWVuTGluZXMyW10KQEAgLTIxMzAsOCArMjExOSw2IEBACiAgICAgd29ya3MuCiA4ICAgQSB2ZXJ5IGxvbmcgbWVzc2FnZSBpbiBjb25maXJtKCkgY2FuJ3QgYmUgcXVpdC4gIE1ha2UgdGhpcyBwb3NzaWJsZSB3aXRoCiAgICAgQ1RSTC1DLgotOCAgIFdoZW4gdGhlIGNsaXBib2FyZCBpc24ndCBzdXBwb3J0ZWQ6ICI6eWFuayoiIGdpdmVzIGEgY29uZnVzaW5nIGVycm9yCi0gICAgbWVzc2FnZS4gIFNwZWNpZmljYWxseSBtZW50aW9uIHRoYXQgdGhlIHJlZ2lzdGVyIG5hbWUgaXMgaW52YWxpZC4KIDggICAiZ2YiIGFsd2F5cyBleGNsdWRlcyB0cmFpbGluZyBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzLiAgZmlsZV9uYW1lX2luX2xpbmUoKQogICAgIGlzIGN1cnJlbnRseSBmaXhlZCB0byB1c2UgIi4sOjshIi4gIEFkZCBhbiBvcHRpb24gdG8gbWFrZSB0aGlzCiAgICAgY29uZmlndXJhYmxlPwpAQCAtMjE0NSw4ICsyMTMyLDYgQEAKICAgICBpcyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgogOCAgIFdoZW4gYXBwZW5kaW5nIHRvIGEgZmlsZSBhbmQgJ3BhdGNobW9kZScgaXNuJ3QgZW1wdHksIGEgYmFja3VwIGZpbGUgaXMKICAgICBhbHdheXMgd3JpdHRlbiwgZXZlbiB3aGVuIHRoZSBvcmlnaW5hbCBmaWxlIGFscmVhZHkgZXhpc3RzLgotNyAgIFdoZW4gdXNpbmcgImRhdyIgb24gdGhlIGxhc3Qgd29yZCBpbiBhIGZpbGUgYW5kIHRoaXMgaXMgYSBzaW5nbGUgbGV0dGVyLAotICAgIG5vdGhpbmcgaXMgZGVsZXRlZC4gIFNob3VsZCBkZWxldGUgdGhlIGxldHRlciBhbmQgcHJlY2VkaW5nIHdoaXRlIHNwYWNlLgogOSAgIFdoZW4gZ2V0dGluZyBmb2N1cyB3aGlsZSB3cml0aW5nIGEgbGFyZ2UgZmlsZSwgY291bGQgd2FybiBmb3IgdGhpcyBmaWxlCiAgICAgYmVpbmcgY2hhbmdlZCBvdXRzaWRlIG9mIFZpbS4gIEF2b2lkIGNoZWNraW5nIHRoaXMgd2hpbGUgdGhlIGZpbGUgaXMgYmVpbmcKICAgICB3cml0dGVuLgpAQCAtMjc5Nyw3ICsyNzgyLDcgQEAKICAgICBGb3IgV2luZG93cywgdGhlIGNoYXJzZXRfcGFpcnNbXSB0YWJsZSBjb3VsZCBiZSB1c2VkLiAgQnV0IGhvdyBkbyB3ZSBrbm93CiAgICAgaWYgYSBmb250IGV4aXN0cz8KIC0gICBEbyBrZXlib2FyZCBjb252ZXJzaW9uIGZyb20gJ3Rlcm1lbmNvZGluZycgdG8gJ2VuY29kaW5nJyB3aXRoCi0gICAgY29udmVydF9pbnB1dCgpIGZvciBNYWMgR1VJIGFuZCBSaXNjT1MgR1VJLgorICAgIGNvbnZlcnRfaW5wdXQoKSBmb3IgTWFjIEdVSS4KIC0gICBBZGQgbW5lbW9uaWNzIGZyb20gUkZDMTM0NSBsb25nZXIgdGhhbiB0d28gY2hhcmFjdGVycy4KICAgICBTdXBwb3J0IENUUkwtSyBfe21uZW1vbmljfV8KIDcgICBJbiAiLS0gSU5TRVJUIChsYW5nKSAtLSIgc2hvdyB0aGUgbmFtZSBvZiB0aGUga2V5bWFwIHVzZWQgaW5zdGVhZCBvZgpAQCAtMzA2MCw2ICszMDQ1LDEwIEBACiAJCQkJUGF0Y2ggYnkgSWx5YSBTaGVyLCAyMDA0IE1hciA0LgogCQkJCVJldHVybiBhIGxpc3QgaW5zdGVhZC4KIAljaGFyMmhleCgpCQljb252ZXJ0IGNoYXIgc3RyaW5nIHRvIGhleCBzdHJpbmcuCisJY3J5cHQoKQkJCWVuY3J5cHQgc3RyaW5nCisJZGVjcnlwdCgpCQlkZWNyeXB0IHN0cmluZworCWJhc2U2NGVuYygpCQliYXNlIDY0IGVuY29kaW5nCisJYmFzZTY0ZGVjKCkJCWJhc2UgNjQgZGVjb2RpbmcKIAlhdHRyaWJ1dGVzKCkJCXJldHVybiBmaWxlIHByb3RlY3Rpb24gZmxhZ3MgImRyd3hyd3hyd3giCiAJZmlsZWNvcHkoZnJvbSwgdG8pCUNvcHkgYSBmaWxlCiAJc2hvcnRlbihmbmFtZSkJCXNob3J0ZW4gYSBmaWxlIG5hbWUsIGxpa2UgaG9tZV9yZXBsYWNlKCkKQEAgLTM0NDEsNyArMzQzMCw3IEBACiAKIAogR1VJOgotOCAgIE1ha2UgaW5wdXRkaWFsb2coKSB3b3JrIGZvciBQaG90b24sIEFtaWdhLCBSaXNjT1MuCis4ICAgTWFrZSBpbnB1dGRpYWxvZygpIHdvcmsgZm9yIFBob3RvbiwgQW1pZ2EuCiAtICAgPEMtLT4gY2Fubm90IGJlIG1hcHBlZC4gIFNob3VsZCBiZSBwb3NzaWJsZSB0byByZWNvZ25pemUgdGhpcyBhcyBhCiAgICAgbm9ybWFsICItIiB3aXRoIHRoZSBDdHJsIG1vZGlmaWVyLgogNyAgIEltcGxlbWVudCAiOnBvcHVwIiBmb3Igb3RoZXIgc3lzdGVtcyB0aGFuIFdpbmRvd3MuCkBAIC0zNTUyLDkgKzM1NDEsOSBAQAogICAgIGhhbmRsZWQgKGUuZy4sIG90aGVyIGZvbnQpIChSb24gQWFyb24pCiA3ICAgV2hlbiB0cnlpbmcgdG8gb3BlbiBhIGRpcmVjdG9yeSwgdHJpZ2dlciBhbiBPcGVuRGlyZWN0b3J5IGV2ZW50LgogNyAgIEFkZCBmaWxlIHR5cGUgaW4gZnJvbnQgb2YgZmlsZSBwYXR0ZXJuOiA8ZD4gZm9yIGRpcmVjdG9yeSwgPGw+IGZvciBsaW5rLAotICAgIDx4PiBmb3IgZXhlY3V0YWJsZSwgZXRjLiAgPCZ4eHg+IGZvciBSaXNjIE9TLiAgV2l0aCBjb21tYXMgdG8gc2VwYXJhdGUKLSAgICBhbHRlcm5hdGl2ZXMuICBUaGUgYXV0b2NvbW1hbmQgaXMgb25seSBleGVjdXRlZCB3aGVuIGJvdGggdGhlIGZpbGUgdHlwZQotICAgIEFORCB0aGUgZmlsZSBwYXR0ZXJuIG1hdGNoLiAoTGVvbmFyZCkKKyAgICA8eD4gZm9yIGV4ZWN1dGFibGUsIGV0Yy4gIFdpdGggY29tbWFzIHRvIHNlcGFyYXRlIGFsdGVybmF0aXZlcy4gIFRoZQorICAgIGF1dG9jb21tYW5kIGlzIG9ubHkgZXhlY3V0ZWQgd2hlbiBib3RoIHRoZSBmaWxlIHR5cGUgQU5EIHRoZSBmaWxlIHBhdHRlcm4KKyAgICBtYXRjaC4gKExlb25hcmQpCiA1ICAgQWRkIG9wdGlvbiB0aGF0IHNwZWNpZmllcyBleHRlbnNpb25zIHdoaWNoIGFyZSB0byBiZSBkaXNjYXJkZWQgZnJvbSB0aGUKICAgICBmaWxlIG5hbWUuICBFLmcuICdhdXN1ZmZpeCcsIHdpdGggIi5neiwub3JpZyIuICBTdWNoIHRoYXQgZmlsZS5jLmd6IHdpbGwKICAgICB0cmlnZ2VyIHRoZSAiKi5jIiBhdXRvY29tbWFuZHMuICAoQmVsYWJhcykKQEAgLTM4MTIsMTAgKzM4MDEsNiBAQAogCiAKICdjaW5kZW50JywgJ3NtYXJ0aW5kZW50JzoKLTkgICAiKSA6IiBjb25mdXNlcyBjb250aW51YXRpb24gbGluZTogKENvbGluIEJlbm5ldHQsIDIwMDcgRGVjIDE0KQotICAgICAgICBjb3V0IDw8ICJhIgotICAgICAgICAgICAgICAgIDw8ICIpIDoiCi0gICAgICAgICAgICAgICAgPDwgInkiOwogOSAgICJ9IGVsc2UiIGNhdXNlcyBmb2xsb3dpbmcgbGluZXMgdG8gYmUgaW5kZW50ZWQgdG9vIG11Y2guIChSb3ViZW4KICAgICBSb3N0YW1pYW4sIDIwMDggQXVnIDMwKQogOSAgIFdyYXBwaW5nIGEgdmFyaWFibGUgaW5pdGlhbGl6YXRpb24gc2hvdWxkIGhhdmUgZXh0cmEgaW5kZW50Ogo=