ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvY2NvbXBsZXRlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvY2NvbXBsZXRlLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjk5Y2E3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9hdXRvbG9hZC9jY29tcGxldGUudmltCkBAIC0wLDAgKzEsMzIgQEAKKyIgVmltIGNvbXBsZXRpb24gc2NyaXB0CisiIExhbmd1YWdlOglDCisiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+CisiIExhc3QgQ2hhbmdlOgkyMDA1IFNlcCAwMQorCitmdW5jdGlvbiEgY2NvbXBsZXRlI0NvbXBsZXRlKGZpbmRzdGFydCwgYmFzZSkKKyAgaWYgYTpmaW5kc3RhcnQKKyAgICAiIGxvY2F0ZSB0aGUgc3RhcnQgb2YgdGhlIHdvcmQKKyAgICBsZXQgbGluZSA9IGdldGxpbmUoJy4nKQorICAgIGxldCBzdGFydCA9IGNvbCgnLicpIC0gMQorICAgIHdoaWxlIHN0YXJ0ID4gMAorICAgICAgaWYgbGluZVtzdGFydCAtIDFdID1+ICdcd1x8XC4nCisJbGV0IHN0YXJ0IC09IDEKKyAgICAgIGVsc2VpZiBzdGFydCA+IDEgJiYgbGluZVtzdGFydCAtIDJdID09ICctJyAmJiBsaW5lW3N0YXJ0IC0gMV0gPT0gJz4nCisJbGV0IHN0YXJ0IC09IDIKKyAgICAgIGVsc2UKKwlicmVhaworICAgICAgZW5kaWYKKyAgICBlbmR3aGlsZQorICAgIHJldHVybiBzdGFydAorICBlbmRpZgorCisgICIgcmV0dXJuIGxpc3Qgb2YgbWF0Y2hlcworICBsZXQgaXRlbXMgPSBzcGxpdChhOmJhc2UsICdcLlx8LT4nKQorICBpZiBsZW4oaXRlbXMpID09IDEKKyAgICAiIE9ubHkgb25lIHBhcnQsIG5vICIuIiBvciAiLT4iOiBjb21wbGV0ZSBmcm9tIHRhZ3MgZmlsZS4KKyAgICBsZXQgZGljbGlzdCA9IHRhZ2xpc3QoaXRlbXNbMF0pCisgICAgcmV0dXJuIG1hcChkaWNsaXN0LCAndjp2YWxbIm5hbWUiXScpCisgIGVuZGlmCisgIHJldHVybiBpdGVtcworZW5kZnVuY3Rpb24KKwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvTWFrZWZpbGUgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQppbmRleCAzYWVmMWNhLi5hNTc3MGMyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9NYWtlZmlsZQorKysgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQpAQCAtMTksNiArMTksNyBAQAogCWNoYW5nZS50eHQgXAogCWNtZGxpbmUudHh0IFwKIAlkZWJ1Z2dlci50eHQgXAorCWRlYnVnLnR4dCBcCiAJZGV2ZWxvcC50eHQgXAogCWRpZmYudHh0IFwKIAlkaWdyYXBoLnR4dCBcCkBAIC0xMzksNiArMTQwLDcgQEAKIAlhdXRvY21kLmh0bWwgXAogCWNoYW5nZS5odG1sIFwKIAljbWRsaW5lLmh0bWwgXAorCWRlYnVnLmh0bWwgXAogCWRlYnVnZ2VyLmh0bWwgXAogCWRldmVsb3AuaHRtbCBcCiAJZGlmZi5odG1sIFwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RlYnVnLnR4dCBiL3J1bnRpbWUvZG9jL2RlYnVnLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGZlZjFiCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvZGVidWcudHh0CkBAIC0wLDAgKzEsNjkgQEAKKypkZWJ1Zy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBTZXAgMDEKKworCisJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKKworCitEZWJ1Z2dpbmcgVmltCQkJCQkJKmRlYnVnLXZpbSoKKworVGhpcyBpcyBmb3IgZGVidWdnaW5nIFZpbSBpdHNlbGYsIHdoZW4gaXQgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorCisxLiBMb2NhdGlvbiBvZiBhIGNyYXNoLCB1c2luZyBnY2MgYW5kIGdkYgl8ZGVidWctZ2NjfAorMi4gV2luZG93cyBCdWcgUmVwb3J0aW5nICAgICAgICAgICAgICAgCQl8ZGVidWctd2luMzJ8CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisxLiBMb2NhdGlvbiBvZiBhIGNyYXNoLCB1c2luZyBnY2MgYW5kIGdkYgkJKmRlYnVnLWdjYyoKKworV2hlbiBWaW0gY3Jhc2hlcyBpbiBvbmUgb2YgdGhlIHRlc3QgZmlsZXMsIGFuZCB5b3UgYXJlIHVzaW5nIGdjYyBmb3IKK2NvbXBpbGF0aW9uLCBoZXJlIGlzIHdoYXQgeW91IGNhbiBkbyB0byBmaW5kIG91dCBleGFjdGx5IHdoZXJlIFZpbSBjcmFzaGVzLgorVGhpcyBhbHNvIGFwcGxpZXMgd2hlbiB1c2luZyB0aGUgTWluZ1cgdG9vbHMuCisKKzEuIENvbXBpbGUgVmltIHdpdGggdGhlICItZyIgb3B0aW9uICh0aGVyZSBpcyBhIGxpbmUgaW4gdGhlIE1ha2VmaWxlIGZvciB0aGlzLAorICAgd2hpY2ggeW91IGNhbiB1bmNvbW1lbnQpLgorCisyLiBFeGVjdXRlIHRoZXNlIGNvbW1hbmRzIChyZXBsYWNlICIxMSIgd2l0aCB0aGUgdGVzdCB0aGF0IGZhaWxzKTogPgorCWNkIHRlc3RkaXIKKwlnZGIgLi4vdmltCisJcnVuIC11IHVuaXgudmltIC1VIE5PTkUgLXMgZG90ZXN0LmluIHRlc3QxMS5pbgorCiszLiBDaGVjayB3aGVyZSBWaW0gY3Jhc2hlcywgZ2RiIHNob3VsZCBnaXZlIGEgbWVzc2FnZSBmb3IgdGhpcy4KKworNC4gR2V0IGEgc3RhY2sgdHJhY2UgZnJvbSBnZGIgd2l0aCB0aGlzIGNvbW1hbmQ6ID4KKwl3aGVyZQorPCAgWW91IGNhbiBjaGVjayBvdXQgZGlmZmVyZW50IHBsYWNlcyBpbiB0aGUgc3RhY2sgdHJhY2Ugd2l0aDogPgorCWZyYW1lIDMKKzwgIFJlcGxhY2UgIjMiIHdpdGggb25lIG9mIHRoZSBudW1iZXJzIGluIHRoZSBzdGFjayB0cmFjZS4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzIuIFdpbmRvd3MgQnVnIFJlcG9ydGluZyAgICAgICAgICAgICAgICAgICAgICAgCQkqZGVidWctd2luMzIqCisKK0lmIHRoZSBXaW5kb3dzIHZlcnNpb24gb2YgVmltIGNyYXNoZXMgaW4gYSByZXByb2R1Y2libGUgbWFubmVyLAoreW91IGNhbiB0YWtlIHNvbWUgc3RlcHMgdG8gcHJvdmlkZSBhIHVzZWZ1bCBidWcgcmVwb3J0LgorCitGaXJzdCwgeW91IG11c3Qgb2J0YWluIHRoZSBkZWJ1Z2dlciBzeW1ib2xzIChQREIpIGZpbGUgZm9yIHlvdXIgZXhlY3V0YWJsZToKK2d2aW0ucGRiIGZvciBndmltLmV4ZSwgb3IgdmltLnBkYiBmb3IgdmltLmV4ZS4gSXQgc2hvdWxkIGJlIGF2YWlsYWJsZQorZnJvbSB0aGUgc2FtZSBwbGFjZSB0aGF0IHlvdSBvYnRhaW5lZCB0aGUgZXhlY3V0YWJsZS4gQmUgc3VyZSB0byB1c2UKK3RoZSBQREIgdGhhdCBtYXRjaGVzIHRoZSBFWEUuCisKK0lmIHlvdSBidWlsdCB0aGUgZXhlY3V0YWJsZSB5b3Vyc2VsZiB3aXRoIHRoZSBNaWNyb3NvZnQgVmlzdWFsIEMrKyBjb21waWxlciwKK3RoZW4gdGhlIFBEQiB3YXMgYnVpbHQgd2l0aCB0aGUgRVhFLgorCitZb3UgY2FuIGRvd25sb2FkIHRoZSBNaWNyb3NvZnQgVmlzdWFsIEMrKyBUb29sa2l0IGZyb20KKyAgICBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL3Zpc3VhbGMvdmN0b29sa2l0MjAwMy8KK1RoaXMgY29udGFpbnMgdGhlIGNvbW1hbmQtbGluZSB0b29scywgYnV0IG5vdCB0aGUgVmlzdWFsIFN0dWRpbyBJREUuCisKK1RoZSBEZWJ1Z2dpbmcgVG9vbHMgZm9yIFdpbmRvd3MgY2FuIGJlIGRvd25sb2FkZWQgZnJvbQorICAgIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93aGRjL2RldnRvb2xzL2RlYnVnZ2luZy9kZWZhdWx0Lm1zcHgKK1RoaXMgaW5jbHVkZXMgdGhlIFdpbkRiZyBkZWJ1Z2dlci4KKworSWYgeW91IGhhdmUgVmlzdWFsIFN0dWRpbywgdXNlIHRoYXQgaW5zdGVhZCBvZiB0aGUgVkMgVG9vbGtpdAorYW5kIFdpbkRiZy4KKworCisoTm8gaWRlYSB3aGF0IHRvIGRvIGlmIHlvdXIgYmluYXJ5IHdhcyBidWlsdCB3aXRoIHRoZSBCb3JsYW5kIG9yIEN5Z3dpbgorY29tcGlsZXJzLiBTb3JyeS4pCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZXZlbG9wLnR4dCBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CmluZGV4IGE2NDBmNWIuLjQ5ODgzM2MgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxNAorKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjM4LDggKzIzOCw4IEBACiAKIFZBUklPVVMJCQkJCQkJKnN0eWxlLXZhcmlvdXMqCiAKLVR5cGVkZWYnZWQgbmFtZXMgc2hvdWxkIGVuZCBpbiAiX3QiOiA+Ci0gICAgdHlwZWRlZiBpbnQgc29tZV90OworVHlwZWRlZidlZCBuYW1lcyBzaG91bGQgZW5kIGluICJfVCI6ID4KKyAgICB0eXBlZGVmIGludCBzb21lX1Q7CiBEZWZpbmUnZWQgbmFtZXMgc2hvdWxkIGJlIHVwcGVyY2FzZTogPgogICAgICNkZWZpbmUgU09NRV9USElORwogRmVhdHVyZXMgYWx3YXlzIHN0YXJ0IHdpdGggIkZFQVRfIjogPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZXZhbC50eHQgYi9ydW50aW1lL2RvYy9ldmFsLnR4dAppbmRleCBiNDEyNzM0Li5iYzAzZjAzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ldmFsLnR4dAorKysgYi9ydW50aW1lL2RvYy9ldmFsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMjMKKypldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMzEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQwODEsMTIgKzQwODEsMTIgQEAKIAogCQkJCQkJCSpzdHJsZW4oKSoKIHN0cmxlbih7ZXhwcn0pCVRoZSByZXN1bHQgaXMgYSBOdW1iZXIsIHdoaWNoIGlzIHRoZSBsZW5ndGggb2YgdGhlIFN0cmluZwotCQl7ZXhwcn0gaW4gYnl0ZXMuICBJZiB5b3Ugd2FudCB0byBjb3VudCB0aGUgbnVtYmVyIG9mCi0JCW11bHRpLWJ5dGUgY2hhcmFjdGVycyB1c2Ugc29tZXRoaW5nIGxpa2UgdGhpczogPgorCQl7ZXhwcn0gaW4gYnl0ZXMuCisJCUlmIHlvdSB3YW50IHRvIGNvdW50IHRoZSBudW1iZXIgb2YgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIChub3QKKwkJY291bnRpbmcgY29tcG9zaW5nIGNoYXJhY3RlcnMpIHVzZSBzb21ldGhpbmcgbGlrZSB0aGlzOiA+CiAKIAkJCTpsZXQgbGVuID0gc3RybGVuKHN1YnN0aXR1dGUoc3RyLCAiLiIsICJ4IiwgImciKSkKLQotPAkJQ29tcG9zaW5nIGNoYXJhY3RlcnMgYXJlIG5vdCBjb3VudGVkLgorPAogCQlJZiB0aGUgYXJndW1lbnQgaXMgYSBOdW1iZXIgaXQgaXMgZmlyc3QgY29udmVydGVkIHRvIGEgU3RyaW5nLgogCQlGb3Igb3RoZXIgdHlwZXMgYW4gZXJyb3IgaXMgZ2l2ZW4uCiAJCUFsc28gc2VlIHxsZW4oKXwuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWxwLnR4dCBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CmluZGV4IDIwMDdhOGEuLjVmYThjZjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlbHAudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CkBAIC0xLDQgKzEsNCBAQAotKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMTkKKypoZWxwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDAxCiAKIAkJCVZJTSAtIG1haW4gaGVscCBmaWxlCiAJCQkJCQkJCQkgawpAQCAtOTcsNiArOTcsNyBAQAogfHF1b3Rlcy50eHR8CXJlbWFya3MgZnJvbSB1c2VycyBvZiBWaW0KIHx0b2RvLnR4dHwJa25vd24gcHJvYmxlbXMgYW5kIGRlc2lyZWQgZXh0ZW5zaW9ucwogfGRldmVsb3AudHh0fAlkZXZlbG9wbWVudCBvZiBWaW0KK3xkZWJ1Zy50eHR8CWRlYnVnZ2luZyBWaW0gaXRzZWxmCiB8dWdhbmRhLnR4dHwJVmltIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFuZCB3aGF0IHRvIGRvIHdpdGggeW91ciBtb25leQogCiBCYXNpYyBlZGl0aW5nIH4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3J1YnkudHh0IGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKaW5kZXggM2NhOGNjNS4uMWVmYjZjZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDMxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFNodWdvIE1hZWRhCkBAIC0xNTksNiArMTU5LDggQEAKIGJ1ZmZlcgkJUmV0dXJucyB0aGUgYnVmZmVyIGRpc3BsYXllZCBpbiB0aGUgd2luZG93LgogaGVpZ2h0CQlSZXR1cm5zIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdy4KIGhlaWdodCA9IHtufQlTZXRzIHRoZSB3aW5kb3cgaGVpZ2h0IHRvIHtufS4KK3dpZHRoCQlSZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgd2luZG93Lgord2lkdGggPSB7bn0JU2V0cyB0aGUgd2luZG93IHdpZHRoIHRvIHtufS4KIGN1cnNvcgkJUmV0dXJucyBhIFtyb3csIGNvbF0gYXJyYXkgZm9yIHRoZSBjdXJzb3IgcG9zaXRpb24uCiBjdXJzb3IgPSBbe3Jvd30sIHtjb2x9XQogCQlTZXRzIHRoZSBjdXJzb3IgcG9zaXRpb24gdG8ge3Jvd30gYW5kIHtjb2x9LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dCBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKaW5kZXggYWU5MGViOS4uNjUzMGQ5ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnNlcnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxNworKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtODY4LDggKzg2OCw4IEBACiBVc2VyIGRlZmluZWQgY29tcGxldGlvbgkJCQkJKmNvbXBsLWZ1bmN0aW9uKgogCiBDb21wbGV0aW9uIGlzIGRvbmUgYnkgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBkZWZpbmVkIGJ5IHRoZSB1c2VyIHdpdGggdGhlCi0nY29tcGxldGVmdW5jJyBvcHRpb24uICBTZWUgdGhlIG9wdGlvbiBmb3IgaG93IHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGFuCi1leGFtcGxlLgorJ2NvbXBsZXRlZnVuYycgb3B0aW9uLiAgU2VlIHRoZSAnY29tcGxldGVmdW5jJyBoZWxwIGZvciBob3cgdGhlIGZ1bmN0aW9uCitpcyBjYWxsZWQgYW5kIGFuIGV4YW1wbGUuCiAKIAkJCQkJCQkqaV9DVFJMLVhfQ1RSTC1VKgogQ1RSTC1YIENUUkwtVQkJR3Vlc3Mgd2hhdCBraW5kIG9mIGl0ZW0gaXMgaW4gZnJvbnQgb2YgdGhlIGN1cnNvciBhbmQKQEAgLTg4NCw3ICs4ODQsMTAgQEAKIAogT2NjdWx0IGNvbXBsZXRpb24JCQkJCSpjb21wbC1vY2N1bHQqCiAKLUNvbXBsZXRpb24gaXMgZG9uZSBieSBhIHN1cGVybmF0dXJhbCBiZWluZy4KK0NvbXBsZXRpb24gaXMgZG9uZSBieSBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGRlZmluZWQgYnkgdGhlIHVzZXIgd2l0aCB0aGUKKydvY2N1bHRmdW5jJyBvcHRpb24uICBUaGlzIGlzIHRvIGJlIHVzZWQgZm9yIGZpbGV0eXBlLXNwZWNpZmljIGNvbXBsZXRpb24uCisKK1NlZSB0aGUgJ2NvbXBsZXRlZnVuYycgaGVscCBmb3IgaG93IHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGFuIGV4YW1wbGUuCiAKIAkJCQkJCQkqaV9DVFJMLVhfQ1RSTC1PKgogQ1RSTC1YIENUUkwtTwkJR3Vlc3Mgd2hhdCBraW5kIG9mIGl0ZW0gaXMgaW4gZnJvbnQgb2YgdGhlIGN1cnNvciBhbmQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ludHJvLnR4dCBiL3J1bnRpbWUvZG9jL2ludHJvLnR4dAppbmRleCAzZjhlMzVkLi44OWYwMjBjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnRyby50eHQKKysrIGIvcnVudGltZS9kb2MvaW50cm8udHh0CkBAIC0xLDQgKzEsNCBAQAotKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1biAxMgorKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTUxLDMxICsxNTEsMTkgQEAKIGFwcGVhcmFuY2Ugb2YgdGhlIGJ1Zy4gIFRyeSBkaWZmZXJlbnQgbWFjaGluZXMsIGlmIHBvc3NpYmxlLiAgU2VuZCBtZSBwYXRjaGVzCiBpZiB5b3UgY2FuIQogCi1JbiBjYXNlIG9mIGRvdWJ0LCB1c2U6ID4KK0l0IHdpbGwgaGVscCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2ZXJzaW9uIG9mIFZpbSB5b3UgYXJlIHVzaW5nIGFuZAoreW91ciBzZXR1cC4gIFlvdSBjYW4gZ2V0IHRoZSBpbmZvcm1hdGlvbiB3aXRoIHRoaXMgY29tbWFuZDogPgogICAgOnNvICRWSU1SVU5USU1FL2J1Z3JlcG9ydC52aW0KIFRoaXMgd2lsbCBjcmVhdGUgYSBmaWxlICJidWdyZXBvcnQudHh0IiBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnksIHdpdGggYSBsb3QKIG9mIGluZm9ybWF0aW9uIG9mIHlvdXIgZW52aXJvbm1lbnQuICBCZWZvcmUgc2VuZGluZyB0aGlzIG91dCwgY2hlY2sgaWYgaXQKIGRvZXNuJ3QgY29udGFpbiBhbnkgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIQogCi0JCQkJCQkJKmRlYnVnLXZpbSoKLVdoZW4gVmltIGNyYXNoZXMgaW4gb25lIG9mIHRoZSB0ZXN0IGZpbGVzLCBhbmQgeW91IGFyZSB1c2luZyBnY2MgZm9yCi1jb21waWxhdGlvbiwgaGVyZSBpcyB3aGF0IHlvdSBjYW4gZG8gdG8gZmluZCBvdXQgZXhhY3RseSB3aGVyZSBWaW0gY3Jhc2hlczoKK0lmIFZpbSBjcmFzaGVzLCBwbGVhc2UgdHJ5IHRvIGZpbmQgb3V0IHdoZXJlLiAgWW91IGNhbiBmaW5kIGhlbHAgb24gdGhpcyBoZXJlOgorfGRlYnVnLnR4dHwuCiAKLTEuIENvbXBpbGUgVmltIHdpdGggdGhlICItZyIgb3B0aW9uICh0aGVyZSBpcyBhIGxpbmUgaW4gdGhlIE1ha2VmaWxlIGZvciB0aGlzLAotICAgd2hpY2ggeW91IGNhbiB1bmNvbW1lbnQpLgotCi0yLiBFeGVjdXRlIHRoZXNlIGNvbW1hbmRzIChyZXBsYWNlICIxMSIgd2l0aCB0aGUgdGVzdCB0aGF0IGZhaWxzKTogPgotCWNkIHRlc3RkaXIKLQlnZGIgLi4vdmltCi0JcnVuIC11IHVuaXgudmltIC1VIE5PTkUgLXMgZG90ZXN0LmluIHRlc3QxMS5pbgotCi0zLiBDaGVjayB3aGVyZSBWaW0gY3Jhc2hlcywgZ2RiIHNob3VsZCBnaXZlIGEgbWVzc2FnZSBmb3IgdGhpcy4KLQotNC4gR2V0IGEgc3RhY2sgdHJhY2UgZnJvbSBnZGIgd2l0aCB0aGlzIGNvbW1hbmQ6ID4KLQl3aGVyZQotPCAgWW91IGNhbiBjaGVjayBvdXQgZGlmZmVyZW50IHBsYWNlcyBpbiB0aGUgc3RhY2sgdHJhY2Ugd2l0aDogPgotCWZyYW1lIDMKLTwgIFJlcGxhY2UgIjMiIHdpdGggb25lIG9mIHRoZSBudW1iZXJzIGluIHRoZSBzdGFjayB0cmFjZS4KK0luIGNhc2Ugb2YgZG91YnQgb3Igd2hlbiB5b3Ugd29uZGVyIGlmIHRoZSBwcm9ibGVtIGhhcyBhbHJlYWR5IGJlZW4gZml4ZWQgYnV0Cit5b3UgY2FuJ3QgZmluZCBhIGZpeCBmb3IgaXQsIGJlY29tZSBhIG1lbWJlciBvZiB0aGUgdmltLWRldiBtYWlsbGlzdCBhbmQgYXNrCit5b3VyIHF1ZXN0aW9uIHRoZXJlLiB8bWFpbGxpc3R8CiAKIAkJCQkJCQkqeWVhci0yMDAwKiAqWTJLKgogU2luY2UgVmltIGludGVybmFsbHkgZG9lc24ndCB1c2UgZGF0ZXMgZm9yIGVkaXRpbmcsIHRoZXJlIGlzIG5vIHllYXIgMjAwMApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWFwLnR4dCBiL3J1bnRpbWUvZG9jL21hcC50eHQKaW5kZXggNWZiMDNlOS4uYzMzMDIzYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWFwLnR4dAorKysgYi9ydW50aW1lL2RvYy9tYXAudHh0CkBAIC02NjYsNiArNjY2LDE2IEBACiAJCQltb2RlLCAnIScgZm9yIGJvdGguICBUaGVzZSBhcmUgdGhlIHNhbWUgYXMgZm9yCiAJCQltYXBwaW5ncywgc2VlIHxtYXAtbGlzdGluZ3wuCiAKKwkJCQkJCSo6YWJicmV2aWF0ZS12ZXJib3NlKgorV2hlbiAndmVyYm9zZScgaXMgbm9uLXplcm8sIGxpc3RpbmcgYW4gYWJicmV2aWF0aW9uIHdpbGwgYWxzbyBkaXNwbGF5IHdoZXJlIGl0Cit3YXMgbGFzdCBkZWZpbmVkLiAgRXhhbXBsZTogPgorCisJOnZlcmJvc2UgYWJicmV2aWF0ZQorCSEgIHRlaCAgICAgICAgICAgdGhlCisJCUxhc3Qgc2V0IGZyb20gL2hvbWUvYWJjZC92aW0vYWJici52aW0KKworU2VlIHw6dmVyYm9zZS1jbWR8IGZvciBtb3JlIGluZm9ybWF0aW9uLgorCiA6YWJbYnJldmlhdGVdIHtsaHN9CWxpc3QgdGhlIGFiYnJldmlhdGlvbnMgdGhhdCBzdGFydCB3aXRoIHtsaHN9CiAJCQlZb3UgbWF5IG5lZWQgdG8gaW5zZXJ0IGEgQ1RSTC1WICh0eXBlIGl0IHR3aWNlKSB0bwogCQkJYXZvaWQgdGhhdCBhIHR5cGVkIHtsaHN9IGlzIGV4cGFuZGVkLCBzaW5jZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCBlYjVhMzRhLi4yMGQwZTlmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDI3Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNTkxLDIzICsxNTkxLDI5IEBACiAJVGhpcyBvcHRpb24gc3BlY2lmaWVzIGEgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgQ1RSTC1YIENUUkwtVQogCWNvbXBsZXRpb24uIHxpX0NUUkwtWF9DVFJMLVV8CiAKLQlUaGUgZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOgotCSAgIGE6ZmluZHN0YXJ0ICBlaXRoZXIgMSBvciAwCi0JICAgYTpjb2wgICAgICAgIGNvbHVtbiBpbiB0aGUgY3Vyc29yIGxpbmUgd2hlcmUgdGhlIGNvbXBsZXRpb24gZW5kcywKLQkJCWZpcnN0IGNvbHVtbiBpcyB6ZXJvCi0JICAgYTpiYXNlCXRoZSB0ZXh0IHdpdGggd2hpY2ggbWF0Y2hlcyBzaG91bGQgbWF0Y2gKKwlUaGUgZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50cy4gIEZpcnN0IHRoZSBmdW5jdGlvbgorCWlzIGNhbGxlZCB0byBmaW5kIHRoZSBzdGFydCBvZiB0aGUgdGV4dCB0byBiZSBjb21wbGV0ZWQuICBTZWNvbmRseSB0aGUKKwlmdW5jdGlvbiBpcyBjYWxsZWQgdG8gYWN0dWFsbHkgZmluZCB0aGUgbWF0Y2hlcy4KIAotCVdoZW4gdGhlIGE6ZmluZHN0YXJ0IGFyZ3VtZW50IGlzIDEsIHRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiB0aGUKLQljb2x1bW4gb2Ygd2hlcmUgdGhlIGNvbXBsZXRpb24gc3RhcnRzLiAgSXQgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuCi0JemVybyBhbmQgImE6Y29sIi4gIFRoaXMgaW52b2x2ZXMgbG9va2luZyBhdCB0aGUgY2hhcmFjdGVycyBpbiB0aGUKLQljdXJzb3IgbGluZSBiZWZvcmUgY29sdW1uIGE6Y29sIGFuZCBpbmNsdWRlIHRob3NlIGNoYXJhY3RlcnMgdGhhdAotCWNvdWxkIGJlIHBhcnQgb2YgdGhlIGNvbXBsZXRlZCBpdGVtLiAgVGhlIHRleHQgYmV0d2VlbiB0aGlzIGNvbHVtbiBhbmQKLQlhOmNvbCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIG1hdGNoZXMuICBSZXR1cm4gLTEgaWYgbm8gY29tcGxldGlvbgotCWNhbiBiZSBkb25lLgorCU9uIHRoZSBmaXJzdCBpbnZvY2F0aW9uIHRoZSBhcmd1bWVudHMgYXJlOgorCSAgIGE6ZmluZHN0YXJ0ICAxCisJICAgYTpiYXNlCWVtcHR5CiAKLQlXaGVuIHRoZSBhOmZpbmRzdGFydCBhcmd1bWVudCBpcyAwIHRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiBhIExpc3QKLQl3aXRoIHRoZSBtYXRjaGluZyB3b3Jkcy4gIFRoZXNlIG1hdGNoZXMgc2hvdWxkIGluY2x1ZGUgdGhlICJhOmJhc2UiCi0JdGV4dC4gIFdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoZXMgcmV0dXJuIGFuIGVtcHR5IExpc3QuCisJVGhlIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHRoZSBjb2x1bW4gb2Ygd2hlcmUgdGhlIGNvbXBsZXRpb24gc3RhcnRzLgorCUl0IG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCB0aGUgY3Vyc29yIGNvbHVtbiAiY29sKCcuJykiLgorCVRoaXMgaW52b2x2ZXMgbG9va2luZyBhdCB0aGUgY2hhcmFjdGVycyBqdXN0IGJlZm9yZSB0aGUgY3Vyc29yIGFuZAorCWluY2x1ZGluZyB0aG9zZSBjaGFyYWN0ZXJzIHRoYXQgY291bGQgYmUgcGFydCBvZiB0aGUgY29tcGxldGVkIGl0ZW0uCisJVGhlIHRleHQgYmV0d2VlbiB0aGlzIGNvbHVtbiBhbmQgdGhlIGN1cnNvciBjb2x1bW4gd2lsbCBiZSByZXBsYWNlZAorCXdpdGggdGhlIG1hdGNoZXMuICBSZXR1cm4gLTEgaWYgbm8gY29tcGxldGlvbiBjYW4gYmUgZG9uZS4KKworCU9uIHRoZSBzZWNvbmQgaW52b2NhdGlvbiB0aGUgYXJndW1lbnRzIGFyZToKKwkgICBhOmZpbmRzdGFydCAgMAorCSAgIGE6YmFzZQl0aGUgdGV4dCB3aXRoIHdoaWNoIG1hdGNoZXMgc2hvdWxkIG1hdGNoLCB3aGF0IHdhcworCSAgIAkJbG9jYXRlZCBpbiB0aGUgZmlyc3QgY2FsbAorCisJVGhlIGZ1bmN0aW9uIG11c3QgcmV0dXJuIGEgTGlzdCB3aXRoIHRoZSBtYXRjaGluZyB3b3Jkcy4gIFRoZXNlCisJbWF0Y2hlcyB1c3VhbGx5IGluY2x1ZGUgdGhlICJhOmJhc2UiIHRleHQuICBXaGVuIHRoZXJlIGFyZSBubyBtYXRjaGVzCisJcmV0dXJuIGFuIGVtcHR5IExpc3QuCiAKIAlXaGVuIHNlYXJjaGluZyBmb3IgbWF0Y2hlcyB0YWtlcyBzb21lIHRpbWUgY2FsbCB8Y29tcGxldGVfYWRkKCl8IHRvCiAJYWRkIGVhY2ggbWF0Y2ggdG8gdGhlIHRvdGFsIGxpc3QuICBUaGVzZSBtYXRjaGVzIHNob3VsZCB0aGVuIG5vdApAQCAtMTYxNSwxNiArMTYyMSwxNiBAQAogCWFsbG93IHRoZSB1c2VyIHRvIHByZXNzIGEga2V5IHdoaWxlIHN0aWxsIHNlYXJjaGluZyBmb3IgbWF0Y2hlcy4gIFN0b3AKIAlzZWFyY2hpbmcgd2hlbiBpdCByZXR1cm5zIG5vbi16ZXJvLgogCi0JVGhlIGZ1bmN0aW9uIG11c3Qgbm90IG1vdmUgdGhlIGN1cnNvciEKKwlUaGUgZnVuY3Rpb24gbWF5IG1vdmUgdGhlIGN1cnNvciwgaXQgaXMgcmVzdG9yZWQgYWZ0ZXJ3YXJkcy4KIAlUaGlzIG9wdGlvbiBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgogCXNlY3VyaXR5IHJlYXNvbnMuCiAKIAlBbiBleGFtcGxlIHRoYXQgY29tcGxldGVzIHRoZSBuYW1lcyBvZiB0aGUgbW9udGhzOiA+Ci0JCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBjb2wsIGJhc2UpCisJCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBiYXNlKQogCQkgIGlmIGE6ZmluZHN0YXJ0CiAJCSAgICAiIGxvY2F0ZSB0aGUgc3RhcnQgb2YgdGhlIHdvcmQKIAkJICAgIGxldCBsaW5lID0gZ2V0bGluZSgnLicpCi0JCSAgICBsZXQgc3RhcnQgPSBhOmNvbAorCQkgICAgbGV0IHN0YXJ0ID0gY29sKCcuJykgLSAxCiAJCSAgICB3aGlsZSBzdGFydCA+IDAgJiYgbGluZVtzdGFydCAtIDFdID1+ICdcYScKIAkJICAgICAgbGV0IHN0YXJ0IC09IDEKIAkJICAgIGVuZHdoaWxlCkBAIC0xNjQzLDExICsxNjQ5LDExIEBACiAJCXNldCBjb21wbGV0ZWZ1bmM9Q29tcGxldGVNb250aHMKIDwKIAlUaGUgc2FtZSwgYnV0IG5vdyBwcmV0ZW5kaW5nIHNlYXJjaGluZyBmb3IgbWF0Y2hlcyBpcyBzbG93OiA+Ci0JCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBjb2wsIGJhc2UpCisJCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBiYXNlKQogCQkgIGlmIGE6ZmluZHN0YXJ0CiAJCSAgICAiIGxvY2F0ZSB0aGUgc3RhcnQgb2YgdGhlIHdvcmQKIAkJICAgIGxldCBsaW5lID0gZ2V0bGluZSgnLicpCi0JCSAgICBsZXQgc3RhcnQgPSBhOmNvbAorCQkgICAgbGV0IHN0YXJ0ID0gY29sKCcuJykgLSAxCiAJCSAgICB3aGlsZSBzdGFydCA+IDAgJiYgbGluZVtzdGFydCAtIDFdID1+ICdcYScKIAkJICAgICAgbGV0IHN0YXJ0IC09IDEKIAkJICAgIGVuZHdoaWxlCkBAIC00NTg4LDYgKzQ1OTQsMTggQEAKIAlUaGUgbWluaW11bSB2YWx1ZSBpcyAxLCB0aGUgbWF4aW11bSB2YWx1ZSBpcyAxMC4KIAlOT1RFOiAnbnVtYmVyd2lkdGgnIGlzIHJlc2V0IHRvIDggd2hlbiAnY29tcGF0aWJsZScgaXMgc2V0LgogCisJCQkJCQkqJ29jY3VsdGZ1bmMnKiAqJ29mdScqCisnb2NjdWx0ZnVuYycgJ29mdScJc3RyaW5nCShkZWZhdWx0OiBlbXB0eSkKKwkJCWxvY2FsIHRvIGJ1ZmZlcgorCQkJe25vdCBpbiBWaX0KKwkJCXtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgK2V2YWwKKwkJCW9yICtpbnNlcnRfZXhwYW5kIGZlYXR1cmV9CisJVGhpcyBvcHRpb24gc3BlY2lmaWVzIGEgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgQ1RSTC1YIENUUkwtTworCWNvbXBsZXRpb24uIHxpX0NUUkwtWF9DVFJMLU98CisKKwlGb3IgdGhlIHVzZSBvZiB0aGUgZnVuY3Rpb24gc2VlICdjb21wbGV0ZWZ1bmMnLgorCisKIAkJCQkJKidvc2ZpbGV0eXBlJyogKidvZnQnKiAqRTM2NioKICdvc2ZpbGV0eXBlJyAnb2Z0JwlzdHJpbmcgKFJJU0MtT1MgZGVmYXVsdDogIlRleHQiLAogCQkJCW90aGVycyBkZWZhdWx0OiAiIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dCBiL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dAppbmRleCAzMTNiMjE4Li4yYTE0OGJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdWlja2ZpeC50eHQKKysrIGIvcnVudGltZS9kb2MvcXVpY2tmaXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1bCAyNworKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAzMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNjMxLDE1ICs2MzEsMTMgQEAKIAklJQkJdGhlIHNpbmdsZSAnJScgY2hhcmFjdGVyCiAJJXMJCXNlYXJjaCB0ZXh0IChmaW5kcyBhIHN0cmluZykKIAotVGhlICIlZiIgY29udmVyc2lvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50ICdpc2ZuYW1lJyBzZXR0aW5nLiAgIn4vIiBpcworVGhlICIlZiIgY29udmVyc2lvbiBtYXkgZGVwZW5kIG9uIHRoZSBjdXJyZW50ICdpc2ZuYW1lJyBzZXR0aW5nLiAgIn4vIiBpcwogZXhwYW5kZWQgdG8gdGhlIGhvbWUgZGlyZWN0b3J5IGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIGV4cGFuZGVkLgogCi1UaGUgIiVmIiBhbmQgIiVtIiBjb252ZXJzaW9ucyBoYXZlIHRvIGRldGVjdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuICBUaGV5Ci1zaG91bGQgYmUgZm9sbG93ZWQgYnkgYSBjaGFyYWN0ZXIgdGhhdCBjYW5ub3QgYmUgaW4gdGhlIHN0cmluZy4gIEV2ZXJ5dGhpbmcKLXVwIHRvIHRoYXQgY2hhcmFjdGVyIGlzIGluY2x1ZGVkIGluIHRoZSBzdHJpbmcuICBCdXQgd2hlbiB0aGUgbmV4dCBjaGFyYWN0ZXIKLWlzIGEgJyUnIG9yIGEgYmFja3NsYXNoLCAiJWYiIHdpbGwgbG9vayBmb3IgYW55ICdpc2ZuYW1lJyBjaGFyYWN0ZXIgYW5kICIlbSIKLWZpbmRzIGFueXRoaW5nLiAgSWYgdGhlICIlZiIgb3IgIiVtIiBpcyBhdCB0aGUgZW5kLCBldmVyeXRoaW5nIHVwIHRvIHRoZSBlbmQKLW9mIHRoZSBsaW5lIGlzIGluY2x1ZGVkLgorVGhlICIlZiIgYW5kICIlbSIgY29udmVyc2lvbnMgaGF2ZSB0byBkZXRlY3QgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLiAgVGhpcworbm9ybWFsbHkgaGFwcGVucyBieSBtYXRjaGluZyBmb2xsb3dpbmcgY2hhcmFjdGVycyBhbmQgaXRlbXMuICBXaGVuIG5vaHRpbmcgaXMKK2ZvbGxvd2luZyB0aGUgcmVzdCBvZiB0aGUgbGluZSBpcyBtYXRjaGVkLiAgSWYgIiVmIiBpcyBmb2xsb3dlZCBieSBhICclJyBvciBhCitiYWNrc2xhc2gsIGl0IHdpbGwgbG9vayBmb3IgYSBzZXF1ZW5jZSBvZiAnaXNmbmFtZScgY2hhcmFjdGVycy4KIAogT24gTVMtRE9TLCBNUy1XaW5kb3dzIGFuZCBPUy8yIGEgbGVhZGluZyAiQzoiIHdpbGwgYmUgaW5jbHVkZWQgaW4gIiVmIiwgZXZlbgogd2hlbiB1c2luZyAiJWY6Ii4gIFRoaXMgbWVhbnMgdGhhdCBhIGZpbGUgbmFtZSB3aGljaCBpcyBhIHNpbmdsZSBhbHBoYWJldGljYWwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dCBiL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dAppbmRleCBkMmUwN2U1Li5jODU5N2E2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKKysrIGIvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyOQorKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNzcyLDYgKzc3Miw3IEBACiB8J25yZm9ybWF0cyd8CSAgfCduZid8ICAgICBudW1iZXIgZm9ybWF0cyByZWNvZ25pemVkIGZvciBDVFJMLUEgY29tbWFuZAogfCdudW1iZXInfAkgIHwnbnUnfCAgICAgcHJpbnQgdGhlIGxpbmUgbnVtYmVyIGluIGZyb250IG9mIGVhY2ggbGluZQogfCdudW1iZXJ3aWR0aCd8CSAgfCdudXcnfCAgICBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGZvciB0aGUgbGluZSBudW1iZXIKK3wnb2NjdWx0ZnVuYyd8ICAgIHwnb2Z1J3wgICAgZnVuY3Rpb24gZm9yIGZpbGV0eXBlLXNwZWNpZmljIGNvbXBsZXRpb24KIHwnb3NmaWxldHlwZSd8CSAgfCdvZnQnfCAgICBvcGVyYXRpbmcgc3lzdGVtLXNwZWNpZmljIGZpbGV0eXBlIGluZm9ybWF0aW9uCiB8J3BhcmFncmFwaHMnfAkgIHwncGFyYSd8ICAgbnJvZmYgbWFjcm9zIHRoYXQgc2VwYXJhdGUgcGFyYWdyYXBocwogfCdwYXN0ZSd8CQkgICAgIGFsbG93IHBhc3RpbmcgdGV4dApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggZWY3MmQzYy4uODcwYjdiYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC02MDcsNyArNjA3LDkgQEAKICdudW1iZXInCW9wdGlvbnMudHh0CS8qJ251bWJlcicqCiAnbnVtYmVyd2lkdGgnCW9wdGlvbnMudHh0CS8qJ251bWJlcndpZHRoJyoKICdudXcnCW9wdGlvbnMudHh0CS8qJ251dycqCisnb2NjdWx0ZnVuYycJb3B0aW9ucy50eHQJLyonb2NjdWx0ZnVuYycqCiAnb2Z0JwlvcHRpb25zLnR4dAkvKidvZnQnKgorJ29mdScJb3B0aW9ucy50eHQJLyonb2Z1JyoKICdvcCcJdmlfZGlmZi50eHQJLyonb3AnKgogJ29wZW4nCXZpX2RpZmYudHh0CS8qJ29wZW4nKgogJ29wdGltaXplJwl2aV9kaWZmLnR4dAkvKidvcHRpbWl6ZScqCkBAIC0xNjY5LDYgKzE2NzEsNyBAQAogOmFiYnJldmlhdGUJbWFwLnR4dAkvKjphYmJyZXZpYXRlKgogOmFiYnJldmlhdGUtPGJ1ZmZlcj4JbWFwLnR4dAkvKjphYmJyZXZpYXRlLTxidWZmZXI+KgogOmFiYnJldmlhdGUtbG9jYWwJbWFwLnR4dAkvKjphYmJyZXZpYXRlLWxvY2FsKgorOmFiYnJldmlhdGUtdmVyYm9zZQltYXAudHh0CS8qOmFiYnJldmlhdGUtdmVyYm9zZSoKIDphYmMJbWFwLnR4dAkvKjphYmMqCiA6YWJjbGVhcgltYXAudHh0CS8qOmFiY2xlYXIqCiA6YWJvCXdpbmRvd3MudHh0CS8qOmFibyoKQEAgLTQ2MDksMTEgKzQ2MTIsMTQgQEAKIGRhdglwaV9uZXRydy50eHQJLypkYXYqCiBkYXcJbW90aW9uLnR4dAkvKmRhdyoKIGRkCWNoYW5nZS50eHQJLypkZCoKK2RlYnVnLWdjYwlkZWJ1Zy50eHQJLypkZWJ1Zy1nY2MqCiBkZWJ1Zy1oaWdobGlnaHQJZGVidWdnZXIudHh0CS8qZGVidWctaGlnaGxpZ2h0KgogZGVidWctbW9kZQlyZXBlYXQudHh0CS8qZGVidWctbW9kZSoKIGRlYnVnLXNjcmlwdHMJcmVwZWF0LnR4dAkvKmRlYnVnLXNjcmlwdHMqCiBkZWJ1Zy1zaWducwlkZWJ1Z2dlci50eHQJLypkZWJ1Zy1zaWducyoKLWRlYnVnLXZpbQlpbnRyby50eHQJLypkZWJ1Zy12aW0qCitkZWJ1Zy12aW0JZGVidWcudHh0CS8qZGVidWctdmltKgorZGVidWctd2luMzIJZGVidWcudHh0CS8qZGVidWctd2luMzIqCitkZWJ1Zy50eHQJZGVidWcudHh0CS8qZGVidWcudHh0KgogZGVidWdnZXItY29tcGlsYXRpb24JZGVidWdnZXIudHh0CS8qZGVidWdnZXItY29tcGlsYXRpb24qCiBkZWJ1Z2dlci1mZWF0dXJlcwlkZWJ1Z2dlci50eHQJLypkZWJ1Z2dlci1mZWF0dXJlcyoKIGRlYnVnZ2VyLWludGVncmF0aW9uCWRlYnVnZ2VyLnR4dAkvKmRlYnVnZ2VyLWludGVncmF0aW9uKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCA2ZTYzODEzLi5kZmRmMDk3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMzAKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBTZXAgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsMTYgKzMwLDcgQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NYWM6Ci0tIHN0cmluZ3MuaCBpcyBib2d1cywgYWRkIGNvbmZpZ3VyZSBjaGVjay4KLS0gR1VJOiBwYXN0aW5nIGxpbmVzIHJlc3VsdHMgaW4gXk0gaW5zdGVhZCBvZiBsaW5lIGJyZWFrcy4gKEJlbmphbWluIEVzaGFtKQotLSAiY3AgLVIgLi4vcnVudGltZSBhcHBkaXIiIG1heSBjb3B5IHdheSB0b28gbXVjaC4KLQotY21kbGluZV9hdF9lbmQoKSBhbmQgY21kbGluZV9vdmVyc3RyaWtlKCkgbWF5IG5vdCBiZSB1c2VkLgotCi1SdWJ5OiBkb2N1bWVudGF0aW9uIGZvciB3aW5kb3cgd2lkdGggKFdpbmQpCi0KLUFkZCBhIGZldyBtb3JlIGxhbmd1YWdlcyBmb3Igc3BlbGwgY2hlY2tpbmcuCitUcnkgb3V0IHVzaW5nIHRoZSBmcmVlIE1TIGNvbXBpbGVyIGFuZCBkZWJ1Z2dlciwgdXNpbmcgTWFrZV9tdmMubWFrLgogCiBNYWMgdW5pY29kZSBwYXRjaCAoRGEgV29vbiBKdW5nKToKIC0gc2VsZWN0aW5nIHByb3BvcnRpb25hbCBmb250IGJyZWFrcyBkaXNwbGF5CkBAIC03MSwxMyArNjIsMTIgQEAKICAgICB0aGF0IG1ha2Ugc2Vuc2UuICBFc3AuIG1lbWJlcnMgb2YgY2xhc3Nlcy9zdHJ1Y3RzLgogCiAgICAgSXQncyBub3QgbXVjaCBkaWZmZXJlbnQgZnJvbSBvdGhlciBJbnNlcnQtbW9kZSBjb21wbGV0aW9uLCB1c2UgdGhlIHNhbWUKLSAgICBtZWNoYW5pc20uICBVc2UgQ1RSTC1YIENUUkwtTy4KKyAgICBtZWNoYW5pc20uICBVc2UgQ1RSTC1YIENUUkwtTyBhbmQgJ29jY3VsdGZ1bmMnLiAgU2V0ICdvY2N1bHRmdW5jJyBpbiB0aGUKKyAgICBmaWxldHlwZSBwbHVnaW4sIGRlZmluZSB0aGUgZnVuY3Rpb24gaW4gdGhlIGF1dG9sb2FkIGRpcmVjdG9yeS4KICAgICAKICAgICBTZXBhcmF0ZWx5IGRldmVsb3AgdGhlIGNvbXBsZXRpb24gbG9naWMgYW5kIHRoZSBVSS4gIFdoZW4gYWRkaW5nIFVJIHN0dWZmCiAgICAgbWFrZSBpdCB3b3JrIGZvciBhbGwgY29tcGxldGlvbiBtZXRob2RzLgogCi0gICAgRmlyc3QgY2xlYW51cCB0aGUgSW5zZXJ0LW1vZGUgY29tcGxldGlvbi4KLQogICAgIFVJOgogICAgIC0gQXQgZmlyc3Q6IHVzZSAnd2lsZG1lbnUnIGtpbmQgb2YgdGhpbmcuCiAgICAgLSBOaWNlcjogRGlzcGxheSB0aGUgbGlzdCBvZiBjaG9pY2VzIHJpZ2h0IHVuZGVyIHRoZSBwbGFjZSB3aGVyZSB0aGV5CkBAIC04NSw5ICs3NSwyMiBAQAogICAgICAgYWx0ZXJuYXRpdmVzKS4KIAogICAgIENvbXBsZXRpb24gbG9naWM6Ci0JVXNlIHNvbWV0aGluZyBsaWtlICdjb21wbGV0ZWZ1bmMnPwotCXJ1bnRpbWUvY29tcGxldGUve2ZpbGV0eXBlfS52aW0gZmlsZXM/CisJVXNlIHJ1bnRpbWUvYXV0b2xvYWQve2ZpbGV0eXBlfWNvbXBsZXRlLnZpbSBmaWxlcy4KKworCUZvciBhIHNpbXBsZSBuYW1lIGNhbiBjb21wbGV0ZSBsaWtlIHdpdGggQ1RSTC1OLgorCSAgICBnZXQgbGlzdCBvZiBJRHMgZnJvbSB0aGUgdGFnZmlsZT8KKwkgICAgRm9yIHN0cnVjdCBvciBjbGFzcyBhZGQgIi4iIG9yICItPiI/CisKKwlBZnRlciBhIHJlZmVyZW5jZSB0byBhIHN0cnVjdCBvciBjbGFzcyBzdWdnZXN0IG1lbWJlcnMuCisJICAgIFJlY29nbml6aW5nICJ2YXIubWVtIiBhbmQgJ3Zhci0+bWVtIiBpcyBlYXN5LgorCSAgICBIb3cgdG8gZ2V0IHRoZSB0eXBlIG9mICJ2YXIiPworCQl0YWdzIGZpbGUgZG9lc24ndCBnaXZlIHR5cGUgb2YgdHlwZWRlZiEgIEUuZy4sIG9wYXJnX1QgaXMKKwkJbGlzdGVkIHdpdGggIl59IG9wYXJnX1Q7JCIKKwkgICAgSG93IHRvIGdldCB0aGUgbWVtYmVycyBvZiB0aGF0IHR5cGU/CisJCXRhZ3MgZmlsZSBoYXMgc3RydWN0OiBhbmQgY2xhc3M6IGZpZWxkcworCiAJSW4gZnVuY3Rpb24gYXJndW1lbnRzIHN1Z2dlc3QgdmFyaWFibGVzIG9mIGV4cGVjdGVkIHR5cGUuCisKIAlMaXN0IG9mIGNvbXBsZXRpb25zIGlzIGEgRGljdGlvbmFyeSB3aXRoIGl0ZW1zOgogCSAgICBjb21wbGlzdFswXVsndGV4dCddID0gY29tcGxldGlvbiB0ZXh0CiAJICAgIGNvbXBsaXN0WzBdWyd0eXBlJ10gPSB0eXBlIG9mIGNvbXBsZXRpb24gKGUuZy4gZnVuY3Rpb24sIHZhciwgYXJnKQpAQCAtOTgsMTEgKzEwMSwxNSBAQAogCUlkZWFzIGZyb20gb3RoZXJzOgogCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTc0NwogCSAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2luc2VudmltCi0JCW9mIGh0dHA6Ly9pbnNlbnZpbS5zb3VyY2Vmb3JnZS5uZXQKKwkJb3IgaHR0cDovL2luc2VudmltLnNvdXJjZWZvcmdlLm5ldAogCSAgICBKYXZhLCBYTUwsIEhUTUwsIEMrKywgSlNQLCBTUUwsIEMjCiAJICAgIE1TLVdpbmRvd3Mgb25seSwgbG90cyBvZiBkZXBlbmRlbmNpZXMgKGUuZy4gUGVybCwgSW50ZXJuZXQKIAkJZXhwbG9yZXIpLCB1c2VzIC5kbGwgc2hhcmVkIGxpYnJhcmllcy4KLQkgICAgZm9yIEMrKyB1c2VzICRJTkNMVURFIGVudmlyb25tZW50IHZhcgorCSAgICBGb3IgQysrIHVzZXMgJElOQ0xVREUgZW52aXJvbm1lbnQgdmFyLgorCSAgICBVc2VzIFBlcmwgZm9yIEMrKy4KKwkgICAgVXNlcyBjdGFncyB0byBmaW5kIHRoZSBpbmZvOgorCQljdGFncyAtZiAkYWxsVGFnc0ZpbGUgLS1maWVsZHM9K2FpS21uc1N6IC0tbGFuZ3VhZ2UtZm9yY2U9QysrIC0tQysrLWtpbmRzPStjZWZnbW5wc3V0LWRsdXggLXUgJGZpbGVzCisKIAkgICAgVUk6IHBvcHVwIG1lbnUgd2l0aCBsaXN0IG9mIGFsdGVybmF0aXZlcywgaWNvbiB0byBpbmRpY2F0ZSB0eXBlCiAJCW9wdGlvbmFsIHBvcHVwIHdpbmRvdyB3aXRoIGluZm8gYWJvdXQgc2VsZWN0ZWQgYWx0ZXJuYXRpdmUKIAkgICAgVW5yZWxhdGVkIHNldHRpbmdzIGFyZSBjaGFuZ2VkIChlLmcuICdtb3VzZW1vZGVsJykuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dCBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CmluZGV4IDRkZTMyODguLjNmMDc1ZDggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CkBAIC00ODksMTEgKzQ4OSwxMSBAQAogCiAJCQkJCQkJKjp2ZXJib3NlLWNtZCoKIFdoZW4gJ3ZlcmJvc2UnIGlzIG5vbi16ZXJvLCBsaXN0aW5nIHRoZSB2YWx1ZSBvZiBhIFZpbSBvcHRpb24gb3IgYSBrZXkgbWFwIG9yCi1hIHVzZXItZGVmaW5lZCBmdW5jdGlvbiBvciBhIGNvbW1hbmQgb3IgYSBoaWdobGlnaHQgZ3JvdXAgb3IgYW4gYXV0b2NvbW1hbmQKLXdpbGwgYWxzbyBkaXNwbGF5IHdoZXJlIGl0IHdhcyBsYXN0IGRlZmluZWQuICBJZiBpdCB3YXMgZGVmaW5lZCBtYW51YWxseSB0aGVuCi10aGVyZSB3aWxsIGJlIG5vICJMYXN0IHNldCIgbWVzc2FnZS4gIFdoZW4gaXQgd2FzIGRlZmluZWQgd2hpbGUgZXhlY3V0aW5nIGEKLWZ1bmN0aW9uLCB1c2VyIGNvbW1hbmQgb3IgYXV0b2NvbW1hbmQsIHRoZSBzY3JpcHQgaW4gd2hpY2ggaXQgd2FzIGRlZmluZWQgaXMKLXJlcG9ydGVkLgorYW4gYWJicmV2aWF0aW9uIG9yIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIG9yIGEgY29tbWFuZCBvciBhIGhpZ2hsaWdodCBncm91cAorb3IgYW4gYXV0b2NvbW1hbmQgd2lsbCBhbHNvIGRpc3BsYXkgd2hlcmUgaXQgd2FzIGxhc3QgZGVmaW5lZC4gIElmIGl0IHdhcworZGVmaW5lZCBtYW51YWxseSB0aGVuIHRoZXJlIHdpbGwgYmUgbm8gIkxhc3Qgc2V0IiBtZXNzYWdlLiAgV2hlbiBpdCB3YXMKK2RlZmluZWQgd2hpbGUgZXhlY3V0aW5nIGEgZnVuY3Rpb24sIHVzZXIgY29tbWFuZCBvciBhdXRvY29tbWFuZCwgdGhlIHNjcmlwdCBpbgord2hpY2ggaXQgd2FzIGRlZmluZWQgaXMgcmVwb3J0ZWQuCiB7bm90IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGVkIHdpdGhvdXQgdGhlICtldmFsIGZlYXR1cmV9CiAKIAkJCQkJCQkqSyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAppbmRleCBhZWI3OWUzLi42ZWM4Mjg2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyOAorKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAzMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTY1LDggKzU2NSw5IEBACiAKIFdoZW4gJ3ZlcmJvc2UnIGlzIHNldCB0aGUgb3V0cHV0IG9mICI6aGlnaGxpZ2h0IiB3aWxsIHNob3cgd2hlcmUgYSBoaWdobGlnaHQKIGl0ZW0gd2FzIGxhc3Qgc2V0LgotV2hlbiAndmVyYm9zZScgaXMgc2V0IHRoZSBvdXRwdXQgb2YgdGhlICI6bWFwIiwgIjpjb21tYW5kIiwgIjpmdW5jdGlvbiIgYW5kCi0iOmF1dG9jbWQiIGNvbW1hbmRzIHdpbGwgc2hvdyB3aGVyZSBpdCB3YXMgbGFzdCBkZWZpbmVkLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKK1doZW4gJ3ZlcmJvc2UnIGlzIHNldCB0aGUgb3V0cHV0IG9mIHRoZSAiOm1hcCIsICI6YWJicmV2aWF0ZSIsICI6Y29tbWFuZCIsCisiOmZ1bmN0aW9uIiBhbmQgIjphdXRvY21kIiBjb21tYW5kcyB3aWxsIHNob3cgd2hlcmUgaXQgd2FzIGxhc3QgZGVmaW5lZC4KKyhZZWdhcHBhbiBMYWtzaG1hbmFuKQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIElNUFJPVkVNRU5UUwkJCQkJCSppbXByb3ZlbWVudHMtNyoKQEAgLTgxMCw2ICs4MTEsMTAgQEAKIE1vdmVkIHVuaXhfZXhwYW5kcGF0aCgpIHRvIG1pc2MxLmMsIHNvIHRoYXQgaXQgY2FuIGFsc28gYmUgdXNlZCBieSBvc19tYWMuYwogd2l0aG91dCBjb3B5aW5nIHRoZSBjb2RlLgogCitNYWM6IFdoZW4gcnVubmluZyAibWFrZSBpbnN0YWxsIiB0aGUgcnVudGltZSBmaWxlcyBhcmUgaW5zdGFsbGVkIGFzIGZvciBVbml4LgorQXZvaWRzIHRoYXQgdG9vIG1hbnkgZmlsZXMgYXJlIGNvcGllZC4gIFdoZW4gcnVubmluZyAibWFrZSIgYSBsaW5rIHRvIHRoZQorcnVudGltZSBmaWxlcyBpcyBjcmVhdGVkIHRvIGF2b2lkIGEgcmVjdXJzaXZlIGNvcHkgdGhhdCB0YWtlcyBtdWNoIHRpbWUuCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogQlVHIEZJWEVTCQkJCQkJKmJ1Zy1maXhlcy03KgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2MudmltIGIvcnVudGltZS9mdHBsdWdpbi9jLnZpbQppbmRleCA0N2IyZWM2Li40ODA1NWIwIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2MudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vYy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJQwogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNSBKdW4gMjIKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgU2VwIDAxCiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCkBAIC0xNSwxMiArMTUsMTcgQEAKIGxldCBzOmNwb19zYXZlID0gJmNwbwogc2V0IGNwby09QwogCi1sZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwgZm88IGNvbTwgfCBpZiBoYXMoJ3ZtcycpIHwgc2V0bCBpc2s8IHwgZW5kaWYiCitsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwgZm88IGNvbTwgb2Z1PCB8IGlmIGhhcygndm1zJykgfCBzZXRsIGlzazwgfCBlbmRpZiIKIAogIiBTZXQgJ2Zvcm1hdG9wdGlvbnMnIHRvIGJyZWFrIGNvbW1lbnQgbGluZXMgYnV0IG5vdCBvdGhlciBsaW5lcywKICIgYW5kIGluc2VydCB0aGUgY29tbWVudCBsZWFkZXIgd2hlbiBoaXR0aW5nIDxDUj4gb3IgdXNpbmcgIm8iLgogc2V0bG9jYWwgZm8tPXQgZm8rPWNyb3FsCiAKKyIgU2V0IGNvbXBsZXRpb24gd2l0aCBDVFJMLVggQ1RSTC1PIHRvIGF1dG9sb2FkZWQgZnVuY3Rpb24uCitpZiBleGlzdHMoJyZvZnUnKQorICBzZXRsb2NhbCBvZnU9Y2NvbXBsZXRlI0NvbXBsZXRlCitlbmRpZgorCiAiIFNldCAnY29tbWVudHMnIHRvIGZvcm1hdCBkYXNoZWQgbGlzdHMgaW4gY29tbWVudHMuCiBzZXRsb2NhbCBjb21tZW50cz1zTzoqXCAtLG1POipcIFwgLGV4TzoqLyxzMTovKixtYjoqLGV4OiovLDovLwogCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9pdF9pdC5sYXRpbjEudmltIGIvcnVudGltZS9sYW5nL21lbnVfaXRfaXQubGF0aW4xLnZpbQppbmRleCBjOGQ2YmIxLi42NTIyOGUxIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9pdF9pdC5sYXRpbjEudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X2l0X2l0LmxhdGluMS52aW0KQEAgLTEsNyArMSw3IEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglJdGFsaWFuIC8gSXRhbGlhbm8KICIgTWFpbnRhaW5lcjoJCUFudG9uaW8gQ29sb21ibyA8YXpjMTBAeWFob28uY29tPgogIgkJCVZsYWQgU2FuZHJpbmkgPHNhdG9yNzJAbGliZXJvLml0PgotIiBMYXN0IENoYW5nZToJMjAwNSBNYXIgMTYKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgQXVnIDEzCiAKICIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCiBpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKQEAgLTE1OSw2ICsxNTksMjYgQEAKIG1lbnV0IEp1bXBcICZiYWNrPFRhYj5eVAkJVG9ybmFcICZpbmRpZXRybzxUYWI+XlQKIG1lbnV0IEJ1aWxkXCAmVGFnc1wgRmlsZQkJQ29zdHJ1aXNjaVwgRmlsZVwgJlRhZ3NcCiAKKyIgTWVudSBvcnRvZ3JhZmlhIC8gU3BlbGxpbmcKK21lbnV0ICZTcGVsbGluZwkJCSZPcnRvZ3JhZmlhCisKK21lbnV0ICZTcGVsbFwgQ2hlY2tcIE9uCQkJQXR0aXZhXCAmQ29udHJvbGxvXCBvcnRvZ3JhZmljbworbWVudXQgU3BlbGxcIENoZWNrXCAmT2ZmCQkmRGlzYXR0aXZhXCBjb250cm9sbG9cIG9ydG9ncmFmaWNvCittZW51dCBUb1wgJk5leHRcIGVycm9yPFRhYj5dcwkJRXJyb3JlXCAmU2VndWVudGU8dGFiPl1zCittZW51dCBUb1wgJlByZXZpb3VzXCBlcnJvcjxUYWI+W3MJRXJyb3JlXCAmUHJlY2VkZW50ZTx0YWI+W3MKK21lbnV0IFN1Z2dlc3RcICZDb3JyZWN0aW9uczxUYWI+ej8JJlN1Z2dlcmltZW50aTxUYWI+ej8KK21lbnV0ICZSZXBlYXRcIGNvcnJlY3Rpb248VGFiPjpzcGVsbHJlcGFsbAkmUmlwZXRpXCBjb3JyZXppb25lPFRhYj46c3BlbGxyZXBhbGwKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW4iCQlJbXBvc3RhXCBsaW5ndWFcIGFcICJlbiIKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fYXUiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX2F1IgorbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9jYSIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fY2EiCittZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2diIglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl9nYiIKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fbnoiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX256IgorbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl91cyIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fdXMiCittZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgIml0IgkJSW1wb3N0YVwgbGluZ3VhXCBhXCAiaXQiCittZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgIml0X2l0IglJbXBvc3RhXCBsaW5ndWFcIGFcICJpdF9pdCIKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiaXRfY2giCUltcG9zdGFcIGxpbmd1YVwgYVwgIml0X2NoIgorbWVudXQgJkZpbmRcIE1vcmVcIExhbmd1YWdlcwkJJlRyb3ZhXCBhbHRyZVwgbGluZ3VlCisKICIgTWVudSBwaWVnYXR1cmUgLyBGb2xkCiBpZiBoYXMoImZvbGRpbmciKQogICBtZW51dCAmRm9sZGluZwkJCQkJJlBpZWdhdHVyZQpAQCAtMjEyLDcgKzIzMiw3IEBACiBtZW51dCAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCSZDb252ZXJ0aVwgYVwgRXNhZGVjaW1hbGU8VGFiPjolIXh4ZAogbWVudXQgQ29udmUmcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIJQ29udmUmcnRpXCBkYVwgRXNhZGVjaW1hbGU8VGFiPjolIXh4ZFwgLXIKIAotbWVudXQgJlNldFwgQ29tcGlsZXIJCUltcG8mc3RhXCBDb21waWxhdG9yZQorbWVudXQgJlNlVFwgQ29tcGlsZXIJCUltcG8mc3RhXCBDb21waWxhdG9yZQogCiAiIEJ1ZmZlcnMgLyBCdWZmZXIKIG1lbnV0ICZCdWZmZXJzCQkmQnVmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL29wdHdpbi52aW0gYi9ydW50aW1lL29wdHdpbi52aW0KaW5kZXggMjNjMDM3OS4uN2FhMWUwZiAxMDA2NDQKLS0tIGEvcnVudGltZS9vcHR3aW4udmltCisrKyBiL3J1bnRpbWUvb3B0d2luLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVGhlc2UgY29tbWFuZHMgY3JlYXRlIHRoZSBvcHRpb24gd2luZG93LgogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNSBBdWcgMjkKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgU2VwIDAxCiAKICIgSWYgdGhlcmUgYWxyZWFkeSBpcyBhbiBvcHRpb24gd2luZG93LCBqdW1wIHRvIHRoYXQgb25lLgogaWYgYnVmd2lubnIoIm9wdGlvbi13aW5kb3ciKSA+IDAKQEAgLTcwNCw2ICs3MDQsOSBAQAogICBjYWxsIGFwcGVuZCgiJCIsICJjb21wbGV0ZWZ1bmNcdHVzZXIgZGVmaW5lZCBmdW5jdGlvbiBmb3IgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiIpCiAgIGNhbGwgYXBwZW5kKCIkIiwgIlx0KGxvY2FsIHRvIGJ1ZmZlcikiKQogICBjYWxsIDxTSUQ+T3B0aW9uTCgiY2Z1IikKKyAgY2FsbCBhcHBlbmQoIiQiLCAib2NjdWx0ZnVuY1x0ZnVuY3Rpb24gZm9yIGZpbGV0eXBlLXNwZWNpZmljIEluc2VydCBtb2RlIGNvbXBsZXRpb24iKQorICBjYWxsIGFwcGVuZCgiJCIsICJcdChsb2NhbCB0byBidWZmZXIpIikKKyAgY2FsbCA8U0lEPk9wdGlvbkwoIm9mdSIpCiAgIGNhbGwgYXBwZW5kKCIkIiwgImRpY3Rpb25hcnlcdGxpc3Qgb2YgZGljdGlvbmFyeSBmaWxlcyBmb3Iga2V5d29yZCBjb21wbGV0aW9uIikKICAgY2FsbCBhcHBlbmQoIiQiLCAiXHQoZ2xvYmFsIG9yIGxvY2FsIHRvIGJ1ZmZlcikiKQogICBjYWxsIDxTSUQ+T3B0aW9uRygiZGljdCIsICZkaWN0KQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9jeS9jeV9HQi5kaWZmIGIvcnVudGltZS9zcGVsbC9jeS9jeV9HQi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMWU3MTgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2N5L2N5X0dCLmRpZmYKQEAgLTAsMCArMSw5IEBACisqKiogY3lfR0Iub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMTo0MjowMyAyMDA1CistLS0gY3lfR0IuYWZmCVdlZCBBdWcgMzEgMjE6NDM6MTAgMjAwNQorKioqKioqKioqKioqKioqCisqKiogODEsODIgKioqKgorLS0tIDgxLDg0IC0tLS0KKyAgCisrIE1JRFdPUkQgJy0KKysgCisgIFBGWCBNIFkgMTgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY3kvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2N5L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNmNiODQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2N5L21haW4uYWFwCkBAIC0wLDAgKzEsODIgQEAKKyMgQWFwIHJlY2lwZSBmb3IgV2Vsc2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBjeV9HQi5hZmYgY3lfR0IuZGljCisKK2FsbDogJFNQRUxMRElSL2N5Lmlzby04ODU5LTE0LnNwbCAkU1BFTExESVIvY3kudXRmLTguc3BsIFwKKyAgICAgICAgIC4uL1JFQURNRV9jeS50eHQKKworJFNQRUxMRElSL2N5Lmlzby04ODU5LTE0LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1pc28tODg1OS0xNCIgCisgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9jeSBjeV9HQiIgLWMgcQorCiskU1BFTExESVIvY3kudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPXV0Zi04IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvY3kgY3lfR0IiIC1jIHEKKworLi4vUkVBRE1FX2N5LnR4dCA6IFJFQURNRV9jeV9HQi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBjeV9HQi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK2N5X0dCLmFmZiBjeV9HQi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggY3lfR0IuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGN5X0dCLnppcAorICAgICAgICA6ZGVsZXRlIGN5X0dCLnppcAorICAgICAgICA6c3lzICRWSU0gY3lfR0IuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGN5X0dCLmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfY3lfR0IudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY3lfR0Iub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGN5X0dCLmFmZiBjeV9HQi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdjeV9HQi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgY3lfR0IuZGljIGN5X0dCLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnY3lfR0IuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8Y3lfR0IuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBjeV9HQi5vcmlnLmFmZiBjeV9HQi5hZmYgPmN5X0dCLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBjeV9HQi5vcmlnLmRpYyBjeV9HQi5kaWMgPj5jeV9HQi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBjeV9HQi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2N5X0dCLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vY3lfR0Iub3JpZy5hZmYgY3lfR0IuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGN5X0dCLmFmZiAuLi9jeV9HQi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9jeV9HQi5vcmlnLmRpYyBjeV9HQi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgY3lfR0IuZGljIC4uL2N5X0dCLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBjeV9HQi56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kYS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZGEvbWFpbi5hYXAKaW5kZXggYjg0YTgwZi4uNjVlMWEyZiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9kYS9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2RhL21haW4uYWFwCkBAIC0zNSw2ICszNSw3IEBACiAgICAgICAgIDpmZXRjaCBkYV9ESy56aXAKICAgICAgICAgOnN5cyAkVU5aSVAgZGFfREsuemlwCiAgICAgICAgIDpkZWxldGUgZGFfREsuemlwCisgICAgICAgIDpkZWxldGUgY29udHJpYnV0b3JzIENPUFlJTkcgTWFrZWZpbGUgZGFfREsuZXhjbHVkZWQKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGFfREsub3JpZy5hZmYnKToKICAgICAgICAgICAgIDpjb3B5IGRhX0RLLmFmZiBkYV9ESy5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkYV9ESy5vcmlnLmRpYycpOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAppbmRleCAzNjBlMWFlLi4wYmJlNjk5IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwKaW5kZXggMDM4MjBkNS4uNGQ2ZjVhZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4ubGF0aW4xLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbCBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCmluZGV4IDEwMTM5MDcuLmQ2MzBhNzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZm8vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2ZvL21haW4uYWFwCmluZGV4IDk0OGQ0YTQuLmI5YmU1NDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZm8vbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9mby9tYWluLmFhcApAQCAtMzUsNiArMzUsNyBAQAogICAgICAgICA6ZmV0Y2ggZm9fRk8uemlwCiAgICAgICAgIDpzeXMgJFVOWklQIGZvX0ZPLnppcAogICAgICAgICA6ZGVsZXRlIGZvX0ZPLnppcAorICAgICAgICA6ZGVsZXRlIGNvbnRyaWJ1dG9ycyBmb19GTy5leGNsdWRlZCBNYWtlZmlsZSBDT1BZSU5HCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2ZvX0ZPLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBmb19GTy5hZmYgZm9fRk8ub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZm9fRk8ub3JpZy5kaWMnKToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwCmluZGV4IGU3NDI0MzIuLjFiNzBiODMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9mci9tYWluLmFhcApAQCAtMTksOCArMTksOCBAQAogICAgICAgICA6c3lzIGVudiBMQU5HPWZyX0ZSLlVURi04CiAJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2ZyIGZyX0ZSIiAtYyBxCiAKLS4uL1JFQURNRV9mci50eHQgOiBSRUFETUVfZnJfRlIudHh0Ci0gICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorLi4vUkVBRE1FX2ZyLnR4dCA6IFJFQURNRV9mcl9GUi50eHQgbGlzZXotbW9pLnR4dAorICAgICAgICA6Y2F0ICRzb3VyY2UgPiEkdGFyZ2V0CiAKICMKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2dhL2dhX0lFLmRpZmYgYi9ydW50aW1lL3NwZWxsL2dhL2dhX0lFLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI3Mjg1MwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZ2EvZ2FfSUUuZGlmZgpAQCAtMCwwICsxLDI3IEBACisqKiogZ2FfSUUub3JpZy5hZmYJV2VkIEF1ZyAzMSAxNjo0ODo0OSAyMDA1CistLS0gZ2FfSUUuYWZmCVdlZCBBdWcgMzEgMTY6NDk6NDMgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMzcsMzggKioqKgorLS0tIDM3LDU4IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJy0KKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgUEZYIFMgWSAxOApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nYS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZ2EvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc0NWRlNQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZ2EvbWFpbi5hYXAKQEAgLTAsMCArMSw3OSBAQAorIyBBYXAgcmVjaXBlIGZvciBJcmlzaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGdhX0lFLmFmZiBnYV9JRS5kaWMKKworYWxsOiAkU1BFTExESVIvZ2EubGF0aW4xLnNwbCAkU1BFTExESVIvZ2EudXRmLTguc3BsIC4uL1JFQURNRV9nYS50eHQKKworIyBJIGRvbid0IGhhdmUgYW4gSXJpc2ggbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorJFNQRUxMRElSL2dhLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZ2EgZ2FfSUUiIC1jIHEKKworJFNQRUxMRElSL2dhLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2dhIGdhX0lFIiAtYyBxCisKKy4uL1JFQURNRV9nYS50eHQgOiBSRUFETUVfZ2FfSUUudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gZ2FfSUUuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitnYV9JRS5hZmYgZ2FfSUUuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGdhX0lFLnppcAorICAgICAgICA6c3lzICRVTlpJUCBnYV9JRS56aXAKKyAgICAgICAgOmRlbGV0ZSBnYV9JRS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZ2FfSUUub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGdhX0lFLmFmZiBnYV9JRS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdnYV9JRS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgZ2FfSUUuZGljIGdhX0lFLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZ2FfSUUuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8Z2FfSUUuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBnYV9JRS5vcmlnLmFmZiBnYV9JRS5hZmYgPmdhX0lFLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBnYV9JRS5vcmlnLmRpYyBnYV9JRS5kaWMgPj5nYV9JRS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBnYV9JRS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2dhX0lFLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZ2FfSUUub3JpZy5hZmYgZ2FfSUUuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGdhX0lFLmFmZiAuLi9nYV9JRS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9nYV9JRS5vcmlnLmRpYyBnYV9JRS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgZ2FfSUUuZGljIC4uL2dhX0lFLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBnYV9JRS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmIGIvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxNmJhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2dkL2dkX0dCLmRpZmYKQEAgLTAsMCArMSwyNiBAQAorKioqIGdkX0dCLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjA6NTA6MDIgMjAwNQorLS0tIGdkX0dCLmFmZglXZWQgQXVnIDMxIDIwOjUwOjQzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE5ICoqKioKKy0tLSAxOSwzOSAtLS0tCisgIFRSWSBhaGlucmRlc2NsZ291dG1i4GYt8kFD7FT5QnBHU0RN6ElSUExORUbpTydV88DSzNlIycgKKysgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJy0KKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3wpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nZC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZ2QvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk5MmYwMwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZ2QvbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBTY290dGlzaCBHYWVsaWMgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBnZF9HQi5hZmYgZ2RfR0IuZGljCisKK2FsbDogJFNQRUxMRElSL2dkLmxhdGluMS5zcGwgJFNQRUxMRElSL2dkLnV0Zi04LnNwbCAuLi9SRUFETUVfZ2QudHh0CisKKyRTUEVMTERJUi9nZC5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9Z2RfR0IuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2dkIGdkX0dCIiAtYyBxCisKKyRTUEVMTERJUi9nZC51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1nZF9HQi5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9nZCBnZF9HQiIgLWMgcQorCisuLi9SRUFETUVfZ2QudHh0IDogUkVBRE1FX2dkX0dCLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGdkX0dCLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorZ2RfR0IuYWZmIGdkX0dCLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBnZF9HQi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZ2RfR0IuemlwCisgICAgICAgIDpkZWxldGUgZ2RfR0IuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2dkX0dCLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBnZF9HQi5hZmYgZ2RfR0Iub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZ2RfR0Iub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGdkX0dCLmRpYyBnZF9HQi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2dkX0dCLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGdkX0dCLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZ2RfR0Iub3JpZy5hZmYgZ2RfR0IuYWZmID5nZF9HQi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZ2RfR0Iub3JpZy5kaWMgZ2RfR0IuZGljID4+Z2RfR0IuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggZ2RfR0IuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9nZF9HQi56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2dkX0dCLm9yaWcuYWZmIGdkX0dCLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBnZF9HQi5hZmYgLi4vZ2RfR0IubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZ2RfR0Iub3JpZy5kaWMgZ2RfR0IuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGdkX0dCLmRpYyAuLi9nZF9HQi5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgZ2RfR0IuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaHIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2hyL21haW4uYWFwCmluZGV4IDY5OWQ2MWYuLjFiOTk4Y2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvaHIvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9oci9tYWluLmFhcApAQCAtOSw4ICs5LDggQEAKIFNQRUxMRElSID0gLi4KIEZJTEVTICAgID0gaHJfSFIuYWZmIGhyX0hSLmRpYwogCi1hbGw6ICRTUEVMTERJUi9oci5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvcGwudXRmLTguc3BsIFwKLSAgICAgICAgJFNQRUxMRElSL2hyLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3BsLnR4dAorYWxsOiAkU1BFTExESVIvaHIuaXNvLTg4NTktMi5zcGwgJFNQRUxMRElSL2hyLnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi9oci5jcDEyNTAuc3BsIC4uL1JFQURNRV9oci50eHQKIAogJFNQRUxMRElSL2hyLmlzby04ODU5LTIuc3BsIDogJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9aHJfSFIuSVNPODg1OS0yICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2hyIGhyX0hSIiAtYyBxCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2lkL2lkX0lELmRpZmYgYi9ydW50aW1lL3NwZWxsL2lkL2lkX0lELmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyNzNhZQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvaWQvaWRfSUQuZGlmZgpAQCAtMCwwICsxLDIyIEBACisqKiogaWRfSUQub3JpZy5hZmYJV2VkIEF1ZyAzMSAxNjo0MToxMSAyMDA1CistLS0gaWRfSUQuYWZmCVdlZCBBdWcgMzEgMTY6NDM6MjkgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMTgsMTkgKioqKgorLS0tIDE4LDI2IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisgIFBGWCBBIFkgMQorKioqIGlkX0lELm9yaWcuZGljCVdlZCBBdWcgMzEgMTY6NDE6MTEgMjAwNQorLS0tIGlkX0lELmRpYwlXZWQgQXVnIDMxIDE2OjQxOjM1IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIxNzI5LDIxNzMxICoqKioKKyAgYmVyYWJhcmthbgorLSBidWxldGluCisgIGtlcm51CistLS0gMjE3MjksMjE3MzAgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9pZC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvaWQvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMwNGI1NQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvaWQvbWFpbi5hYXAKQEAgLTAsMCArMSw3OSBAQAorIyBBYXAgcmVjaXBlIGZvciBJbmRvbmVzaWFuIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gaWRfSUQuYWZmIGlkX0lELmRpYworCithbGw6ICRTUEVMTERJUi9pZC5sYXRpbjEuc3BsICRTUEVMTERJUi9pZC51dGYtOC5zcGwgLi4vUkVBRE1FX2lkLnR4dAorCisjIEkgZG9uJ3QgaGF2ZSBhbiBJbmRvbmVzaWFuIGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KKyRTUEVMTERJUi9pZC5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2lkIGlkX0lEIiAtYyBxCisKKyRTUEVMTERJUi9pZC51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9pZCBpZF9JRCIgLWMgcQorCisuLi9SRUFETUVfaWQudHh0IDogUkVBRE1FX2lkX0lELnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGlkX0lELnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgoraWRfSUQuYWZmIGlkX0lELmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBpZF9JRC56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgaWRfSUQuemlwCisgICAgICAgIDpkZWxldGUgaWRfSUQuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2lkX0lELm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBpZF9JRC5hZmYgaWRfSUQub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnaWRfSUQub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGlkX0lELmRpYyBpZF9JRC5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2lkX0lELmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGlkX0lELmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaWRfSUQub3JpZy5hZmYgaWRfSUQuYWZmID5pZF9JRC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaWRfSUQub3JpZy5kaWMgaWRfSUQuZGljID4+aWRfSUQuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggaWRfSUQuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9pZF9JRC56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2lkX0lELm9yaWcuYWZmIGlkX0lELmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBpZF9JRC5hZmYgLi4vaWRfSUQubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vaWRfSUQub3JpZy5kaWMgaWRfSUQuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGlkX0lELmRpYyAuLi9pZF9JRC5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgaWRfSUQuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaXQvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2l0L21haW4uYWFwCmluZGV4IGVhY2VkNjguLmYxYmQ3NDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvaXQvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9pdC9tYWluLmFhcApAQCAtMTksOCArMTksOCBAQAogICAgICAgICA6c3lzIGVudiBMQU5HPWl0X0lULlVURi04CiAJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2l0IGl0X0lUIiAtYyBxCiAKLS4uL1JFQURNRV9pdC50eHQgOiBSRUFETUVfaXRfSVQudHh0Ci0gICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorLi4vUkVBRE1FX2l0LnR4dCA6IFJFQURNRV9pdF9JVC50eHQgUkVBRE1FLnR4dAorICAgICAgICA6Y2F0ICRzb3VyY2UgPiEgJHRhcmdldAogCiAjCiAjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgpAQCAtMzUsNiArMzUsNyBAQAogICAgICAgICA6ZmV0Y2ggaXRfSVQuemlwCiAgICAgICAgIDpzeXMgJFVOWklQIGl0X0lULnppcAogICAgICAgICA6ZGVsZXRlIGl0X0lULnppcAorICAgICAgICA6ZGVsZXRlIEdQTC50eHQgaGlzdG9yeS50eHQgbGljZW5zZS50eHQgbm90ZXMudHh0IHN0YXRpc3RpY2hlLnN4YyB0aGFua3MudHh0CiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2l0X0lULm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBpdF9JVC5hZmYgaXRfSVQub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnaXRfSVQub3JpZy5kaWMnKToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwva3Uva3VfVFIuZGlmZiBiL3J1bnRpbWUvc3BlbGwva3Uva3VfVFIuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9rdS9rdV9UUi5kaWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2t1L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9rdS9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDBmYjJmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9rdS9tYWluLmFhcApAQCAtMCwwICsxLDgyIEBACisjIEFhcCByZWNpcGUgZm9yIEt1cmRpc2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBrdV9UUi5hZmYga3VfVFIuZGljCisKKyMgSSBkb24ndCBoYXZlIGEgS3VyZGlzaCBsb2NhbGUsIHVzIHRoZSBUdXJraXNoIG9uZS4KK2FsbDogJFNQRUxMRElSL2t1Lmlzby04ODU5LTkuc3BsICRTUEVMTERJUi9rdS51dGYtOC5zcGwgXAorICAgICAgICAuLi9SRUFETUVfa3UudHh0CisKKyRTUEVMTERJUi9rdS5pc28tODg1OS05LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXRyX1RSLklTTzg4NTktOSAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9rdSBrdV9UUiIgLWMgcQorCiskU1BFTExESVIva3UudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9dHJfVFIuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIva3Uga3VfVFIiIC1jIHEKKworLi4vUkVBRE1FX2t1LnR4dDogUkVBRE1FX2t1X1RSLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGt1X1RSLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBUaGlzIGlzIGEgYml0IHRyaWNreSwgc2luY2UgdGhlIGZpbGUgbmFtZSBpbmNsdWRlcyB0aGUgZGF0ZS4KK2t1X1RSLmFmZiBrdV9UUi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2gga3VfVFIuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGt1X1RSLnppcAorICAgICAgICA6ZGVsZXRlIGt1X1RSLnppcAorICAgICAgICA6c3lzICRWSU0ga3VfVFIuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGt1X1RSLmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfa3VfVFIudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygna3VfVFIub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGt1X1RSLmFmZiBrdV9UUi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdrdV9UUi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkga3VfVFIuZGljIGt1X1RSLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygna3VfVFIuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8a3VfVFIuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBrdV9UUi5vcmlnLmFmZiBrdV9UUi5hZmYgPmt1X1RSLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBrdV9UUi5vcmlnLmRpYyBrdV9UUi5kaWMgPj5rdV9UUi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2gga3VfVFIuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9rdV9UUi56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2t1X1RSLm9yaWcuYWZmIGt1X1RSLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBrdV9UUi5hZmYgLi4va3VfVFIubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4va3VfVFIub3JpZy5kaWMga3VfVFIuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGt1X1RSLmRpYyAuLi9rdV9UUi5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUga3VfVFIuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbGEvbGEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvbGEvbGEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODdiMDkxCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sYS9sYS5kaWZmCkBAIC0wLDAgKzEsMTIgQEAKKyoqKiBsYS5vcmlnLmFmZglXZWQgQXVnIDMxIDE3OjA5OjUwIDIwMDUKKy0tLSBsYS5hZmYJV2VkIEF1ZyAzMSAxNzoxMDo0MiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyLDMgKioqKgorLS0tIDIsOCAtLS0tCisgIFRSWSBlc2lhbnJ0b2xjZHVnbXBoYnlmdmt3CisrIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKyAgU0ZYIGEgWSAxMjQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbGEvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2xhL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjZjFkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2xhL21haW4uYWFwCkBAIC0wLDAgKzEsNzggQEAKKyMgQWFwIHJlY2lwZSBmb3IgTGF0aW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBsYS5hZmYgbGEuZGljCisKK2FsbDogJFNQRUxMRElSL2xhLmxhdGluMS5zcGwgJFNQRUxMRElSL2xhLnV0Zi04LnNwbCAuLi9SRUFETUVfbGEudHh0CisKKyRTUEVMTERJUi9sYS5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bGFfTE4uSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2xhIGxhIiAtYyBxCisKKyRTUEVMTERJUi9sYS51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9dXRmLTgiCisgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9sYSBsYSIgLWMgcQorCisuLi9SRUFETUVfbGEudHh0IDogUkVBRE1FX2xhLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGxhLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorbGEuYWZmIGxhLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBsYS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbGEuemlwCisgICAgICAgIDpkZWxldGUgbGEuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2xhLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBsYS5hZmYgbGEub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbGEub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGxhLmRpYyBsYS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2xhLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGxhLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbGEub3JpZy5hZmYgbGEuYWZmID5sYS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbGEub3JpZy5kaWMgbGEuZGljID4+bGEuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbGEuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9sYS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2xhLm9yaWcuYWZmIGxhLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsYS5hZmYgLi4vbGEubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbGEub3JpZy5kaWMgbGEuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGxhLmRpYyAuLi9sYS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbGEuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbHQvbHRfTFQuZGlmZiBiL3J1bnRpbWUvc3BlbGwvbHQvbHRfTFQuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sdC9sdF9MVC5kaWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2x0L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9sdC9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmVkYWQyCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sdC9tYWluLmFhcApAQCAtMCwwICsxLDc4IEBACisjIEFhcCByZWNpcGUgZm9yIExpdGh1YW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBsdF9MVC5hZmYgbHRfTFQuZGljCisKK2FsbDogJFNQRUxMRElSL2x0Lmlzby04ODU5LTEzLnNwbCAkU1BFTExESVIvbHQudXRmLTguc3BsIFwKKyAgICAgICAgIC4uL1JFQURNRV9sdC50eHQKKworJFNQRUxMRElSL2x0Lmlzby04ODU5LTEzLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULklTTzg4NTktMTMgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbHQgbHRfTFQiIC1jIHEKKworJFNQRUxMRElSL2x0LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2x0IGx0X0xUIiAtYyBxCisKKy4uL1JFQURNRV9sdC50eHQ6IFJFQURNRV9sdF9MVC50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBsdF9MVC56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitsdF9MVC5hZmYgbHRfTFQuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGx0X0xULnppcAorICAgICAgICA6c3lzICRVTlpJUCBsdF9MVC56aXAKKyAgICAgICAgOmRlbGV0ZSBsdF9MVC56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbHRfTFQub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGx0X0xULmFmZiBsdF9MVC5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdsdF9MVC5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbHRfTFQuZGljIGx0X0xULm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbHRfTFQuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bHRfTFQuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBsdF9MVC5vcmlnLmFmZiBsdF9MVC5hZmYgPmx0X0xULmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBsdF9MVC5vcmlnLmRpYyBsdF9MVC5kaWMgPj5sdF9MVC5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbHRfTFQuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9sdF9MVC56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2x0X0xULm9yaWcuYWZmIGx0X0xULmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsdF9MVC5hZmYgLi4vbHRfTFQubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbHRfTFQub3JpZy5kaWMgbHRfTFQuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGx0X0xULmRpYyAuLi9sdF9MVC5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbHRfTFQuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbHYvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2x2L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwY2FjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2x2L21haW4uYWFwCkBAIC0wLDAgKzEsODMgQEAKKyMgQWFwIHJlY2lwZSBmb3IgTGF0dmlhbiBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGx2X0xWLmFmZiBsdl9MVi5kaWMKKworIyBJIGRvbid0IGhhdmUgYSBMYXR2aWFuIGxvY2FsZSwgdXNlIExpdGh1YW5pYW4gaW5zdGVhZC4KK2FsbDogJFNQRUxMRElSL2x2Lmlzby04ODU5LTEzLnNwbCAkU1BFTExESVIvbHYudXRmLTguc3BsIFwKKyAgICAgICAgIC4uL1JFQURNRV9sdi50eHQKKworJFNQRUxMRElSL2x2Lmlzby04ODU5LTEzLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULklTTzg4NTktMTMgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbHYgbHZfTFYiIC1jIHEKKworJFNQRUxMRElSL2x2LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2x2IGx2X0xWIiAtYyBxCisKKy4uL1JFQURNRV9sdi50eHQ6IFJFQURNRV9sdl9MVi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBsdl9MVi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitsdl9MVi5hZmYgbHZfTFYuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGx2X0xWLnppcAorICAgICAgICA6c3lzICRVTlpJUCBsdl9MVi56aXAKKyAgICAgICAgOmRlbGV0ZSBsdl9MVi56aXAKKyAgICAgICAgOmRlbGV0ZSBjaGFuZ2Vsb2cudHh0IGdwbC50eHQgbGluLWx2X0xWX2FkZC5zaCB3aW4tbHZfTFZfYWRkLmJhdAorICAgICAgICA6c3lzICRWSU0gbHZfTFYuYWZmIC1lIC1OIC1jICIlcy9cci8vIiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gbHZfTFYuZGljIC1lIC1OIC1jICIlcy9cci8vIiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gUkVBRE1FX2x2X0xWLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2x2X0xWLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBsdl9MVi5hZmYgbHZfTFYub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbHZfTFYub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGx2X0xWLmRpYyBsdl9MVi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2x2X0xWLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGx2X0xWLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbHZfTFYub3JpZy5hZmYgbHZfTFYuYWZmID5sdl9MVi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbHZfTFYub3JpZy5kaWMgbHZfTFYuZGljID4+bHZfTFYuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGx2X0xWLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbHZfTFYuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9sdl9MVi5vcmlnLmFmZiBsdl9MVi5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbHZfTFYuYWZmIC4uL2x2X0xWLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2x2X0xWLm9yaWcuZGljIGx2X0xWLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsdl9MVi5kaWMgLi4vbHZfTFYubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGx2X0xWLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9tYWluLmFhcAppbmRleCBmZmIxNmI4Li41YmU0NDU0IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvbWFpbi5hYXAKQEAgLTQsMTAgKzQsMTEgQEAKICMgYWFwICAgICAgICBnZW5lcmF0ZSBhbGwgdGhlIC5zcGwgZmlsZXMKICMgYWFwIGRpZmYgICBjcmVhdGUgYWxsIHRoZSBkaWZmIGZpbGVzCiAKLUxBTkcgPSBhZiBhbSBiZyBjYSBjcyBkYSBkZSBlbCBlbiBlbyBlcyBmciBmbyBnbCBoZSBociBpdCBubCBueSBwbCBydSBzawotICAgICAgIHRoIHlpIGh1CitMQU5HID0gYWYgYW0gYmcgY2EgY3MgY3kgZGEgZGUgZWwgZW4gZW8gZXMgZnIgZm8gZ2EgZ2QgZ2wgaGUgaHIgaWQgaXQga3UKKyAgICAgICBsYSBsdCBsdiBtZyBtaSBtcyBuYiBubCBubiBueSBwbCBwdCBybyBydSBydyBzayBzbCBzdiBzdworICAgICAgIHRldCB0aCB0bCB0biB1ayB5aSB6dSBodQogCi0jICJodSIgaXMgYXQgdGhlIGVuZCwgYmVjYXVzZSBpdCB0YWtlcyB2ZXJ5IGxvbmcuCisjICJodSIgaXMgYXQgdGhlIGVuZCwgYmVjYXVzZSBpdCB0YWtlcyBhIHZlcnkgbG9uZyB0aW1lLgogIwogIyBUT0RPOgogIyBGaW5uaXNoIGRvZXNuJ3Qgd29yaywgdGhlIGRpY3Rpb25hcnkgZmlfRkkuemlwIGZpbGUgY29udGFpbnMgaHlwaGVuYXRpb24uLi4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbWcvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL21nL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ODYwYmYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21nL21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgTWFsYWdhc3kgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBtZ19NRy5hZmYgbWdfTUcuZGljCisKKyMgSSBkb24ndCBoYXZlIGEgTWFsYWdhc3kgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorYWxsOiAkU1BFTExESVIvbWcubGF0aW4xLnNwbCAkU1BFTExESVIvbWcudXRmLTguc3BsIC4uL1JFQURNRV9tZy50eHQKKworJFNQRUxMRElSL21nLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbWcgbWdfTUciIC1jIHEKKworJFNQRUxMRElSL21nLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL21nIG1nX01HIiAtYyBxCisKKy4uL1JFQURNRV9tZy50eHQgOiBSRUFETUVfbWdfTUcudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbWdfTUcuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCittZ19NRy5hZmYgbWdfTUcuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG1nX01HLnppcAorICAgICAgICA6c3lzICRVTlpJUCBtZ19NRy56aXAKKyAgICAgICAgOmRlbGV0ZSBtZ19NRy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbWdfTUcub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG1nX01HLmFmZiBtZ19NRy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtZ19NRy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbWdfTUcuZGljIG1nX01HLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbWdfTUcuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bWdfTUcuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtZ19NRy5vcmlnLmFmZiBtZ19NRy5hZmYgPm1nX01HLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtZ19NRy5vcmlnLmRpYyBtZ19NRy5kaWMgPj5tZ19NRy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBtZ19NRy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL21nX01HLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbWdfTUcub3JpZy5hZmYgbWdfTUcuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG1nX01HLmFmZiAuLi9tZ19NRy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9tZ19NRy5vcmlnLmRpYyBtZ19NRy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbWdfTUcuZGljIC4uL21nX01HLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBtZ19NRy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9tZy9tZ19NRy5kaWZmIGIvcnVudGltZS9zcGVsbC9tZy9tZ19NRy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyMTQ5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21nL21nX01HLmRpZmYKQEAgLTAsMCArMSwyNiBAQAorKioqIG1nX01HLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTc6NTg6NTkgMjAwNQorLS0tIG1nX01HLmFmZglXZWQgQXVnIDMxIDE4OjAwOjQyIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE5ICoqKioKKy0tLSAxOSwzOSAtLS0tCisgIFRSWSBhbnlpb3RybWVoc2ZrZHpsJ3ZwYmctQU1qTlRGSVJISlNL4FZERUxQQkdaT/TyCisrIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECSctCisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbWkvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL21pL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExYTY3MTMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21pL21haW4uYWFwCkBAIC0wLDAgKzEsODAgQEAKKyMgQWFwIHJlY2lwZSBmb3IgTWFvcmkgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBtaV9OWi5hZmYgbWlfTlouZGljCisKK2FsbDogJFNQRUxMRElSL21pLmxhdGluMS5zcGwgJFNQRUxMRElSL21pLnV0Zi04LnNwbCAuLi9SRUFETUVfbWkudHh0CisKKyRTUEVMTERJUi9taS5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWlzby04ODU5LTQiCisgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9taSBtaV9OWiIgLWMgcQorCiskU1BFTExESVIvbWkudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPXV0Zi04IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvbWkgbWlfTloiIC1jIHEKKworLi4vUkVBRE1FX21pLnR4dCA6IFJFQURNRV9taV9OWi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBtaV9OWi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK21pX05aLmFmZiBtaV9OWi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggbWlfTlouemlwCisgICAgICAgIDpzeXMgJFVOWklQIG1pX05aLnppcAorICAgICAgICA6ZGVsZXRlIG1pX05aLnppcAorICAgICAgICAjIEZpeCBtaXNzaW5nIGVuZCBvZiBsaW5lLgorICAgICAgICA6cHJpbnQgPj5taV9OWi5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbWlfTloub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG1pX05aLmFmZiBtaV9OWi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtaV9OWi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbWlfTlouZGljIG1pX05aLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbWlfTlouZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bWlfTlouZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtaV9OWi5vcmlnLmFmZiBtaV9OWi5hZmYgPm1pX05aLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtaV9OWi5vcmlnLmRpYyBtaV9OWi5kaWMgPj5taV9OWi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBtaV9OWi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL21pX05aLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbWlfTloub3JpZy5hZmYgbWlfTlouYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG1pX05aLmFmZiAuLi9taV9OWi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9taV9OWi5vcmlnLmRpYyBtaV9OWi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbWlfTlouZGljIC4uL21pX05aLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBtaV9OWi56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9taS9taV9OWi5kaWZmIGIvcnVudGltZS9zcGVsbC9taS9taV9OWi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1YWNlNmYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21pL21pX05aLmRpZmYKQEAgLTAsMCArMSwxMCBAQAorKioqIG1pX05aLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTg6MjI6MDMgMjAwNQorLS0tIG1pX05aLmFmZglXZWQgQXVnIDMxIDE4OjIxOjU2IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIsMyAqKioqCistLS0gMiw2IC0tLS0KKyAgVFJZIGHgaWt0dXJvaGW67/L+bnBnd21BwElLVFVST0hFqs/S3k5QR1dNCisrIAorKyBNSURXT1JEIC0KKysgCisgIFJFUCAzMApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9tcy9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbXMvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcxNmIzYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbXMvbWFpbi5hYXAKQEAgLTAsMCArMSw4MSBAQAorIyBBYXAgcmVjaXBlIGZvciBNYWxheSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IG1zX01ZLmFmZiBtc19NWS5kaWMKKworIyBJIGRvIG5vdCBoYXZlIGEgTWFsYXkgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorYWxsOiAkU1BFTExESVIvbXMubGF0aW4xLnNwbCAkU1BFTExESVIvbXMudXRmLTguc3BsIC4uL1JFQURNRV9tcy50eHQKKworJFNQRUxMRElSL21zLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbXMgbXNfTVkiIC1jIHEKKworJFNQRUxMRElSL21zLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL21zIG1zX01ZIiAtYyBxCisKKy4uL1JFQURNRV9tcy50eHQgOiBSRUFETUVfbXNfTVkudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbXNfTVkuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCittc19NWS5hZmYgbXNfTVkuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG1zX01ZLnppcAorICAgICAgICA6c3lzICRVTlpJUCBtc19NWS56aXAKKyAgICAgICAgOmRlbGV0ZSBtc19NWS56aXAKKyAgICAgICAgOnN5cyAkVklNIG1zX01ZLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBtc19NWS5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtc19NWS5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgbXNfTVkuYWZmIG1zX01ZLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ21zX01ZLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBtc19NWS5kaWMgbXNfTVkub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdtc19NWS5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxtc19NWS5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG1zX01ZLm9yaWcuYWZmIG1zX01ZLmFmZiA+bXNfTVkuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG1zX01ZLm9yaWcuZGljIG1zX01ZLmRpYyA+Pm1zX01ZLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIG1zX01ZLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbXNfTVkuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9tc19NWS5vcmlnLmFmZiBtc19NWS5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbXNfTVkuYWZmIC4uL21zX01ZLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL21zX01ZLm9yaWcuZGljIG1zX01ZLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBtc19NWS5kaWMgLi4vbXNfTVkubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIG1zX01ZLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21zL21zX01ZLmRpZmYgYi9ydW50aW1lL3NwZWxsL21zL21zX01ZLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJkZTU5NQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbXMvbXNfTVkuZGlmZgpAQCAtMCwwICsxLDI0IEBACisqKiogbXNfTVkub3JpZy5hZmYJV2VkIEF1ZyAzMSAxODowOTo1OCAyMDA1CistLS0gbXNfTVkuYWZmCVdlZCBBdWcgMzEgMTg6MTI6NTEgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMjUsMjYgKioqKgorLS0tIDI1LDM1IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQgLQorKyAKKyAgUEZYIEIgWSAyIAorKioqIG1zX01ZLm9yaWcuZGljCVdlZCBBdWcgMzEgMTg6MDk6NTggMjAwNQorLS0tIG1zX01ZLmRpYwlXZWQgQXVnIDMxIDE4OjEyOjQ4IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDQ5MzksNDk0MSAqKioqCisgIGRhdGluCistIERhdG/igJkKKyAgZGF0dWsvYgorLS0tIDQ5MzksNDk0MCAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL25iL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9uYi9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzgwNWVhCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9uYi9tYWluLmFhcApAQCAtMCwwICsxLDc4IEBACisjIEFhcCByZWNpcGUgZm9yIER1dGNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gbmJfTk8uYWZmIG5iX05PLmRpYworCithbGw6ICRTUEVMTERJUi9uYi5sYXRpbjEuc3BsICRTUEVMTERJUi9uYi51dGYtOC5zcGwgLi4vUkVBRE1FX25iLnR4dAorCiskU1BFTExESVIvbmIubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5vX05PLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9uYiBuYl9OTyIgLWMgcQorCiskU1BFTExESVIvbmIudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bm9fTk8uVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbmIgbmJfTk8iIC1jIHEKKworLi4vUkVBRE1FX25iLnR4dCA6IFJFQURNRV9uYl9OTy50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBuYl9OTy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK25iX05PLmFmZiBuYl9OTy5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggbmJfTk8uemlwCisgICAgICAgIDpzeXMgJFVOWklQIG5iX05PLnppcAorICAgICAgICA6ZGVsZXRlIG5iX05PLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCduYl9OTy5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgbmJfTk8uYWZmIG5iX05PLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ25iX05PLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBuYl9OTy5kaWMgbmJfTk8ub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCduYl9OTy5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxuYl9OTy5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG5iX05PLm9yaWcuYWZmIG5iX05PLmFmZiA+bmJfTk8uZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG5iX05PLm9yaWcuZGljIG5iX05PLmRpYyA+Pm5iX05PLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIG5iX05PLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbmJfTk8uemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9uYl9OTy5vcmlnLmFmZiBuYl9OTy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbmJfTk8uYWZmIC4uL25iX05PLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL25iX05PLm9yaWcuZGljIG5iX05PLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBuYl9OTy5kaWMgLi4vbmJfTk8ubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIG5iX05PLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL25iL25iX05PLmRpZmYgYi9ydW50aW1lL3NwZWxsL25iL25iX05PLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUxZWI1YgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbmIvbmJfTk8uZGlmZgpAQCAtMCwwICsxLDYzIEBACisqKiogbmJfTk8ub3JpZy5hZmYJV2VkIEF1ZyAzMSAxODoyOTo0MyAyMDA1CistLS0gbmJfTk8uYWZmCVdlZCBBdWcgMzEgMTg6MzU6MDkgMjAwNQorKioqKioqKioqKioqKioqCisqKiogNyw4ICoqKioKKy0tLSA3LDI2IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgUEZYIGEgWSAxCisqKiogbmJfTk8ub3JpZy5kaWMJV2VkIEF1ZyAzMSAxODoyOTo0MyAyMDA1CistLS0gbmJfTk8uZGljCVdlZCBBdWcgMzEgMTg6Mzg6MDIgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMiw0ICoqKioKKyAgYS5hCistIGEuYQorICBhLmEuQworLS0tIDIsMyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTA1NCwxNTA1NiAqKioqCisgIGNhbmQKKy0gY2FuZC8KKyAgY2FuZC5hY3QKKy0tLSAxNTA1MywxNTA1NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyODUzMiwyODUzNCAqKioqCisgIGYuby5yCistIGb0cgorICBmb3JhL0cKKy0tLSAyODUzMCwyODUzMSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyODk4MCwyODk4MiAqKioqCisgIGZvcmT4eWVsc2Vzc3lzdGVtL0JDRUZHSAorLSBm9HJlCisgIGb0cmUvQkVKdHoKKy0tLSAyODk3NywyODk3OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA0MzUzMiw0MzUzNCAqKioqCisgIElkYXIvSgorLSBpZOkKKyAgaWTpL0FFRkdIW3oKKy0tLSA0MzUyOCw0MzUyOSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NzQ5MCw1NzQ5MiAqKioqCisgIExhbWJlcnRzZXRlci9KCistIGxhbekKKyAgbGFt6S9BCistLS0gNTc0ODUsNTc0ODYgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ubi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbm4vbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE3MWIyMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbm4vbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBEdXRjaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IG5uX05PLmFmZiBubl9OTy5kaWMKKworYWxsOiAkU1BFTExESVIvbm4ubGF0aW4xLnNwbCAkU1BFTExESVIvbm4udXRmLTguc3BsIC4uL1JFQURNRV9ubi50eHQKKworJFNQRUxMRElSL25uLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ub19OTy5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbm4gbm5fTk8iIC1jIHEKKworJFNQRUxMRElSL25uLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5vX05PLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL25uIG5uX05PIiAtYyBxCisKKy4uL1JFQURNRV9ubi50eHQgOiBSRUFETUVfbm5fTk8udHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbm5fTk8uemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitubl9OTy5hZmYgbm5fTk8uZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG5uX05PLnppcAorICAgICAgICA6c3lzICRVTlpJUCBubl9OTy56aXAKKyAgICAgICAgOmRlbGV0ZSBubl9OTy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbm5fTk8ub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG5uX05PLmFmZiBubl9OTy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdubl9OTy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbm5fTk8uZGljIG5uX05PLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbm5fTk8uZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bm5fTk8uZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBubl9OTy5vcmlnLmFmZiBubl9OTy5hZmYgPm5uX05PLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBubl9OTy5vcmlnLmRpYyBubl9OTy5kaWMgPj5ubl9OTy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBubl9OTy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL25uX05PLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbm5fTk8ub3JpZy5hZmYgbm5fTk8uYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG5uX05PLmFmZiAuLi9ubl9OTy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9ubl9OTy5vcmlnLmRpYyBubl9OTy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbm5fTk8uZGljIC4uL25uX05PLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBubl9OTy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ubi9ubl9OTy5kaWZmIGIvcnVudGltZS9zcGVsbC9ubi9ubl9OTy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZTM1ODEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL25uL25uX05PLmRpZmYKQEAgLTAsMCArMSwyNSBAQAorKioqIG5uX05PLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTg6NDA6MjYgMjAwNQorLS0tIG5uX05PLmFmZglXZWQgQXVnIDMxIDE4OjQyOjAwIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDcsOCAqKioqCistLS0gNywyNiAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgIFBGWCBhIFkgMQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFjNjg5YgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAKQEAgLTAsMCArMSwxMjMgQEAKKyMgQWFwIHJlY2lwZSBmb3IgUG9ydHVndWVzZSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHB0X1BULmFmZiBwdF9QVC5kaWMKKwkgICBwdF9CUi5hZmYgcHRfQlIuZGljCisKK2FsbDogJFNQRUxMRElSL3B0LmxhdGluMS5zcGwgJFNQRUxMRElSL3B0LnV0Zi04LnNwbCBcCisgICAgICAgIC4uL1JFQURNRV9wdC50eHQKKworJFNQRUxMRElSL3B0LmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1wdF9QVC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcHQgcHRfUFQgcHRfQlIiIC1jIHEKKworJFNQRUxMRElSL3B0LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXB0X1BULlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3B0IHB0X1BUIHB0X0JSIiAtYyBxCisKKy4uL1JFQURNRV9wdC50eHQ6IFJFQURNRV9wdF9QVC50eHQgUkVBRE1FX3B0X0JSLnR4dAorICAgICAgICA6cHJpbnQgcHRfUFQgPiEkdGFyZ2V0CisgICAgICAgIDpjYXQgUkVBRE1FX3B0X1BULnR4dCB8IDpldmFsIHJlLnN1YignXHInLCAnJywgc3RkaW4pID4+JHRhcmdldAorICAgICAgICA6cHJpbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ID4+JHRhcmdldAorICAgICAgICA6cHJpbnQgcHRfQlI6ID4+JHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9wdF9CUi50eHQgfCA6ZXZhbCByZS5zdWIoJ1xyJywgJycsIHN0ZGluKSA+PiR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHB0X1BULnppcCBwdF9CUi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK3B0X1BULmFmZiBwdF9QVC5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggcHRfUFQuemlwCisgICAgICAgIDpzeXMgJFVOWklQIHB0X1BULnppcAorICAgICAgICA6ZGVsZXRlIHB0X1BULnppcAorICAgICAgICA6c3lzICRWSU0gcHRfUFQuZGljIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIFJFQURNRV9wdF9QVC50eHQgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwdF9QVC5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgcHRfUFQuYWZmIHB0X1BULm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3B0X1BULm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBwdF9QVC5kaWMgcHRfUFQub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdwdF9QVC5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxwdF9QVC5kaWZmCisKK3B0X0JSLmFmZiBwdF9CUi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggcHRfQlIuemlwCisgICAgICAgIDpzeXMgJFVOWklQIHB0X0JSLnppcAorICAgICAgICA6ZGVsZXRlIHB0X0JSLnppcAorICAgICAgICA6c3lzICRWSU0gcHRfQlIuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIHB0X0JSLmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfcHRfQlIudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncHRfQlIub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHB0X0JSLmFmZiBwdF9CUi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwdF9CUi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcHRfQlIuZGljIHB0X0JSLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncHRfQlIuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cHRfQlIuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBwdF9QVC5vcmlnLmFmZiBwdF9QVC5hZmYgPnB0X1BULmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBwdF9QVC5vcmlnLmRpYyBwdF9QVC5kaWMgPj5wdF9QVC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcHRfQlIub3JpZy5hZmYgcHRfQlIuYWZmID5wdF9CUi5kaWZmCisJOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBwdF9CUi5vcmlnLmRpYyBwdF9CUi5kaWMgPj5wdF9CUi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazogY2hlY2stdXMgY2hlY2stYXUKKworY2hlY2stdXM6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggcHRfUFQuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9wdF9QVC56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3B0X1BULm9yaWcuYWZmIHB0X1BULmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBwdF9QVC5hZmYgLi4vcHRfUFQubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcHRfUFQub3JpZy5kaWMgcHRfUFQuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHB0X1BULmRpYyAuLi9wdF9QVC5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgcHRfUFQuemlwCisKK2NoZWNrLWF1OgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHB0X0JSLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vcHRfQlIuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9wdF9CUi5vcmlnLmFmZiBwdF9CUi5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgcHRfQlIuYWZmIC4uL3B0X0JSLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3B0X0JSLm9yaWcuZGljIHB0X0JSLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBwdF9CUi5kaWMgLi4vcHRfQlIubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHB0X0JSLnppcAorCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9wdF9CUi5kaWZmIGIvcnVudGltZS9zcGVsbC9wdC9wdF9CUi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYjFkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3B0L3B0X0JSLmRpZmYKQEAgLTAsMCArMSw0NiBAQAorKioqIHB0X0JSLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjA6MDU6MTggMjAwNQorLS0tIHB0X0JSLmFmZglXZWQgQXVnIDMxIDIwOjA1OjE4IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDMsNCAqKioqCistLS0gMywyMiAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgICMgUGx1cmFsIGFwZW5hcworKioqKioqKioqKioqKioqCisqKiogNTI2LDUzNCAqKioqCisgIFNGWCBJICAgYXIgICAgICDqcyAgICAgICBkYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpYSAgICAgICBbXl1pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpYW0gICAgICAgW15daWFyCishIFNGWCBJICAgaWFyICAgICBlaWFzICAgICAgIFteXWlhcgorISBTRlggSSAgIGlhciAgICAgZWllICAgICAgIFteXWlhcgorISBTRlggSSAgIGlhciAgICAgZWllbSAgICAgICBbXl1pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZXMgICAgICAgW15daWFyCishIFNGWCBJICAgaWFyICAgICBlaW8gICAgICAgW15daWFyCisgIFNGWCBJICAgb2lhciAgICDzaWEgICAgICAgb2lhcgorLS0tIDU0NCw1NTIgLS0tLQorICBTRlggSSAgIGFyICAgICAg6nMgICAgICAgZGFyCishIFNGWCBJICAgaWFyICAgICBlaWEgICAgICAgW15vXWlhcgorISBTRlggSSAgIGlhciAgICAgZWlhbSAgICAgICBbXm9daWFyCishIFNGWCBJICAgaWFyICAgICBlaWFzICAgICAgIFteb11pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZSAgICAgICBbXm9daWFyCishIFNGWCBJICAgaWFyICAgICBlaWVtICAgICAgIFteb11pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZXMgICAgICAgW15vXWlhcgorISBTRlggSSAgIGlhciAgICAgZWlvICAgICAgIFteb11pYXIKKyAgU0ZYIEkgICBvaWFyICAgIPNpYSAgICAgICBvaWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3B0L3B0X1BULmRpZmYgYi9ydW50aW1lL3NwZWxsL3B0L3B0X1BULmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUzYTJkMgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvcHQvcHRfUFQuZGlmZgpAQCAtMCwwICsxLDI3IEBACisqKiogcHRfUFQub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMDowNToxNiAyMDA1CistLS0gcHRfUFQuYWZmCVdlZCBBdWcgMzEgMjA6MDU6MTYgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDI0IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICBQRlggQSBZIDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcm8vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3JvL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwN2UyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3JvL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgUm9tYW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSByb19STy5hZmYgcm9fUk8uZGljCisKK2FsbDogJFNQRUxMRElSL3JvLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9yby51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvcm8uY3AxMjUwLnNwbCAuLi9SRUFETUVfcm8udHh0CisKKyRTUEVMTERJUi9yby5pc28tODg1OS0yLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXJvX1JPLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ybyByb19STyIgLWMgcQorCiskU1BFTExESVIvcm8udXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cm9fUk8uVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcm8gcm9fUk8iIC1jIHEKKworJFNQRUxMRElSL3JvLmNwMTI1MC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3JvIHJvX1JPIiAtYyBxCisKKy4uL1JFQURNRV9yby50eHQ6IFJFQURNRV9yb19STy50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSByb19STy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCityb19STy5hZmYgcm9fUk8uZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHJvX1JPLnppcAorICAgICAgICA6c3lzICRVTlpJUCByb19STy56aXAKKyAgICAgICAgOmRlbGV0ZSByb19STy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncm9fUk8ub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHJvX1JPLmFmZiByb19STy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdyb19STy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcm9fUk8uZGljIHJvX1JPLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncm9fUk8uZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cm9fUk8uZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByb19STy5vcmlnLmFmZiByb19STy5hZmYgPnJvX1JPLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByb19STy5vcmlnLmRpYyByb19STy5kaWMgPj5yb19STy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggcm9fUk8uemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9yb19STy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3JvX1JPLm9yaWcuYWZmIHJvX1JPLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSByb19STy5hZmYgLi4vcm9fUk8ubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcm9fUk8ub3JpZy5kaWMgcm9fUk8uZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHJvX1JPLmRpYyAuLi9yb19STy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgcm9fUk8uemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcm8vcm9fUk8uZGlmZiBiL3J1bnRpbWUvc3BlbGwvcm8vcm9fUk8uZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDc3MDMwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9yby9yb19STy5kaWZmCkBAIC0wLDAgKzEsNDIgQEAKKyoqKiByb19STy5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjM0OjM4IDIwMDUKKy0tLSByb19STy5hZmYJV2VkIEF1ZyAzMSAyMDozOTo1NyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAzLDQgKioqKgorLS0tIDMsOCAtLS0tCisgIAorKyBGT0wgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCChoqOlpqipqqusrq+xsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKyAgUEZYIEUgWSAxCisqKioqKioqKioqKioqKioKKyoqKiAxMiwxNSAqKioqCisgIFNGWCBMICAgMCAgICAgICAgICBsICAgICAgICAgIHUKKyEgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgW15jZ10gaQorISBTRlggTCAgIDAgICAgICAgICAgaSAgICAgICAgICBbY2ddIGkKKyAgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgZQorLS0tIDE2LDE5IC0tLS0KKyAgU0ZYIEwgICAwICAgICAgICAgIGwgICAgICAgICAgdQorISBTRlggTCAgIDAgICAgICAgICAgbGUgICAgICAgICBbXmNnXWkKKyEgU0ZYIEwgICAwICAgICAgICAgIGkgICAgICAgICAgW2NnXWkKKyAgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgZQorKioqKioqKioqKioqKioqCisqKiogMTgsMjAgKioqKgorICBTRlggVSAgIDAgICAgICAgICAgYSAgICAgICAgICByZQorISBTRlggVSAgIDAgICAgICAgICAgaSAgICAgICAgICBbXmldIGlpCisgIAorLS0tIDIyLDI0IC0tLS0KKyAgU0ZYIFUgICAwICAgICAgICAgIGEgICAgICAgICAgcmUKKyEgU0ZYIFUgICAwICAgICAgICAgIGkgICAgICAgICAgW15pXWlpCisgIAorKioqKioqKioqKioqKioqCisqKiogMzgsNDEgKioqKgorICBTRlggSSAgIDAgICAgICAgICAgdWx1aSAgICAgICBbXnVhXQorISBTRlggSSAgIGEgICAgICAgICAgaWkgICAgICAgICBbZ2NdIGEKKyEgU0ZYIEkgICBhICAgICAgICAgIGVpICAgICAgICAgW15jZ10gYQorICAKKy0tLSA0Miw0NSAtLS0tCisgIFNGWCBJICAgMCAgICAgICAgICB1bHVpICAgICAgIFtedWFdCishIFNGWCBJICAgYSAgICAgICAgICBpaSAgICAgICAgIFtnY11hCishIFNGWCBJICAgYSAgICAgICAgICBlaSAgICAgICAgIFteY2ddYQorICAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcncvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3J3L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlZGE5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3J3L21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgS2lueWFyd2FuZGEgKFJ3YW5kYSkgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSByd19SVy5hZmYgcndfUlcuZGljCisKK2FsbDogJFNQRUxMRElSL3J3LmxhdGluMS5zcGwgJFNQRUxMRElSL3J3LnV0Zi04LnNwbCAuLi9SRUFETUVfcncudHh0CisKKyMgSSBkb24ndCBoYXZlIGEgS2lueWFyd2FuZGEgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorJFNQRUxMRElSL3J3LmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcncgcndfUlciIC1jIHEKKworJFNQRUxMRElSL3J3LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3J3IHJ3X1JXIiAtYyBxCisKKy4uL1JFQURNRV9ydy50eHQgOiBSRUFETUVfcndfUlcudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gcndfUlcuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCityd19SVy5hZmYgcndfUlcuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHJ3X1JXLnppcAorICAgICAgICA6c3lzICRVTlpJUCByd19SVy56aXAKKyAgICAgICAgOmRlbGV0ZSByd19SVy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncndfUlcub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHJ3X1JXLmFmZiByd19SVy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdyd19SVy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcndfUlcuZGljIHJ3X1JXLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncndfUlcuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cndfUlcuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByd19SVy5vcmlnLmFmZiByd19SVy5hZmYgPnJ3X1JXLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByd19SVy5vcmlnLmRpYyByd19SVy5kaWMgPj5yd19SVy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCByd19SVy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3J3X1JXLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcndfUlcub3JpZy5hZmYgcndfUlcuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHJ3X1JXLmFmZiAuLi9yd19SVy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9yd19SVy5vcmlnLmRpYyByd19SVy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgcndfUlcuZGljIC4uL3J3X1JXLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSByd19SVy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ydy9yd19SVy5kaWZmIGIvcnVudGltZS9zcGVsbC9ydy9yd19SVy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkZTM3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3J3L3J3X1JXLmRpZmYKQEAgLTAsMCArMSwxMyBAQAorKioqIHJ3X1JXLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTY6NTM6MDggMjAwNQorLS0tIHJ3X1JXLmFmZglXZWQgQXVnIDMxIDE2OjUzOjQ2IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE5ICoqKioKKy0tLSAxOSwyNiAtLS0tCisgIFRSWSBhaXVlbm9yYmtteWd3dGhzemQnY0lBaktVdmZOTXBsQkdZUlBUSFNEV0NPWkVMVi1KRgorKyAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zbC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvc2wvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGIxNDJiYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvc2wvbWFpbi5hYXAKQEAgLTAsMCArMSw4MSBAQAorIyBBYXAgcmVjaXBlIGZvciBTbG92ZW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBzbF9TSS5hZmYgc2xfU0kuZGljCisKK2FsbDogJFNQRUxMRElSL3NsLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9zbC51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvc2wuY3AxMjUwLnNwbCAuLi9SRUFETUVfc2wudHh0CisKKyRTUEVMTERJUi9zbC5pc28tODg1OS0yLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXNsX1NJLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zbCBzbF9TSSIgLWMgcQorCiskU1BFTExESVIvc2wudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9c2xfU0kuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc2wgc2xfU0kiIC1jIHEKKworJFNQRUxMRElSL3NsLmNwMTI1MC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3NsIHNsX1NJIiAtYyBxCisKKy4uL1JFQURNRV9zbC50eHQ6IFJFQURNRV9zbF9TSS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBzbF9TSS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitzbF9TSS5hZmYgc2xfU0kuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHNsX1NJLnppcAorICAgICAgICA6c3lzICRVTlpJUCBzbF9TSS56aXAKKyAgICAgICAgOmRlbGV0ZSBzbF9TSS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc2xfU0kub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHNsX1NJLmFmZiBzbF9TSS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdzbF9TSS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgc2xfU0kuZGljIHNsX1NJLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnc2xfU0kuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8c2xfU0kuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzbF9TSS5vcmlnLmFmZiBzbF9TSS5hZmYgPnNsX1NJLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzbF9TSS5vcmlnLmRpYyBzbF9TSS5kaWMgPj5zbF9TSS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggc2xfU0kuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9zbF9TSS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3NsX1NJLm9yaWcuYWZmIHNsX1NJLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBzbF9TSS5hZmYgLi4vc2xfU0kubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc2xfU0kub3JpZy5kaWMgc2xfU0kuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHNsX1NJLmRpYyAuLi9zbF9TSS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgc2xfU0kuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvc2wvc2xfU0kuZGlmZiBiL3J1bnRpbWUvc3BlbGwvc2wvc2xfU0kuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2EzMTBiCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zbC9zbF9TSS5kaWZmCkBAIC0wLDAgKzEsMTEgQEAKKyoqKiBzbF9TSS5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjU0OjQ4IDIwMDUKKy0tLSBzbF9TSS5hZmYJV2VkIEF1ZyAzMSAyMDo1NTozNyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAzLDQgKioqKgorLS0tIDMsOCAtLS0tCisgIAorKyBGT0wgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCChoqOlpqipqqusrq+xsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKyAgUEZYIEIgWSAxCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3N2L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9zdi9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzQ1ZmNmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zdi9tYWluLmFhcApAQCAtMCwwICsxLDc5IEBACisjIEFhcCByZWNpcGUgZm9yIFN3ZWRpc2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBzdl9TRS5hZmYgc3ZfU0UuZGljCisKK2FsbDogJFNQRUxMRElSL3N2LmxhdGluMS5zcGwgJFNQRUxMRElSL3N2LnV0Zi04LnNwbCAuLi9SRUFETUVfc3YudHh0CisKKyRTUEVMTERJUi9zdi5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9c3ZfU0UuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3N2IHN2X1NFIiAtYyBxCisKKyRTUEVMTERJUi9zdi51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1zdl9TRS5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zdiBzdl9TRSIgLWMgcQorCisuLi9SRUFETUVfc3YudHh0IDogUkVBRE1FX3N2X1NFLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHN2X1NFLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0Lgorc3ZfU0UuYWZmIHN2X1NFLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBzdl9TRS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgc3ZfU0UuemlwCisgICAgICAgIDpkZWxldGUgc3ZfU0UuemlwCisgICAgICAgIDpkZWxldGUgaHlwaF9zdl9TRS5kaWMKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc3ZfU0Uub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHN2X1NFLmFmZiBzdl9TRS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdzdl9TRS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgc3ZfU0UuZGljIHN2X1NFLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnc3ZfU0UuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8c3ZfU0UuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzdl9TRS5vcmlnLmFmZiBzdl9TRS5hZmYgPnN2X1NFLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzdl9TRS5vcmlnLmRpYyBzdl9TRS5kaWMgPj5zdl9TRS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBzdl9TRS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3N2X1NFLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc3ZfU0Uub3JpZy5hZmYgc3ZfU0UuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHN2X1NFLmFmZiAuLi9zdl9TRS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9zdl9TRS5vcmlnLmRpYyBzdl9TRS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgc3ZfU0UuZGljIC4uL3N2X1NFLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBzdl9TRS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmIGIvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1OWIyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3N2L3N2X1NFLmRpZmYKQEAgLTAsMCArMSw0MCBAQAorKioqIHN2X1NFLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6MDA6MTkgMjAwNQorLS0tIHN2X1NFLmFmZglXZWQgQXVnIDMxIDIxOjAyOjUzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDYsNyAqKioqCistLS0gNiwyNSAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgIFNGWCAgQSAgWSAgMQorKioqKioqKioqKioqKioqCisqKiogMTUsMTcgKioqKgorICAKKyEgU0ZYICBDICBZICAxNgorICBTRlggIEMgIDAgIHQgIFthZWlvdXnl5PbpXQorLS0tIDMzLDM1IC0tLS0KKyAgCishIFNGWCAgQyAgWSAgMTUKKyAgU0ZYICBDICAwICB0ICBbYWVpb3V55eT26V0KKyoqKioqKioqKioqKioqKgorKioqIDMwLDMyICoqKioKKyAgU0ZYICBDICBlbiBuZXRzIGVuCistIFNGWCAgQyAgMCAgbmV0ICBuZXRzIFteZV1uCisgIFNGWCAgQyAgMCAgbmV0cyAgW15lXW4KKy0tLSA0OCw0OSAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3N3L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9zdy9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjQ3NTg1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zdy9tYWluLmFhcApAQCAtMCwwICsxLDc5IEBACisjIEFhcCByZWNpcGUgZm9yIEtpc3dhaGlsaSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHN3X0tFLmFmZiBzd19LRS5kaWMKKworYWxsOiAkU1BFTExESVIvc3cubGF0aW4xLnNwbCAkU1BFTExESVIvc3cudXRmLTguc3BsIC4uL1JFQURNRV9zdy50eHQKKworIyBJIGRvbid0IGhhdmUgYSBLaXN3YWhpbGkgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorJFNQRUxMRElSL3N3LmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc3cgc3dfS0UiIC1jIHEKKworJFNQRUxMRElSL3N3LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3N3IHN3X0tFIiAtYyBxCisKKy4uL1JFQURNRV9zdy50eHQgOiBSRUFETUVfc3dfS0UudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gc3dfS0UuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitzd19LRS5hZmYgc3dfS0UuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHN3X0tFLnppcAorICAgICAgICA6c3lzICRVTlpJUCBzd19LRS56aXAKKyAgICAgICAgOmRlbGV0ZSBzd19LRS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc3dfS0Uub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHN3X0tFLmFmZiBzd19LRS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdzd19LRS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgc3dfS0UuZGljIHN3X0tFLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnc3dfS0UuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8c3dfS0UuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzd19LRS5vcmlnLmFmZiBzd19LRS5hZmYgPnN3X0tFLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzd19LRS5vcmlnLmRpYyBzd19LRS5kaWMgPj5zd19LRS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBzd19LRS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3N3X0tFLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc3dfS0Uub3JpZy5hZmYgc3dfS0UuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHN3X0tFLmFmZiAuLi9zd19LRS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9zd19LRS5vcmlnLmRpYyBzd19LRS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgc3dfS0UuZGljIC4uL3N3X0tFLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBzd19LRS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdy9zd19LRS5kaWZmIGIvcnVudGltZS9zcGVsbC9zdy9zd19LRS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwODRkYjYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3N3L3N3X0tFLmRpZmYKQEAgLTAsMCArMSwxMyBAQAorKioqIHN3X0tFLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTY6NTc6MDAgMjAwNQorLS0tIHN3X0tFLmFmZglXZWQgQXVnIDMxIDE2OjU3OjI4IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIxICoqKioKKy0tLSAyMSwyOCAtLS0tCisgIFRSWSBhaXVua2Vtb2h3dGxzZ3lienBkcmZqY3YnS01TQVdUTEJORVlEVUdIUEZJUk9aSkMtVgorKyAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC90bC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvdGwvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE0NWU0YQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvdGwvbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBUYWdhbG9nIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gdGxfUEguYWZmIHRsX1BILmRpYworCithbGw6ICRTUEVMTERJUi90bC5sYXRpbjEuc3BsICRTUEVMTERJUi90bC51dGYtOC5zcGwgLi4vUkVBRE1FX3RsLnR4dAorCiskU1BFTExESVIvdGwubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXRsX1BILklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi90bCB0bF9QSCIgLWMgcQorCiskU1BFTExESVIvdGwudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9dGxfUEguVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdGwgdGxfUEgiIC1jIHEKKworLi4vUkVBRE1FX3RsLnR4dCA6IFJFQURNRV90bF9QSC50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSB0bF9QSC56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK3RsX1BILmFmZiB0bF9QSC5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggdGxfUEguemlwCisgICAgICAgIDpzeXMgJFVOWklQIHRsX1BILnppcAorICAgICAgICA6ZGVsZXRlIHRsX1BILnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCd0bF9QSC5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgdGxfUEguYWZmIHRsX1BILm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3RsX1BILm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSB0bF9QSC5kaWMgdGxfUEgub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCd0bF9QSC5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDx0bF9QSC5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHRsX1BILm9yaWcuYWZmIHRsX1BILmFmZiA+dGxfUEguZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHRsX1BILm9yaWcuZGljIHRsX1BILmRpYyA+PnRsX1BILmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHRsX1BILnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vdGxfUEguemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi90bF9QSC5vcmlnLmFmZiB0bF9QSC5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgdGxfUEguYWZmIC4uL3RsX1BILm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3RsX1BILm9yaWcuZGljIHRsX1BILmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB0bF9QSC5kaWMgLi4vdGxfUEgubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHRsX1BILnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3RsL3RsX1BILmRpZmYgYi9ydW50aW1lL3NwZWxsL3RsL3RsX1BILmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzAyMDhlNwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvdGwvdGxfUEguZGlmZgpAQCAtMCwwICsxLDE4IEBACisqKiogdGxfUEgub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMToxMjoyMCAyMDA1CistLS0gdGxfUEguYWZmCVdlZCBBdWcgMzEgMjE6MTM6MTYgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMTkgKioqKgorLS0tIDE5LDMxIC0tLS0KKyAgVFJZIGFuZ2lzb3Rta2x5cHVicmhkZXdBUC1TS01JTkRUSEInTEVKR1V2V0NjT1Jmall6cUZ4VlFaCisrIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECSctCisrIAorKyBNQVAgMQorKyBNQVAgbvEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvdG4vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3RuL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWYxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3RuL21haW4uYWFwCkBAIC0wLDAgKzEsODIgQEAKKyMgQWFwIHJlY2lwZSBmb3IgU2V0c3dhbmEgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSB0bl9aQS5hZmYgdG5fWkEuZGljCisKKyMgSSBkb24ndCBoYXZlIGEgU2V0c3dhbmEgbG9jYWxlLCB1c2UgUm9tYW5pYW4gaW5zdGVhZC4KK2FsbDogJFNQRUxMRElSL3RuLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi90bi51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvdG4uY3AxMjUwLnNwbCAuLi9SRUFETUVfdG4udHh0CisKKyRTUEVMTERJUi90bi5pc28tODg1OS0yLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXJvX1JPLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi90biB0bl9aQSIgLWMgcQorCiskU1BFTExESVIvdG4udXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cm9fUk8uVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdG4gdG5fWkEiIC1jIHEKKworJFNQRUxMRElSL3RuLmNwMTI1MC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3RuIHRuX1pBIiAtYyBxCisKKy4uL1JFQURNRV90bi50eHQ6IFJFQURNRV90bl9aQS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSB0bl9aQS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCit0bl9aQS5hZmYgdG5fWkEuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHRuX1pBLnppcAorICAgICAgICA6c3lzICRVTlpJUCB0bl9aQS56aXAKKyAgICAgICAgOmRlbGV0ZSB0bl9aQS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygndG5fWkEub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHRuX1pBLmFmZiB0bl9aQS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCd0bl9aQS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgdG5fWkEuZGljIHRuX1pBLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygndG5fWkEuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8dG5fWkEuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB0bl9aQS5vcmlnLmFmZiB0bl9aQS5hZmYgPnRuX1pBLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB0bl9aQS5vcmlnLmRpYyB0bl9aQS5kaWMgPj50bl9aQS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggdG5fWkEuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi90bl9aQS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3RuX1pBLm9yaWcuYWZmIHRuX1pBLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB0bl9aQS5hZmYgLi4vdG5fWkEubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vdG5fWkEub3JpZy5kaWMgdG5fWkEuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHRuX1pBLmRpYyAuLi90bl9aQS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgdG5fWkEuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvdG4vdG5fWkEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvdG4vdG5fWkEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWNlMGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC90bi90bl9aQS5kaWZmCkBAIC0wLDAgKzEsMTAgQEAKKyoqKiB0bl9aQS5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjQ2OjI0IDIwMDUKKy0tLSB0bl9aQS5hZmYJV2VkIEF1ZyAzMSAyMDo0NzowMSAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyMSAqKioqCistLS0gMjEsMjUgLS0tLQorICBUUlkgYWVvbHRpbnNnaGttYmR3cnB1ZnlNalNEQktQVEwtQUpSRUdOY0l2RkNVV1nDoXoKKysgCisrIEZPTCCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBMT1cgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgVVBQIKGio6WmqKmqq6yur7Gys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3VrL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC91ay9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTBmZTZkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC91ay9tYWluLmFhcApAQCAtMCwwICsxLDU3IEBACisjIEFhcCByZWNpcGUgZm9yIFVrcmFpbmlhbiBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHVrX1VBLmFmZiB1a19VQS5kaWMKKworYWxsOiAkU1BFTExESVIvdWsua29pOC11LnNwbCAkU1BFTExESVIvdWsudXRmLTguc3BsIFwKKyAgICAgICAgLi4vUkVBRE1FX3VrLnR4dAorCiskU1BFTExESVIvdWsua29pOC11LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXVrX1VBLktPSTgtVSAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi91ayB1a19VQSIgLWMgcQorCiskU1BFTExESVIvdWsudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9dWtfVUEuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdWsgdWtfVUEiIC1jIHEKKworLi4vUkVBRE1FX3VrLnR4dDogUkVBRE1FX3VrX1VBLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHVrX1VBLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBUaGlzIGlzIGEgYml0IHRyaWNreSwgc2luY2UgdGhlIGZpbGUgbmFtZSBpbmNsdWRlcyB0aGUgZGF0ZS4KK3VrX1VBLmFmZiB1a19VQS5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcAorICAgICAgICA6ZmV0Y2ggdWtfVUEuemlwCisgICAgICAgIDpzeXMgdW56aXAgdWtfVUEuemlwCisgICAgICAgIDpkZWxldGUgdWtfVUEuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3VrX1VBLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSB1a19VQS5hZmYgdWtfVUEub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygndWtfVUEub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHVrX1VBLmRpYyB1a19VQS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3VrX1VBLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHVrX1VBLmRpZmYKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHVrX1VBLm9yaWcuYWZmIHVrX1VBLmFmZiA+dWtfVUEuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHVrX1VBLm9yaWcuZGljIHVrX1VBLmRpYyA+PnVrX1VBLmRpZmYKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDpwcmludCBEb2Vzbid0IHdvcmsgeWV0LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC91ay91a19VQS5kaWZmIGIvcnVudGltZS9zcGVsbC91ay91a19VQS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMjNkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3VrL3VrX1VBLmRpZmYKQEAgLTAsMCArMSwxNyBAQAorKioqIHVrX1VBLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6Mjg6MDMgMjAwNQorLS0tIHVrX1VBLmFmZglXZWQgQXVnIDMxIDIxOjI5OjUzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIsNSAqKioqCisgIFRSWSDPwc7JptLX1MXTy8zE1dDN2tHYx8LeyMrDwNan26TG3a3v4e7ptvL39OXz6+zk9fDt+vH45+L+6Orj4Pa3+7Tm/b0nCishIExPV0VSIMHC18fErcWk1trJpqfKy8zNzs/Q0tPU1cbIw97b3djA0ScKKyEgVVBQRVIg4eL35+S95bT2+um2t+rr7O3u7/Dy8/T15ujj/vv9+ODxJworICAKKy0tLSAyLDkgLS0tLQorICBUUlkgz8HOyabS19TF08vMxNXQzdrR2MfC3sjKw8DWp9ukxt2t7+Hu6bby9/Tl8+vs5PXw7frx+Ofi/ujq4+D2t/u05v29JworISAKKyEgRk9MIMHC18fErcWk1trJpqfKy8zNzs/Q0tPU1cbIw97b3djA0ScKKyEgTE9XIMHC18fErcWk1trJpqfKy8zNzs/Q0tPU1cbIw97b3djA0ScKKyEgVVBQIOHi9+fkveW09vrptrfq6+zt7u/w8vP09ebo4/77/fjg8ScKKyEgCishIE1JRFdPUkQgJy0KKyAgCmRpZmYgLS1naXQgImEvcnVudGltZS9zcGVsbC95aS9cMDQxeWkuZGlmZiIgImIvcnVudGltZS9zcGVsbC95aS9cMDQxeWkuZGlmZiIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4NGRjNjkuLjAwMDAwMDAKLS0tICJhL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpLmRpZmYiCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0qKiogd29yZGxpc3QudXRmOC50eHQJVGh1IEF1ZyAxMSAxOTo0OToyMiAyMDA1Ci0tLS0geWkuZGljCVRodSBBdWcgMTEgMTk6NDk6MjMgMjAwNQotKioqKioqKioqKioqKioqCi0qKiogMSwyICoqKioKLS0tLSAxLDMgLS0tLQotKyA5OTk5OTkKLSAg15LXqNeV16DXmNei15zXotee16LXoNeYCi0gINeT15bXqdeQ1rjXkdei16DXk9eZ16fXoQpkaWZmIC0tZ2l0ICJhL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpX3RyLmRpZmYiICJiL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpX3RyLmRpZmYiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDgxODNmLi4wMDAwMDAwCi0tLSAiYS9ydW50aW1lL3NwZWxsL3lpL1wwNDF5aV90ci5kaWZmIgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotKioqIHdvcmRsaXN0LnR4dAlUdWUgQXVnIDE2IDEwOjQ2OjI2IDIwMDUKLS0tLSB5aV90ci5kaWMJVHVlIEF1ZyAxNiAxMDo0Njo0MiAyMDA1Ci0qKioqKioqKioqKioqKioKLSoqKiAxLDIgKioqKgotLS0tIDEsMyAtLS0tCi0rIDg0NjA4Ci0gIGdydW50ZWxlbWVudAotICBkemhvYmVuZGlrcwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC96dS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvenUvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgwNWQ3NgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvenUvbWFpbi5hYXAKQEAgLTAsMCArMSw4MyBAQAorIyBBYXAgcmVjaXBlIGZvciBadWx1IFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0genVfWkEuYWZmIHp1X1pBLmRpYworCisjIFRoZXJlIGlzIG5vIFp1bHUgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorYWxsOiAkU1BFTExESVIvenUubGF0aW4xLnNwbCAkU1BFTExESVIvenUudXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL3p1LmFzY2lpLnNwbCAuLi9SRUFETUVfenUudHh0CisKKyRTUEVMTERJUi96dS5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3p1IHp1X1pBIiAtYyBxCisKKyRTUEVMTERJUi96dS51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi96dSB6dV9aQSIgLWMgcQorCiskU1BFTExESVIvenUuYXNjaWkuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAtYXNjaWkgJFNQRUxMRElSL3p1IHp1X1pBIiAtYyBxCisgCisuLi9SRUFETUVfenUudHh0IDogUkVBRE1FX3p1X1pBLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHp1X1pBLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorenVfWkEuYWZmIHp1X1pBLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCB6dV9aQS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgenVfWkEuemlwCisgICAgICAgIDpkZWxldGUgenVfWkEuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3p1X1pBLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSB6dV9aQS5hZmYgenVfWkEub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnenVfWkEub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHp1X1pBLmRpYyB6dV9aQS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3p1X1pBLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHp1X1pBLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgenVfWkEub3JpZy5hZmYgenVfWkEuYWZmID56dV9aQS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgenVfWkEub3JpZy5kaWMgenVfWkEuZGljID4+enVfWkEuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggenVfWkEuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi96dV9aQS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3p1X1pBLm9yaWcuYWZmIHp1X1pBLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB6dV9aQS5hZmYgLi4venVfWkEubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4venVfWkEub3JpZy5kaWMgenVfWkEuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHp1X1pBLmRpYyAuLi96dV9aQS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgenVfWkEuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvenUvenVfWkEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvenUvenVfWkEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDRkMDI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC96dS96dV9aQS5kaWZmCkBAIC0wLDAgKzEsOCBAQAorKioqIHp1X1pBLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6NDk6MTggMjAwNQorLS0tIHp1X1pBLmFmZglXZWQgQXVnIDMxIDIxOjQ5OjUyIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIxICoqKioKKy0tLSAyMSwyMyAtLS0tCisgIFRSWSBlYW51b2xraWhtZ3d6YnRzeXBkcWZjanZ4cgorKyAKKysgTUlEV09SRCAtCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jZi52aW0gYi9ydW50aW1lL3N5bnRheC9jZi52aW0KaW5kZXggNmNmMTExZC4uNjQ3YzU2YSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvY2YudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2NmLnZpbQpAQCAtMSwxMSArMSwxMiBAQAogIiBWaW0gc3ludGF4IGZpbGUKLSIgICAgTGFuZ3VhZ2U6IENvbGQgRnVzaW9uCi0iICBNYWludGFpbmVyOiBKZWZmIExhbnphcm90dGEgKGplZmZsYW56YXJvdHRhQHlhaG9vLmNvbSkKLSIJICBVUkw6IGh0dHA6Ly9sYW56YXJvdHRhLnRyaXBvZC5jb20vdmltL3N5bnRheC9jZi52aW0uemlwCi0iIExhc3QgQ2hhbmdlOiBPY3RvYmVyIDE1LCAyMDAxCi0iCVVzYWdlOiBTaW5jZSBDb2xkIEZ1c2lvbiBoYXMgaXRzIG93biB2ZXJzaW9uIG9mIGh0bWwgY29tbWVudHMsCi0iCSAgICAgICBtYWtlIHN1cmUgdGhhdCB5b3UgcHV0Ci0iCSAgICAgICAnbGV0IGh0bWxfd3JvbmdfY29tbWVudHM9MScgaW4geW91ciBfdmltcmMgZmlsZS4KKyIgICAgTGFuZ3VhZ2U6IENvbGRGdXNpb24KKyIgIE1haW50YWluZXI6IFRvYnkgV29vZHdhcmsgKHRvYnkud29vZHdhcmsrdmltQGdtYWlsLmNvbSkKKyIgTGFzdCBDaGFuZ2U6IEF1Z3VzdCAzLCAyMDA1CisiIAlDb2xkRnVzaW9uIE1YIDcKKyIJVXNhZ2U6IFNpbmNlIENvbGRGdXNpb24gaGFzIGl0cyBvd24gdmVyc2lvbiBvZiBIVE1MIGNvbW1lbnRzIAorIgkoPCEtLS0gLS0tPikKKyIgICAgICAgbWFrZSBzdXJlIHRoYXQgeW91IHB1dCAnbGV0IGh0bWxfd3JvbmdfY29tbWVudHM9MScgaW4geW91ciAudmltcmMgLworIiAgICAgICBfdmltcmMgZmlsZS4KIAogIiBGb3IgdmVyc2lvbiA1LngsIGNsZWFyIGFsbCBzeW50YXggaXRlbXMuCiAiIEZvciB2ZXJzaW9uIDYueCwgcXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkLgpAQCAtMTUsNyArMTYsNyBAQAogICBmaW5pc2gKIGVuZGlmCiAKLSIgVXNlIGFsbCB0aGUgc3R1ZmYgZnJvbSB0aGUgb3JpZ2luYWwgaHRtbCBzeW50YXggZmlsZS4KKyIgVXNlIGFsbCB0aGUgc3R1ZmYgZnJvbSB0aGUgSFRNTCBzeW50YXggZmlsZS4KIGlmIHZlcnNpb24gPCA2MDAKICAgc291cmNlIDxzZmlsZT46cDpoL2h0bWwudmltCiBlbHNlCkBAIC0yMywxMDUgKzI0LDEyNyBAQAogZW5kaWYKIAogIiBUYWcgbmFtZXMuCi1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmYWJvcnQgY2ZhcHBsZXQgY2ZhcHBsaWNhdGlvbiBjZmFzc29jaWF0ZQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmF1dGhlbnRpY2F0ZSBjZmJyZWFrIGNmY2FjaGUgY2Zjb2wKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Zjb2xsZWN0aW9uIGNmY29udGVudCBjZmNvb2tpZSBjZmRpcmVjdG9yeQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmVycm9yIGNmZXhpdCBjZmZpbGUgY2Zmb3JtIGNmZnRwIGNmZ3JpZAotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmdyaWRjb2x1bW4gY2Zncmlkcm93IGNmZ3JpZHVwZGF0ZSBjZmhlYWRlcgotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmh0bWxoZWFkIGNmaHR0cCBjZmh0dHBwYXJhbQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmlmIGNmZWxzZWlmIGNmZWxzZQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmluY2x1ZGUgY2ZpbmRleCBjZmlucHV0IGNmaW5zZXJ0Ci1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmbGRhcCBjZmxvY2F0aW9uIGNmbG9jayBjZmxvb3AgY2ZtYWlsCi1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmbW9kdWxlIGNmb2JqZWN0IGNmb3V0cHV0IGNmcGFyYW0gY2Zwb3AKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Zwcm9jcGFyYW0gY2Zwcm9jcmVzdWx0IGNmcXVlcnkgY2ZyZWdpc3RyeQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZnJlcG9ydCBjZnNjaGVkdWxlIGNmc2NyaXB0IGNmc2VhcmNoIGNmc2VsZWN0Ci1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmc2V0IGNmc2V0dGluZyBjZnNsaWRlciBjZnN0b3JlZHByb2MKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Zzd2l0Y2ggY2ZjYXNlIGNmZGVmYXVsdGNhc2UKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Z0YWJsZSBjZnRleHRpbnB1dCBjZnRocm93IGNmdHJhbnNhY3Rpb24KLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Z0cmVlIGNmdHJlZWl0ZW0KLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Z0cnkgY2ZjYXRjaAotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZnVwZGF0ZSBjZndkZHgKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZhYm9ydCBjZmFwcGxldCBjZmFwcGxpY2F0aW9uIGNmYXJndW1lbnQgY2Zhc3NvY2lhdGUgY2ZicmVhayBjZmNhY2hlCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmY2FsZW5kYXIgY2ZjYXNlIGNmY2F0Y2ggY2ZjaGFydCBjZmNoYXJ0ZGF0YSBjZmNoYXJ0c2VyaWVzIGNmY29sIGNmY29sbGVjdGlvbgorc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmNvbXBvbmVudCBjZmNvbnRlbnQgY2Zjb29raWUgY2ZkZWZhdWx0Y2FzZSBjZmRpcmVjdG9yeSBjZmRvY3VtZW50CitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmZG9jdW1lbnRpdGVtIGNmZG9jdW1lbnRzZWN0aW9uIGNmZHVtcCBjZmVsc2UgY2ZlbHNlaWYgY2ZlcnJvciBjZmV4ZWN1dGUKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZleGl0IGNmZmlsZSBjZmZsdXNoIGNmZm9ybSBjZmZvcm1ncm91cCBjZmZvcm1pdGVtIGNmZnRwIGNmZnVuY3Rpb24gY2ZncmlkCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmZ3JpZGNvbHVtbiBjZmdyaWRyb3cgY2ZncmlkdXBkYXRlIGNmaGVhZGVyIGNmaHRtbGhlYWQgY2ZodHRwIGNmaHR0cHBhcmFtIGNmaWYKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZpbXBvcnQgY2ZpbmNsdWRlIGNmaW5kZXggY2ZpbnB1dCBjZmluc2VydCBjZmludm9rZSBjZmludm9rZWFyZ3VtZW50CitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmbGRhcCBjZmxvY2F0aW9uIGNmbG9jayBjZmxvZyBjZmxvZ2luIGNmbG9naW51c2VyIGNmbG9nb3V0IGNmbG9vcCBjZm1haWwKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZtYWlscGFyYW0gY2ZtYWlscGFydCBjZm1vZHVsZSBjZk5UYXV0aGVudGljYXRlIGNmb2JqZWN0IGNmb2JqZWN0Y2FjaGUKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZvdXRwdXQgY2ZwYXJhbSBjZnBvcCBjZnByb2Nlc3NpbmdkaXJlY3RpdmUgY2Zwcm9jcGFyYW0gY2Zwcm9jcmVzdWx0CitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmcHJvcGVydHkgY2ZxdWVyeSBjZnF1ZXJ5cGFyYW0gY2ZyZWdpc3RyeSBjZnJlcG9ydCBjZnJlcG9ydHBhcmFtIGNmcmV0aHJvdworc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZnJldHVybiBjZnNhdmVjb250ZW50IGNmc2NoZWR1bGUgY2ZzY3JpcHQgY2ZzZWFyY2ggY2ZzZWxlY3QgY2ZzZXQgY2ZzZXR0aW5nCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmc2lsZW50IGNmc2xpZGVyIGNmc3RvcmVkcHJvYyBjZnN3aXRjaCBjZnRhYmxlIGNmdGV4dGFyZWEgY2Z0aHJvdyBjZnRpbWVyCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmdHJhY2UgY2Z0cmFuc2FjdGlvbiBjZnRyZWUgY2Z0cmVlaXRlbSBjZnRyeSBjZnVwZGF0ZSBjZndkZHggY2Z4bWwgCiAKLSIgTGVnYWwgYXJndW1lbnRzLgotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGFjY2VwdCBhY3Rpb24gYWRkbmV3bGluZSBhZGR0b2tlbiBhZ2VudG5hbWUgYWxpZ24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBhcHBlbmRrZXkgYXBwbGljYXRpb250aW1lb3V0IGF0dGFjaG1lbnRwYXRoCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgYXR0cmlidXRlY29sbGVjdGlvbiBhdHRyaWJ1dGVzIGJhc2V0YWcgYmdjb2xvcgotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGJsb2NrZmFjdG9yIGJvZHkgYm9sZCBib3JkZXIgYnJhbmNoIGNhY2hlZGFmdGVyCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY2FjaGVkd2l0aGluIGNjIGNmc3FsdHlwZSBjaGVja2VkIGNsYXNzIGNsaWVudG1hbmFnZW1lbnQKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBjbGllbnRzdG9yYWdlIGNvbGhlYWRlcmFsaWduIGNvbGhlYWRlcmJvbGQgY29saGVhZGVyZm9udAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNvbGhlYWRlcmZvbnRzaXplIGNvbGhlYWRlcml0YWxpYyBjb2xoZWFkZXJzIGNvbGxlY3Rpb24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBjb2xzcGFjaW5nIGNvbHVtbnMgY29tcGxldGVwYXRoIGNvbm5lY3Rpb24gY29udGV4dAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNyaXRlcmlhIGN1c3RvbTEgY3VzdG9tMiBkYXRhIGRhdGFhbGlnbiBkYXRhY29sbGVjdGlvbgotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGRhdGFzb3VyY2UgZGJuYW1lIGRic2VydmVyIGRidHlwZSBkYnZhcm5hbWUgZGVidWcgZGVmYXVsdAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGRlbGV0ZSBkZWxldGVidXR0b24gZGVsZXRlZmlsZSBkZWxpbWl0ZXIgZGVzdGluYXRpb24gZGV0YWlsCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZGlyZWN0b3J5IGRpc3BsYXkgZG4gZG9tYWluIGVuYWJsZWNhYiBlbmFibGVjZm91dHB1dG9ubHkKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBlbmN0eXBlIGVuZGRhdGUgZW5kdGltZSBlbnRyeSBlcnJvcmNvZGUgZXhwYW5kIGV4cGlyZXMKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBleHBpcmV1cmwgZXhwcmVzc2lvbiBleHRlbmRlZGluZm8gZXh0ZW5zaW9ucyBleHRlcm5hbAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGZpbGUgZmlsZWZpZWxkIGZpbHRlciBmb250IGZvbnRzaXplIGZvcm1maWVsZHMgZm9ybXVsYQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGZyb20gZ3JpZCBncmlkZGF0YWFsaWduIGdyaWRsaW5lcyBncm9vdmVjb2xvciBncm91cCBoZWFkZXIKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBoZWFkZXJhbGlnbiBoZWFkZXJib2xkIGhlYWRlcmZvbnQgaGVhZGVyZm9udHNpemUgaGVhZGVyaXRhbGljCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgaGVhZGVybGluZXMgaGVpZ2h0IGhpZ2hsaWdodGhyZWYgaHJlZiBocmVma2V5IGhzY3JvbGwgaHNwYWNlCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgaHRtbHRhYmxlIGltZyBpbWdvcGVuIGltZ3N0eWxlIGluZGV4IGlucHV0IGluc2VydCBpbnNlcnRidXR0b24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBpbnRlcnZhbCBpc29sYXRpb24gaXRhbGljIGtleSBrZXlvbmx5IGxhYmVsIGxhbmd1YWdlIG1haWxlcmlkCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgbWFpbHRvIG1heGxlbmd0aCBtYXhyb3dzIG1lc3NhZ2UgbWVzc2FnZW51bWJlciBtZXRob2QKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBtaW1lYXR0YWNoIG1vZGUgbXVsdGlwbGUgbmFtZSBuYW1lY29tcGxpY3QgbmV3ZGlyZWN0b3J5Ci1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgbm90c3VwcG9ydGVkIG51bGwgbnVtYmVyZm9ybWF0IG9uZXJyb3Igb25zdWJtaXQgb252YWxpZGF0ZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIG9wZXJhdGlvbiBvcmRlcmJ5IG91dHB1dCBwYXJyZW50IHBhc3N0aHJvdWdoIHBhc3N3b3JkIHBhdGgKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBwaWN0dXJlYmFyIHBvcnQgcHJvY2VkdXJlIHByb3RvY29sIHByb3ZpZGVyIHByb3ZpZGVyZHNuCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcHJveHlieXBhc3MgcHJveHlzZXJ2ZXIgcHVibGlzaCBxdWVyeSBxdWVyeWFzcm9vdCByYW5nZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJlY3Vyc2UgcmVmcmVzaGxhYmVsIHJlcG9ydCByZXF1ZXN0dGltZW91dCByZXF1aXJlZCByZXNldAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJlc29sZXVybCByZXN1bHRzZXQgcmV0cnljb3VudCByZXR1cm5jb2RlIHJvd2hlYWRlcmFsaWduCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcm93aGVhZGVyYm9sZCByb3doZWFkZXJmb250IHJvd2hlYWRlcmZvbnRzaXplIHJvd2hlYWRlcml0YWxpYwotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJvd2hlYWRlcnMgcm93aGVhZGVyd2lkdGggcm93aGVpZ2h0IHNjYWxlIHNjb3BlIHNlY3VyZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNlY3VyaXR5Y29udGV4dCBzZWxlY3Qgc2VsZWN0Y29sb3Igc2VsZWN0ZWQgc2VsZWN0bW9kZSBzZXJ2ZXIKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzZXNzaW9ubWFuYWdlbWVudCBzZXNzaW9udGltZW91dCBzZXRjbGllbnRjb29raWVzIHNldGNvb2tpZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNob3dkZWJ1Z291dHB1dCBzaG93ZXJyb3Igc2l6ZSBzb3J0IHNvcnRhc2NlbmRpbmdidXR0b24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzb3J0ZGVzY2VuZGluZ2J1dHRvbiBzb3VyY2Ugc3FsIHN0YXJ0IHN0YXJ0ZGF0ZSBzdGFydHJvdyBzdGFydHRpbWUKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzdGVwIHN0b3BvbmVycm9yIHN1YmplY3QgdGFibGVuYW1lIHRhYmxlb3duZXIgdGFibGVxdWFsaWZpZXIKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCB0YXJnZXQgdGFzayB0ZW1wbGF0ZSB0ZXh0IHRleHRjb2xvciB0ZXh0cXVhbGlmaWVyCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdGhyb3dvbmZhaWx1cmUgdGhyb3dvbnRpbWVvdXQgdGltZW91dCB0aXRsZSB0byB0b3BsZXZlbHZhcmlhYmxlCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdHlwZSB1cmwgdXJscGF0aCB1c2VybmFtZSB1c2V0aW1lem9uZWluZm8gdmFsaWRhdGUgdmFsdWUKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCB2YXJpYWJsZSB2c2Nyb2xsIHZzcGFjZSB3aWR0aAorIiBUYWcgcGFyYW1ldGVycy4KK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBhYm9ydCBhY2NlcHQgYWNjZXNzIGFjY2Vzc2libGUgYWN0aW9uIGFkZG5ld2xpbmUgYWRkdG9rZW4gYWRkdG9rZW4gYWdlbnRuYW1lCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgYWxpZ24gYXBwZW5ka2V5IGFwcGxldHNvdXJjZSBhcHBsaWNhdGlvbiBhcHBsaWNhdGlvbnRpbWVvdXQgYXBwbGljYXRpb250b2tlbgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGFyY2hpdmUgYXJndW1lbnRjb2xsZWN0aW9uIGFyZ3VtZW50cyBhc2NpaWV4dGVuc2lvbmxpc3QgYXR0YWNobWVudHBhdGgKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBhdHRyaWJ1dGVjb2xsZWN0aW9uIGF0dHJpYnV0ZXMgYXR0cmlidXRlcyBhdXRvd2lkdGggYmFja2dyb3VuZGNvbG9yCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgYmFja2dyb3VuZHZpc2libGUgYmFzZXRhZyBiY2MgYmdjb2xvciBiaW5kIGJpbmRpbmduYW1lIGJsb2NrZmFjdG9yIGJvZHkgYm9sZAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGJvcmRlciBicmFuY2ggY2FjaGVkYWZ0ZXIgY2FjaGVkd2l0aGluIGNhc2VzZW5zaXRpdmUgY2F0ZWdvcmllcyBjYXRlZ29yeQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNhdGVnb3J5dHJlZSBjYyBjZnNxbHR5cGUgY2hhcnNldCBjaGFydGhlaWdodCBjaGFydHdpZHRoIGNoZWNrZWQgY2xhc3MKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBjbGllbnRtYW5hZ2VtZW50IGNsaWVudHN0b3JhZ2UgY29kZWJhc2UgY29saGVhZGVyYWxpZ24gY29saGVhZGVyYm9sZAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNvbGhlYWRlcmZvbnQgY29saGVhZGVyZm9udHNpemUgY29saGVhZGVyaXRhbGljIGNvbGhlYWRlcnMgY29saGVhZGVydGV4dGNvbG9yCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY29sbGVjdGlvbiBjb2xvcmxpc3QgY29sc3BhY2luZyBjb2x1bW5zIGNvbXBsZXRlcGF0aCBjb21wb25lbnQgY29uZGl0aW9uCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY29ubmVjdGlvbiBjb250ZW50aWQgY29udGV4dCBjb250ZXh0Ynl0ZXMgY29udGV4dGhpZ2hsaWdodGJlZ2luCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY29udGV4dGhpZ2hsaWdodGVuZCBjb250ZXh0cGFzc2FnZXMgY29va2llZG9tYWluIGNyaXRlcmlhIGN1c3RvbTEgY3VzdG9tMgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGN1c3RvbTMgY3VzdG9tNCBkYXRhIGRhdGFhbGlnbiBkYXRhYmFja2dyb3VuZGNvbG9yIGRhdGFjb2xsZWN0aW9uCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZGF0YWxhYmVsc3R5bGUgZGF0YXNvdXJjZSBkYXRlIGRheW5hbWVzIGRibmFtZSBkYnNlcnZlciBkYnR5cGUgZGJ2YXJuYW1lIGRlYnVnCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZGVmYXVsdCBkZWxldGUgZGVsZXRlYnV0dG9uIGRlbGV0ZWZpbGUgZGVsaW1pdGVyIGRlbGltaXRlcnMgZGVzY3JpcHRpb24KK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBkZXN0aW5hdGlvbiBkZXRhaWwgZGlyZWN0b3J5IGRpc2FibGVkIGRpc3BsYXkgZGlzcGxheW5hbWUgZGlzcG9zaXRpb24gZG4gZG9tYWluCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZW5hYmxlY2FiIGVuYWJsZWNmb3V0cHV0b25seSBlbmFibGVkIGVuY29kZWQgZW5jcnlwdGlvbiBlbmN0eXBlIGVuZGRhdGUKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBlbmRyYW5nZSBlbmRyb3cgZW5kdGltZSBlbnRyeSBlcnJvcmNvZGUgZXhjZXB0aW9uIGV4aXN0aW5nIGV4cGFuZCBleHBpcmVzCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZXhwaXJldXJsIGV4cHJlc3Npb24gZXh0ZW5kZWRpbmZvIGV4dGVuZHMgZXh0ZW5zaW9ucyBleHRlcm5hbCBmYWlsaWZleGlzdHMKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBmYWlsdG8gZmlsZSBmaWxlZmllbGQgZmlsZW5hbWUgZmlsdGVyIGZpcnN0ZGF5b2Z3ZWVrIGZpcnN0cm93YXNoZWFkZXJzIGZvbnQKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBmb250Ym9sZCBmb250ZW1iZWQgZm9udGl0YWxpYyBmb250c2l6ZSBmb3JlZ3JvdW5kY29sb3IgZm9ybWF0IGZvcm1maWVsZHMKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBmb3JtdWxhIGZyb20gZ2VuZXJhdGV1bmlxdWVmaWxlbmFtZXMgZ2V0YXNiaW5hcnkgZ3JpZCBncmlkZGF0YWFsaWduIGdyaWRsaW5lcworc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGdyb292ZWNvbG9yIGdyb3VwIGdyb3VwY2FzZXNlbnNpdGl2ZSBoZWFkZXIgaGVhZGVyYWxpZ24gaGVhZGVyYm9sZCBoZWFkZXJmb250CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgaGVhZGVyZm9udHNpemUgaGVhZGVyaXRhbGljIGhlYWRlcmxpbmVzIGhlYWRlcnRleHRjb2xvciBoZWlnaHQgaGlnaGxpZ2h0aHJlZgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGhpbnQgaHJlZiBocmVma2V5IGhzY3JvbGwgaHNwYWNlIGh0bWx0YWJsZSBpZCBpZGxldGltZW91dCBpbWcgaW1nb3BlbiBpbWdzdHlsZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGluZGV4IGlubGluZSBpbnB1dCBpbnNlcnQgaW5zZXJ0YnV0dG9uIGludGVydmFsIGlzb2xhdGlvbiBpdGFsaWMgaXRlbQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGl0ZW1jb2x1bW4ga2V5IGtleW9ubHkgbGFiZWwgbGFiZWxmb3JtYXQgbGFuZ3VhZ2UgbGlzdCBsaXN0Z3JvdXBzIGxvY2FsZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGxvY2FsZmlsZSBsb2cgbG9naW5zdG9yYWdlIGxvb2thbmRmZWVsIG1haWxlcmlkIG1haWx0byBtYXJnaW5ib3R0b20gbWFyZ2lubGVmdAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIG1hcmdpbnJpZ2h0IG1hcmdpbnJpZ2h0IG1hcmdpbnRvcCBtYXJrZXJzaXplIG1hcmtlcnN0eWxlIG1hc2sgbWF4bGVuZ3RoIG1heHJvd3MKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBtZXNzYWdlIG1lc3NhZ2VudW1iZXIgbWV0aG9kIG1pbWVhdHRhY2ggbWltZXR5cGUgbW9kZSBtb2RpZnl0eXBlIG1vbnRobmFtZXMKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBtdWx0aXBhcnQgbXVsdGlwbGUgbmFtZSBuYW1lY29tcGxpY3QgbmFtZWNvbmZsaWN0IG5hbWVzcGFjZSBuZXcgbmV3ZGlyZWN0b3J5CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgbm90c3VwcG9ydGVkIG51bGwgbnVtYmVyZm9ybWF0IG9iamVjdCBvbWl0IG9uY2hhbmdlIG9uY2xpY2sgb25lcnJvciBvbmtleWRvd24KK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBvbmtleXVwIG9ubG9hZCBvbm1vdXNlZG93biBvbm1vdXNldXAgb25yZXNldCBvbnN1Ym1pdCBvbnZhbGlkYXRlIG9wZXJhdGlvbgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIG9yZGVyYnkgb3JpZW50YXRpb24gb3V0cHV0IG91dHB1dGZpbGUgb3ZlcndyaXRlIG93bmVycGFzc3dvcmQgcGFnZWVuY29kaW5nCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcGFnZWhlaWdodCBwYWdldHlwZSBwYWdld2lkdGggcGFpbnRzdHlsZSBwYXJhbV8xIHBhcmFtXzIgcGFyYW1fMyBwYXJhbV80CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcGFyYW1fNSBwYXJlbnQgcGFzc2l2ZSBwYXNzdGhyb3VnaCBwYXNzd29yZCBwYXRoIHBhdHRlcm4gcGVybWlzc2lvbnMgcGljdHVyZWJhcgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHBpZXNsaWNlc3R5bGUgcG9ydCBwb3J0dHlwZW5hbWUgcHJlZml4IHByZWxvYWRlciBwcmVzZXJ2ZWRhdGEgcHJldmlvdXNjcml0ZXJpYQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHByb2NlZHVyZSBwcm90b2NvbCBwcm92aWRlciBwcm92aWRlcmRzbiBwcm94eWJ5cGFzcyBwcm94eXBhc3N3b3JkIHByb3h5cG9ydAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHByb3h5c2VydmVyIHByb3h5dXNlciBwdWJsaXNoIHF1ZXJ5IHF1ZXJ5YXNyb290IHF1ZXJ5cG9zaXRpb24gcmFuZ2UgcmViaW5kCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcmVjdXJzZSByZWRpcmVjdCByZWZlcnJhbCByZWZyZXNobGFiZWwgcmVtb3RlZmlsZSByZXBseXRvIHJlcG9ydCByZXF1ZXN0dGltZW91dAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJlcXVpcmVkIHJlc2V0IHJlc29sdmV1cmwgcmVzdWx0IHJlc3VsdHNldCByZXRyeWNvdW50IHJldHVybmFzYmluYXJ5IHJldHVybmNvZGUKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCByZXR1cm50eXBlIHJldHVybnZhcmlhYmxlIHJvbGVzIHJvd2hlYWRlcmFsaWduIHJvd2hlYWRlcmJvbGQgcm93aGVhZGVyZm9udAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJvd2hlYWRlcmZvbnRzaXplIHJvd2hlYWRlcml0YWxpYyByb3doZWFkZXJzIHJvd2hlYWRlcnRleHRjb2xvciByb3doZWFkZXJ3aWR0aAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJvd2hlaWdodCBzY2FsZSBzY2FsZWZyb20gc2NhbGV0byBzY29wZSBzY3JpcHRwcm90ZWN0IHNjcmlwdHNyYyBzZWN1cmUKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzZWN1cml0eWNvbnRleHQgc2VsZWN0IHNlbGVjdGNvbG9yIHNlbGVjdGVkIHNlbGVjdGVkZGF0ZSBzZWxlY3RlZGluZGV4CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgc2VsZWN0bW9kZSBzZXBhcmF0b3Igc2VyaWVzY29sb3Igc2VyaWVzbGFiZWwgc2VyaWVzcGxhY2VtZW50IHNlcnZlciBzZXJ2aWNlcG9ydAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNlcnZpY2Vwb3J0bmFtZSBzZXNzaW9ubWFuYWdlbWVudCBzZXNzaW9udGltZW91dCBzZXRjbGllbnRjb29raWVzIHNldGNvb2tpZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNldGRvbWFpbmNvb2tpZXMgc2hvdzNkIHNob3dib3JkZXIgc2hvd2RlYnVnb3V0cHV0IHNob3dlcnJvciBzaG93bGVnZW5kCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgc2hvd21hcmtlcnMgc2hvd3hncmlkbGluZXMgc2hvd3lncmlkbGluZXMgc2l6ZSBza2luIHNvcnQgc29ydGFzY2VuZGluZ2J1dHRvbgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNvcnRjb250cm9sIHNvcnRkZXNjZW5kaW5nYnV0dG9uIHNvcnR4YXhpcyBzb3VyY2Ugc3Bvb2xlbmFibGUgc3FsIHNyYyBzdGFydAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHN0YXJ0ZGF0ZSBzdGFydHJhbmdlIHN0YXJ0cm93IHN0YXJ0dGltZSBzdGF0dXMgc3RhdHVzY29kZSBzdGF0dXN0IHN0ZXAKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzdG9wb25lcnJvciBzdHlsZSBzdWJqZWN0IHN1Z2dlc3Rpb25zIHN1cHByZXNzd2hpdGVzcGFjZSB0YWJsZW5hbWUgdGFibGVvd25lcgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHRhYmxlcXVhbGlmaWVyIHRhZ2xpYiB0YXJnZXQgdGFzayB0ZW1wbGF0ZSB0ZXh0IHRleHRjb2xvciB0ZXh0cXVhbGlmaWVyCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdGhyZWFkIHRocm93b25lcnJvciB0aHJvd29uZmFpbHVyZSB0aHJvd29udGltZW91dCB0aW1lIHRpbWVvdXQgdGltZXNwYW4gdGlwYmdjb2xvciB0aXBzdHlsZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHRpdGxlIHRvIHRvb2x0aXAgdG9wIHRvcGxldmVsdmFyaWFibGUgdHJhbnNmZXJtb2RlIHR5cGUgdWlkIHVuaXQgdXJsIHVybHBhdGgKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCB1c2VyYWdlbnQgdXNlcm5hbWUgdXNlcnBhc3N3b3JkIHVzZXRpbWV6b25laW5mbyB2YWxpZGF0ZSB2YWxpZGF0ZWF0IHZhbHVlCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdmFsdWVjb2x1bW4gdmFsdWVzIHZhbHVlc2RlbGltaXRlciB2YWx1ZXNkaXNwbGF5IHZhciB2YXJpYWJsZSB2ZXJ0aWNhbCB2aXNpYmxlCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdnNjcm9sbCB2c3BhY2Ugd2Vic2VydmljZSB3aWR0aCB3bW9kZSB3cmFwdGV4dCB3c2RsZmlsZSB4YXhpc3RpdGxlIHhheGlzdHlwZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHhvZmZzZXQgeWF4aXN0aXRsZSB5YXhpc3R5cGUgeW9mZnNldAogCi0iIENvbGQgRnVzaW9uIEZ1bmN0aW9ucy4KLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBYnMgQXJyYXlBcHBlbmQgQXJyYXlBdmcgQXJyYXlDbGVhciBBcnJheURlbGV0ZUF0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQXJyYXlJbnNlcnRBdCBBcnJheUlzRW1wdHkgQXJyYXlMZW4gQXJyYXlNYXgKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBcnJheU1pbiBBcnJheU5ldyBBcnJheVByZXBlbmQgQXJyYXlSZXNpemUgQXJyYXlTZXQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBcnJheVNvcnQgQXJyYXlTdW0gQXJyYXlTd2FwIEFycmF5VG9MaXN0IEFzYyBBdG4KLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBCaXRBbmQgQml0TWFza0NsZWFyIEJpdE1hc2tSZWFkIEJpdE1hc2tTZXQgQml0Tm90Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQml0T3IgQml0U0hMTiBCaXRTSFJOIEJpdFhvciBDSnVzdGlmeSBDZWlsaW5nIENocgotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENvbXBhcmUgQ29tcGFyZU5vQ2FzZSBDb3MgQ3JlYXRlRGF0ZSBDcmVhdGVEYXRlVGltZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENyZWF0ZU9EQkNEYXRlIENyZWF0ZU9EQkNEYXRlVGltZSBDcmVhdGVPREJDVGltZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENyZWF0ZVRpbWUgQ3JlYXRlVGltZVNwYW4gREUgRGF0ZUFkZCBEYXRlQ29tcGFyZSBEYXRlRGlmZgotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERhdGVGb3JtYXQgRGF0ZVBhcnQgRGF5IERheU9mV2VlayBEYXlPZldlZWtBc1N0cmluZwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERheU9mWWVhciBEYXlzSW5Nb250aCBEYXlzSW5ZZWFyIERlY2ltYWxGb3JtYXQgRGVjcmVtZW50VmFsdWUKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBEZWNyeXB0IERlbGV0ZUNsaWVudFZhcmlhYmxlIERpcmVjdG9yeUV4aXN0cyBEb2xsYXJGb3JtYXQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBFbmNyeXB0IEV2YWx1YXRlIEV4cCBFeHBhbmRQYXRoIEZpbGVFeGlzdHMgRmluZCBGaW5kTm9DYXNlCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgRmluZE9uZU9mIEZpcnN0RGF5T2ZNb250aCBGaXggRm9ybWF0QmFzZU4gR2V0QmFzZVRhZ0RhdGEKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBHZXRCYXNlVGFnTGlzdCBHZXRDbGllbnRWYXJpYWJsZXNMaXN0IEdldERpcmVjdG9yeUZyb21QYXRoCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgR2V0RmlsZUZyb21QYXRoIEdldExvY2FsZSBHZXRUZW1wRGlyZWN0b3J5IEdldFRlbXBGaWxlCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgR2V0VGVtcGxhdGVQYXRoIEdldFRpY2tDb3VudCBHZXRUb2tlbiBIVE1MQ29kZUZvcm1hdAotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEhUTUxFZGl0Rm9ybWF0IEhvdXIgSUlmIEluY3JlbWVudFZhbHVlIElucHV0QmFzZU4gSW5zZXJ0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgSW50IElzQXJyYXkgSXNBdXRoZW50aWNhdGVkIElzQXV0aG9yaXplZCBJc0Jvb2xlYW4gSXNEYXRlCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgSXNEZWJ1Z01vZGUgSXNEZWZpbmVkIElzTGVhcFllYXIgSXNOdW1lcmljIElzTnVtZXJpY0RhdGUKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc1F1ZXJ5IElzU2ltcGxlVmFsdWUgSXNTdHJ1Y3QgTENhc2UgTEp1c3RpZnkgTFNDdXJyZW5jeUZvcm1hdAotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIExTRGF0ZUZvcm1hdCBMU0lzQ3VycmVuY3kgTFNJc0RhdGUgTFNJc051bWVyaWMgTFNOdW1iZXJGb3JtYXQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBMU1BhcnNlQ3VycmVuY3kgTFNQYXJzZURhdGVUaW1lIExTUGFyc2VOdW1iZXIgTFNUaW1lRm9ybWF0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTFRyaW0gTGVmdCBMZW4gTGlzdEFwcGVuZCBMaXN0Q2hhbmdlRGVsaW1zIExpc3RDb250YWlucwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIExpc3RDb250YWluc05vQ2FzZSBMaXN0RGVsZXRlQXQgTGlzdEZpbmQgTGlzdEZpbmROb0Nhc2UgTGlzdEZpcnN0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdEdldEF0IExpc3RJbnNlcnRBdCBMaXN0TGFzdCBMaXN0TGVuIExpc3RQcmVwZW5kIExpc3RSZXN0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdFNldEF0IExpc3RUb0FycmF5IExvZyBMb2cxMCBNYXggTWlkIE1pbiBNaW51dGUgTW9udGgKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBNb250aEFzU3RyaW5nIE5vdyBOdW1iZXJGb3JtYXQgUGFyYWdyYXBoRm9ybWF0IFBhcmFtZXRlckV4aXN0cwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFBhcnNlRGF0ZVRpbWUgUGkgUHJlc2VydmVTaW5nbGVRdW90ZXMgUXVhcnRlciBRdWVyeUFkZFJvdwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFF1ZXJ5TmV3IFF1ZXJ5U2V0Q2VsbCBRdW90ZWRWYWx1ZUxpc3QgUkVGaW5kIFJFRmluZE5vQ2FzZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFJFUmVwbGFjZSBSRVJlcGxhY2VOb0Nhc2UgUkp1c3RpZnkgUlRyaW0gUmFuZCBSYW5kUmFuZ2UKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBSYW5kb21pemUgUmVtb3ZlQ2hhcnMgUmVwZWF0U3RyaW5nIFJlcGxhY2UgUmVwbGFjZUxpc3QKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBSZXBsYWNlTm9DYXNlIFJldmVyc2UgUmlnaHQgUm91bmQgU2Vjb25kIFNldExvY2FsZSBTZXRWYXJpYWJsZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFNnbiBTaW4gU3BhbkV4Y2x1ZGluZyBTcGFuSW5jbHVkaW5nIFNxciBTdHJpcENSIFN0cnVjdENsZWFyCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgU3RydWN0Q29weSBTdHJ1Y3RDb3VudCBTdHJ1Y3REZWxldGUgU3RydWN0RmluZCBTdHJ1Y3RJbnNlcnQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBTdHJ1Y3RJc0VtcHR5IFN0cnVjdEtleUV4aXN0cyBTdHJ1Y3ROZXcgU3RydWN0VXBkYXRlIFRhbgotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFRpbWVGb3JtYXQgVHJpbSBVQ2FzZSBVUkxFbmNvZGVkRm9ybWF0IFZhbCBWYWx1ZUxpc3QgV2Vlawotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFdyaXRlT3V0cHV0IFllYXIgWWVzTm9Gb3JtYXQKKyIgQ29sZEZ1c2lvbiBGdW5jdGlvbnMuCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQWJzIEdldEZ1bmN0aW9uTGlzdCBNYXggQUNvcyBHZXRHYXRld2F5SGVscGVyIE1pZCBBZGRTT0FQUmVxdWVzdEhlYWRlcgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldEh0dHBSZXF1ZXN0RGF0YSBNaW4gQWRkU09BUFJlc3BvbnNlSGVhZGVyIEdldEh0dHBUaW1lU3RyaW5nIE1pbnV0ZQorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEFycmF5QXBwZW5kIEdldExvY2FsZSBNb250aCBBcnJheUF2ZyBHZXRMb2NhbGVEaXNwbGF5TmFtZSBNb250aEFzU3RyaW5nCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQXJyYXlDbGVhciBHZXRNZXRhRGF0YSBOb3cgQXJyYXlEZWxldGVBdCBHZXRNZXRyaWNEYXRhIE51bWJlckZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEFycmF5SW5zZXJ0QXQgR2V0UGFnZUNvbnRleHQgUGFyYWdyYXBoRm9ybWF0IEFycmF5SXNFbXB0eSBHZXRQcm9maWxlU2VjdGlvbnMKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBQYXJzZURhdGVUaW1lIEFycmF5TGVuIEdldFByb2ZpbGVTdHJpbmcgUGkgQXJyYXlNYXggR2V0U09BUFJlcXVlc3QKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBQcmVzZXJ2ZVNpbmdsZVF1b3RlcyBBcnJheU1pbiBHZXRTT0FQUmVxdWVzdEhlYWRlciBRdWFydGVyIEFycmF5TmV3CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgR2V0U09BUFJlc3BvbnNlIFF1ZXJ5QWRkQ29sdW1uIEFycmF5UHJlcGVuZCBHZXRTT0FQUmVzcG9uc2VIZWFkZXIgUXVlcnlBZGRSb3cKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBcnJheVJlc2l6ZSBHZXRUZW1wRGlyZWN0b3J5IFF1ZXJ5TmV3IEFycmF5U2V0IEdldFRlbXBGaWxlIFF1ZXJ5U2V0Q2VsbAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEFycmF5U29ydCBHZXRUaWNrQ291bnQgUXVvdGVkVmFsdWVMaXN0IEFycmF5U3VtIEdldFRpbWVab25lSW5mbyBSYW5kIEFycmF5U3dhcAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldFRva2VuIFJhbmRvbWl6ZSBBcnJheVRvTGlzdCBIYXNoIFJhbmRSYW5nZSBBc2MgSG91ciBSRUZpbmQgQVNpbgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEhUTUxDb2RlRm9ybWF0IFJFRmluZE5vQ2FzZSBBdG4gSFRNTEVkaXRGb3JtYXQgUmVsZWFzZUNvbU9iamVjdCBCaW5hcnlEZWNvZGUKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJSWYgUmVtb3ZlQ2hhcnMgQmluYXJ5RW5jb2RlIEluY3JlbWVudFZhbHVlIFJlcGVhdFN0cmluZyBCaXRBbmQgSW5wdXRCYXNlTgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFJlcGxhY2UgQml0TWFza0NsZWFyIEluc2VydCBSZXBsYWNlTGlzdCBCaXRNYXNrUmVhZCBJbnQgUmVwbGFjZU5vQ2FzZQorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEJpdE1hc2tTZXQgSXNBcnJheSBSRVJlcGxhY2UgQml0Tm90IElzQmluYXJ5IFJFUmVwbGFjZU5vQ2FzZSBCaXRPciBJc0Jvb2xlYW4KK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBSZXZlcnNlIEJpdFNITE4gSXNDdXN0b21GdW5jdGlvbiBSaWdodCBCaXRTSFJOIElzRGF0ZSBSSnVzdGlmeSBCaXRYb3IKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc0RlYnVnTW9kZSBSb3VuZCBDZWlsaW5nIElzRGVmaW5lZCBSVHJpbSBDaGFyc2V0RGVjb2RlIElzTGVhcFllYXIgU2Vjb25kCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQ2hhcnNldEVuY29kZSBJc051bWVyaWMgU2VuZEdhdGV3YXlNZXNzYWdlIENociBJc051bWVyaWNEYXRlIFNldEVuY29kaW5nCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQ0p1c3RpZnkgSXNPYmplY3QgU2V0TG9jYWxlIENvbXBhcmUgSXNRdWVyeSBTZXRQcm9maWxlU3RyaW5nIENvbXBhcmVOb0Nhc2UKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc1NpbXBsZVZhbHVlIFNldFZhcmlhYmxlIENvcyBJc1NPQVBSZXF1ZXN0IFNnbiBDcmVhdGVEYXRlIElzU3RydWN0IFNpbgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENyZWF0ZURhdGVUaW1lIElzVXNlckluUm9sZSBTcGFuRXhjbHVkaW5nIENyZWF0ZU9iamVjdCBJc1ZhbGlkIFNwYW5JbmNsdWRpbmcKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBDcmVhdGVPREJDRGF0ZSBJc1dERFggU3FyIENyZWF0ZU9EQkNEYXRlVGltZSBJc1hNTCBTdHJpcENSIENyZWF0ZU9EQkNUaW1lCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgSXNYbWxBdHRyaWJ1dGUgU3RydWN0QXBwZW5kIENyZWF0ZVRpbWUgSXNYbWxEb2MgU3RydWN0Q2xlYXIgQ3JlYXRlVGltZVNwYW4KK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc1htbEVsZW0gU3RydWN0Q29weSBDcmVhdGVVVUlEIElzWG1sTm9kZSBTdHJ1Y3RDb3VudCBEYXRlQWRkIElzWG1sUm9vdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFN0cnVjdERlbGV0ZSBEYXRlQ29tcGFyZSBKYXZhQ2FzdCBTdHJ1Y3RGaW5kIERhdGVDb252ZXJ0IEpTU3RyaW5nRm9ybWF0CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgU3RydWN0RmluZEtleSBEYXRlRGlmZiBMQ2FzZSBTdHJ1Y3RGaW5kVmFsdWUgRGF0ZUZvcm1hdCBMZWZ0IFN0cnVjdEdldAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERhdGVQYXJ0IExlbiBTdHJ1Y3RJbnNlcnQgRGF5IExpc3RBcHBlbmQgU3RydWN0SXNFbXB0eSBEYXlPZldlZWsKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBMaXN0Q2hhbmdlRGVsaW1zIFN0cnVjdEtleUFycmF5IERheU9mV2Vla0FzU3RyaW5nIExpc3RDb250YWlucyBTdHJ1Y3RLZXlFeGlzdHMKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBEYXlPZlllYXIgTGlzdENvbnRhaW5zTm9DYXNlIFN0cnVjdEtleUxpc3QgRGF5c0luTW9udGggTGlzdERlbGV0ZUF0IFN0cnVjdE5ldworc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERheXNJblllYXIgTGlzdEZpbmQgU3RydWN0U29ydCBERSBMaXN0RmluZE5vQ2FzZSBTdHJ1Y3RVcGRhdGUgRGVjaW1hbEZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIExpc3RGaXJzdCBUYW4gRGVjcmVtZW50VmFsdWUgTGlzdEdldEF0IFRpbWVGb3JtYXQgRGVjcnlwdCBMaXN0SW5zZXJ0QXQKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBUb0Jhc2U2NCBEZWxldGVDbGllbnRWYXJpYWJsZSBMaXN0TGFzdCBUb0JpbmFyeSBEaXJlY3RvcnlFeGlzdHMgTGlzdExlbgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFRvU2NyaXB0IERvbGxhckZvcm1hdCBMaXN0UHJlcGVuZCBUb1N0cmluZyBEdXBsaWNhdGUgTGlzdFF1YWxpZnkgVHJpbSBFbmNyeXB0CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdFJlc3QgVUNhc2UgRXZhbHVhdGUgTGlzdFNldEF0IFVSTERlY29kZSBFeHAgTGlzdFNvcnQgVVJMRW5jb2RlZEZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEV4cGFuZFBhdGggTGlzdFRvQXJyYXkgVVJMU2Vzc2lvbkZvcm1hdCBGaWxlRXhpc3RzIExpc3RWYWx1ZUNvdW50IFZhbCBGaW5kCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdFZhbHVlQ291bnROb0Nhc2UgVmFsdWVMaXN0IEZpbmROb0Nhc2UgTEp1c3RpZnkgV2VlayBGaW5kT25lT2YgTG9nIFdyYXAKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBGaXJzdERheU9mTW9udGggTG9nMTAgV3JpdGVPdXRwdXQgRml4IExTQ3VycmVuY3lGb3JtYXQgWG1sQ2hpbGRQb3MgRm9ybWF0QmFzZU4KK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBMU0RhdGVGb3JtYXQgWG1sRWxlbU5ldyBHZXRUZW1wRGlyZWN0b3J5IExTRXVyb0N1cnJlbmN5Rm9ybWF0IFhtbEZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldEF1dGhVc2VyIExTSXNDdXJyZW5jeSBYbWxHZXROb2RlVHlwZSBHZXRCYXNlVGFnRGF0YSBMU0lzRGF0ZSBYbWxOZXcKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBHZXRCYXNlVGFnTGlzdCBMU0lzTnVtZXJpYyBYbWxQYXJzZSBHZXRCYXNlVGVtcGxhdGVQYXRoIExTTnVtYmVyRm9ybWF0CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgWG1sU2VhcmNoIEdldENsaWVudFZhcmlhYmxlc0xpc3QgTFNQYXJzZUN1cnJlbmN5IFhtbFRyYW5zZm9ybQorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldEN1cnJlbnRUZW1wbGF0ZVBhdGggTFNQYXJzZURhdGVUaW1lIFhtbFZhbGlkYXRlIEdldERpcmVjdG9yeUZyb21QYXRoCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTFNQYXJzZUV1cm9DdXJyZW5jeSBZZWFyIEdldEVuY29kaW5nIExTUGFyc2VOdW1iZXIgWWVzTm9Gb3JtYXQgR2V0RXhjZXB0aW9uCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTFNUaW1lRm9ybWF0IEdldEZpbGVGcm9tUGF0aCBMVHJpbSAKIAogc3luIGNsdXN0ZXIgaHRtbFRhZ05hbWVDbHVzdGVyIGFkZD1jZlRhZ05hbWUKIHN5biBjbHVzdGVyIGh0bWxBcmdDbHVzdGVyIGFkZD1jZkFyZyxjZkZ1bmN0aW9uTmFtZQpAQCAtMTMwLDcgKzE1Myw3IEBACiAKICIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KICIgRm9yIHZlcnNpb24gNS54IGFuZCBlYXJsaWVyLCBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeS4KLSIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlciwgb25seSB3aGVuIGFuZCBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0LgorIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyLCBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldC4KIGlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9jZl9zeW5faW5pdHMiKQogICBpZiB2ZXJzaW9uIDwgNTA4CiAgICAgbGV0IGRpZF9jZl9zeW5faW5pdHMgPSAxCkBAIC0xNDIsNiArMTY1LDcgQEAKICAgSGlMaW5rIGNmVGFnTmFtZSBTdGF0ZW1lbnQKICAgSGlMaW5rIGNmQXJnIFR5cGUKICAgSGlMaW5rIGNmRnVuY3Rpb25OYW1lIEZ1bmN0aW9uCisgIEhpTGluayBjZkZ1bmN0aW9uUmVnaW9uIFByZVByb2MKIAogICBkZWxjb21tYW5kIEhpTGluawogZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2hlbHAudmltIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KaW5kZXggN2Q1MGY1NS4uMjZmNWRlZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvaGVscC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJVmltIGhlbHAgZmlsZQogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciAoQnJhbUB2aW0ub3JnKQotIiBMYXN0IENoYW5nZToJMjAwNSBKdW4gMjAKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgU2VwIDAxCiAKICIgUXVpdCB3aGVuIGEgKGN1c3RvbSkgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQpAQCAtMTA2LDYgKzEwNiw3IEBACiBzeW4gbWF0Y2ggaGVscEVycm9yCQkiXHRbKiBdRXJyb3JcdFwrW2Etel0uKiIKIHN5biBtYXRjaCBoZWxwVG9kbwkJIlx0WyogXVRvZG9cdFwrW2Etel0uKiIKIAorc3luIG1hdGNoIGhlbHBVUkwgYFx2PCgoKGh0dHBzP3xmdHB8Z29waGVyKTovL3wobWFpbHRvfGZpbGV8bmV3cyk6KVteJyAJPD4iXSt8KHd3d3x3ZWJ8dzMpW2EtejAtOV8tXSpcLlthLXowLTkuXy1dK1wuW14nIAk8PiJdKylbYS16MC05L11gCiAKICIgQWRkaXRpb25hbGx5IGxvYWQgYSBsYW5ndWFnZS1zcGVjaWZpYyBzeW50YXggZmlsZSAiaGVscF9hYi52aW0iLgogbGV0IHM6aSA9IG1hdGNoKGV4cGFuZCgiJSIpLCAnXC5cYVxheCQnKQpAQCAtMTY2LDYgKzE2Nyw3IEBACiBoaSBkZWYgbGluayBoZWxwVW5kZXJsaW5lZAlVbmRlcmxpbmVkCiBoaSBkZWYgbGluayBoZWxwRXJyb3IJCUVycm9yCiBoaSBkZWYgbGluayBoZWxwVG9kbwkJVG9kbworaGkgZGVmIGxpbmsgaGVscFVSTAkJU3RyaW5nCiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gImhlbHAiCiAK