ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4OThjMTk3Li4zYTJiMmU1IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDYgKzEsMTcgQEAKIAogICAgICAgICAgICAgICAgIENoYW5nZUxvZyBmaWxlIGZvciB6bGliCiAKK0NoYW5nZXMgaW4gMS4yLjQuNCAoMTggQXByIDIwMTApCistIEZpeCBDUk9TU19QUkVGSVggZXhlY3V0YWJsZSB0ZXN0aW5nLCBDSE9TVCBleHRyYWN0LCBtaW5ndyogW1SacpprXQorLSBVbmRlZmluZSBfTEFSR0VGSUxFNjRfU09VUkNFIGluIHpjb25mLmggaWYgaXQgaXMgemVybywgYnV0IG5vdCBpZiBlbXB0eQorLSBUcnkgdG8gdXNlIGJhc2ggb3Iga3NoIHJlZ2FyZGxlc3Mgb2YgZnVuY3Rpb25hbGl0eSBvZiAvYmluL3NoCistIEZpeCBjb25maWd1cmUgaW5jb21wYXRpYmlsaXR5IHdpdGggTmV0QlNEIHNoCistIFJlbW92ZSBhdHRlbXB0IHRvIHJ1biB1bmRlciBiYXNoIG9yIGtzaCBzaW5jZSBoYXZlIGJldHRlciBOZXRCU0QgZml4CistIEZpeCB3aW4zMi9NYWtlZmlsZS5nY2MgZm9yIE1pbkdXIFtCYXItTGV2XQorLSBBZGQgZGlhZ25vc3RpYyBtZXNzYWdlcyB3aGVuIHVzaW5nIENST1NTX1BSRUZJWCBpbiBjb25maWd1cmUKKy0gQWRkZWQgLS1zaGFyZWRsaWJkaXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBbV2VpZ2VsdF0KKy0gVXNlIGhpZGRlbiB2aXNpYmlsaXR5IGF0dHJpYnV0ZSB3aGVuIGF2YWlsYWJsZSBbRnJ5c2luZ2VyXQorCiBDaGFuZ2VzIGluIDEuMi40LjMgKDEwIEFwciAyMDEwKQogLSBPbmx5IHVzZSBDUk9TU19QUkVGSVggaW4gY29uZmlndXJlIGZvciBhciBhbmQgcmFubGliIGlmIHRoZXkgZXhpc3QKIC0gVXNlIENST1NTX1BSRUZJWCBmb3Igbm0gW0Jhci1MZXZdCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCmluZGV4IGFjYTU5MjQuLmY5MzJkOWYgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmluCisrKyBiL01ha2VmaWxlLmluCkBAIC0zMiw3ICszMiw3IEBACiAKIFNUQVRJQ0xJQj1saWJ6LmEKIFNIQVJFRExJQj1saWJ6LnNvCi1TSEFSRURMSUJWPWxpYnouc28uMS4yLjQuMworU0hBUkVETElCVj1saWJ6LnNvLjEuMi40LjQKIFNIQVJFRExJQk09bGliei5zby4xCiBMSUJTPSQoU1RBVElDTElCKSAkKFNIQVJFRExJQlYpCiAKQEAgLTQ3LDYgKzQ3LDcgQEAKIHByZWZpeCA9IC91c3IvbG9jYWwKIGV4ZWNfcHJlZml4ID0gJHtwcmVmaXh9CiBsaWJkaXIgPSAke2V4ZWNfcHJlZml4fS9saWIKK3NoYXJlZGxpYmRpciA9ICR7bGliZGlyfQogaW5jbHVkZWRpciA9ICR7cHJlZml4fS9pbmNsdWRlCiBtYW5kaXIgPSAke3ByZWZpeH0vc2hhcmUvbWFuCiBtYW4zZGlyID0gJHttYW5kaXJ9L21hbjMKQEAgLTE2MywxMiArMTY0LDE0IEBACiBpbnN0YWxsLWxpYnM6ICQoTElCUykKIAktQGlmIFsgISAtZCAkKERFU1RESVIpJChleGVjX3ByZWZpeCkgIF07IHRoZW4gbWtkaXIgLXAgJChERVNURElSKSQoZXhlY19wcmVmaXgpOyBmaQogCS1AaWYgWyAhIC1kICQoREVTVERJUikkKGxpYmRpcikgICAgICAgXTsgdGhlbiBta2RpciAtcCAkKERFU1RESVIpJChsaWJkaXIpOyBmaQorCS1AaWYgWyAhIC1kICQoREVTVERJUikkKHNoYXJlZGxpYmRpcikgXTsgdGhlbiBta2RpciAtcCAkKERFU1RESVIpJChzaGFyZWRsaWJkaXIpOyBmaQogCS1AaWYgWyAhIC1kICQoREVTVERJUikkKG1hbjNkaXIpICAgICAgXTsgdGhlbiBta2RpciAtcCAkKERFU1RESVIpJChtYW4zZGlyKTsgZmkKIAktQGlmIFsgISAtZCAkKERFU1RESVIpJChwa2djb25maWdkaXIpIF07IHRoZW4gbWtkaXIgLXAgJChERVNURElSKSQocGtnY29uZmlnZGlyKTsgZmkKLQljcCAkKExJQlMpICQoREVTVERJUikkKGxpYmRpcikKKwljcCAkKFNUQVRJQ0xJQikgJChERVNURElSKSQobGliZGlyKQorCWNwICQoU0hBUkVETElCVikgJChERVNURElSKSQoc2hhcmVkbGliZGlyKQogCWNkICQoREVTVERJUikkKGxpYmRpcik7IGNobW9kIHU9cncsZ289ciAkKFNUQVRJQ0xJQikKIAktQChjZCAkKERFU1RESVIpJChsaWJkaXIpOyAkKFJBTkxJQikgbGliei5hIHx8IHRydWUpID4vZGV2L251bGwgMj4mMQotCS1AY2QgJChERVNURElSKSQobGliZGlyKTsgaWYgdGVzdCAiJChTSEFSRURMSUJWKSIgLWEgLWYgJChTSEFSRURMSUJWKTsgdGhlbiBcCisJLUBjZCAkKERFU1RESVIpJChzaGFyZWRsaWJkaXIpOyBpZiB0ZXN0ICIkKFNIQVJFRExJQlYpIiAtYSAtZiAkKFNIQVJFRExJQlYpOyB0aGVuIFwKIAkgIGNobW9kIDc1NSAkKFNIQVJFRExJQlYpOyBcCiAJICBybSAtZiAkKFNIQVJFRExJQikgJChTSEFSRURMSUJNKTsgXAogCSAgbG4gLXMgJChTSEFSRURMSUJWKSAkKFNIQVJFRExJQik7IFwKZGlmZiAtLWdpdCBhL1JFQURNRSBiL1JFQURNRQppbmRleCA2OGZmOTkyLi5kOTA5YmE2IDEwMDY0NAotLS0gYS9SRUFETUUKKysrIGIvUkVBRE1FCkBAIC0xLDYgKzEsNiBAQAogWkxJQiBEQVRBIENPTVBSRVNTSU9OIExJQlJBUlkKIAotemxpYiAxLjIuNC4zIGlzIGEgZ2VuZXJhbCBwdXJwb3NlIGRhdGEgY29tcHJlc3Npb24gbGlicmFyeS4gIEFsbCB0aGUgY29kZSBpcworemxpYiAxLjIuNC40IGlzIGEgZ2VuZXJhbCBwdXJwb3NlIGRhdGEgY29tcHJlc3Npb24gbGlicmFyeS4gIEFsbCB0aGUgY29kZSBpcwogdGhyZWFkIHNhZmUuICBUaGUgZGF0YSBmb3JtYXQgdXNlZCBieSB0aGUgemxpYiBsaWJyYXJ5IGlzIGRlc2NyaWJlZCBieSBSRkNzCiAoUmVxdWVzdCBmb3IgQ29tbWVudHMpIDE5NTAgdG8gMTk1MiBpbiB0aGUgZmlsZXMKIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzE5NTAudHh0ICh6bGliIGZvcm1hdCksIHJmYzE5NTEudHh0IChkZWZsYXRlIGZvcm1hdCkKQEAgLTMxLDcgKzMxLDcgQEAKIGlzc3VlIG9mIERyLiAgRG9iYidzIEpvdXJuYWw7IGEgY29weSBvZiB0aGUgYXJ0aWNsZSBpcyBhdmFpbGFibGUgYXQKIGh0dHA6Ly9tYXJrbmVsc29uLnVzLzE5OTcvMDEvMDEvemxpYi1lbmdpbmUvIC4KIAotVGhlIGNoYW5nZXMgbWFkZSBpbiB2ZXJzaW9uIDEuMi40LjMgYXJlIGRvY3VtZW50ZWQgaW4gdGhlIGZpbGUgQ2hhbmdlTG9nLgorVGhlIGNoYW5nZXMgbWFkZSBpbiB2ZXJzaW9uIDEuMi40LjQgYXJlIGRvY3VtZW50ZWQgaW4gdGhlIGZpbGUgQ2hhbmdlTG9nLgogCiBVbnN1cHBvcnRlZCB0aGlyZCBwYXJ0eSBjb250cmlidXRpb25zIGFyZSBwcm92aWRlZCBpbiBkaXJlY3RvcnkgY29udHJpYi8gLgogCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggN2ZmNDg0Yi4uZTcyOWM2YyAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTMsMzcgKzEzLDggQEAKICMgSWYgeW91IGhhdmUgcHJvYmxlbXMsIHRyeSB3aXRob3V0IGRlZmluaW5nIENDIGFuZCBDRkxBR1MgYmVmb3JlIHJlcG9ydGluZwogIyBhbiBlcnJvci4KIAotIyBtYWtlIHN1cmUgd2UgYXJlIHJ1bm5pbmcgdW5kZXIgYSBjb21wYXRpYmxlIHNoZWxsIChzdG9sZW4gZnJvbSBmZm1wZWcgYW5kIGxpYm5mbywKLSMgZXhjZXB0IHRoZWlyJ3Mgd2Fzbid0IHBvcnRhYmxlIGVub3VnaCBkdWUgdG8gISB1c2FnZSwgc28gdGhpcyBpcyBiZXR0ZXIpCi1pZiB0ZXN0ICIwJFpMSUJfQ09ORklHVVJFX0VYRUMiIC1sdCAxOyB0aGVuCi0gIHVuc2V0IGZvbwotICB0cnk9MAotICAoOiAke2ZvbyUlYmFyfSkgMj4vZGV2L251bGwKLSAgaWYgdGVzdCAiJD8iIC1uZSAwOyB0aGVuCi0gICAgdHJ5PTEKLSAgZWxzZQotICAgICg6ICR7Zm9vP30pIDI+L2Rldi9udWxsCi0gICAgaWYgdGVzdCAiJD8iIC1lcSAwOyB0aGVuCi0gICAgICB0cnk9MQotICAgIGZpCi0gIGZpCi0gIGlmIHRlc3QgIiR0cnkiIC1lcSAxOyB0aGVuCi0gICAgWkxJQl9DT05GSUdVUkVfRVhFQz0xCi0gICAgZXhwb3J0IFpMSUJfQ09ORklHVVJFX0VYRUMKLSAgICB0eXBlICJiYXNoIiA+IC9kZXYvbnVsbCAyPiYxICYmIGV4ZWMgYmFzaCAiJDAiICIkQCIKLSAgICB0eXBlICJrc2giID4gL2Rldi9udWxsIDI+JjEgJiYgZXhlYyBrc2ggIiQwIiAiJEAiCi0gICAgaWYgdGVzdCAteCAvdXNyL3hwZzQvYmluL3NoOyB0aGVuCi0gICAgICBleGVjIC91c3IveHBnNC9iaW4vc2ggIiQwIiAiJEAiCi0gICAgZmkKLSMgICAgZWNobyAiTm8gY29tcGF0aWJsZSBzaGVsbCBzY3JpcHQgaW50ZXJwcmV0ZXIgZm91bmQuIgotIyAgICBleGl0IDEKLSMgd2UgY291bGQgZ2l2ZSB1cCBoZXJlLCBidXQgZ28gYWhlYWQgYW5kIGdpdmUgdGhlaXIgb2xkIHNoIGEgdHJ5Ci0gIGZpCi0gIHVuc2V0IHRyeQotZmkKLQogaWYgWyAtbiAiJHtDSE9TVH0iIF07IHRoZW4KLSAgICB1bmFtZT0iJChlY2hvICIke0NIT1NUfSIgfCBzZWQgJ3MvLiotLiotXCguKlwpLS4qL1wxLycpIgorICAgIHVuYW1lPSIkKGVjaG8gIiR7Q0hPU1R9IiB8IHNlZCAtZSAncy8uKi0uKi1cKC4qXCktLiokL1wxLycgLWUgJ3MvLiotXCguKlwpLS4qL1wxLycgLWUgJ3MvLiotXCguKlwpJC9cMS8nKSIKICAgICBDUk9TU19QUkVGSVg9IiR7Q0hPU1R9LSIKIGZpCiAKQEAgLTUzLDI0ICsyNCwyOCBAQAogVkVSMz1gc2VkIC1uIC1lICcvVkVSU0lPTiAiL3MvLioiXChbMC05XSpcXC5bMC05XSpcXC5bMC05XSpcKS4qL1wxL3AnIDwgemxpYi5oYAogVkVSMj1gc2VkIC1uIC1lICcvVkVSU0lPTiAiL3MvLioiXChbMC05XSpcXC5bMC05XSpcKVxcLi4qL1wxL3AnIDwgemxpYi5oYAogVkVSMT1gc2VkIC1uIC1lICcvVkVSU0lPTiAiL3MvLioiXChbMC05XSpcKVxcLi4qL1wxL3AnIDwgemxpYi5oYAotaWYgWyAteCAiJHtDUk9TU19QUkVGSVh9YXIiIF07IHRoZW4KK2lmICIke0NST1NTX1BSRUZJWH1hciIgLS12ZXJzaW9uID4vZGV2L251bGwgMj4vZGV2L251bGwgfHwgdGVzdCAkPyAtbHQgMTI2OyB0aGVuCiAgICAgQVI9JHtBUi0iJHtDUk9TU19QUkVGSVh9YXIifQorICAgIHRlc3QgLW4gIiR7Q1JPU1NfUFJFRklYfSIgJiYgZWNobyBVc2luZyAke0FSfQogZWxzZQogICAgIEFSPSR7QVItImFyIn0KKyAgICB0ZXN0IC1uICIke0NST1NTX1BSRUZJWH0iICYmIGVjaG8gVXNpbmcgJHtBUn0KIGZpCiBBUl9SQz0iJHtBUn0gcmMiCi1pZiBbIC14ICIke0NST1NTX1BSRUZJWH1yYW5saWIiIF07IHRoZW4KK2lmICIke0NST1NTX1BSRUZJWH1yYW5saWIiIC0tdmVyc2lvbiA+L2Rldi9udWxsIDI+L2Rldi9udWxsIHx8IHRlc3QgJD8gLWx0IDEyNjsgdGhlbgogICAgIFJBTkxJQj0ke1JBTkxJQi0iJHtDUk9TU19QUkVGSVh9cmFubGliIn0KKyAgICB0ZXN0IC1uICIke0NST1NTX1BSRUZJWH0iICYmIGVjaG8gVXNpbmcgJHtSQU5MSUJ9CiBlbHNlCiAgICAgUkFOTElCPSR7UkFOTElCLSJyYW5saWIifQogZmkKLWlmIFsgLXggIiR7Q1JPU1NfUFJFRklYfW5tIiBdOyB0aGVuCitpZiAiJHtDUk9TU19QUkVGSVh9bm0iIC0tdmVyc2lvbiA+L2Rldi9udWxsIDI+L2Rldi9udWxsIHx8IHRlc3QgJD8gLWx0IDEyNjsgdGhlbgogICAgIE5NPSR7Tk0tIiR7Q1JPU1NfUFJFRklYfW5tIn0KKyAgICB0ZXN0IC1uICIke0NST1NTX1BSRUZJWH0iICYmIGVjaG8gVXNpbmcgJHtOTX0KIGVsc2UKICAgICBOTT0ke05NLSJubSJ9CiBmaQogTERDT05GSUc9JHtMRENPTkZJRy0ibGRjb25maWcifQotTERTSEFSRURMSUJDPSIke0xEU0hBUkVETElCQy0iLWxjIn0iCitMRFNIQVJFRExJQkM9IiR7TERTSEFSRURMSUJDLS1sY30iCiBwcmVmaXg9JHtwcmVmaXgtL3Vzci9sb2NhbH0KIGV4ZWNfcHJlZml4PSR7ZXhlY19wcmVmaXgtJyR7cHJlZml4fSd9CiBsaWJkaXI9JHtsaWJkaXItJyR7ZXhlY19wcmVmaXh9L2xpYid9CkBAIC05MCwxMSArNjUsMTMgQEAKICAgICAtaCogfCAtLWhlbHApCiAgICAgICBlY2hvICd1c2FnZTonCiAgICAgICBlY2hvICcgIGNvbmZpZ3VyZSBbLS16cHJlZml4XSBbLS1wcmVmaXg9UFJFRklYXSAgWy0tZXByZWZpeD1FWFBSRUZJWF0nCi0gICAgICBlY2hvICcgICAgWy0tc3RhdGljXSBbLS02NF0gWy0tbGliZGlyPUxJQkRJUl0gWy0taW5jbHVkZWRpcj1JTkNMVURFRElSXScKKyAgICAgIGVjaG8gJyAgICBbLS1zdGF0aWNdIFstLTY0XSBbLS1saWJkaXI9TElCRElSXSBbLS1zaGFyZWRsaWJkaXI9TElCRElSXScKKyAgICAgIGVjaG8gJyAgICBbLS1pbmNsdWRlZGlyPUlOQ0xVREVESVJdJwogICAgICAgICBleGl0IDAgOzsKICAgICAtcCo9KiB8IC0tcHJlZml4PSopIHByZWZpeD1gZWNobyAkMSB8IHNlZCAncy8uKj0vLydgOyBzaGlmdCA7OwogICAgIC1lKj0qIHwgLS1lcHJlZml4PSopIGV4ZWNfcHJlZml4PWBlY2hvICQxIHwgc2VkICdzLy4qPS8vJ2A7IHNoaWZ0IDs7CiAgICAgLWwqPSogfCAtLWxpYmRpcj0qKSBsaWJkaXI9YGVjaG8gJDEgfCBzZWQgJ3MvLio9Ly8nYDsgc2hpZnQgOzsKKyAgICAtLXNoYXJlZGxpYmRpcj0qKSBzaGFyZWRsaWJkaXI9YGVjaG8gJDEgfCBzZWQgJ3MvLio9Ly8nYDsgc2hpZnQgOzsKICAgICAtaSo9KiB8IC0taW5jbHVkZWRpcj0qKSBpbmNsdWRlZGlyPWBlY2hvICQxIHwgc2VkICdzLy4qPS8vJ2A7c2hpZnQgOzsKICAgICAtdSo9KiB8IC0tdW5hbWU9KikgdW5hbWU9YGVjaG8gJDEgfCBzZWQgJ3MvLio9Ly8nYDtzaGlmdCA7OwogICAgIC1wKiB8IC0tcHJlZml4KSBwcmVmaXg9IiQyIjsgc2hpZnQ7IHNoaWZ0IDs7CkBAIC0xMTcsNyArOTQsNyBAQAogaW50IGhlbGxvKCkge3JldHVybiBnZXRjaGFyKCk7fQogRU9GCiAKLXRlc3QgLXogIiRDQyIgJiYgZWNobyBDaGVja2luZyBmb3IgZ2NjLi4uCit0ZXN0IC16ICIkQ0MiICYmIGVjaG8gQ2hlY2tpbmcgZm9yICR7Q1JPU1NfUFJFRklYfWdjYy4uLgogY2M9JHtDQy0ke0NST1NTX1BSRUZJWH1nY2N9CiBjZmxhZ3M9JHtDRkxBR1MtIi1PMyJ9CiAjIHRvIGZvcmNlIHRoZSBhc20gdmVyc2lvbiB1c2U6IENGTEFHUz0iLU8zIC1EQVNNViIgLi9jb25maWd1cmUKQEAgLTEyNyw4ICsxMDQsOCBAQAogCiBpZiB0ZXN0ICIkZ2NjIiAtZXEgMSAmJiAoJGNjIC1jICRjZmxhZ3MgJHRlc3QuYykgMj4vZGV2L251bGw7IHRoZW4KICAgQ0M9IiRjYyIKLSAgU0ZMQUdTPSIke0NGTEFHUy0iLU8zIn0gLWZQSUMiCi0gIENGTEFHUz0iJHtDRkxBR1MtIi1PMyJ9IgorICBTRkxBR1M9IiR7Q0ZMQUdTLS1PM30gLWZQSUMiCisgIENGTEFHUz0iJHtDRkxBR1MtLU8zfSIKICAgaWYgdGVzdCAkYnVpbGQ2NCAtZXEgMTsgdGhlbgogICAgIENGTEFHUz0iJHtDRkxBR1N9IC1tNjQiCiAgICAgU0ZMQUdTPSIke1NGTEFHU30gLW02NCIKQEAgLTE0Myw3ICsxMjAsNyBAQAogICBMaW51eCogfCBsaW51eCogfCBHTlUgfCBHTlUvKiB8ICpCU0QgfCBEcmFnb25GbHkpIExEU0hBUkVEPSR7TERTSEFSRUQtIiRjYyAtc2hhcmVkIC1XbCwtc29uYW1lLGxpYnouc28uMSwtLXZlcnNpb24tc2NyaXB0LHpsaWIubWFwIn0gOzsKICAgQ1lHV0lOKiB8IEN5Z3dpbiogfCBjeWd3aW4qIHwgT1MvMiopCiAgICAgICAgIEVYRT0nLmV4ZScgOzsKLSAgTUlOR1cqKQorICBNSU5HVyp8bWluZ3cqKQogICAgICAgICBMRFNIQVJFRD0ke0xEU0hBUkVELSIkY2MgLXNoYXJlZCJ9CiAgICAgICAgIExEU0hBUkVETElCQz0iIgogICAgICAgICBFWEU9Jy5leGUnIDs7CkBAIC01MjcsNiArNTA0LDIzIEBACiAgIGZpCiBmaQogCitjYXQgPiAkdGVzdC5jIDw8RU9GCitpbnQgZm9vIF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKTsKK2ludCBtYWluKCkKK3sKKyAgcmV0dXJuIDA7Cit9CitFT0YKK2lmIHRlc3QgImAoJENDIC1jIC1mdmlzaWJpbGl0eT1oaWRkZW4gJENGTEFHUyAkdGVzdC5jKSAyPiYxYCIgPSAiIjsgdGhlbgorICBDRkxBR1M9IiRDRkxBR1MgLWZ2aXNpYmlsaXR5PWhpZGRlbiIKKyAgU0ZMQUdTPSIkU0ZMQUdTIC1mdmlzaWJpbGl0eT1oaWRkZW4iCisgIGVjaG8gIkNoZWNraW5nIGZvciBhdHRyaWJ1dGUodmlzaWJpbGl0eSkgc3VwcG9ydC4uLiBZZXMuIgorZWxzZQorICBDRkxBR1M9IiRDRkxBR1MgLUROT19WSVoiCisgIFNGTEFHUz0iJFNGTEFHUyAtRE5PX1ZJWiIKKyAgZWNobyAiQ2hlY2tpbmcgZm9yIGF0dHJpYnV0ZSh2aXNpYmlsaXR5KSBzdXBwb3J0Li4uIE5vLiIKK2ZpCisKIENQUD0ke0NQUC0iJENDIC1FIn0KIGNhc2UgJENGTEFHUyBpbgogICAqQVNNViopCkBAIC01NjAsNiArNTU0LDcgQEAKIC9ecHJlZml4ICo9L3MjPS4qIz0kcHJlZml4IwogL15leGVjX3ByZWZpeCAqPS9zIz0uKiM9JGV4ZWNfcHJlZml4IwogL15saWJkaXIgKj0vcyM9LiojPSRsaWJkaXIjCisvXnNoYXJlZGxpYmRpciAqPS9zIz0uKiM9JHNoYXJlZGxpYmRpciMKIC9eaW5jbHVkZWRpciAqPS9zIz0uKiM9JGluY2x1ZGVkaXIjCiAvXm1hbmRpciAqPS9zIz0uKiM9JG1hbmRpciMKIC9eYWxsOiAqL3MjOi4qIzogJEFMTCMKQEAgLTU4MSw2ICs1NzYsNyBAQAogL15wcmVmaXggKj0vcyM9LiojPSRwcmVmaXgjCiAvXmV4ZWNfcHJlZml4ICo9L3MjPS4qIz0kZXhlY19wcmVmaXgjCiAvXmxpYmRpciAqPS9zIz0uKiM9JGxpYmRpciMKKy9ec2hhcmVkbGliZGlyICo9L3MjPS4qIz0kc2hhcmVkbGliZGlyIwogL15pbmNsdWRlZGlyICo9L3MjPS4qIz0kaW5jbHVkZWRpciMKIC9ebWFuZGlyICo9L3MjPS4qIz0kbWFuZGlyIwogL15MREZMQUdTICo9L3MjPS4qIz0kTERGTEFHUyMKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZGVscGhpL1pMaWIucGFzIGIvY29udHJpYi9kZWxwaGkvWkxpYi5wYXMKaW5kZXggNmVkODljZS4uYzEwOTRjNiAxMDA2NDQKLS0tIGEvY29udHJpYi9kZWxwaGkvWkxpYi5wYXMKKysrIGIvY29udHJpYi9kZWxwaGkvWkxpYi5wYXMKQEAgLTE1Miw3ICsxNTIsNyBAQAogICBjb25zdCBPdXRCdWY6IFBvaW50ZXI7IEJ1ZlNpemU6IEludGVnZXIpOwogCiBjb25zdAotICB6bGliX3ZlcnNpb24gPSAnMS4yLjQuMyc7CisgIHpsaWJfdmVyc2lvbiA9ICcxLjIuNC40JzsKIAogdHlwZQogICBFWmxpYkVycm9yID0gY2xhc3MoRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZG90emxpYi9Eb3RaTGliL1VuaXRUZXN0cy5jcyBiL2NvbnRyaWIvZG90emxpYi9Eb3RaTGliL1VuaXRUZXN0cy5jcwppbmRleCAwNjY4YzlmLi5mZTEwNjFmIDEwMDY0NAotLS0gYS9jb250cmliL2RvdHpsaWIvRG90WkxpYi9Vbml0VGVzdHMuY3MKKysrIGIvY29udHJpYi9kb3R6bGliL0RvdFpMaWIvVW5pdFRlc3RzLmNzCkBAIC0xNTYsNyArMTU2LDcgQEAKICAgICAgICAgcHVibGljIHZvaWQgSW5mb19WZXJzaW9uKCkNCiAgICAgICAgIHsNCiAgICAgICAgICAgICBJbmZvIGluZm8gPSBuZXcgSW5mbygpOw0KLSAgICAgICAgICAgIEFzc2VydC5BcmVFcXVhbCgiMS4yLjQuMyIsIEluZm8uVmVyc2lvbik7DQorICAgICAgICAgICAgQXNzZXJ0LkFyZUVxdWFsKCIxLjIuNC40IiwgSW5mby5WZXJzaW9uKTsNCiAgICAgICAgICAgICBBc3NlcnQuQXJlRXF1YWwoMzIsIGluZm8uU2l6ZU9mVUludCk7DQogICAgICAgICAgICAgQXNzZXJ0LkFyZUVxdWFsKDMyLCBpbmZvLlNpemVPZlVMb25nKTsNCiAgICAgICAgICAgICBBc3NlcnQuQXJlRXF1YWwoMzIsIGluZm8uU2l6ZU9mUG9pbnRlcik7DQpkaWZmIC0tZ2l0IGEvY29udHJpYi9pbmZiYWNrOS9pbmZ0cmVlOS5jIGIvY29udHJpYi9pbmZiYWNrOS9pbmZ0cmVlOS5jCmluZGV4IGE2N2YyMWQuLjE4NDdkMjIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaW5mYmFjazkvaW5mdHJlZTkuYworKysgYi9jb250cmliL2luZmJhY2s5L2luZnRyZWU5LmMKQEAgLTksNyArOSw3IEBACiAjZGVmaW5lIE1BWEJJVFMgMTUKIAogY29uc3QgY2hhciBpbmZsYXRlOV9jb3B5cmlnaHRbXSA9Ci0gICAiIGluZmxhdGU5IDEuMi40LjMgQ29weXJpZ2h0IDE5OTUtMjAxMCBNYXJrIEFkbGVyICI7CisgICAiIGluZmxhdGU5IDEuMi40LjQgQ29weXJpZ2h0IDE5OTUtMjAxMCBNYXJrIEFkbGVyICI7CiAvKgogICBJZiB5b3UgdXNlIHRoZSB6bGliIGxpYnJhcnkgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpcyB3ZWxjb21lCiAgIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHlvdXIgcHJvZHVjdC4gSWYgZm9yIHNvbWUgcmVhc29uIHlvdSBjYW5ub3QKQEAgLTY0LDcgKzY0LDcgQEAKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgbGV4dFszMV0gPSB7IC8qIExlbmd0aCBjb2RlcyAyNTcuLjI4NSBleHRyYSAqLwogICAgICAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI5LCAxMjksIDEyOSwgMTI5LAogICAgICAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMyLCAxMzIsIDEzMiwgMTMyLAotICAgICAgICAxMzMsIDEzMywgMTMzLCAxMzMsIDE0NCwgMTk1LCA2Nn07CisgICAgICAgIDEzMywgMTMzLCAxMzMsIDEzMywgMTQ0LCA3NCwgNjV9OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBkYmFzZVszMl0gPSB7IC8qIERpc3RhbmNlIGNvZGVzIDAuLjMxIGJhc2UgKi8KICAgICAgICAgMSwgMiwgMywgNCwgNSwgNywgOSwgMTMsIDE3LCAyNSwgMzMsIDQ5LAogICAgICAgICA2NSwgOTcsIDEyOSwgMTkzLCAyNTcsIDM4NSwgNTEzLCA3NjksIDEwMjUsIDE1MzcsIDIwNDksIDMwNzMsCmRpZmYgLS1naXQgYS9jb250cmliL3Bhc2NhbC96bGlicGFzLnBhcyBiL2NvbnRyaWIvcGFzY2FsL3psaWJwYXMucGFzCmluZGV4IDI4MzgzYmMuLjBiMjE1M2QgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFzY2FsL3psaWJwYXMucGFzCisrKyBiL2NvbnRyaWIvcGFzY2FsL3psaWJwYXMucGFzCkBAIC0xMCw3ICsxMCw3IEBACiBpbnRlcmZhY2UKIAogY29uc3QKLSAgWkxJQl9WRVJTSU9OID0gJzEuMi40LjMnOworICBaTElCX1ZFUlNJT04gPSAnMS4yLjQuNCc7CiAKIHR5cGUKICAgYWxsb2NfZnVuYyA9IGZ1bmN0aW9uKG9wYXF1ZTogUG9pbnRlcjsgaXRlbXMsIHNpemU6IEludGVnZXIpOiBQb2ludGVyOwpkaWZmIC0tZ2l0IGEvY29udHJpYi92c3R1ZGlvL3ZjMTAvemxpYi5yYyBiL2NvbnRyaWIvdnN0dWRpby92YzEwL3psaWIucmMKaW5kZXggNmQ4Y2QzYy4uNjEyNzE0MyAxMDA2NDQKLS0tIGEvY29udHJpYi92c3R1ZGlvL3ZjMTAvemxpYi5yYworKysgYi9jb250cmliL3ZzdHVkaW8vdmMxMC96bGliLnJjCkBAIC0yLDggKzIsOCBAQAogDQogI2RlZmluZSBJRFJfVkVSU0lPTjEgIDENCiBJRFJfVkVSU0lPTjEJVkVSU0lPTklORk8JTU9WRUFCTEUgSU1QVVJFIExPQURPTkNBTEwgRElTQ0FSREFCTEUNCi0gIEZJTEVWRVJTSU9OCSAxLDIsNCwzDQotICBQUk9EVUNUVkVSU0lPTiAxLDIsNCwzDQorICBGSUxFVkVSU0lPTgkgMSwyLDQsNA0KKyAgUFJPRFVDVFZFUlNJT04gMSwyLDQsNA0KICAgRklMRUZMQUdTTUFTSwlWU19GRklfRklMRUZMQUdTTUFTSw0KICAgRklMRUZMQUdTCTANCiAgIEZJTEVPUwlWT1NfRE9TX1dJTkRPV1MzMg0KQEAgLTE3LDcgKzE3LDcgQEAKIA0KICAgICBCRUdJTg0KICAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiemxpYiBkYXRhIGNvbXByZXNzaW9uIGFuZCBaSVAgZmlsZSBJL08gbGlicmFyeVwwIg0KLSAgICAgIFZBTFVFICJGaWxlVmVyc2lvbiIsCSIxLjIuNC4zXDAiDQorICAgICAgVkFMVUUgIkZpbGVWZXJzaW9uIiwJIjEuMi40LjRcMCINCiAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwJInpsaWJcMCINCiAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsCSJ6bGliLmRsbFwwIg0KICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsCSJaTGliLkRMTFwwIg0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvdnN0dWRpby92YzkvemxpYi5yYyBiL2NvbnRyaWIvdnN0dWRpby92YzkvemxpYi5yYwppbmRleCA2ZDhjZDNjLi42MTI3MTQzIDEwMDY0NAotLS0gYS9jb250cmliL3ZzdHVkaW8vdmM5L3psaWIucmMKKysrIGIvY29udHJpYi92c3R1ZGlvL3ZjOS96bGliLnJjCkBAIC0yLDggKzIsOCBAQAogDQogI2RlZmluZSBJRFJfVkVSU0lPTjEgIDENCiBJRFJfVkVSU0lPTjEJVkVSU0lPTklORk8JTU9WRUFCTEUgSU1QVVJFIExPQURPTkNBTEwgRElTQ0FSREFCTEUNCi0gIEZJTEVWRVJTSU9OCSAxLDIsNCwzDQotICBQUk9EVUNUVkVSU0lPTiAxLDIsNCwzDQorICBGSUxFVkVSU0lPTgkgMSwyLDQsNA0KKyAgUFJPRFVDVFZFUlNJT04gMSwyLDQsNA0KICAgRklMRUZMQUdTTUFTSwlWU19GRklfRklMRUZMQUdTTUFTSw0KICAgRklMRUZMQUdTCTANCiAgIEZJTEVPUwlWT1NfRE9TX1dJTkRPV1MzMg0KQEAgLTE3LDcgKzE3LDcgQEAKIA0KICAgICBCRUdJTg0KICAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiemxpYiBkYXRhIGNvbXByZXNzaW9uIGFuZCBaSVAgZmlsZSBJL08gbGlicmFyeVwwIg0KLSAgICAgIFZBTFVFICJGaWxlVmVyc2lvbiIsCSIxLjIuNC4zXDAiDQorICAgICAgVkFMVUUgIkZpbGVWZXJzaW9uIiwJIjEuMi40LjRcMCINCiAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwJInpsaWJcMCINCiAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsCSJ6bGliLmRsbFwwIg0KICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsCSJaTGliLkRMTFwwIg0KZGlmZiAtLWdpdCBhL2RlZmxhdGUuYyBiL2RlZmxhdGUuYwppbmRleCBlZmIyNmJmLi5iNGVkNDlkIDEwMDY0NAotLS0gYS9kZWZsYXRlLmMKKysrIGIvZGVmbGF0ZS5jCkBAIC01Miw3ICs1Miw3IEBACiAjaW5jbHVkZSAiZGVmbGF0ZS5oIgogCiBjb25zdCBjaGFyIGRlZmxhdGVfY29weXJpZ2h0W10gPQotICAgIiBkZWZsYXRlIDEuMi40LjMgQ29weXJpZ2h0IDE5OTUtMjAxMCBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyICI7CisgICAiIGRlZmxhdGUgMS4yLjQuNCBDb3B5cmlnaHQgMTk5NS0yMDEwIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIgIjsKIC8qCiAgIElmIHlvdSB1c2UgdGhlIHpsaWIgbGlicmFyeSBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGlzIHdlbGNvbWUKICAgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgeW91ciBwcm9kdWN0LiBJZiBmb3Igc29tZSByZWFzb24geW91IGNhbm5vdApkaWZmIC0tZ2l0IGEvaW5mdHJlZXMuYyBiL2luZnRyZWVzLmMKaW5kZXggNDMwYjE3NC4uZWQzMjYzMiAxMDA2NDQKLS0tIGEvaW5mdHJlZXMuYworKysgYi9pbmZ0cmVlcy5jCkBAIC05LDcgKzksNyBAQAogI2RlZmluZSBNQVhCSVRTIDE1CiAKIGNvbnN0IGNoYXIgaW5mbGF0ZV9jb3B5cmlnaHRbXSA9Ci0gICAiIGluZmxhdGUgMS4yLjQuMyBDb3B5cmlnaHQgMTk5NS0yMDEwIE1hcmsgQWRsZXIgIjsKKyAgICIgaW5mbGF0ZSAxLjIuNC40IENvcHlyaWdodCAxOTk1LTIwMTAgTWFyayBBZGxlciAiOwogLyoKICAgSWYgeW91IHVzZSB0aGUgemxpYiBsaWJyYXJ5IGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaXMgd2VsY29tZQogICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB5b3VyIHByb2R1Y3QuIElmIGZvciBzb21lIHJlYXNvbiB5b3UgY2Fubm90CkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIDM1LCA0MywgNTEsIDU5LCA2NywgODMsIDk5LCAxMTUsIDEzMSwgMTYzLCAxOTUsIDIyNywgMjU4LCAwLCAwfTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgbGV4dFszMV0gPSB7IC8qIExlbmd0aCBjb2RlcyAyNTcuLjI4NSBleHRyYSAqLwogICAgICAgICAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE3LCAxNywgMTcsIDE3LCAxOCwgMTgsIDE4LCAxOCwKLSAgICAgICAgMTksIDE5LCAxOSwgMTksIDIwLCAyMCwgMjAsIDIwLCAyMSwgMjEsIDIxLCAyMSwgMTYsIDE5NSwgNjZ9OworICAgICAgICAxOSwgMTksIDE5LCAxOSwgMjAsIDIwLCAyMCwgMjAsIDIxLCAyMSwgMjEsIDIxLCAxNiwgNzQsIDY1fTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgZGJhc2VbMzJdID0geyAvKiBEaXN0YW5jZSBjb2RlcyAwLi4yOSBiYXNlICovCiAgICAgICAgIDEsIDIsIDMsIDQsIDUsIDcsIDksIDEzLCAxNywgMjUsIDMzLCA0OSwgNjUsIDk3LCAxMjksIDE5MywKICAgICAgICAgMjU3LCAzODUsIDUxMywgNzY5LCAxMDI1LCAxNTM3LCAyMDQ5LCAzMDczLCA0MDk3LCA2MTQ1LApkaWZmIC0tZ2l0IGEvcW54L3BhY2thZ2UucXBnIGIvcW54L3BhY2thZ2UucXBnCmluZGV4IDU1Y2IzZTEuLjRlZTNhZDMgMTAwNjQ0Ci0tLSBhL3FueC9wYWNrYWdlLnFwZworKysgYi9xbngvcGFja2FnZS5xcGcKQEAgLTI1LDEwICsyNSwxMCBAQAogICAgICAgPFFQRzpGaWxlcz4KICAgICAgICAgIDxRUEc6QWRkIGZpbGU9Ii4uL3pjb25mLmgiIGluc3RhbGw9Ii9vcHQvaW5jbHVkZS8iIHVzZXI9InJvb3Q6c3lzIiBwZXJtaXNzaW9uPSI2NDQiLz4KICAgICAgICAgIDxRUEc6QWRkIGZpbGU9Ii4uL3psaWIuaCIgaW5zdGFsbD0iL29wdC9pbmNsdWRlLyIgdXNlcj0icm9vdDpzeXMiIHBlcm1pc3Npb249IjY0NCIvPgotICAgICAgICAgPFFQRzpBZGQgZmlsZT0iLi4vbGliei5zby4xLjIuNC4zIiBpbnN0YWxsPSIvb3B0L2xpYi8iIHVzZXI9InJvb3Q6YmluIiBwZXJtaXNzaW9uPSI2NDQiLz4KLSAgICAgICAgIDxRUEc6QWRkIGZpbGU9ImxpYnouc28iIGluc3RhbGw9Ii9vcHQvbGliLyIgY29tcG9uZW50PSJkZXYiIGZpbGV0eXBlPSJzeW1saW5rIiBsaW5rdG89ImxpYnouc28uMS4yLjQuMyIvPgotICAgICAgICAgPFFQRzpBZGQgZmlsZT0ibGliei5zby4xIiBpbnN0YWxsPSIvb3B0L2xpYi8iIGZpbGV0eXBlPSJzeW1saW5rIiBsaW5rdG89ImxpYnouc28uMS4yLjQuMyIvPgotICAgICAgICAgPFFQRzpBZGQgZmlsZT0iLi4vbGliei5zby4xLjIuNC4zIiBpbnN0YWxsPSIvb3B0L2xpYi8iIGNvbXBvbmVudD0ic2xpYiIvPgorICAgICAgICAgPFFQRzpBZGQgZmlsZT0iLi4vbGliei5zby4xLjIuNC40IiBpbnN0YWxsPSIvb3B0L2xpYi8iIHVzZXI9InJvb3Q6YmluIiBwZXJtaXNzaW9uPSI2NDQiLz4KKyAgICAgICAgIDxRUEc6QWRkIGZpbGU9ImxpYnouc28iIGluc3RhbGw9Ii9vcHQvbGliLyIgY29tcG9uZW50PSJkZXYiIGZpbGV0eXBlPSJzeW1saW5rIiBsaW5rdG89ImxpYnouc28uMS4yLjQuNCIvPgorICAgICAgICAgPFFQRzpBZGQgZmlsZT0ibGliei5zby4xIiBpbnN0YWxsPSIvb3B0L2xpYi8iIGZpbGV0eXBlPSJzeW1saW5rIiBsaW5rdG89ImxpYnouc28uMS4yLjQuNCIvPgorICAgICAgICAgPFFQRzpBZGQgZmlsZT0iLi4vbGliei5zby4xLjIuNC40IiBpbnN0YWxsPSIvb3B0L2xpYi8iIGNvbXBvbmVudD0ic2xpYiIvPgogICAgICAgPC9RUEc6RmlsZXM+CiAKICAgICAgIDxRUEc6UGFja2FnZUZpbHRlcj4KQEAgLTYzLDcgKzYzLDcgQEAKICAgICAgICAgICAgIDwvUVBNOlByb2R1Y3REZXNjcmlwdGlvbj4KIAogICAgICAgICAgICAgPFFQTTpSZWxlYXNlRGVzY3JpcHRpb24+Ci0gICAgICAgICAgICAgICA8UVBNOlJlbGVhc2VWZXJzaW9uPjEuMi40LjM8L1FQTTpSZWxlYXNlVmVyc2lvbj4KKyAgICAgICAgICAgICAgIDxRUE06UmVsZWFzZVZlcnNpb24+MS4yLjQuNDwvUVBNOlJlbGVhc2VWZXJzaW9uPgogICAgICAgICAgICAgICAgPFFQTTpSZWxlYXNlVXJnZW5jeT5NZWRpdW08L1FQTTpSZWxlYXNlVXJnZW5jeT4KICAgICAgICAgICAgICAgIDxRUE06UmVsZWFzZVN0YWJpbGl0eT5TdGFibGU8L1FQTTpSZWxlYXNlU3RhYmlsaXR5PgogICAgICAgICAgICAgICAgPFFQTTpSZWxlYXNlTm90ZU1pbm9yPjwvUVBNOlJlbGVhc2VOb3RlTWlub3I+CmRpZmYgLS1naXQgYS90cmVlYnVpbGQueG1sIGIvdHJlZWJ1aWxkLnhtbAppbmRleCA2MTZlZDNmLi45MzQ0NDJmIDEwMDY0NAotLS0gYS90cmVlYnVpbGQueG1sCisrKyBiL3RyZWVidWlsZC54bWwKQEAgLTEsNiArMSw2IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiID8+Ci08cGFja2FnZSBuYW1lPSJ6bGliIiB2ZXJzaW9uPSIxLjIuNC4zIj4KLSAgICA8bGlicmFyeSBuYW1lPSJ6bGliIiBkbHZlcnNpb249IjEuMi40LjMiIGRsbmFtZT0ieiI+Cis8cGFja2FnZSBuYW1lPSJ6bGliIiB2ZXJzaW9uPSIxLjIuNC40Ij4KKyAgICA8bGlicmFyeSBuYW1lPSJ6bGliIiBkbHZlcnNpb249IjEuMi40LjQiIGRsbmFtZT0ieiI+CiAJPHByb3BlcnR5IG5hbWU9ImRlc2NyaXB0aW9uIj4gemlwIGNvbXByZXNzaW9uIGxpYnJhcnkgPC9wcm9wZXJ0eT4KIAk8cHJvcGVydHkgbmFtZT0iaW5jbHVkZS10YXJnZXQtZGlyIiB2YWx1ZT0iJChAUEFDS0FHRS9pbnN0YWxsLWluY2x1ZGVkaXIpIiAvPgogCmRpZmYgLS1naXQgYS93aW4zMi9NYWtlZmlsZS5nY2MgYi93aW4zMi9NYWtlZmlsZS5nY2MKaW5kZXggMGUxNjE5MC4uOTNjMjA3ZCAxMDA2NDQKLS0tIGEvd2luMzIvTWFrZWZpbGUuZ2NjCisrKyBiL3dpbjMyL01ha2VmaWxlLmdjYwpAQCAtMjcsNiArMjcsMTEgQEAKIFNIQVJFRExJQiA9IHpsaWIxLmRsbAogSU1QTElCICAgID0gbGliemRsbC5hCiAKKyMKKyMgU2V0IHRvIDEgaWYgc2hhcmVkIG9iamVjdCBuZWVkcyB0byBiZSBpbnN0YWxsZWQKKyMKK1NIQVJFRF9NT0RFPTAKKwogI0xPQyA9IC1EQVNNVgogI0xPQyA9IC1EREVCVUcgLWcKIApAQCAtMzgsNyArNDMsNyBAQAogQVNGTEFHUyA9ICQoTE9DKSAtV2FsbAogCiBMRCA9ICQoQ0MpCi1MREZMQUdTID0gJChMT0MpIC1zCitMREZMQUdTID0gJChMT0MpCiAKIEFSID0gJChQUkVGSVgpYXIKIEFSRkxBR1MgPSByY3MKQEAgLTgyLDQzICs4Nyw1NCBAQAogJChJTVBMSUIpOiAkKFNIQVJFRExJQikKIAogJChTSEFSRURMSUIpOiB3aW4zMi96bGliLmRlZiAkKE9CSlMpICQoT0JKQSkgemxpYnJjLm8KLQkkKENDKSAtc2hhcmVkIC1XbCwtLW91dC1pbXBsaWIsJChJTVBMSUIpIFwKKwkkKENDKSAtc2hhcmVkIC1XbCwtLW91dC1pbXBsaWIsJChJTVBMSUIpICQoTERGTEFHUykgXAogCS1vICRAIHdpbjMyL3psaWIuZGVmICQoT0JKUykgJChPQkpBKSB6bGlicmMubwogCSQoU1RSSVApICRACiAKIGV4YW1wbGUuZXhlOiBleGFtcGxlLm8gJChTVEFUSUNMSUIpCiAJJChMRCkgJChMREZMQUdTKSAtbyAkQCBleGFtcGxlLm8gJChTVEFUSUNMSUIpCisJJChTVFJJUCkgJEAKIAogbWluaWd6aXAuZXhlOiBtaW5pZ3ppcC5vICQoU1RBVElDTElCKQogCSQoTEQpICQoTERGTEFHUykgLW8gJEAgbWluaWd6aXAubyAkKFNUQVRJQ0xJQikKKwkkKFNUUklQKSAkQAogCiBleGFtcGxlX2QuZXhlOiBleGFtcGxlLm8gJChJTVBMSUIpCiAJJChMRCkgJChMREZMQUdTKSAtbyAkQCBleGFtcGxlLm8gJChJTVBMSUIpCisJJChTVFJJUCkgJEAKIAogbWluaWd6aXBfZC5leGU6IG1pbmlnemlwLm8gJChJTVBMSUIpCiAJJChMRCkgJChMREZMQUdTKSAtbyAkQCBtaW5pZ3ppcC5vICQoSU1QTElCKQorCSQoU1RSSVApICRACiAKIHpsaWJyYy5vOiB3aW4zMi96bGliMS5yYwogCSQoUkMpICQoUkNGTEFHUykgLW8gJEAgd2luMzIvemxpYjEucmMKIAogCi0jIElOQ0xVREVfUEFUSCBhbmQgTElCUkFSWV9QQVRIIG11c3QgYmUgc2V0LgorIyBCSU5BUllfUEFUSCwgSU5DTFVERV9QQVRIIGFuZCBMSUJSQVJZX1BBVEggbXVzdCBiZSBzZXQuCiAKIC5QSE9OWTogaW5zdGFsbCB1bmluc3RhbGwgY2xlYW4KIAotaW5zdGFsbDogemxpYi5oIHpjb25mLmggJChMSUIpCitpbnN0YWxsOiB6bGliLmggemNvbmYuaCAkKFNUQVRJQ0xJQikgJChJTVBMSUIpCisJLWlmIFsgIiQoU0hBUkVEX01PREUpIiA9ICIxIiBdOyB0aGVuIFwKKwkJbWtkaXIgLXAgJChCSU5BUllfUEFUSCk7IFwKKwkJJChJTlNUQUxMKSAkKFNIQVJFRExJQikgJChCSU5BUllfUEFUSCk7IFwKKwkJJChJTlNUQUxMKSAkKElNUExJQikgJChMSUJSQVJZX1BBVEgpOyBcCisJZmkKIAktQG1rZGlyIC1wICQoSU5DTFVERV9QQVRIKQogCS1AbWtkaXIgLXAgJChMSUJSQVJZX1BBVEgpCiAJLSQoSU5TVEFMTCkgemxpYi5oICQoSU5DTFVERV9QQVRIKQogCS0kKElOU1RBTEwpIHpjb25mLmggJChJTkNMVURFX1BBVEgpCiAJLSQoSU5TVEFMTCkgJChTVEFUSUNMSUIpICQoTElCUkFSWV9QQVRIKQotCS0kKElOU1RBTEwpICQoSU1QTElCKSAkKExJQlJBUllfUEFUSCkKIAogdW5pbnN0YWxsOgorCS1pZiBbICIkKFNIQVJFRF9NT0RFKSIgPSAiMSIgXTsgdGhlbiBcCisJCSQoUk0pICQoQklOQVJZX1BBVEgpLyQoU0hBUkVETElCKTsgXAorCQkkKFJNKSAkKExJQlJBUllfUEFUSCkvJChJTVBMSUIpOyBcCisJZmkKIAktJChSTSkgJChJTkNMVURFX1BBVEgpL3psaWIuaAogCS0kKFJNKSAkKElOQ0xVREVfUEFUSCkvemNvbmYuaAogCS0kKFJNKSAkKExJQlJBUllfUEFUSCkvJChTVEFUSUNMSUIpCi0JLSQoUk0pICQoTElCUkFSWV9QQVRIKS8kKElNUExJQikKIAogY2xlYW46CiAJLSQoUk0pICQoU1RBVElDTElCKQpkaWZmIC0tZ2l0IGEvemNvbmYuaCBiL3pjb25mLmgKaW5kZXggMTk4ODkyMC4uZjVhNmM4NyAxMDA2NDQKLS0tIGEvemNvbmYuaAorKysgYi96Y29uZi5oCkBAIC0zMTUsNyArMzE1LDcgQEAKICMgIGVuZGlmCiAjZW5kaWYKIAotI2lmZGVmIEhBVkVfVklTSUJJTElUWV9QUkFHTUEKKyNpZm5kZWYgTk9fVklaCiAjICBkZWZpbmUgWkVYVEVSTiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5ICgiZGVmYXVsdCIpKSkgZXh0ZXJuCiAjZW5kaWYKIApAQCAtMzY4LDYgKzM2OCwxNiBAQAogIyAgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ICAgIC8qIGZvciBvZmZfdCAqLwogI2VuZGlmCiAKKy8qIGEgbGl0dGxlIHRyaWNrIHRvIGFjY29tbW9kYXRlIGJvdGggIiNkZWZpbmUgX0xBUkdFRklMRTY0X1NPVVJDRSIgYW5kCisgKiAiI2RlZmluZSBfTEFSR0VGSUxFNjRfU09VUkNFIDEiIGFzIHJlcXVlc3RpbmcgNjQtYml0IG9wZXJhdGlvbnMsIChldmVuCisgKiB0aG91Z2ggdGhlIGZvcm1lciBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBMRlMgZG9jdW1lbnQpLCBidXQgY29uc2lkZXJpbmcKKyAqIGJvdGggIiN1bmRlZiBfTEFSR0VGSUxFNjRfU09VUkNFIiBhbmQgIiNkZWZpbmUgX0xBUkdFRklMRTY0X1NPVVJDRSAwIiBhcworICogZXF1aXZhbGVudGx5IHJlcXVlc3Rpbmcgbm8gNjQtYml0IG9wZXJhdGlvbnMKKyAqLworI2lmIC1fTEFSR0VGSUxFNjRfU09VUkNFIC0gLTEgPT0gMQorIyAgdW5kZWYgX0xBUkdFRklMRTY0X1NPVVJDRQorI2VuZGlmCisKICNpZiBkZWZpbmVkKFpfSEFWRV9VTklTVERfSCkgfHwgZGVmaW5lZChfTEFSR0VGSUxFNjRfU09VUkNFKQogIyAgaW5jbHVkZSA8dW5pc3RkLmg+ICAgICAgIC8qIGZvciBTRUVLXyogYW5kIG9mZl90ICovCiAjICBpZmRlZiBWTVMKZGlmZiAtLWdpdCBhL3pjb25mLmguY21ha2VpbiBiL3pjb25mLmguY21ha2VpbgppbmRleCBjZjljYzI0Li4xOGRkNzcwIDEwMDY0NAotLS0gYS96Y29uZi5oLmNtYWtlaW4KKysrIGIvemNvbmYuaC5jbWFrZWluCkBAIC0zMTcsNyArMzE3LDcgQEAKICMgIGVuZGlmCiAjZW5kaWYKIAotI2lmZGVmIEhBVkVfVklTSUJJTElUWV9QUkFHTUEKKyNpZm5kZWYgTk9fVklaCiAjICBkZWZpbmUgWkVYVEVSTiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5ICgiZGVmYXVsdCIpKSkgZXh0ZXJuCiAjZW5kaWYKIApAQCAtMzcwLDYgKzM3MCwxNiBAQAogIyAgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ICAgIC8qIGZvciBvZmZfdCAqLwogI2VuZGlmCiAKKy8qIGEgbGl0dGxlIHRyaWNrIHRvIGFjY29tbW9kYXRlIGJvdGggIiNkZWZpbmUgX0xBUkdFRklMRTY0X1NPVVJDRSIgYW5kCisgKiAiI2RlZmluZSBfTEFSR0VGSUxFNjRfU09VUkNFIDEiIGFzIHJlcXVlc3RpbmcgNjQtYml0IG9wZXJhdGlvbnMsIChldmVuCisgKiB0aG91Z2ggdGhlIGZvcm1lciBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBMRlMgZG9jdW1lbnQpLCBidXQgY29uc2lkZXJpbmcKKyAqIGJvdGggIiN1bmRlZiBfTEFSR0VGSUxFNjRfU09VUkNFIiBhbmQgIiNkZWZpbmUgX0xBUkdFRklMRTY0X1NPVVJDRSAwIiBhcworICogZXF1aXZhbGVudGx5IHJlcXVlc3Rpbmcgbm8gNjQtYml0IG9wZXJhdGlvbnMKKyAqLworI2lmIC1fTEFSR0VGSUxFNjRfU09VUkNFIC0gLTEgPT0gMQorIyAgdW5kZWYgX0xBUkdFRklMRTY0X1NPVVJDRQorI2VuZGlmCisKICNpZiBkZWZpbmVkKFpfSEFWRV9VTklTVERfSCkgfHwgZGVmaW5lZChfTEFSR0VGSUxFNjRfU09VUkNFKQogIyAgaW5jbHVkZSA8dW5pc3RkLmg+ICAgICAgIC8qIGZvciBTRUVLXyogYW5kIG9mZl90ICovCiAjICBpZmRlZiBWTVMKZGlmZiAtLWdpdCBhL3pjb25mLmguaW4gYi96Y29uZi5oLmluCmluZGV4IDE5ODg5MjAuLmY1YTZjODcgMTAwNjQ0Ci0tLSBhL3pjb25mLmguaW4KKysrIGIvemNvbmYuaC5pbgpAQCAtMzE1LDcgKzMxNSw3IEBACiAjICBlbmRpZgogI2VuZGlmCiAKLSNpZmRlZiBIQVZFX1ZJU0lCSUxJVFlfUFJBR01BCisjaWZuZGVmIE5PX1ZJWgogIyAgZGVmaW5lIFpFWFRFUk4gX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSAoImRlZmF1bHQiKSkpIGV4dGVybgogI2VuZGlmCiAKQEAgLTM2OCw2ICszNjgsMTYgQEAKICMgIGluY2x1ZGUgPHN5cy90eXBlcy5oPiAgICAvKiBmb3Igb2ZmX3QgKi8KICNlbmRpZgogCisvKiBhIGxpdHRsZSB0cmljayB0byBhY2NvbW1vZGF0ZSBib3RoICIjZGVmaW5lIF9MQVJHRUZJTEU2NF9TT1VSQ0UiIGFuZAorICogIiNkZWZpbmUgX0xBUkdFRklMRTY0X1NPVVJDRSAxIiBhcyByZXF1ZXN0aW5nIDY0LWJpdCBvcGVyYXRpb25zLCAoZXZlbgorICogdGhvdWdoIHRoZSBmb3JtZXIgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgTEZTIGRvY3VtZW50KSwgYnV0IGNvbnNpZGVyaW5nCisgKiBib3RoICIjdW5kZWYgX0xBUkdFRklMRTY0X1NPVVJDRSIgYW5kICIjZGVmaW5lIF9MQVJHRUZJTEU2NF9TT1VSQ0UgMCIgYXMKKyAqIGVxdWl2YWxlbnRseSByZXF1ZXN0aW5nIG5vIDY0LWJpdCBvcGVyYXRpb25zCisgKi8KKyNpZiAtX0xBUkdFRklMRTY0X1NPVVJDRSAtIC0xID09IDEKKyMgIHVuZGVmIF9MQVJHRUZJTEU2NF9TT1VSQ0UKKyNlbmRpZgorCiAjaWYgZGVmaW5lZChaX0hBVkVfVU5JU1REX0gpIHx8IGRlZmluZWQoX0xBUkdFRklMRTY0X1NPVVJDRSkKICMgIGluY2x1ZGUgPHVuaXN0ZC5oPiAgICAgICAvKiBmb3IgU0VFS18qIGFuZCBvZmZfdCAqLwogIyAgaWZkZWYgVk1TCmRpZmYgLS1naXQgYS96bGliLjMgYi96bGliLjMKaW5kZXggYjUzNDYxNi4uODU3ZGJkOSAxMDA2NDQKLS0tIGEvemxpYi4zCisrKyBiL3psaWIuMwpAQCAtMSw0ICsxLDQgQEAKLS5USCBaTElCIDMgIjEwIEFwciAyMDEwIgorLlRIIFpMSUIgMyAiMTggQXByIDIwMTAiCiAuU0ggTkFNRQogemxpYiBcLSBjb21wcmVzc2lvbi9kZWNvbXByZXNzaW9uIGxpYnJhcnkKIC5TSCBTWU5PUFNJUwpAQCAtMTI1LDcgKzEyNSw3IEBACiBTZW5kIHF1ZXN0aW9ucyBhbmQvb3IgY29tbWVudHMgdG8gemxpYkBnemlwLm9yZywKIG9yIChmb3IgdGhlIFdpbmRvd3MgRExMIHZlcnNpb24pIHRvIEdpbGxlcyBWb2xsYW50IChpbmZvQHdpbmltYWdlLmNvbSkuCiAuU0ggQVVUSE9SUwotVmVyc2lvbiAxLjIuNC4zCitWZXJzaW9uIDEuMi40LjQKIENvcHlyaWdodCAoQykgMTk5NS0yMDEwIEplYW4tbG91cCBHYWlsbHkgKGpsb3VwQGd6aXAub3JnKQogYW5kIE1hcmsgQWRsZXIgKG1hZGxlckBhbHVtbmkuY2FsdGVjaC5lZHUpLgogLkxQCmRpZmYgLS1naXQgYS96bGliLjMucGRmIGIvemxpYi4zLnBkZgppbmRleCA1ODRmNzkzLi4zNjRhZWIwIDEwMDY0NAotLS0gYS96bGliLjMucGRmCisrKyBiL3psaWIuMy5wZGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvemxpYi5oIGIvemxpYi5oCmluZGV4IDY5OTYzMGMuLjY3MGZmZjEgMTAwNjQ0Ci0tLSBhL3psaWIuaAorKysgYi96bGliLmgKQEAgLTEsNSArMSw1IEBACiAvKiB6bGliLmggLS0gaW50ZXJmYWNlIG9mIHRoZSAnemxpYicgZ2VuZXJhbCBwdXJwb3NlIGNvbXByZXNzaW9uIGxpYnJhcnkKLSAgdmVyc2lvbiAxLjIuNC4zLCBBcHJpbCAxMHRoLCAyMDEwCisgIHZlcnNpb24gMS4yLjQuNCwgQXByaWwgMTh0aCwgMjAxMAogCiAgIENvcHlyaWdodCAoQykgMTk5NS0yMDEwIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKIApAQCAtMzcsMTIgKzM3LDEyIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0jZGVmaW5lIFpMSUJfVkVSU0lPTiAiMS4yLjQuMyIKLSNkZWZpbmUgWkxJQl9WRVJOVU0gMHgxMjQzCisjZGVmaW5lIFpMSUJfVkVSU0lPTiAiMS4yLjQuNCIKKyNkZWZpbmUgWkxJQl9WRVJOVU0gMHgxMjQ0CiAjZGVmaW5lIFpMSUJfVkVSX01BSk9SIDEKICNkZWZpbmUgWkxJQl9WRVJfTUlOT1IgMgogI2RlZmluZSBaTElCX1ZFUl9SRVZJU0lPTiA0Ci0jZGVmaW5lIFpMSUJfVkVSX1NVQlJFVklTSU9OIDMKKyNkZWZpbmUgWkxJQl9WRVJfU1VCUkVWSVNJT04gNAogCiAvKgogICAgIFRoZSAnemxpYicgY29tcHJlc3Npb24gbGlicmFyeSBwcm92aWRlcyBpbi1tZW1vcnkgY29tcHJlc3Npb24gYW5kCmRpZmYgLS1naXQgYS96bGliLnBjLmluIGIvemxpYi5wYy5pbgppbmRleCBiNGY5OGU1Li43ZTVhY2Y5IDEwMDY0NAotLS0gYS96bGliLnBjLmluCisrKyBiL3psaWIucGMuaW4KQEAgLTEsNiArMSw3IEBACiBwcmVmaXg9QHByZWZpeEAKIGV4ZWNfcHJlZml4PUBleGVjX3ByZWZpeEAKIGxpYmRpcj1AbGliZGlyQAorc2hhcmVkbGliZGlyPUBzaGFyZWRsaWJkaXJACiBpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAogCiBOYW1lOiB6bGliCkBAIC04LDUgKzksNSBAQAogVmVyc2lvbjogQFZFUlNJT05ACiAKIFJlcXVpcmVzOgotTGliczogLUwke2xpYmRpcn0gLWx6CitMaWJzOiAtTCR7bGliZGlyfSAtTCR7c2hhcmVkbGliZGlyfSAtbHoKIENmbGFnczogLUkke2luY2x1ZGVkaXJ9Cg==