ZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQppbmRleCAxNWQ5NTRkLi5lYTE0NjJhIDEwMDY0NAotLS0gYS9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL01ha2VmaWxlCkBAIC0xNTI0LDYgKzE1MjQsNyBAQAogCSQoVENMX1BSTykKIAogSUNPTl9BUFAgPSBndWlfbWFjLmljbnMKK0lDT05fRE9DVFhUID0gZG9jLXR4dC5pY25zCiAKIFBST19NQU5VQUwgPSBvc19hbWlnYS5wcm8gb3NfbXNkb3MucHJvIG9zX3dpbjE2LnBybyBvc193aW4zMi5wcm8gXAogCW9zX21zd2luLnBybyBvc19iZW9zLnBybyBvc192bXMucHJvIG9zX3Jpc2Nvcy5wcm8gJChQRVJMX1BSTykKQEAgLTIxNjMsNyArMjE2NCw3IEBACiAJY2QgJChTSEFET1dESVIpL3h4ZDsgbG4gLXMgLi4vLi4veHhkLyouW2NoXSAuLi8uLi94eGQvTWFrZSogLgogCWlmIHRlc3QgLWYgJChJQ09OX0FQUCk7IHRoZW4gXAogCQljZCAkKFNIQURPV0RJUik7IFwKLQkJbG4gLXMgLi4vJChJQ09OX0FQUCkgLi4vb3NfbWFjLnJzci5ocXggLi4vZGVocXgucHkgLjsgXAorCQlsbiAtcyAuLi8kKElDT05fQVBQKSAuLi8kKElDT05fRE9DVFhUKSAuLi9vc19tYWMucnNyLmhxeCAuLi9kZWhxeC5weSAuOyBcCiAJZmkKIAlta2RpciAkKFNIQURPV0RJUikvdGVzdGRpcgogCWNkICQoU0hBRE9XRElSKS90ZXN0ZGlyOyBsbiAtcyAuLi8uLi90ZXN0ZGlyL01ha2VmaWxlIFwKQEAgLTI1MjgsNyArMjUyOSw3IEBACiAJCS1EQVBQX1ZFUj0kKFZFUlNJT04pIC1ESUNPTl9BUFA9JChJQ09OX0FQUCkKIAogIyMjIEljb25zCi1JQ09OUyA9ICQoUkVTRElSKS8kKElDT05fQVBQKQorSUNPTlMgPSAkKFJFU0RJUikvJChJQ09OX0FQUCkgJChSRVNESVIpLyQoSUNPTl9ET0NUWFQpCiAKICMgSWYgeW91IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmVzIHRoZSAqLmljbnMgaW4gdGhlIHNyYyBkaXJlY3Rvcnkgd2lsbCBiZQogIyBkZXRlY3RlZCBieSB0aGlzIE1ha2VmaWxlIGF1dG9tYXRpY2FsbHksIGFuZCB1c2VkIGZvciBWaW0uCmRpZmYgLS1naXQgYS9zcmMvYXV0by9jb25maWd1cmUgYi9zcmMvYXV0by9jb25maWd1cmUKaW5kZXggZjExNzhmOC4uMmVlYTRhZiAxMDA3NTUKLS0tIGEvc3JjL2F1dG8vY29uZmlndXJlCisrKyBiL3NyYy9hdXRvL2NvbmZpZ3VyZQpAQCAtMzM5NSw2ICszMzk1LDggQEAKIAkJaWYgdGVzdCB4JHByZWZpeCA9IHhOT05FOyB0aGVuCiAJICBwcmVmaXg9L0FwcGxpY2F0aW9ucwogCWZpCisKKwkJZGF0YWRpcj0nJHtwcmVmaXh9L1ZpbS5hcHAvQ29udGVudHMvUmVzb3VyY2VzJwogICAgICAgZmkKICAgICBmaQogICBmaQpkaWZmIC0tZ2l0IGEvc3JjL2NvbmZpZ3VyZS5pbiBiL3NyYy9jb25maWd1cmUuaW4KaW5kZXggMjU2OGZjMy4uMmE3MWY0MiAxMDA2NDQKLS0tIGEvc3JjL2NvbmZpZ3VyZS5pbgorKysgYi9zcmMvY29uZmlndXJlLmluCkBAIC0xNjUsNiArMTY1LDkgQEAKIAlpZiB0ZXN0IHgkcHJlZml4ID0geE5PTkU7IHRoZW4KIAkgIHByZWZpeD0vQXBwbGljYXRpb25zCiAJZmkKKworCWRubCBTb3JyeSBmb3IgdGhlIGhhcmQgY29kZWQgZGVmYXVsdAorCWRhdGFkaXI9JyR7cHJlZml4fS9WaW0uYXBwL0NvbnRlbnRzL1Jlc291cmNlcycKICAgICAgIGZpCiAgICAgZmkKICAgZmkKZGlmZiAtLWdpdCBhL3NyYy9kb2MtdHh0LmljbnMgYi9zcmMvZG9jLXR4dC5pY25zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZDExZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvZG9jLXR4dC5pY25zCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9lZGl0LmMgYi9zcmMvZWRpdC5jCmluZGV4IGMyMmJiMzkuLjUxNTlhMzQgMTAwNjQ0Ci0tLSBhL3NyYy9lZGl0LmMKKysrIGIvc3JjL2VkaXQuYwpAQCAtNzI2LDggKzcyNiw4IEBACiAJCSAgICBjb250aW51ZTsKIAkJfQogCi0JCS8qIFByZXNzaW5nIEVudGVyIHNlbGVjdHMgdGhlIGN1cnJlbnQgbWF0Y2guICovCi0JCWlmIChjID09IENBUiB8fCBjID09IEtfS0VOVEVSIHx8IGMgPT0gTkwpCisJCS8qIFByZXNzaW5nIENUUkwtWSBzZWxlY3RzIHRoZSBjdXJyZW50IG1hdGNoLiAqLworCQlpZiAoYyA9PSBDdHJsX1kpCiAJCXsKIAkJICAgIGluc19jb21wbF9kZWxldGUoKTsKIAkJICAgIGluc19jb21wbF9pbnNlcnQoKTsKQEAgLTMyNzQsMTEgKzMyNzQsMjMgQEAKIAogCSAgICBhdXRvX2Zvcm1hdChGQUxTRSwgVFJVRSk7CiAKLQkgICAgLyogaWYgdGhlIHBvcHVwIG1lbnUgaXMgZGlzcGxheWVkIGhpdHRpbmcgRW50ZXIgbWVhbnMgYWNjZXB0aW5nCisJICAgIC8qIElmIHRoZSBwb3B1cCBtZW51IGlzIGRpc3BsYXllZCBwcmVzc2luZyBDVFJMLVkgbWVhbnMgYWNjZXB0aW5nCiAJICAgICAqIHRoZSBzZWxlY3Rpb24gd2l0aG91dCBpbnNlcnRpbmcgYW55dGhpbmcuICovCi0JICAgIGlmICgoYyA9PSBDQVIgfHwgYyA9PSBLX0tFTlRFUiB8fCBjID09IE5MKSAmJiBwdW1fdmlzaWJsZSgpKQorCSAgICBpZiAoYyA9PSBDdHJsX1kgJiYgcHVtX3Zpc2libGUoKSkKIAkJcmV0dmFsID0gVFJVRTsKIAorCSAgICAvKiBDVFJMLUUgbWVhbnMgY29tcGxldGlvbiBpcyBFbmRlZCwgZ28gYmFjayB0byB0aGUgdHlwZWQgdGV4dC4gKi8KKwkgICAgaWYgKGMgPT0gQ3RybF9FKQorCSAgICB7CisJCWluc19jb21wbF9kZWxldGUoKTsKKwkJaWYgKGNvbXBsX2xlYWRlciAhPSBOVUxMKQorCQkgICAgaW5zX2J5dGVzKGNvbXBsX2xlYWRlciArIGN1cndpbi0+d19jdXJzb3IuY29sIC0gY29tcGxfY29sKTsKKwkJZWxzZSBpZiAoY29tcGxfZmlyc3RfbWF0Y2ggIT0gTlVMTCkKKwkJICAgIGluc19ieXRlcyhjb21wbF9maXJzdF9tYXRjaC0+Y3Bfc3RyCisJCQkJCSAgKyBjdXJ3aW4tPndfY3Vyc29yLmNvbCAtIGNvbXBsX2NvbCk7CisJCXJldHZhbCA9IFRSVUU7CisJICAgIH0KKwogCSAgICBpbnNfY29tcGxfZnJlZSgpOwogCSAgICBjb21wbF9zdGFydGVkID0gRkFMU0U7CiAJICAgIGNvbXBsX21hdGNoZXMgPSAwOwpkaWZmIC0tZ2l0IGEvc3JjL2V4X2NtZHMuYyBiL3NyYy9leF9jbWRzLmMKaW5kZXggZTBjODJjMy4uOWU4OTM5MiAxMDA2NDQKLS0tIGEvc3JjL2V4X2NtZHMuYworKysgYi9zcmMvZXhfY21kcy5jCkBAIC0zMjQwLDYgKzMyNDAsNyBAQAogCQkgICAgYnVmX2NvcHlfb3B0aW9ucyhidWYsIEJDT19FTlRFUik7CiAKIAkJLyogY2xvc2UgdGhlIGxpbmsgdG8gdGhlIGN1cnJlbnQgYnVmZmVyICovCisJCXVfc3luYygpOwogCQljbG9zZV9idWZmZXIoY3Vyd2luLCBjdXJidWYsCiAJCQkJICAgICAgKGZsYWdzICYgRUNNRF9ISURFKSA/IDAgOiBET0JVRl9VTkxPQUQpOwogCkBAIC01MTg1LDcgKzUxODYsOCBAQAogICogUmV0dXJuIFRSVUUgd2hlbiBpdCB3YXMgY3JlYXRlZC4KICAqLwogICAgIGludAotcHJlcGFyZV90YWdwcmV2aWV3KCkKK3ByZXBhcmVfdGFncHJldmlldyh1bmRvX3N5bmMpCisgICAgaW50CQl1bmRvX3N5bmM7CS8qIHN5bmMgdW5kbyB3aGVuIGxlYXZpbmcgdGhlIHdpbmRvdyAqLwogewogICAgIHdpbl9UCSp3cDsKIApAQCAtNTIwMiw3ICs1MjA0LDcgQEAKIAkgICAgaWYgKHdwLT53X3BfcHZ3KQogCQlicmVhazsKIAlpZiAod3AgIT0gTlVMTCkKLQkgICAgd2luX2VudGVyKHdwLCBUUlVFKTsKKwkgICAgd2luX2VudGVyKHdwLCB1bmRvX3N5bmMpOwogCWVsc2UKIAl7CiAJICAgIC8qCmRpZmYgLS1naXQgYS9zcmMvZ3VpX21hYy5jIGIvc3JjL2d1aV9tYWMuYwppbmRleCAwYWNjM2RiLi40MjBmMTZjIDEwMDY0NAotLS0gYS9zcmMvZ3VpX21hYy5jCisrKyBiL3NyYy9ndWlfbWFjLmMKQEAgLTEwNjYsNiArMTA2NiwxMSBAQAogCSAgICBlbHNlCiAJCWFsaXN0X2FkZCgmZ2xvYmFsX2FsaXN0LCBwLCAyKTsKIAl9CisKKwkvKiBDaGFuZ2UgZGlyZWN0b3J5IHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgZmlyc3QgZmlsZS4gKi8KKwlpZiAoR0FSR0NPVU5UID4gMCAmJiB2aW1fY2hkaXJmaWxlKGFsaXN0X25hbWUoJkdBUkdMSVNUWzBdKSkgPT0gT0spCisJICAgIHNob3J0ZW5fZm5hbWVzKFRSVUUpOworCiAJZ290byBmaW5pc2hlZDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3NyYy9ndWlfdzQ4LmMgYi9zcmMvZ3VpX3c0OC5jCmluZGV4IGM0Y2UwYmMuLjhiNDY4NGEgMTAwNjQ0Ci0tLSBhL3NyYy9ndWlfdzQ4LmMKKysrIGIvc3JjL2d1aV93NDguYwpAQCAtMTEyMSw4ICsxMTIxLDcgQEAKIAkgICAgdG9wID0gVE9PTEJBUl9CVVRUT05fSEVJR0hUICsgVE9PTEJBUl9CT1JERVJfSEVJR0hUOwogI2VuZGlmCiAKLQlHZXRXaW5kb3dSZWN0KHNfaHduZCwgJnJlY3QpOwotCVNldFJlY3QoJnJlY3QsIDAsIHRvcCwgcmVjdC5yaWdodCwgVEFCTElORV9IRUlHSFQpOworCVNldFJlY3QoJnJlY3QsIDAsIHRvcCwgdywgVEFCTElORV9IRUlHSFQpOwogCVRhYkN0cmxfQWRqdXN0UmVjdChzX3RhYmh3bmQsIFRSVUUsICZyZWN0KTsKIAlNb3ZlV2luZG93KHNfdGFiaHduZCwgMCwgdG9wLCByZWN0LnJpZ2h0LCByZWN0LmJvdHRvbSwgVFJVRSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL21haW4uYyBiL3NyYy9tYWluLmMKaW5kZXggYWZmOGIzZi4uMzJmOTExNSAxMDA2NDQKLS0tIGEvc3JjL21haW4uYworKysgYi9zcmMvbWFpbi5jCkBAIC00NDksNyArNDQ5LDI0IEBACiAgICAgICogbWVzc2FnZSBib3guICBpc2F0dHkoMikgcmV0dXJucyBUUlVFIGFueXdheSwgdGh1cyB3ZSBuZWVkIHRvIGNoZWNrIHRoZQogICAgICAqIG5hbWUgdG8ga25vdyB3ZSdyZSBub3Qgc3RhcnRlZCBmcm9tIGEgdGVybWluYWwuICovCiAgICAgaWYgKGd1aS5zdGFydGluZyAmJiAoIWlzYXR0eSgyKSB8fCBzdHJjbXAoIi9kZXYvY29uc29sZSIsIHR0eW5hbWUoMikpID09IDApKQorICAgIHsKIAlwYXJhbXMud2FudF9mdWxsX3NjcmVlbiA9IEZBTFNFOworCisJLyogQXZvaWQgYWx3YXlzIHVzaW5nICIvIiBhcyB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBOb3RlIHRoYXQgd2hlbgorCSAqIHN0YXJ0ZWQgZnJvbSBGaW5kZXIgdGhlIGFyZ2xpc3Qgd2lsbCBiZSBmaWxsZWQgbGF0ZXIgaW4KKwkgKiBIYW5kbGVPRG9jQUUoKSBhbmQgImZuYW1lIiB3aWxsIGJlIE5VTEwuICovCisJaWYgKGdldGN3ZCgoY2hhciAqKU5hbWVCdWZmLCBNQVhQQVRITCkgIT0gTlVMTAorCQkJCQkJJiYgU1RSQ01QKE5hbWVCdWZmLCAiLyIpID09IDApCisJeworCSAgICBpZiAoZm5hbWUgIT0gTlVMTCkKKwkJKHZvaWQpdmltX2NoZGlyZmlsZShmbmFtZSk7CisJICAgIGVsc2UKKwkgICAgeworCQlleHBhbmRfZW52KChjaGFyX3UgKikiJEhPTUUiLCBOYW1lQnVmZiwgTUFYUEFUSEwpOworCQl2aW1fY2hkaXIoTmFtZUJ1ZmYpOworCSAgICB9CisJfQorICAgIH0KICNlbmRpZgogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3NyYy9wby9qYS5wbyBiL3NyYy9wby9qYS5wbwppbmRleCBlNDZmNTg1Li5kYjZiZWRkIDEwMDY0NAotLS0gYS9zcmMvcG8vamEucG8KKysrIGIvc3JjL3BvL2phLnBvCkBAIC00LDEzICs0LDEzIEBACiAjIERvICI6aGVscCBjcmVkaXRzIiBpbiBWaW0gdG8gc2VlIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkLgogIwogIyBNVVJBT0tBIFRhcm8gPGtvcm9uQHRrYS5hdHQubmUuanA+LCAyMDAxLTYuCi0jIExhc3QgQ2hhbmdlOiAwNS1GZWItMjAwNi4KKyMgTGFzdCBDaGFuZ2U6IDI4LU1hci0yMDA2LgogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogVmltIDcuMFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA2LTAyLTA0IDIyOjQ0KzA5MDBcbiIKLSJQTy1SZXZpc2lvbi1EYXRlOiAyMDA2LTAyLTA1IDAwOjEwKzA5MDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNi0wMy0yOCAyMDoxMiswOTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wMy0yOCAyMToxMCswOTAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBNVVJBT0tBIFRhcm8gPGtvcm9uQHRrYS5hdHQubmUuanA+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogTVVSQU9LQSBUYXJvIDxrb3JvbkB0a2EuYXR0Lm5lLmpwPlxuIgogIk1JTUUtVmVyc2lvbjogMS4wXG4iCkBAIC0xMzAsNyArMTMwLDcgQEAKIG1zZ2lkICJoZWxwIgogbXNnc3RyICKl2KXrpdciCiAKLW1zZ2lkICJbaGVscF0iCittc2dpZCAiW0hlbHBdIgogbXNnc3RyICJbpdil66XXXSIKIAogbXNnaWQgIltQcmV2aWV3XSIKQEAgLTE1NSw4ICsxNTUsOCBAQAogbXNnaWQgIltMb2NhdGlvbiBMaXN0XSIKIG1zZ3N0ciAiW77sveql6qW5pchdIgogCi1tc2dpZCAiW0Vycm9yIExpc3RdIgotbXNnc3RyICJbpail6aG8peqluaXIXSIKK21zZ2lkICJbUXVpY2tmaXggTGlzdF0iCittc2dzdHIgIltRdWlja2ZpeKXqpbmlyF0iCiAKIG1zZ2lkICIiCiAiXG4iCkBAIC00ODksNiArNDg5LDkgQEAKIG1zZ2lkICJFNjk5OiBUb28gbWFueSBhcmd1bWVudHMiCiBtc2dzdHIgIkU2OTk6IKSswr+y4aSupN6kuSIKIAorbXNnaWQgIkU3ODU6IGNvbXBsZXRlKCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBJbnNlcnQgbW9kZSIKK21zZ3N0ciAiRTc4NTogY29tcGxldGUoKSCkz8Hexv6l4qG8pcmkx6S3pKvN+M3RpMekraTepLuk8yIKKwogIy4KICMuICogWWVzIHRoaXMgaXMgdWdseSwgSSBkb24ndCBwYXJ0aWN1bGFybHkgbGlrZSBpdCBlaXRoZXIuICBCdXQgZG9pbmcgaXQKICMuICogdGhpcyB3YXkgaGFzIHRoZSBjb21wZWxsaW5nIGFkdmFudGFnZSB0aGF0IHRyYW5zbGF0aW9ucyBuZWVkIG5vdCB0bwpAQCAtMTAyMSw2ICsxMDI0LDIxIEBACiBtc2dpZCAiZmluaXNoZWQgc291cmNpbmcgJXMiCiBtc2dzdHIgIiVzIKTOvOi5/qTytLDOuyIKIAorbXNnaWQgIm1vZGVsaW5lIgorbXNnc3RyICKl4qG8pcm51CIKKworbXNnaWQgIi0tY21kIGFyZ3VtZW50IgorbXNnc3RyICItLWNtZCCw+r/0IgorCittc2dpZCAiLWMgYXJndW1lbnQiCittc2dzdHIgIi1jILD6v/QiCisKK21zZ2lkICJlbnZpcm9ubWVudCB2YXJpYWJsZSIKK21zZ3N0ciAitMS2rcrRv/QiCisKK21zZ2lkICJlcnJvciBoYW5kbGVyIgorbXNnc3RyICKlqKXpobylz6Xzpcml6SIKKwogbXNnaWQgIlcxNTogV2FybmluZzogV3JvbmcgbGluZSBzZXBhcmF0b3IsIF5NIG1heSBiZSBtaXNzaW5nIgogbXNnc3RyICJXMTU6ILfZufA6ILnUtujA2qSsydTAtaTHpLkuIF5NIKSspMqkpKTOpMekt6TnpKYiCiAKQEAgLTExNTEsOSArMTE2OSwxOSBAQAogbXNnaWQgIkdyZWV0aW5ncywgVmltIHVzZXIhIgogbXNnc3RyICJWaW0gu8ikpKS1pPOhoqTkpKIhIgogCittc2dpZCAiRTc4NDogQ2Fubm90IGNsb3NlIGxhc3QgdGFiIHBhZ2UiCittc2dzdHIgIkU3ODQ6ILrHuOWkzqW/pdal2qG8pbik8srEpLik66SzpMikz6THpK2k3qS7pPMiCisKK21zZ2lkICJBbHJlYWR5IG9ubHkgb25lIHRhYiBwYWdlIgorbXNnc3RyICK0+6TLpb+l1qXaobyluKTPMaTEpLekq6SipOqk3qS7pPMiCisKIG1zZ2lkICJFZGl0IEZpbGUgaW4gbmV3IHdpbmRvdyIKIG1zZ3N0ciAiv7ekt6Skpaalo6XzpcmlpqTHpdWloaWkpeuk8srUvbikt6TepLkiCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGFiIHBhZ2UgJWQiCittc2dzdHIgIqW/pdal2qG8pbggJWQiCisKIG1zZ2lkICJObyBzd2FwIGZpbGUiCiBtc2dzdHIgIqW5pe+lw6XXpdWloaWkpeukrKSipOqk3qS7pPMiCiAKQEAgLTE5MDgsNiArMTkzNiwxNSBAQAogbXNnaWQgIlZpbTogUmVjZWl2ZWQgXCJkaWVcIiByZXF1ZXN0IGZyb20gc2Vzc2lvbiBtYW5hZ2VyXG4iCiBtc2dzdHIgIlZpbTogpbulw6W3peel86Xepc2hvKW4peOkq6TpIFwiZGllXCIgzde14aTyvPWksbzopOqk3qS3pL9cbiIKIAorbXNnaWQgIkNsb3NlIgorbXNnc3RyICLKxKS4pOsiCisKK21zZ2lkICJOZXcgdGFiIgorbXNnc3RyICK/t7Wspb+l1qXaobyluCIKKworbXNnaWQgIk9wZW4gVGFiLi4uIgorbXNnc3RyICKlv6XWpdqhvKW4pPKzq6SvLi4uIgorCiBtc2dpZCAiVmltOiBNYWluIHdpbmRvdyB1bmV4cGVjdGVkbHkgZGVzdHJveWVkXG4iCiBtc2dzdHIgIlZpbTogpeGlpKXzpaalo6XzpcmlpqSsydSw1aTLx8uy9aS1pOyk3qS3pL9cbiIKIApAQCAtMTk3OSw2ICsyMDE2LDEyIEBACiBtc2dpZCAiRTY3MjogVW5hYmxlIHRvIG9wZW4gd2luZG93IGluc2lkZSBNREkgYXBwbGljYXRpb24iCiBtc2dzdHIgIkU2NzI6IE1ESaWipdel6qTOw+akx6TPpaalo6XzpcmlpqTys6uksaTepLuk8yIKIAorbXNnaWQgIkNsb3NlIHRhYiIKK21zZ3N0ciAipb+l1qXaobyluKTyysSkuKTrIgorCittc2dpZCAiT3BlbiB0YWIuLi4iCittc2dzdHIgIqW/pdal2qG8pbik8rOrpK8iCisKIG1zZ2lkICJGaW5kIHN0cmluZyAodXNlICdcXFxcJyB0byBmaW5kICBhICdcXCcpIgogbXNnc3RyICK4obr3yri7+s7zICgnXFwnIKTyuKG696S5pOuky6TPICdcXFxcJykiCiAKQEAgLTIwNTUsMTAgKzIwOTgsNiBAQAogbXNnaWQgIlNob3cgc2l6ZSBpbiBQb2ludHMiCiBtc2dzdHIgIqW1paSluqTypd2lpKXzpcikx8m9vKikuaTrIgogCi0jIG1zZ2lkICIgQkxPQ0siCi0jIG1zZ3N0ciAiIKXWpe2lw6WvIgotIyBtc2dpZCAiIExJTkUiCi0jIG1zZ3N0ciAiILnUIgogbXNnaWQgIkVuY29kaW5nOiIKIG1zZ3N0ciAipail86WzobylyToiCiAKQEAgLTI2NTgsOCArMjY5Nyw2IEBACiBtc2dpZCAiQXR0ZW1wdCB0byBvcGVuIHNjcmlwdCBmaWxlIGFnYWluOiBcIiIKIG1zZ3N0ciAipbmlr6XqpdelyKXVpaGlpKXrpPK6xqTTs6ukpKTGpN+k3qS5OiBcIiIKIAotIyBtc2dpZCAiXCJcbiIKLSMgbXNnc3RyICJcIlxuIgogbXNnaWQgIkNhbm5vdCBvcGVuIGZvciByZWFkaW5nOiBcIiIKIG1zZ3N0ciAixsm5/s3RpMikt6TGs6uksaTepLuk8yIKIApAQCAtMjgzNSw2ICsyODcyLDkgQEAKIG1zZ2lkICItLW5vcGx1Z2luXHRcdERvbid0IGxvYWQgcGx1Z2luIHNjcmlwdHMiCiBtc2dzdHIgIi0tbm9wbHVnaW5cdFx0pdel6aWwpaSl86W5pa+l6qXXpcik8qXtobylyaS3pMqkpCIKIAorbXNnaWQgIi1wW05dXHRcdE9wZW4gTiB0YWIgcGFnZXMgKGRlZmF1bHQ6IG9uZSBmb3IgZWFjaCBmaWxlKSIKK21zZ3N0ciAiLXBbTl1cdFx0TiC4xKW/pdal2qG8pbik8rOrpK8ovsrOrMPNOiCl1aWhpaSl66TLpMSkrTG4xCkiCisKIG1zZ2lkICItb1tOXVx0XHRPcGVuIE4gd2luZG93cyAoZGVmYXVsdDogb25lIGZvciBlYWNoIGZpbGUpIgogbXNnc3RyICItb1tOXVx0XHROILjEpaalo6XzpcmlpqTys6ukryi+ys6sw806IKXVpaGlpKXrpMukxKStMbjEKSIKIApAQCAtMjg4OCw2ICsyOTI4LDkgQEAKICItLXJlbW90ZS13YWl0LXNpbGVudCA8ZmlsZXM+ICBTYW1lLCBkb24ndCBjb21wbGFpbiBpZiB0aGVyZSBpcyBubyBzZXJ2ZXIiCiBtc2dzdHIgIi0tcmVtb3RlLXdhaXQtc2lsZW50IDxmaWxlcz4gIMaxvuUsIKW1obyl0KSszLWkr6TGpOK32bnwyrik8r3Qzs+kt6TKpKQiCiAKK21zZ2lkICItLXJlbW90ZS10YWIgPGZpbGVzPiAgQXMgLS1yZW1vdGUgYnV0IG9wZW4gdGFiIHBhZ2UgZm9yIGVhY2ggZmlsZSIKK21zZ3N0ciAiLS1yZW1vdGUtdGFiIDxmaWxlcz4gIC0tcmVtb3RlpMel1aWhpaSl6zGkxKTLpMSkrTGkxKTOpb+l1qXaobyluKTys6ukryIKKwogbXNnaWQgIi0tcmVtb3RlLXNlbmQgPGtleXM+XHRTZW5kIDxrZXlzPiB0byBhIFZpbSBzZXJ2ZXIgYW5kIGV4aXQiCiBtc2dzdHIgIi0tcmVtb3RlLXNlbmQgPGtleXM+XHRWaW2ltaG8pdCkyyA8a2V5cz4gpPLB97+upLekxr2qzrukuaTrIgogCkBAIC0zMDExLDggKzMwNTQsNiBAQAogbXNnaWQgIi1QIDxwYXJlbnQgdGl0bGU+XHRPcGVuIFZpbSBpbnNpZGUgcGFyZW50IGFwcGxpY2F0aW9uIgogbXNnc3RyICItUCA8v8akzqW/paSlyKXrPlx0VmltpPK/xqWipdel6qWxobylt6XnpfOkzsPmpMe1r8awpLmk6yIKIAotIyBtc2dpZCAiLS1oZWxwXHRcdFNob3cgR25vbWUgYXJndW1lbnRzIgotIyBtc2dzdHIgIi0taGVscFx0XHRHTk9NRaTOsPq/9KTyuKuku6TrIgogbXNnaWQgIk5vIGRpc3BsYXkiCiBtc2dzdHIgIqXHpaOluaXXpeylpKSsuKukxKSrpOqk3qS7pPMiCiAKQEAgLTQxNDYsNiArNDE4Nyw5IEBACiBtc2dpZCAiLi4uKHRydW5jYXRlZCkiCiBtc2dzdHIgIi4uLii+ys6sKSIKIAorbXNnaWQgIk1lc3NhZ2UiCittc2dzdHIgIqXhpcOlu6G8pbgiCisKIG1zZ2lkICInY29sdW1ucycgaXMgbm90IDgwLCBjYW5ub3QgZXhlY3V0ZSBleHRlcm5hbCBjb21tYW5kcyIKIG1zZ3N0ciAiJ2NvbHVtbnMnIKSsODCkx6TPpMqkpKS/pOEsILOwyfSls6XepfOlyaTyvMK51KTHpK2k3qS7pPMiCiAKQEAgLTQ1MTcsMTAgKzQ1NjEsNiBAQAogbXNnaWQgIiBTRUxFQ1QgQkxPQ0siCiBtc2dzdHIgIiC267fBwarC8iIKIAotIyBtc2dpZCAiIEJMT0NLIgotIyBtc2dzdHIgIiCl1qXtpcOlryIKLSMgbXNnaWQgIiBMSU5FIgotIyBtc2dzdHIgIiC51CIKIG1zZ2lkICJyZWNvcmRpbmciCiBtc2dzdHIgIrWtz7/D5iIKIApAQCAtNDU2Miw2ICs0NjAyLDEwIEBACiBtc2dpZCAiU2Nhbm5pbmcgaW5jbHVkZWQgZmlsZTogJXMiCiBtc2dzdHIgIqWkpfOlr6XrobylyaS1pOykv6XVpaGlpKXrpPKluaWtpeOl88PmOiAlcyIKIAorIywgYy1mb3JtYXQKK21zZ2lkICJTZWFyY2hpbmcgaW5jbHVkZWQgZmlsZSAlcyIKK21zZ3N0ciAipaSl86WvpeuhvKXJpLWk7KS/pdWloaWkpeuk8qW5pa2l46Xzw+YgJXMiCisKIG1zZ2lkICJFMzg3OiBNYXRjaCBpcyBvbiBjdXJyZW50IGxpbmUiCiBtc2dzdHIgIkUzODc6ILi9ut+51KTLs7rF9qSspKKk6qTepLkiCiAKQEAgLTQ2NTQsOCArNDY5OCw4IEBACiBtc2dzdHIgIiVzIMbipM4gJWQgudTM3KTLpdWl6aWwpM7G873Fu8jN0aSspKKk6qTepLk6ICVzIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIldyb25nIENPTVBPVU5ETUFYIHZhbHVlIGluICVzIGxpbmUgJWQ6ICVzIgotbXNnc3RyICIlcyCkziAlZCC51MzcpM4gQ09NUE9VTkRNQVggpM7DzaTLuO2k6qSspKKk6qTepLk6ICVzIgorbXNnaWQgIldyb25nIENPTVBPVU5EV09SRE1BWCB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMgpM4gJWQgudTM3KTOIENPTVBPVU5EV09SRE1BWCCkzsPNpMu47aTqpKykoqTqpN6kuTogJXMiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV3JvbmcgQ09NUE9VTkRNSU4gdmFsdWUgaW4gJXMgbGluZSAlZDogJXMiCkBAIC00NjY2LDYgKzQ3MTAsMTAgQEAKIG1zZ3N0ciAiJXMgpM4gJWQgudTM3KTOIENPTVBPVU5EU1lMTUFYIKTOw82ky7jtpOqkrKSipOqk3qS5OiAlcyIKIAogIywgYy1mb3JtYXQKK21zZ2lkICJXcm9uZyBDSEVDS0NPTVBPVU5EUEFUVEVSTiB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMgpM4gJWQgudTM3KTOIENIRUNLQ09NUE9VTkRQQVRURVJOIKTOw82ky7jtpOqkrKSipOqk3qS5OiAlcyIKKworIywgYy1mb3JtYXQKIG1zZ2lkICJEaWZmZXJlbnQgY29tYmluaW5nIGZsYWcgaW4gY29udGludWVkIGFmZml4IGJsb2NrIGluICVzIGxpbmUgJWQ6ICVzIgogbXNnc3RyICIiCiAiJXMgpM4gJWQgudTM3KTOIM+iwrMgYWZmaXggpdal7aXDpa+kzqXVpemlsKTOwci556S7pMuw46SkpKykoqTqpN6kuTogJXMiCkBAIC00Njc2LDEwICs0NzI0LDEwIEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgotIkFmZml4IGFsc28gdXNlZCBmb3IgQkFEL1JBUkUvS0VFUENBU0UvTkVFREFGRklYL05FRURDT01QT1VORCBpbiAlcyBsaW5lICVkOiAiCi0iJXMiCisiQWZmaXggYWxzbyB1c2VkIGZvciBCQUQvUkFSRS9LRUVQQ0FTRS9ORUVEQUZGSVgvTkVFRENPTVBPVU5EL05PU1VHR0VTVCBpbiAlcyAiCisibGluZSAlZDogJXMiCiBtc2dzdHIgIiIKLSIlcyCkziAlZCC51MzcpM4gYWZmaXggpM8gQkFEL1JBUkUvS0VFUENBU0UvTkVFREFGRklYL05FRURDT01QT1VORCAiCisiJXMgpM4gJWQgudTM3KTOIGFmZml4IKTPIEJBRC9SQVJFL0tFRVBDQVNFL05FRURBRkZJWC9ORUVEQ09NUE9VTkQvTk9TVUdHRVNUICIKICKky7vIzdGkt6TGpK+kwKS1pKQ6ICVzIgogCiAjLCBjLWZvcm1hdApAQCAtNDY5MSw2ICs0NzM5LDEwIEBACiBtc2dzdHIgIiVzIKTOICVkILnUzNykziC+8rfvpM+y9aTspMakpKTepLk6ICVzIgogCiAjLCBjLWZvcm1hdAorbXNnaWQgIkFmZml4IGZsYWdzIGlnbm9yZWQgd2hlbiBQRlhQT1NUUE9ORSB1c2VkIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJQRlhQT1NUUE9ORaSsu9jE6qS1pOykv6TOpMcgJXMgpM4gJWQgudTM3KTOIGFmZml4IKXVpemlsKTyzLW766S3pN6kt6S/OiAlcyIKKworIywgYy1mb3JtYXQKIG1zZ2lkICJFeHBlY3RlZCBSRVAoU0FMKSBjb3VudCBpbiAlcyBsaW5lICVkIgogbXNnc3RyICIlcyCkziAlZCC51MzcpMukzyBSRVAoU0FMKSCkzrLzv/SkrMmszdekx6S5IgogCkBAIC00NzgwLDcgKzQ4MzIsNyBAQAogCiAjLCBjLWZvcm1hdAogbXNnaWQgIi9lbmNvZGluZz0gbGluZSBhZnRlciB3b3JkIGlnbm9yZWQgaW4gJXMgbGluZSAlZDogJXMiCi1tc2dzdHIgIiVzIKHzcyCkziAlZCC51MzcpM4gw7G47KTOuOWkziAvZW5jb2Rpbmc9ILnUpPLMtbvrpLek3qS3pL86ICVzIgorbXNnc3RyICIlcyCkziAlZCC51MzcpM4gw7G47KTOuOWkziAvZW5jb2Rpbmc9ILnUpPLMtbvrpLek3qS3pL86ICVzIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkR1cGxpY2F0ZSAvcmVnaW9ucz0gbGluZSBpZ25vcmVkIGluICVzIGxpbmUgJWQ6ICVzIgpAQCAtNDg1OSw2ICs0OTExLDE0IEBACiBtc2dpZCAiRTc2NTogJ3NwZWxsZmlsZScgZG9lcyBub3QgaGF2ZSAlbGQgZW50cmllcyIKIG1zZ3N0ciAiRTc2NTogJ3NwZWxsZmlsZScgpMukzyAlbGQguMSkzqWopfOlyKXqpM+koqTqpN6ku6TzIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIldvcmQgcmVtb3ZlZCBmcm9tICVzIgorbXNnc3RyICIlcyCkq6Tpw7G47KSsuu+9/KS1pOyk3qS3pL8iCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiV29yZCBhZGRlZCB0byAlcyIKK21zZ3N0ciAiJXMgpMvDsbjspKzEybLDpLWk7KTepLekvyIKKwogbXNnaWQgIkU3NjM6IFdvcmQgY2hhcmFjdGVycyBkaWZmZXIgYmV0d2VlbiBzcGVsbCBmaWxlcyIKIG1zZ3N0ciAiRTc2Mzogw7G47KTOyri7+qSspbml2qXrpdWloaWkpeukyLDbpMqk6qTepLkiCiAKQEAgLTUyMjMsMTUgKzUyODMsNTIgQEAKIG1zZ2lkICJObyB1bmRvIHBvc3NpYmxlOyBjb250aW51ZSBhbnl3YXkiCiBtc2dzdHIgIrLEx72kyqWipfOlyaWlpM+koqTqpN6ku6TzOiCkyKTqpKKkqKS6wrOksaTepLkiCiAKK21zZ2lkICJBbHJlYWR5IGF0IG9sZGVzdCBjaGFuZ2UiCittc2dzdHIgIrT7pMuw7MjWuMWkpMrRubmkx6S5IgorCittc2dpZCAiQWxyZWFkeSBhdCBuZXdlc3QgY2hhbmdlIgorbXNnc3RyICK0+6TLsOzI1r+3pLekpMrRubmkx6S5IgorCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZG8gbnVtYmVyICVsZCBub3QgZm91bmQiCittc2dzdHIgIqWipfOlyaWlyNa55iAlbGQgpKyk36TEpKuk6qTepLuk8yIKKwogbXNnaWQgIkU0Mzg6IHVfdW5kbzogbGluZSBudW1iZXJzIHdyb25nIgogbXNnc3RyICJFNDM4OiB1X3VuZG86ILnUyNa55qSstNaw46TDpMakpKTepLkiCiAKLW1zZ2lkICIxIGNoYW5nZSIKLW1zZ3N0ciAiMSCy1b3qytG5uaS3pN6kt6S/IgorbXNnaWQgIm1vcmUgbGluZSIKK21zZ3N0ciAiudQgxMmyw6S3pN6kt6S/IgorCittc2dpZCAiudSkoqTqpN6kuSIKK21zZ3N0ciAiudQgxMmyw6S3pN6kt6S/IgorCittc2dpZCAibGluZSBsZXNzIgorbXNnc3RyICK51CC67738pLek3qS3pL8iCisKK21zZ2lkICJmZXdlciBsaW5lcyIKK21zZ3N0ciAiudQguu+9/KS3pN6kt6S/IgorCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICKy1b3qytG5uaS3pN6kt6S/IgorCittc2dpZCAiY2hhbmdlcyIKK21zZ3N0ciAistW96srRubmkt6TepLekvyIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICIlbGQgY2hhbmdlcyIKLW1zZ3N0ciAiJWxkILLVverK0bm5pLek3qS3pL8iCittc2dpZCAiJWxkICVzOyAlcyAjJWxkICAlcyIKK21zZ3N0ciAiJWxkICVzOyAlcyAjJWxkICAlcyIKKworbXNnaWQgImJlZm9yZSIKK21zZ3N0ciAiwbDK/SIKKworbXNnaWQgImFmdGVyIgorbXNnc3RyICK45cr9IgorCittc2dpZCAiTm90aGluZyB0byB1bmRvIgorbXNnc3RyICKloqXzpcmlpcLQvt2krKSipOqk3qS7pPMiCisKK21zZ2lkICJudW1iZXIgY2hhbmdlcyAgdGltZSIKK21zZ3N0ciAiyNa55iAgIMrRubkgICAgILv+ue8iCiAKIG1zZ2lkICJFNDM5OiB1bmRvIGxpc3QgY29ycnVwdCIKIG1zZ3N0ciAiRTQzOTogpaKl86XJpaWl6qW5pcikrLL1pOykxqSkpN6kuSIKQEAgLTU1NjQsNiArNTY2MSwzMyBAQAogbXNnaWQgIkU0NDc6IENhbid0IGZpbmQgZmlsZSBcIiVzXCIgaW4gcGF0aCIKIG1zZ3N0ciAiRTQ0NzogcGF0aKTLpM8gXCIlc1wiIKTIpKSkpqXVpaGlpKXrpKykoqTqpN6ku6TzIgogCittc2dpZCAiRWRpdCB3aXRoICZtdWx0aXBsZSBWaW1zIgorbXNnc3RyICLKo7/0pM5WaW2kx8rUvbikuaTrICgmTSkiCisKK21zZ2lkICJFZGl0IHdpdGggc2luZ2xlICZWaW0iCittc2dzdHIgIjGkxKTOVmltpMfK1L24pLmk6yAoJlYpIgorCittc2dpZCAiRGlmZiB3aXRoIFZpbSIKK21zZ3N0ciAiVmltpMe6ucqspPK4q6TrIgorCittc2dpZCAiRWRpdCB3aXRoICZWaW0iCittc2dzdHIgIlZpbaTHytS9uKS5pOsgKCZWKSIKKworbXNnaWQgIkVkaXQgd2l0aCBleGlzdGluZyBWaW0gLSAiCittc2dzdHIgIrT7wrikzlZpbaTHytS9uKS5pOsgLSAiCisKK21zZ2lkICJFZGl0cyB0aGUgc2VsZWN0ZWQgZmlsZShzKSB3aXRoIFZpbSIKK21zZ3N0ciAiwarC8qS1pOykv6XVpaGlpKXrpPJWaW2kx8rUvbikuaTrIgorCittc2dpZCAiRXJyb3IgY3JlYXRpbmcgcHJvY2VzczogQ2hlY2sgaWYgZ3ZpbSBpcyBpbiB5b3VyIHBhdGghIgorbXNnc3RyICK1r8awpMu8usfUpLek3qS3pL86IGd2aW0gpNikzqXRpbmkrMC1pLekr8DfxOqktaTspMakpKTrpKuzzsenpLekxqSvpMCktaSkISIKKworbXNnaWQgImd2aW1leHQuZGxsIGVycm9yIgorbXNnc3RyICJndmltZXh0LmRsbCClqKXpobwiCisKK21zZ2lkICJQYXRoIGxlbmd0aCB0b28gbG9uZyEiCittc2dzdHIgIqXRpbmkrMS5suGkrqTepLkhIgorCiBtc2dpZCAiLS1ObyBsaW5lcyBpbiBidWZmZXItLSIKIG1zZ3N0ciAiLS2l0KXDpdWloaTLudSkrKSipOqk3qS7pPMtLSIKIApkaWZmIC0tZ2l0IGEvc3JjL3BvL2phLnNqaXMucG8gYi9zcmMvcG8vamEuc2ppcy5wbwppbmRleCA0MTFmYzNmLi5mNjYzZWEyIDEwMDY0NAotLS0gYS9zcmMvcG8vamEuc2ppcy5wbworKysgYi9zcmMvcG8vamEuc2ppcy5wbwpAQCAtNCwxMyArNCwxMyBAQAogIyBEbyAiOmhlbHAgY3JlZGl0cyIgaW4gVmltIHRvIHNlZSBhIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZC4KICMKICMgTVVSQU9LQSBUYXJvIDxrb3JvbkB0a2EuYXR0Lm5lLmpwPiwgMjAwMS02LgotIyBMYXN0IENoYW5nZTogMDUtRmViLTIwMDYuCisjIExhc3QgQ2hhbmdlOiAyOC1NYXItMjAwNi4KICMKIG1zZ2lkICIiCiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IFZpbSA3LjBcbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNi0wMi0wNCAyMjo0NCswOTAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wMi0wNSAwMDoxMCswOTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDYtMDMtMjggMjA6MTIrMDkwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMDYtMDMtMjggMjE6MTArMDkwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogTVVSQU9LQSBUYXJvIDxrb3JvbkB0a2EuYXR0Lm5lLmpwPlxuIgogIkxhbmd1YWdlLVRlYW06IE1VUkFPS0EgVGFybyA8a29yb25AdGthLmF0dC5uZS5qcD5cbiIKICJNSU1FLVZlcnNpb246IDEuMFxuIgpAQCAtMTMwLDcgKzEzMCw3IEBACiBtc2dpZCAiaGVscCIKIG1zZ3N0ciAig3eDi4N2IgogCi1tc2dpZCAiW2hlbHBdIgorbXNnaWQgIltIZWxwXSIKIG1zZ3N0ciAiW4N3g4uDdl0iCiAKIG1zZ2lkICJbUHJldmlld10iCkBAIC0xNTUsOCArMTU1LDggQEAKIG1zZ2lkICJbTG9jYXRpb24gTGlzdF0iCiBtc2dzdHIgIluP6o+Kg4qDWINnXSIKIAotbXNnaWQgIltFcnJvciBMaXN0XSIKLW1zZ3N0ciAiW4NHg4mBW4OKg1iDZ10iCittc2dpZCAiW1F1aWNrZml4IExpc3RdIgorbXNnc3RyICJbUXVpY2tmaXiDioNYg2ddIgogCiBtc2dpZCAiIgogIlxuIgpAQCAtNDg5LDYgKzQ4OSw5IEBACiBtc2dpZCAiRTY5OTogVG9vIG1hbnkgYXJndW1lbnRzIgogbXNnc3RyICJFNjk5OiCCqpG9id+CrILcgrciCiAKK21zZ2lkICJFNzg1OiBjb21wbGV0ZSgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gSW5zZXJ0IG1vZGUiCittc2dzdHIgIkU3ODU6IGNvbXBsZXRlKCkggs2RfZP8g4KBW4NogsWCtYKpl5iXcILFgquC3IK5gvEiCisKICMuCiAjLiAqIFllcyB0aGlzIGlzIHVnbHksIEkgZG9uJ3QgcGFydGljdWxhcmx5IGxpa2UgaXQgZWl0aGVyLiAgQnV0IGRvaW5nIGl0CiAjLiAqIHRoaXMgd2F5IGhhcyB0aGUgY29tcGVsbGluZyBhZHZhbnRhZ2UgdGhhdCB0cmFuc2xhdGlvbnMgbmVlZCBub3QgdG8KQEAgLTEwMjEsNiArMTAyNCwyMSBAQAogbXNnaWQgImZpbmlzaGVkIHNvdXJjaW5nICVzIgogbXNnc3RyICIlcyCCzI7mjZ6C8Iqul7kiCiAKK21zZ2lkICJtb2RlbGluZSIKK21zZ3N0ciAig4KBW4NojXMiCisKK21zZ2lkICItLWNtZCBhcmd1bWVudCIKK21zZ3N0ciAiLS1jbWQgiPiQlCIKKworbXNnaWQgIi1jIGFyZ3VtZW50IgorbXNnc3RyICItYyCI+JCUIgorCittc2dpZCAiZW52aXJvbm1lbnQgdmFyaWFibGUiCittc2dzdHIgIorCi6uVz5CUIgorCittc2dpZCAiZXJyb3IgaGFuZGxlciIKK21zZ3N0ciAig0eDiYFbg26Dk4Nog4kiCisKIG1zZ2lkICJXMTU6IFdhcm5pbmc6IFdyb25nIGxpbmUgc2VwYXJhdG9yLCBeTSBtYXkgYmUgbWlzc2luZyIKIG1zZ3N0ciAiVzE1OiCMeI2QOiCNc4vmkNiCqpVzkLOCxYK3LiBeTSCCqoLIgqKCzILFgrWC5YKkIgogCkBAIC0xMTUxLDkgKzExNjksMTkgQEAKIG1zZ2lkICJHcmVldGluZ3MsIFZpbSB1c2VyISIKIG1zZ3N0ciAiVmltII5ngqKCs4LxgUGC4oKgISIKIAorbXNnaWQgIkU3ODQ6IENhbm5vdCBjbG9zZSBsYXN0IHRhYiBwYWdlIgorbXNnc3RyICJFNzg0OiCNxYzjgsyDXoN1g3mBW4NXgvCVwoK2gumCsYLGgs2CxYKrgtyCuYLxIgorCittc2dpZCAiQWxyZWFkeSBvbmx5IG9uZSB0YWIgcGFnZSIKK21zZ3N0ciAiivmCyYNeg3WDeYFbg1eCzTGCwoK1gqmCoILogtyCuYLxIgorCiBtc2dpZCAiRWRpdCBGaWxlIGluIG5ldyB3aW5kb3ciCiBtc2dzdHIgIpBWgrWCooNFg0KDk4Nog0WCxYN0g0CDQ4OLgvCV0o9XgrWC3IK3IgogCisjLCBjLWZvcm1hdAorbXNnaWQgIlRhYiBwYWdlICVkIgorbXNnc3RyICKDXoN1g3mBW4NXICVkIgorCiBtc2dpZCAiTm8gc3dhcCBmaWxlIgogbXNnc3RyICKDWIOPg2KDdoN0g0CDQ4OLgqqCoILogtyCuYLxIgogCkBAIC0xOTA4LDYgKzE5MzYsMTUgQEAKIG1zZ2lkICJWaW06IFJlY2VpdmVkIFwiZGllXCIgcmVxdWVzdCBmcm9tIHNlc3Npb24gbWFuYWdlclxuIgogbXNnc3RyICJWaW06IINag2KDVoOHg5ODfYNsgVuDV4ODgqmC5yBcImRpZVwiIJd2i4GC8I7zgq+O5oLogtyCtYK9XG4iCiAKK21zZ2lkICJDbG9zZSIKK21zZ3N0ciAilcKCtoLpIgorCittc2dpZCAiTmV3IHRhYiIKK21zZ3N0ciAikFaLS4Neg3WDeYFbg1ciCisKK21zZ2lkICJPcGVuIFRhYi4uLiIKK21zZ3N0ciAig16DdYN5gVuDV4LwikqCrS4uLiIKKwogbXNnaWQgIlZpbTogTWFpbiB3aW5kb3cgdW5leHBlY3RlZGx5IGRlc3Ryb3llZFxuIgogbXNnc3RyICJWaW06IIOBg0ODk4NFg0KDk4Nog0WCqpVziNOCyZRqifOCs4LqgtyCtYK9XG4iCiAKQEAgLTE5NzksNiArMjAxNiwxMiBAQAogbXNnaWQgIkU2NzI6IFVuYWJsZSB0byBvcGVuIHdpbmRvdyBpbnNpZGUgTURJIGFwcGxpY2F0aW9uIgogbXNnc3RyICJFNjcyOiBNREmDQYN2g4qCzJKGgsWCzYNFg0KDk4Nog0WC8IpKgq+C3IK5gvEiCiAKK21zZ2lkICJDbG9zZSB0YWIiCittc2dzdHIgIoNeg3WDeYFbg1eC8JXCgraC6SIKKworbXNnaWQgIk9wZW4gdGFiLi4uIgorbXNnc3RyICKDXoN1g3mBW4NXgvCKSoKtIgorCiBtc2dpZCAiRmluZCBzdHJpbmcgKHVzZSAnXFxcXCcgdG8gZmluZCAgYSAnXFwnKSIKIG1zZ3N0ciAijJ+N9ZW2jpqX8SAoJ1xcJyCC8IyfjfWCt4LpgsmCzSAnXFxcXCcpIgogCkBAIC0yMDU1LDEwICsyMDk4LDYgQEAKIG1zZ2lkICJTaG93IHNpemUgaW4gUG9pbnRzIgogbXNnc3RyICKDVINDg1mC8IN8g0ODk4NngsWVXFyOpoK3gukiCiAKLSMgbXNnaWQgIiBCTE9DSyIKLSMgbXNnc3RyICIgg3WDjYNig04iCi0jIG1zZ2lkICIgTElORSIKLSMgbXNnc3RyICIgjXMiCiBtc2dpZCAiRW5jb2Rpbmc6IgogbXNnc3RyICKDR4OTg1KBW4NoOiIKIApAQCAtMjY1OCw4ICsyNjk3LDYgQEAKIG1zZ2lkICJBdHRlbXB0IHRvIG9wZW4gc2NyaXB0IGZpbGUgYWdhaW46IFwiIgogbXNnc3RyICKDWINOg4qDdoNng3SDQINDg4uC8I3EgtGKSoKigsSC3YLcgrc6IFwiIgogCi0jIG1zZ2lkICJcIlxuIgotIyBtc2dzdHIgIlwiXG4iCiBtc2dpZCAiQ2Fubm90IG9wZW4gZm9yIHJlYWRpbmc6IFwiIgogbXNnc3RyICKTx42el3CCxoK1gsSKSoKvgtyCuYLxIgogCkBAIC0yODM1LDYgKzI4NzIsOSBAQAogbXNnaWQgIi0tbm9wbHVnaW5cdFx0RG9uJ3QgbG9hZCBwbHVnaW4gc2NyaXB0cyIKIG1zZ3N0ciAiLS1ub3BsdWdpblx0XHSDdoOJg0+DQ4OTg1iDToOKg3aDZ4Lwg42BW4NogrWCyIKiIgogCittc2dpZCAiLXBbTl1cdFx0T3BlbiBOIHRhYiBwYWdlcyAoZGVmYXVsdDogb25lIGZvciBlYWNoIGZpbGUpIgorbXNnc3RyICItcFtOXVx0XHROIIzCg16DdYN5gVuDV4LwikqCrSiPyJeqkmw6IIN0g0CDQ4OLgsmCwoKrMYzCKSIKKwogbXNnaWQgIi1vW05dXHRcdE9wZW4gTiB3aW5kb3dzIChkZWZhdWx0OiBvbmUgZm9yIGVhY2ggZmlsZSkiCiBtc2dzdHIgIi1vW05dXHRcdE4gjMKDRYNCg5ODaINFgvCKSoKtKI/Il6qSbDogg3SDQINDg4uCyYLCgqsxjMIpIgogCkBAIC0yODg4LDYgKzI5MjgsOSBAQAogIi0tcmVtb3RlLXdhaXQtc2lsZW50IDxmaWxlcz4gIFNhbWUsIGRvbid0IGNvbXBsYWluIGlmIHRoZXJlIGlzIG5vIHNlcnZlciIKIG1zZ3N0ciAiLS1yZW1vdGUtd2FpdC1zaWxlbnQgPGZpbGVzPiAgk6+P4ywgg1SBW4NvgqqWs4KtgsSC4Ix4jZCVtoLwj2+XzYK1gsiCoiIKIAorbXNnaWQgIi0tcmVtb3RlLXRhYiA8ZmlsZXM+ICBBcyAtLXJlbW90ZSBidXQgb3BlbiB0YWIgcGFnZSBmb3IgZWFjaCBmaWxlIgorbXNnc3RyICItLXJlbW90ZS10YWIgPGZpbGVzPiAgLS1yZW1vdGWCxYN0g0CDQ4OLMYLCgsmCwoKrMYLCgsyDXoN1g3mBW4NXgvCKSoKtIgorCiBtc2dpZCAiLS1yZW1vdGUtc2VuZCA8a2V5cz5cdFNlbmQgPGtleXM+IHRvIGEgVmltIHNlcnZlciBhbmQgZXhpdCIKIG1zZ3N0ciAiLS1yZW1vdGUtc2VuZCA8a2V5cz5cdFZpbYNUgVuDb4LJIDxrZXlzPiCC8JGXkE2CtYLEj0mXuYK3gukiCiAKQEAgLTMwMTEsOCArMzA1NCw2IEBACiBtc2dpZCAiLVAgPHBhcmVudCB0aXRsZT5cdE9wZW4gVmltIGluc2lkZSBwYXJlbnQgYXBwbGljYXRpb24iCiBtc2dzdHIgIi1QIDyQZYLMg16DQ4Nng4s+XHRWaW2C8JBlg0GDdoOKg1CBW4NWg4eDk4LMkoaCxYtOk66Ct4LpIgogCi0jIG1zZ2lkICItLWhlbHBcdFx0U2hvdyBHbm9tZSBhcmd1bWVudHMiCi0jIG1zZ3N0ciAiLS1oZWxwXHRcdEdOT01FgsyI+JCUgvCMqYK5gukiCiBtc2dpZCAiTm8gZGlzcGxheSIKIG1zZ3N0ciAig2aDQoNYg3aDjINDgqqMqYLCgqmC6ILcgrmC8SIKIApAQCAtNDE0Niw2ICs0MTg3LDkgQEAKIG1zZ2lkICIuLi4odHJ1bmNhdGVkKSIKIG1zZ3N0ciAiLi4uKI/Il6opIgogCittc2dpZCAiTWVzc2FnZSIKK21zZ3N0ciAig4GDYoNagVuDVyIKKwogbXNnaWQgIidjb2x1bW5zJyBpcyBub3QgODAsIGNhbm5vdCBleGVjdXRlIGV4dGVybmFsIGNvbW1hbmRzIgogbXNnc3RyICInY29sdW1ucycggqo4MILFgs2CyIKigr2C3ywgik+VlINSg32Dk4NogvCOwI1zgsWCq4LcgrmC8SIKIApAQCAtNDUxNywxMCArNDU2MSw2IEBACiBtc2dpZCAiIFNFTEVDVCBCTE9DSyIKIG1zZ3N0ciAiIIvpjGCRSZHwIgogCi0jIG1zZ2lkICIgQkxPQ0siCi0jIG1zZ3N0ciAiIIN1g42DYoNOIgotIyBtc2dpZCAiIExJTkUiCi0jIG1zZ3N0ciAiII1zIgogbXNnaWQgInJlY29yZGluZyIKIG1zZ3N0ciAii0yYXpKGIgogCkBAIC00NTYyLDYgKzQ2MDIsMTAgQEAKIG1zZ2lkICJTY2FubmluZyBpbmNsdWRlZCBmaWxlOiAlcyIKIG1zZ3N0ciAig0ODk4NOg4uBW4NogrOC6oK9g3SDQINDg4uC8INYg0yDg4OTkoY6ICVzIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIlNlYXJjaGluZyBpbmNsdWRlZCBmaWxlICVzIgorbXNnc3RyICKDQ4OTg06Di4Fbg2iCs4Lqgr2DdINAg0ODi4Lwg1iDTIODg5OShiAlcyIKKwogbXNnaWQgIkUzODc6IE1hdGNoIGlzIG9uIGN1cnJlbnQgbGluZSIKIG1zZ3N0ciAiRTM4NzogjLuN3Y1zgsmKWZOWgqqCoILogtyCtyIKIApAQCAtNDY1NCw4ICs0Njk4LDggQEAKIG1zZ3N0ciAiJXMgk+CCzCAlZCCNc5bagsmDdIOJg0+CzJPxj2SOZ5dwgqqCoILogtyCtzogJXMiCiAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiV3JvbmcgQ09NUE9VTkRNQVggdmFsdWUgaW4gJXMgbGluZSAlZDogJXMiCi1tc2dzdHIgIiVzIILMICVkII1zltqCzCBDT01QT1VORE1BWCCCzJJsgsmM64LogqqCoILogtyCtzogJXMiCittc2dpZCAiV3JvbmcgQ09NUE9VTkRXT1JETUFYIHZhbHVlIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCCzCAlZCCNc5bagswgQ09NUE9VTkRXT1JETUFYIILMkmyCyYzrguiCqoKgguiC3IK3OiAlcyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJXcm9uZyBDT01QT1VORE1JTiB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIKQEAgLTQ2NjYsNiArNDcxMCwxMCBAQAogbXNnc3RyICIlcyCCzCAlZCCNc5bagswgQ09NUE9VTkRTWUxNQVgggsySbILJjOuC6IKqgqCC6ILcgrc6ICVzIgogCiAjLCBjLWZvcm1hdAorbXNnaWQgIldyb25nIENIRUNLQ09NUE9VTkRQQVRURVJOIHZhbHVlIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCCzCAlZCCNc5bagswgQ0hFQ0tDT01QT1VORFBBVFRFUk4ggsySbILJjOuC6IKqgqCC6ILcgrc6ICVzIgorCisjLCBjLWZvcm1hdAogbXNnaWQgIkRpZmZlcmVudCBjb21iaW5pbmcgZmxhZyBpbiBjb250aW51ZWQgYWZmaXggYmxvY2sgaW4gJXMgbGluZSAlZDogJXMiCiBtc2dzdHIgIiIKICIlcyCCzCAlZCCNc5bagswgmEGRsSBhZmZpeCCDdYONg2KDToLMg3SDiYNPgsyRZ42HgrmCyYjhgqKCqoKgguiC3IK3OiAlcyIKQEAgLTQ2NzYsMTAgKzQ3MjQsMTAgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCi0iQWZmaXggYWxzbyB1c2VkIGZvciBCQUQvUkFSRS9LRUVQQ0FTRS9ORUVEQUZGSVgvTkVFRENPTVBPVU5EIGluICVzIGxpbmUgJWQ6ICIKLSIlcyIKKyJBZmZpeCBhbHNvIHVzZWQgZm9yIEJBRC9SQVJFL0tFRVBDQVNFL05FRURBRkZJWC9ORUVEQ09NUE9VTkQvTk9TVUdHRVNUIGluICVzICIKKyJsaW5lICVkOiAlcyIKIG1zZ3N0ciAiIgotIiVzIILMICVkII1zltqCzCBhZmZpeCCCzSBCQUQvUkFSRS9LRUVQQ0FTRS9ORUVEQUZGSVgvTkVFRENPTVBPVU5EICIKKyIlcyCCzCAlZCCNc5bagswgYWZmaXgggs0gQkFEL1JBUkUvS0VFUENBU0UvTkVFREFGRklYL05FRURDT01QT1VORC9OT1NVR0dFU1QgIgogIoLJjmeXcIK1gsSCrYK+grOCojogJXMiCiAKICMsIGMtZm9ybWF0CkBAIC00NjkxLDYgKzQ3MzksMTAgQEAKIG1zZ3N0ciAiJXMggswgJWQgjXOW2oLMII/wjI+CzYnzguqCxIKigtyCtzogJXMiCiAKICMsIGMtZm9ybWF0Cittc2dpZCAiQWZmaXggZmxhZ3MgaWdub3JlZCB3aGVuIFBGWFBPU1RQT05FIHVzZWQgaW4gJXMgbGluZSAlZDogJXMiCittc2dzdHIgIlBGWFBPU1RQT05FgqqOd5LogrOC6oK9gsyCxSAlcyCCzCAlZCCNc5bagswgYWZmaXggg3SDiYNPgvCWs46LgrWC3IK1gr06ICVzIgorCisjLCBjLWZvcm1hdAogbXNnaWQgIkV4cGVjdGVkIFJFUChTQUwpIGNvdW50IGluICVzIGxpbmUgJWQiCiBtc2dzdHIgIiVzIILMICVkII1zltqCyYLNIFJFUChTQUwpIILMifGQlIKqlUuXdoLFgrciCiAKQEAgLTQ3ODAsNyArNDgzMiw3IEBACiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiL2VuY29kaW5nPSBsaW5lIGFmdGVyIHdvcmQgaWdub3JlZCBpbiAlcyBsaW5lICVkOiAlcyIKLW1zZ3N0ciAiJXMggZNzIILMICVkII1zltqCzCCSUIzqgsyM44LMIC9lbmNvZGluZz0gjXOC8JazjouCtYLcgrWCvTogJXMiCittc2dzdHIgIiVzIILMICVkII1zltqCzCCSUIzqgsyM44LMIC9lbmNvZGluZz0gjXOC8JazjouCtYLcgrWCvTogJXMiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRHVwbGljYXRlIC9yZWdpb25zPSBsaW5lIGlnbm9yZWQgaW4gJXMgbGluZSAlZDogJXMiCkBAIC00ODU5LDYgKzQ5MTEsMTQgQEAKIG1zZ2lkICJFNzY1OiAnc3BlbGxmaWxlJyBkb2VzIG5vdCBoYXZlICVsZCBlbnRyaWVzIgogbXNnc3RyICJFNzY1OiAnc3BlbGxmaWxlJyCCyYLNICVsZCCMwoLMg0eDk4Nng4qCzYKgguiC3IK5gvEiCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiV29yZCByZW1vdmVkIGZyb20gJXMiCittc2dzdHIgIiVzIIKpgueSUIzqgqqN7Y+cgrOC6oLcgrWCvSIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXb3JkIGFkZGVkIHRvICVzIgorbXNnc3RyICIlcyCCyZJQjOqCqpLHicGCs4LqgtyCtYK9IgorCiBtc2dpZCAiRTc2MzogV29yZCBjaGFyYWN0ZXJzIGRpZmZlciBiZXR3ZWVuIHNwZWxsIGZpbGVzIgogbXNnc3RyICJFNzYzOiCSUIzqgsyVto6agqqDWIN5g4uDdINAg0ODi4LGiNmCyILogtyCtyIKIApAQCAtNTIyMywxNSArNTI4Myw1MiBAQAogbXNnaWQgIk5vIHVuZG8gcG9zc2libGU7IGNvbnRpbnVlIGFueXdheSIKIG1zZ3N0ciAiicKUXFyCyINBg5ODaINEgs2CoILogtyCuYLxOiCCxoLogqCCpoK4kbGCr4LcgrciCiAKK21zZ2lkICJBbHJlYWR5IGF0IG9sZGVzdCBjaGFuZ2UiCittc2dzdHIgIor5gsmI6pTUjMOCopXPjViCxYK3IgorCittc2dpZCAiQWxyZWFkeSBhdCBuZXdlc3QgY2hhbmdlIgorbXNnc3RyICKK+YLJiOqU1JBWgrWCopXPjViCxYK3IgorCisjLCBjLWZvcm1hdAorbXNnaWQgIlVuZG8gbnVtYmVyICVsZCBub3QgZm91bmQiCittc2dzdHIgIoNBg5ODaINElNSNhiAlbGQggqqC3YLCgqmC6ILcgrmC8SIKKwogbXNnaWQgIkU0Mzg6IHVfdW5kbzogbGluZSBudW1iZXJzIHdyb25nIgogbXNnc3RyICJFNDM4OiB1X3VuZG86II1zlNSNhoKqitSI4YLBgsSCooLcgrciCiAKLW1zZ2lkICIxIGNoYW5nZSIKLW1zZ3N0ciAiMSCJ04+Klc+NWIK1gtyCtYK9IgorbXNnaWQgIm1vcmUgbGluZSIKK21zZ3N0ciAijXMgkseJwYK1gtyCtYK9IgorCittc2dpZCAijXOCoILogtyCtyIKK21zZ3N0ciAijXMgkseJwYK1gtyCtYK9IgorCittc2dpZCAibGluZSBsZXNzIgorbXNnc3RyICKNcyCN7Y+cgrWC3IK1gr0iCisKK21zZ2lkICJmZXdlciBsaW5lcyIKK21zZ3N0ciAijXMgje2PnIK1gtyCtYK9IgorCittc2dpZCAiY2hhbmdlIgorbXNnc3RyICKJ04+Klc+NWIK1gtyCtYK9IgorCittc2dpZCAiY2hhbmdlcyIKK21zZ3N0ciAiidOPipXPjViCtYLcgrWCvSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICIlbGQgY2hhbmdlcyIKLW1zZ3N0ciAiJWxkIInTj4qVz41YgrWC3IK1gr0iCittc2dpZCAiJWxkICVzOyAlcyAjJWxkICAlcyIKK21zZ3N0ciAiJWxkICVzOyAlcyAjJWxkICAlcyIKKworbXNnaWQgImJlZm9yZSIKK21zZ3N0ciAikU+V+yIKKworbXNnaWQgImFmdGVyIgorbXNnc3RyICKM45X7IgorCittc2dpZCAiTm90aGluZyB0byB1bmRvIgorbXNnc3RyICKDQYOTg2iDRJHOj9uCqoKgguiC3IK5gvEiCisKK21zZ2lkICJudW1iZXIgY2hhbmdlcyAgdGltZSIKK21zZ3N0ciAilNSNhiAgIJXPjVggICAgII6ejY8iCiAKIG1zZ2lkICJFNDM5OiB1bmRvIGxpc3QgY29ycnVwdCIKIG1zZ3N0ciAiRTQzOTogg0GDk4Nog0SDioNYg2eCqonzguqCxIKigtyCtyIKQEAgLTU1NjQsNiArNTY2MSwzMyBAQAogbXNnaWQgIkU0NDc6IENhbid0IGZpbmQgZmlsZSBcIiVzXCIgaW4gcGF0aCIKIG1zZ3N0ciAiRTQ0NzogcGF0aILJgs0gXCIlc1wiIILGgqKCpIN0g0CDQ4OLgqqCoILogtyCuYLxIgogCittc2dpZCAiRWRpdCB3aXRoICZtdWx0aXBsZSBWaW1zIgorbXNnc3RyICKVoZCUgsxWaW2CxZXSj1eCt4LpICgmTSkiCisKK21zZ2lkICJFZGl0IHdpdGggc2luZ2xlICZWaW0iCittc2dzdHIgIjGCwoLMVmltgsWV0o9XgreC6SAoJlYpIgorCittc2dpZCAiRGlmZiB3aXRoIFZpbSIKK21zZ3N0ciAiVmltgsWNt5WqgvCMqYLpIgorCittc2dpZCAiRWRpdCB3aXRoICZWaW0iCittc2dzdHIgIlZpbYLFldKPV4K3gukgKCZWKSIKKworbXNnaWQgIkVkaXQgd2l0aCBleGlzdGluZyBWaW0gLSAiCittc2dzdHIgIor5kbaCzFZpbYLFldKPV4K3gukgLSAiCisKK21zZ2lkICJFZGl0cyB0aGUgc2VsZWN0ZWQgZmlsZShzKSB3aXRoIFZpbSIKK21zZ3N0ciAikUmR8IKzguqCvYN0g0CDQ4OLgvBWaW2CxZXSj1eCt4LpIgorCittc2dpZCAiRXJyb3IgY3JlYXRpbmcgcHJvY2VzczogQ2hlY2sgaWYgZ3ZpbSBpcyBpbiB5b3VyIHBhdGghIgorbXNnc3RyICKLTpOugsmOuJRzgrWC3IK1gr06IGd2aW0ggtaCzINwg1iCqpCzgrWCrZDdkuiCs4LqgsSCooLpgqmKbZRGgrWCxIKtgr6Cs4KiISIKKworbXNnaWQgImd2aW1leHQuZGxsIGVycm9yIgorbXNnc3RyICJndmltZXh0LmRsbCCDR4OJgVsiCisKK21zZ2lkICJQYXRoIGxlbmd0aCB0b28gbG9uZyEiCittc2dzdHIgIoNwg1iCqpK3id+CrILcgrchIgorCiBtc2dpZCAiLS1ObyBsaW5lcyBpbiBidWZmZXItLSIKIG1zZ3N0ciAiLS2Db4Nig3SDQILJjXOCqoKgguiC3IK5gvEtLSIKIApkaWZmIC0tZ2l0IGEvc3JjL3BvcHVwbW51LmMgYi9zcmMvcG9wdXBtbnUuYwppbmRleCA4NjFlNzRjLi45ZjFmYWU0IDEwMDY0NAotLS0gYS9zcmMvcG9wdXBtbnUuYworKysgYi9zcmMvcG9wdXBtbnUuYwpAQCAtNDAxLDggKzQwMSwxMSBAQAogCX0KIAogI2lmIGRlZmluZWQoRkVBVF9XSU5ET1dTKSAmJiBkZWZpbmVkKEZFQVRfUVVJQ0tGSVgpCi0JLyogU2hvdyBleHRyYSBpbmZvIGluIHRoZSBwcmV2aWV3IHdpbmRvdyBpZiB0aGVyZSBpcyBzb21ldGhpbmcgYW5kCi0JICogJ2NvbXBsZXRlb3B0JyBjb250YWlucyAicHJldmlldyIuICovCisJLyoKKwkgKiBTaG93IGV4dHJhIGluZm8gaW4gdGhlIHByZXZpZXcgd2luZG93IGlmIHRoZXJlIGlzIHNvbWV0aGluZyBhbmQKKwkgKiAnY29tcGxldGVvcHQnIGNvbnRhaW5zICJwcmV2aWV3Ii4KKwkgKiBOT1RFOiBCZSB2ZXJ5IGNhcmVmdWwgbm90IHRvIHN5bmMgdW5kbyEKKwkgKi8KIAlpZiAocHVtX2FycmF5W3B1bV9zZWxlY3RlZF0ucHVtX2luZm8gIT0gTlVMTAogCQkJCQkgICAgJiYgdmltX3N0cmNocihwX2NvdCwgJ3AnKSAhPSBOVUxMKQogCXsKQEAgLTQxMSw3ICs0MTQsNyBAQAogCiAJICAgIC8qIE9wZW4gYSBwcmV2aWV3IHdpbmRvdy4gIDMgbGluZXMgYnkgZGVmYXVsdC4gKi8KIAkgICAgZ19kb190YWdwcmV2aWV3ID0gMzsKLQkgICAgcmVzaXplZCA9IHByZXBhcmVfdGFncHJldmlldygpOworCSAgICByZXNpemVkID0gcHJlcGFyZV90YWdwcmV2aWV3KEZBTFNFKTsKIAkgICAgZ19kb190YWdwcmV2aWV3ID0gMDsKIAogCSAgICBpZiAoY3Vyd2luLT53X3BfcHZ3KQpAQCAtNDk2LDcgKzQ5OSw3IEBACiAJCQl1cGRhdGVfc2NyZWVuKDApOwogCQkJcHVtX2RvX3JlZHJhdyA9IEZBTFNFOwogCi0JCQlpZiAod2luX3ZhbGlkKGN1cndpbl9zYXZlKSkKKwkJCWlmICghcmVzaXplZCAmJiB3aW5fdmFsaWQoY3Vyd2luX3NhdmUpKQogCQkJICAgIHdpbl9lbnRlcihjdXJ3aW5fc2F2ZSwgVFJVRSk7CiAKIAkJCS8qIE1heSBuZWVkIHRvIHVwZGF0ZSB0aGUgc2NyZWVuIGFnYWluIHdoZW4gdGhlcmUgYXJlCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vZXhfY21kcy5wcm8gYi9zcmMvcHJvdG8vZXhfY21kcy5wcm8KaW5kZXggODQ3NDFjNC4uNDM4MmU2NSAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2V4X2NtZHMucHJvCisrKyBiL3NyYy9wcm90by9leF9jbWRzLnBybwpAQCAtMSw1OSArMSw1OSBAQAogLyogZXhfY21kcy5jICovCi1leHRlcm4gdm9pZCBkb19hc2NpaSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotZXh0ZXJuIHZvaWQgZXhfYWxpZ24gX19BUkdTKChleGFyZ19UICplYXApKTsKLWV4dGVybiB2b2lkIGV4X3NvcnQgX19BUkdTKChleGFyZ19UICplYXApKTsKLWV4dGVybiB2b2lkIGV4X3JldGFiIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gaW50IGRvX21vdmUgX19BUkdTKChsaW5lbnJfVCBsaW5lMSwgbGluZW5yX1QgbGluZTIsIGxpbmVucl9UIGRlc3QpKTsKLWV4dGVybiB2b2lkIGV4X2NvcHkgX19BUkdTKChsaW5lbnJfVCBsaW5lMSwgbGluZW5yX1QgbGluZTIsIGxpbmVucl9UIG4pKTsKLWV4dGVybiB2b2lkIGZyZWVfcHJldl9zaGVsbGNtZCBfX0FSR1MoKHZvaWQpKTsKLWV4dGVybiB2b2lkIGRvX2JhbmcgX19BUkdTKChpbnQgYWRkcl9jb3VudCwgZXhhcmdfVCAqZWFwLCBpbnQgZm9yY2VpdCwgaW50IGRvX2luLCBpbnQgZG9fb3V0KSk7Ci1leHRlcm4gdm9pZCBkb19zaGVsbCBfX0FSR1MoKGNoYXJfdSAqY21kLCBpbnQgZmxhZ3MpKTsKLWV4dGVybiBjaGFyX3UgKm1ha2VfZmlsdGVyX2NtZCBfX0FSR1MoKGNoYXJfdSAqY21kLCBjaGFyX3UgKml0bXAsIGNoYXJfdSAqb3RtcCkpOwotZXh0ZXJuIHZvaWQgYXBwZW5kX3JlZGlyIF9fQVJHUygoY2hhcl91ICpidWYsIGNoYXJfdSAqb3B0LCBjaGFyX3UgKmZuYW1lKSk7Ci1leHRlcm4gaW50IHZpbWluZm9fZXJyb3IgX19BUkdTKChjaGFyICplcnJudW0sIGNoYXIgKm1lc3NhZ2UsIGNoYXJfdSAqbGluZSkpOwotZXh0ZXJuIGludCByZWFkX3ZpbWluZm8gX19BUkdTKChjaGFyX3UgKmZpbGUsIGludCB3YW50X2luZm8sIGludCB3YW50X21hcmtzLCBpbnQgZm9yY2VpdCkpOwotZXh0ZXJuIHZvaWQgd3JpdGVfdmltaW5mbyBfX0FSR1MoKGNoYXJfdSAqZmlsZSwgaW50IGZvcmNlaXQpKTsKLWV4dGVybiBpbnQgdmltaW5mb19yZWFkbGluZSBfX0FSR1MoKHZpcl9UICp2aXJwKSk7Ci1leHRlcm4gY2hhcl91ICp2aW1pbmZvX3JlYWRzdHJpbmcgX19BUkdTKCh2aXJfVCAqdmlycCwgaW50IG9mZiwgaW50IGNvbnZlcnQpKTsKLWV4dGVybiB2b2lkIHZpbWluZm9fd3JpdGVzdHJpbmcgX19BUkdTKChGSUxFICpmZCwgY2hhcl91ICpwKSk7Ci1leHRlcm4gdm9pZCBkb19maXhkZWwgX19BUkdTKChleGFyZ19UICplYXApKTsKLWV4dGVybiB2b2lkIHByaW50X2xpbmVfbm9fcHJlZml4IF9fQVJHUygobGluZW5yX1QgbG51bSwgaW50IHVzZV9udW1iZXIsIGludCBsaXN0KSk7Ci1leHRlcm4gdm9pZCBwcmludF9saW5lIF9fQVJHUygobGluZW5yX1QgbG51bSwgaW50IHVzZV9udW1iZXIsIGludCBsaXN0KSk7Ci1leHRlcm4gdm9pZCBleF9maWxlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gdm9pZCBleF91cGRhdGUgX19BUkdTKChleGFyZ19UICplYXApKTsKLWV4dGVybiB2b2lkIGV4X3dyaXRlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gaW50IGRvX3dyaXRlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gdm9pZCBleF93bmV4dCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotZXh0ZXJuIHZvaWQgZG9fd3FhbGwgX19BUkdTKChleGFyZ19UICplYXApKTsKLWV4dGVybiBpbnQgbm90X3dyaXRpbmcgX19BUkdTKCh2b2lkKSk7Ci1leHRlcm4gaW50IGdldGZpbGUgX19BUkdTKChpbnQgZm51bSwgY2hhcl91ICpmZm5hbWUsIGNoYXJfdSAqc2ZuYW1lLCBpbnQgc2V0cG0sIGxpbmVucl9UIGxudW0sIGludCBmb3JjZWl0KSk7Ci1leHRlcm4gaW50IGRvX2VjbWQgX19BUkdTKChpbnQgZm51bSwgY2hhcl91ICpmZm5hbWUsIGNoYXJfdSAqc2ZuYW1lLCBleGFyZ19UICplYXAsIGxpbmVucl9UIG5ld2xudW0sIGludCBmbGFncykpOwotZXh0ZXJuIHZvaWQgZXhfYXBwZW5kIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gdm9pZCBleF9jaGFuZ2UgX19BUkdTKChleGFyZ19UICplYXApKTsKLWV4dGVybiB2b2lkIGV4X3ogX19BUkdTKChleGFyZ19UICplYXApKTsKLWV4dGVybiBpbnQgY2hlY2tfcmVzdHJpY3RlZCBfX0FSR1MoKHZvaWQpKTsKLWV4dGVybiBpbnQgY2hlY2tfc2VjdXJlIF9fQVJHUygodm9pZCkpOwotZXh0ZXJuIHZvaWQgZG9fc3ViIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gaW50IGRvX3N1Yl9tc2cgX19BUkdTKChpbnQgY291bnRfb25seSkpOwotZXh0ZXJuIHZvaWQgZXhfZ2xvYmFsIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gdm9pZCBnbG9iYWxfZXhlIF9fQVJHUygoY2hhcl91ICpjbWQpKTsKLWV4dGVybiBpbnQgcmVhZF92aW1pbmZvX3N1Yl9zdHJpbmcgX19BUkdTKCh2aXJfVCAqdmlycCwgaW50IGZvcmNlKSk7Ci1leHRlcm4gdm9pZCB3cml0ZV92aW1pbmZvX3N1Yl9zdHJpbmcgX19BUkdTKChGSUxFICpmcCkpOwotZXh0ZXJuIHZvaWQgZnJlZV9vbGRfc3ViIF9fQVJHUygodm9pZCkpOwotZXh0ZXJuIGludCBwcmVwYXJlX3RhZ3ByZXZpZXcgX19BUkdTKCh2b2lkKSk7Ci1leHRlcm4gdm9pZCBleF9oZWxwIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gY2hhcl91ICpjaGVja19oZWxwX2xhbmcgX19BUkdTKChjaGFyX3UgKmFyZykpOwotZXh0ZXJuIGludCBoZWxwX2hldXJpc3RpYyBfX0FSR1MoKGNoYXJfdSAqbWF0Y2hlZF9zdHJpbmcsIGludCBvZmZzZXQsIGludCB3cm9uZ19jYXNlKSk7Ci1leHRlcm4gaW50IGZpbmRfaGVscF90YWdzIF9fQVJHUygoY2hhcl91ICphcmcsIGludCAqbnVtX21hdGNoZXMsIGNoYXJfdSAqKiptYXRjaGVzLCBpbnQga2VlcF9sYW5nKSk7Ci1leHRlcm4gdm9pZCBmaXhfaGVscF9idWZmZXIgX19BUkdTKCh2b2lkKSk7Ci1leHRlcm4gdm9pZCBleF9leHVzYWdlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gdm9pZCBleF92aXVzYWdlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci1leHRlcm4gdm9pZCBleF9oZWxwdGFncyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotZXh0ZXJuIHZvaWQgZXhfc2lnbiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotZXh0ZXJuIHZvaWQgc2lnbl9ndWlfc3RhcnRlZCBfX0FSR1MoKHZvaWQpKTsKLWV4dGVybiBpbnQgc2lnbl9nZXRfYXR0ciBfX0FSR1MoKGludCB0eXBlbnIsIGludCBsaW5lKSk7Ci1leHRlcm4gY2hhcl91ICpzaWduX2dldF90ZXh0IF9fQVJHUygoaW50IHR5cGVucikpOwotZXh0ZXJuIHZvaWQgKnNpZ25fZ2V0X2ltYWdlIF9fQVJHUygoaW50IHR5cGVucikpOwotZXh0ZXJuIGNoYXJfdSAqc2lnbl90eXBlbnIybmFtZSBfX0FSR1MoKGludCB0eXBlbnIpKTsKLWV4dGVybiB2b2lkIGV4X2Ryb3AgX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZG9fYXNjaWkgX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZXhfYWxpZ24gX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZXhfc29ydCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwordm9pZCBleF9yZXRhYiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworaW50IGRvX21vdmUgX19BUkdTKChsaW5lbnJfVCBsaW5lMSwgbGluZW5yX1QgbGluZTIsIGxpbmVucl9UIGRlc3QpKTsKK3ZvaWQgZXhfY29weSBfX0FSR1MoKGxpbmVucl9UIGxpbmUxLCBsaW5lbnJfVCBsaW5lMiwgbGluZW5yX1QgbikpOwordm9pZCBmcmVlX3ByZXZfc2hlbGxjbWQgX19BUkdTKCh2b2lkKSk7Cit2b2lkIGRvX2JhbmcgX19BUkdTKChpbnQgYWRkcl9jb3VudCwgZXhhcmdfVCAqZWFwLCBpbnQgZm9yY2VpdCwgaW50IGRvX2luLCBpbnQgZG9fb3V0KSk7Cit2b2lkIGRvX3NoZWxsIF9fQVJHUygoY2hhcl91ICpjbWQsIGludCBmbGFncykpOworY2hhcl91ICptYWtlX2ZpbHRlcl9jbWQgX19BUkdTKChjaGFyX3UgKmNtZCwgY2hhcl91ICppdG1wLCBjaGFyX3UgKm90bXApKTsKK3ZvaWQgYXBwZW5kX3JlZGlyIF9fQVJHUygoY2hhcl91ICpidWYsIGNoYXJfdSAqb3B0LCBjaGFyX3UgKmZuYW1lKSk7CitpbnQgdmltaW5mb19lcnJvciBfX0FSR1MoKGNoYXIgKmVycm51bSwgY2hhciAqbWVzc2FnZSwgY2hhcl91ICpsaW5lKSk7CitpbnQgcmVhZF92aW1pbmZvIF9fQVJHUygoY2hhcl91ICpmaWxlLCBpbnQgd2FudF9pbmZvLCBpbnQgd2FudF9tYXJrcywgaW50IGZvcmNlaXQpKTsKK3ZvaWQgd3JpdGVfdmltaW5mbyBfX0FSR1MoKGNoYXJfdSAqZmlsZSwgaW50IGZvcmNlaXQpKTsKK2ludCB2aW1pbmZvX3JlYWRsaW5lIF9fQVJHUygodmlyX1QgKnZpcnApKTsKK2NoYXJfdSAqdmltaW5mb19yZWFkc3RyaW5nIF9fQVJHUygodmlyX1QgKnZpcnAsIGludCBvZmYsIGludCBjb252ZXJ0KSk7Cit2b2lkIHZpbWluZm9fd3JpdGVzdHJpbmcgX19BUkdTKChGSUxFICpmZCwgY2hhcl91ICpwKSk7Cit2b2lkIGRvX2ZpeGRlbCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwordm9pZCBwcmludF9saW5lX25vX3ByZWZpeCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGludCB1c2VfbnVtYmVyLCBpbnQgbGlzdCkpOwordm9pZCBwcmludF9saW5lIF9fQVJHUygobGluZW5yX1QgbG51bSwgaW50IHVzZV9udW1iZXIsIGludCBsaXN0KSk7Cit2b2lkIGV4X2ZpbGUgX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZXhfdXBkYXRlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Cit2b2lkIGV4X3dyaXRlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitpbnQgZG9fd3JpdGUgX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZXhfd25leHQgX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZG9fd3FhbGwgX19BUkdTKChleGFyZ19UICplYXApKTsKK2ludCBub3Rfd3JpdGluZyBfX0FSR1MoKHZvaWQpKTsKK2ludCBnZXRmaWxlIF9fQVJHUygoaW50IGZudW0sIGNoYXJfdSAqZmZuYW1lLCBjaGFyX3UgKnNmbmFtZSwgaW50IHNldHBtLCBsaW5lbnJfVCBsbnVtLCBpbnQgZm9yY2VpdCkpOworaW50IGRvX2VjbWQgX19BUkdTKChpbnQgZm51bSwgY2hhcl91ICpmZm5hbWUsIGNoYXJfdSAqc2ZuYW1lLCBleGFyZ19UICplYXAsIGxpbmVucl9UIG5ld2xudW0sIGludCBmbGFncykpOwordm9pZCBleF9hcHBlbmQgX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZXhfY2hhbmdlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Cit2b2lkIGV4X3ogX19BUkdTKChleGFyZ19UICplYXApKTsKK2ludCBjaGVja19yZXN0cmljdGVkIF9fQVJHUygodm9pZCkpOworaW50IGNoZWNrX3NlY3VyZSBfX0FSR1MoKHZvaWQpKTsKK3ZvaWQgZG9fc3ViIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitpbnQgZG9fc3ViX21zZyBfX0FSR1MoKGludCBjb3VudF9vbmx5KSk7Cit2b2lkIGV4X2dsb2JhbCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwordm9pZCBnbG9iYWxfZXhlIF9fQVJHUygoY2hhcl91ICpjbWQpKTsKK2ludCByZWFkX3ZpbWluZm9fc3ViX3N0cmluZyBfX0FSR1MoKHZpcl9UICp2aXJwLCBpbnQgZm9yY2UpKTsKK3ZvaWQgd3JpdGVfdmltaW5mb19zdWJfc3RyaW5nIF9fQVJHUygoRklMRSAqZnApKTsKK3ZvaWQgZnJlZV9vbGRfc3ViIF9fQVJHUygodm9pZCkpOworaW50IHByZXBhcmVfdGFncHJldmlldyBfX0FSR1MoKGludCB1bmRvX3N5bmMpKTsKK3ZvaWQgZXhfaGVscCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworY2hhcl91ICpjaGVja19oZWxwX2xhbmcgX19BUkdTKChjaGFyX3UgKmFyZykpOworaW50IGhlbHBfaGV1cmlzdGljIF9fQVJHUygoY2hhcl91ICptYXRjaGVkX3N0cmluZywgaW50IG9mZnNldCwgaW50IHdyb25nX2Nhc2UpKTsKK2ludCBmaW5kX2hlbHBfdGFncyBfX0FSR1MoKGNoYXJfdSAqYXJnLCBpbnQgKm51bV9tYXRjaGVzLCBjaGFyX3UgKioqbWF0Y2hlcywgaW50IGtlZXBfbGFuZykpOwordm9pZCBmaXhfaGVscF9idWZmZXIgX19BUkdTKCh2b2lkKSk7Cit2b2lkIGV4X2V4dXNhZ2UgX19BUkdTKChleGFyZ19UICplYXApKTsKK3ZvaWQgZXhfdml1c2FnZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwordm9pZCBleF9oZWxwdGFncyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwordm9pZCBleF9zaWduIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Cit2b2lkIHNpZ25fZ3VpX3N0YXJ0ZWQgX19BUkdTKCh2b2lkKSk7CitpbnQgc2lnbl9nZXRfYXR0ciBfX0FSR1MoKGludCB0eXBlbnIsIGludCBsaW5lKSk7CitjaGFyX3UgKnNpZ25fZ2V0X3RleHQgX19BUkdTKChpbnQgdHlwZW5yKSk7Cit2b2lkICpzaWduX2dldF9pbWFnZSBfX0FSR1MoKGludCB0eXBlbnIpKTsKK2NoYXJfdSAqc2lnbl90eXBlbnIybmFtZSBfX0FSR1MoKGludCB0eXBlbnIpKTsKK3ZvaWQgZXhfZHJvcCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vZ3VpX21hYy5wcm8gYi9zcmMvcHJvdG8vZ3VpX21hYy5wcm8KaW5kZXggYzY0MDM1MS4uYzk0M2IwOCAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2d1aV9tYWMucHJvCisrKyBiL3NyYy9wcm90by9ndWlfbWFjLnBybwpAQCAtMjgsNyArMjgsNyBAQAogdm9pZCBndWlfbWNoX3NldF93aW5zaXplIF9fQVJHUygoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWluX3dpZHRoLCBpbnQgbWluX2hlaWdodCwgaW50IGJhc2Vfd2lkdGgsIGludCBiYXNlX2hlaWdodCkpOwogaW50IGd1aV9tY2hfZ2V0X3dpbnBvcyBfX0FSR1MoKGludCAqeCwgaW50ICp5KSk7CiB2b2lkIGd1aV9tY2hfc2V0X3dpbnBvcyBfX0FSR1MoKGludCB4LCBpbnQgeSkpOwotdm9pZCBndWlfbWNoX3NldF9zaGVsbHNpemUgX19BUkdTKChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBtaW5fd2lkdGgsIGludCBtaW5faGVpZ2h0LCBpbnQgYmFzZV93aWR0aCwgaW50IGJhc2VfaGVpZ2h0KSk7Cit2b2lkIGd1aV9tY2hfc2V0X3NoZWxsc2l6ZSBfX0FSR1MoKGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IG1pbl93aWR0aCwgaW50IG1pbl9oZWlnaHQsIGludCBiYXNlX3dpZHRoLCBpbnQgYmFzZV9oZWlnaHQsIGludCBkaXJlY3Rpb24pKTsKIHZvaWQgZ3VpX21jaF9nZXRfc2NyZWVuX2RpbWVuc2lvbnMgX19BUkdTKChpbnQgKnNjcmVlbl93LCBpbnQgKnNjcmVlbl9oKSk7CiB2b2lkIGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOwogdm9pZCBndWlfbWNoX2VuYWJsZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBmbGFnKSk7CmRpZmYgLS1naXQgYS9zcmMvc2VhcmNoLmMgYi9zcmMvc2VhcmNoLmMKaW5kZXggMTQ1ZjZjOC4uNDFmMzhhMyAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaC5jCisrKyBiL3NyYy9zZWFyY2guYwpAQCAtNDkyNyw3ICs0OTI3LDcgQEAKIAkJICAgIGlmIChnX2RvX3RhZ3ByZXZpZXcgIT0gMCkKIAkJICAgIHsKIAkJCWN1cndpbl9zYXZlID0gY3Vyd2luOwotCQkJcHJlcGFyZV90YWdwcmV2aWV3KCk7CisJCQlwcmVwYXJlX3RhZ3ByZXZpZXcoVFJVRSk7CiAJCSAgICB9CiAjZW5kaWYKIAkJICAgIGlmIChhY3Rpb24gPT0gQUNUSU9OX1NQTElUKQpkaWZmIC0tZ2l0IGEvc3JjL3RhZy5jIGIvc3JjL3RhZy5jCmluZGV4IDZjODg4OGMuLmE5YWM1MzcgMTAwNjQ0Ci0tLSBhL3NyYy90YWcuYworKysgYi9zcmMvdGFnLmMKQEAgLTMxMDEsNyArMzEwMSw3IEBACiAJICAgICAqIE1ha2UgdGhlIHByZXZpZXcgd2luZG93IHRoZSBjdXJyZW50IHdpbmRvdy4KIAkgICAgICogT3BlbiBhIHByZXZpZXcgd2luZG93IHdoZW4gbmVlZGVkLgogCSAgICAgKi8KLQkgICAgcHJlcGFyZV90YWdwcmV2aWV3KCk7CisJICAgIHByZXBhcmVfdGFncHJldmlldyhUUlVFKTsKIAl9CiAgICAgfQogCmRpZmYgLS1naXQgYS9zcmMvdmVyc2lvbi5oIGIvc3JjL3ZlcnNpb24uaAppbmRleCAzYjA2ZGU5Li5jZTVjOTcxIDEwMDY0NAotLS0gYS9zcmMvdmVyc2lvbi5oCisrKyBiL3NyYy92ZXJzaW9uLmgKQEAgLTM1LDYgKzM1LDYgQEAKICAqLwogI2RlZmluZSBWSU1fVkVSU0lPTl9OT0RPVAkidmltNzBjIgogI2RlZmluZSBWSU1fVkVSU0lPTl9TSE9SVAkiNy4wYyIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTUVESVVNCSI3LjBjMDEgQkVUQSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYzAxIEJFVEEgKDIwMDYgTWFyIDI3KSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBjMDEgQkVUQSAoMjAwNiBNYXIgMjcsIGNvbXBpbGVkICIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTUVESVVNCSI3LjBjMDIgQkVUQSIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYzAyIEJFVEEgKDIwMDYgTWFyIDI4KSIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBjMDIgQkVUQSAoMjAwNiBNYXIgMjgsIGNvbXBpbGVkICIK