ZGlmZiAtLWdpdCBhL3NyYy9mYXJzaS5jIGIvc3JjL2ZhcnNpLmMKaW5kZXggNjgyZGQ0Ni4uY2M0MTRkNiAxMDA2NDQKLS0tIGEvc3JjL2ZhcnNpLmMKKysrIGIvc3JjL2ZhcnNpLmMKQEAgLTE5MjAsNTYgKzE5MjAsNTYgQEAKIAljYXNlICBOTDoKIAljYXNlICBUQUI6CiAKLQkgICAgICAgc3dpdGNoICgodGVtcGMgPSBjbWRfZ2NoYXIoQVRfQ1VSU09SKSkpCi0JICAgICAgIHsKLQkgICAgY2FzZSBfQkU6Ci0JICAgIGNhc2UgX1BFOgotCSAgICBjYXNlIF9URToKLQkgICAgY2FzZSBfU0U6Ci0JICAgIGNhc2UgX0pJTToKLQkgICAgY2FzZSBfQ0hFOgotCSAgICBjYXNlIF9IRV9KOgotCSAgICBjYXNlIF9YRToKLQkgICAgY2FzZSBfU0lOOgotCSAgICBjYXNlIF9TSElOOgotCSAgICBjYXNlIF9TQUQ6Ci0JICAgIGNhc2UgX1pBRDoKLQkgICAgY2FzZSBfQVlOOgotCSAgICBjYXNlIF9HSEFZTjoKLQkgICAgY2FzZSBfRkU6Ci0JICAgIGNhc2UgX0dIQUY6Ci0JICAgIGNhc2UgX0tBRjoKLQkgICAgY2FzZSBfR0FGOgotCSAgICBjYXNlIF9MQU06Ci0JICAgIGNhc2UgX01JTToKLQkgICAgY2FzZSBfTk9PTjoKLQkgICAgY2FzZSBfSEU6Ci0JICAgIGNhc2UgX0hFXzoKLQkJCWNtZF9wY2hhcih0b0ZfVHlBKHRlbXBjKSwgQVRfQ1VSU09SKTsKLQkJYnJlYWs7Ci0JICAgIGNhc2UgX0FZTl86Ci0JCQljbWRfcGNoYXIoQVlOXywgQVRfQ1VSU09SKTsKLQkJYnJlYWs7Ci0JICAgIGNhc2UgX0dIQVlOXzoKLQkJCWNtZF9wY2hhcihHSEFZTl8sIEFUX0NVUlNPUik7Ci0JCWJyZWFrOwotCSAgICBjYXNlIF9JRToKLQkJaWYgKEZfaXNfVHlCX1R5Q19UeUQoU1JDX0NNRCwgQVRfQ1VSU09SKzEpKQotCQkJICAgIGNtZF9wY2hhcihJRV8sIEFUX0NVUlNPUik7Ci0JCWVsc2UKLQkJCSAgICBjbWRfcGNoYXIoSUUsIEFUX0NVUlNPUik7Ci0JCWJyZWFrOwotCSAgICBjYXNlIF9ZRUU6Ci0JCWlmIChGX2lzX1R5Ql9UeUNfVHlEKFNSQ19DTUQsIEFUX0NVUlNPUisxKSkKLQkJCSAgICBjbWRfcGNoYXIoWUVFXywgQVRfQ1VSU09SKTsKLQkJCWVsc2UKLQkJCSAgICBjbWRfcGNoYXIoWUVFLCBBVF9DVVJTT1IpOwotCQlicmVhazsKLQkgICAgY2FzZSBfWUU6Ci0JCWlmIChGX2lzX1R5Ql9UeUNfVHlEKFNSQ19DTUQsIEFUX0NVUlNPUisxKSkKLQkJCSAgICBjbWRfcGNoYXIoWUVfLCBBVF9DVVJTT1IpOwotCQkJZWxzZQotCQkJICAgIGNtZF9wY2hhcihZRSwgQVRfQ1VSU09SKTsKKwkgICAgc3dpdGNoICgodGVtcGMgPSBjbWRfZ2NoYXIoQVRfQ1VSU09SKSkpCisJICAgIHsKKwkJY2FzZSBfQkU6CisJCWNhc2UgX1BFOgorCQljYXNlIF9URToKKwkJY2FzZSBfU0U6CisJCWNhc2UgX0pJTToKKwkJY2FzZSBfQ0hFOgorCQljYXNlIF9IRV9KOgorCQljYXNlIF9YRToKKwkJY2FzZSBfU0lOOgorCQljYXNlIF9TSElOOgorCQljYXNlIF9TQUQ6CisJCWNhc2UgX1pBRDoKKwkJY2FzZSBfQVlOOgorCQljYXNlIF9HSEFZTjoKKwkJY2FzZSBfRkU6CisJCWNhc2UgX0dIQUY6CisJCWNhc2UgX0tBRjoKKwkJY2FzZSBfR0FGOgorCQljYXNlIF9MQU06CisJCWNhc2UgX01JTToKKwkJY2FzZSBfTk9PTjoKKwkJY2FzZSBfSEU6CisJCWNhc2UgX0hFXzoKKwkJICAgIGNtZF9wY2hhcih0b0ZfVHlBKHRlbXBjKSwgQVRfQ1VSU09SKTsKKwkJICAgIGJyZWFrOworCQljYXNlIF9BWU5fOgorCQkgICAgY21kX3BjaGFyKEFZTl8sIEFUX0NVUlNPUik7CisJCSAgICBicmVhazsKKwkJY2FzZSBfR0hBWU5fOgorCQkgICAgY21kX3BjaGFyKEdIQVlOXywgQVRfQ1VSU09SKTsKKwkJICAgIGJyZWFrOworCQljYXNlIF9JRToKKwkJICAgIGlmIChGX2lzX1R5Ql9UeUNfVHlEKFNSQ19DTUQsIEFUX0NVUlNPUisxKSkKKwkJCWNtZF9wY2hhcihJRV8sIEFUX0NVUlNPUik7CisJCSAgICBlbHNlCisJCQljbWRfcGNoYXIoSUUsIEFUX0NVUlNPUik7CisJCSAgICBicmVhazsKKwkJY2FzZSBfWUVFOgorCQkgICAgaWYgKEZfaXNfVHlCX1R5Q19UeUQoU1JDX0NNRCwgQVRfQ1VSU09SKzEpKQorCQkJY21kX3BjaGFyKFlFRV8sIEFUX0NVUlNPUik7CisJCSAgICBlbHNlCisJCQljbWRfcGNoYXIoWUVFLCBBVF9DVVJTT1IpOworCQkgICAgYnJlYWs7CisJCWNhc2UgX1lFOgorCQkgICAgaWYgKEZfaXNfVHlCX1R5Q19UeUQoU1JDX0NNRCwgQVRfQ1VSU09SKzEpKQorCQkJY21kX3BjaGFyKFlFXywgQVRfQ1VSU09SKTsKKwkJICAgIGVsc2UKKwkJCWNtZF9wY2hhcihZRSwgQVRfQ1VSU09SKTsKIAkgICAgfQogCiAJICAgIHN3aXRjaCAoYykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmFyc2kudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9mYXJzaS52aW0KaW5kZXggOWMxNjVkNy4uZGNmYTAyNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9mYXJzaS52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9mYXJzaS52aW0KQEAgLTkxLDEzICs5MSw0MyBAQAogICBjYWxsIGZlZWRrZXlzKCJhYWJjMDEyMzQ1Njc4OS4rLV4lIz14eXpcPEVzYz4iLCAndHgnKQogICBjYWxsIGFzc2VydF9lcXVhbCgiXHg4Y8zOva6lqq2rprm4t7a1tLOysbDUXHg5M9UiLCBnZXRsaW5lKCcuJykpCiAKLSAgIiBhbGwgbm9uLW51bWJlciBzcGVjaWFsIGNoYXJzCi0gIGNhbGwgZmVlZGtleXMoImFCIEUgRiBIIEkgSyBMIE0gTyBQIFEgUiBUIFUgVyBZIGAgISAgQCAjICQgJSBeICYgKiAoKSAtIF8gPSArIFxcIHwgOiBcIiAuICAvIDwgPiA/IFw8RXNjPiIsICd0eCcpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCJceDhjzM69rqWqraumubi3trW0s7KxsNRceDkz1aGg9KD6oMCg9qDmoOegwqBboF2g96DzoPKg8KD1oPGgoqCjoKCnoK6gpKCloKqgrKDooKipoK2g6aC9oKug66DqoLqgu6CmoKCvoL6gvKC/oCIsIGdldGxpbmUoJy4nKSkKKyAgIiBhbGwgbm9uLW51bWJlciBzcGVjaWFsIGNoYXJzIHdpdGggc3BhY2VzCisgIGNhbGwgZmVlZGtleXMoIm9CIEUgRiBIIEkgSyBMIE0gTyBQIFEgUiBUIFUgVyBZIGAgISAgQCAjICQgJSBeICYgKiAoKSAtIF8gPSArIFxcIHwgOiBcIiAuICAvIDwgPiA/IFw8RXNjPiIsICd0eCcpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCKhoPSg+qDAoPag5qDnoMKgW6BdoPeg86DyoPCg9aDxoKKgo6Cgp6CuoKSgpaCqoKyg6KCoqaCtoOmgvaCroOug6qC6oLugpqCgr6C+oLygv6AiLCBnZXRsaW5lKCcuJykpCiAKLSAgIiBhbGwgbGV0dGVyIGNoYXJzCi0gIGNhbGwgZmVlZGtleXMoImFhIEEgYiBjIEMgZCBEIGUgZiBnIEcgaCBpIGogSiBrIGwgbSBuIE4gbyBwIHEgciBzIFMgdCB1IHYgViB3IHggWCB5IHogWiA7IFwgLCBbIF0gXDxFc2M+IiwgJ3R4JykKLSAgY2FsbCBhc3NlcnRfZXF1YWwoIlx4OGPMzr2upaqtq6a5uLe2tbSzsrGw1Fx4OTPVoaD0oPqgwKD2oOag56DCoFugXaD3oPOg8qDwoPWg8aCioKOgoKegrqCkoKWgqqCsoOigqKmgraDpoL2gq6DroOqguqC7oKagoK+gvqC8oL+g0aD5oMygzqDPoOGg/qDGoMOg3KD4oMGg4KDFoPyg3qDdoMSgy6DLoMqgyaDToNmg0KD7oNig1qDNoM2g0qDUoNSg16DVoP2g2qCg36DHoMigIiwgZ2V0bGluZSgnLicpKQorICAiIGFsbCBub24tbnVtYmVyIHNwZWNpYWwgY2hhcnMgd2l0aG91dCBzcGFjZXMKKyAgY2FsbCBmZWVka2V5cygib0JFRkhJS0xNT1BRUlRVV1lgIUAjJCVeJiooKS1fPStcXHw6XCIuLzw+P1w8RXNjPiIsJ3R4JykKKyAgY2FsbCBhc3NlcnRfZXF1YWwoIqH0+sD25ufCW1338/Lw9fGio6eupKWqrOioqa3pvavr6rq7pq++vL8iLCBnZXRsaW5lKCcuJykpCisKKyAgIiBhbGwgbGV0dGVyIGNoYXJzIHdpdGggc3BhY2VzCisgIGNhbGwgZmVlZGtleXMoIm9hIEEgYiBjIEMgZCBEIGUgZiBnIEcgaCBpIGogSiBrIGwgbSBuIE4gbyBwIHEgciBzIFMgdCB1IHYgViB3IHggWCB5IHogWiA7IFwgLCBbIF0gXDxFc2M+IiwgJ3R4JykKKyAgY2FsbCBhc3NlcnRfZXF1YWwoItGg+aDMoM6gz6DhoP6gxqDDoNyg+KDBoOCgxaD8oN6g3aDEoMugy6DKoMmg06DZoNCg+6DYoNagzaDNoNKg1KDUoNeg1aD9oNqgoN+gx6DIoCIsIGdldGxpbmUoJy4nKSkKKworICAiIGFsbCBsZXR0ZXIgY2hhcnMgd2l0aG91dCBzcGFjZXMKKyAgY2FsbCBmZWVka2V5cygib2FBYmNDZERlZmdHaGlqSmtsbW5Ob3BxcnNTdHV2Vnd4WHl6WjtcLFtdXDxFc2M+IiwgJ3R4JykKKyAgY2FsbCBhc3NlcnRfZXF1YWwoIlx4OGP5zM7PXHg5Zu5ceDg2XHg4M9z4wVx4OWRceDg1XHg4MFx4OWNceDliXHg4NMvLXHg4YVx4ODlceDhlXHg5Nlx4OGLsXHg5NVx4OTDNzVx4OGTU1Fx4OTPV/Vx4OTffXHg4N1x4ODgiLCBnZXRsaW5lKCcuJykpCiAKICAgYndpcGUhCiBlbmRmdW5jCisKK2Z1bmMgVGVzdF9jb21tYW5kX2xpbmVfZmFyc2koKQorICBzZXQgYWxsb3dyZXZpbnMgYWx0a2V5bWFwCisKKyAgIiBsZXR0ZXIgY2hhcmFjdGVycyB3aXRoIHNwYWNlcworICBjYWxsIGZlZWRrZXlzKCI6XCJcPEMtXz5hIEEgYiBjIEMgZCBEIGUgZiBnIEcgaCBpIGogSiBrIGwgbSBuIE4gbyBwIHEgciBzIFMgdCB1IHYgViB3IHggWCB5IHogWiA7IFxcICwgWyBdXDxDUj4iLCAndHgnKQorICBjYWxsIGFzc2VydF9lcXVhbCgiXCJceDg4oMeg36DroNqg1aDVoNeg1KDUoNKgzaDNoNag2KD7oNCg2aDToMmgyqDLoMugxKDdoN6g/KDFoOCgwaD4oNygw6DGoP6g4aDPoM6gzKD5oNEiLCBnZXRyZWcoJzonKSkKKyAKKyAgIiBsZXR0ZXIgY2hhcmFjdGVycyB3aXRob3V0IHNwYWNlcworICBjYWxsIGZlZWRrZXlzKCI6XCJcPEMtXz5hQWJjQ2REZWZnR2hpakprbG1uTm9wcXJzU3R1dlZ3eFh5elo7XFwsW11cPENSPiIsICd0eCcpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCJcIlx4ODhceDg33+va1dVceDkz1NRceDhkzc1ceDkwXHg5NexceDhiXHg5Nlx4OGVceDg5XHg4YcvLXHg4NFx4OWJceDljXHg4MFx4ODVceDlkwfjcXHg4M1x4ODbuXHg5Zs/OzPlceDhjIiwgZ2V0cmVnKCc6JykpCisgCisgICIgb3RoZXIgY2hhcmFjdGVycyB3aXRoIHNwYWNlcworICBjYWxsIGZlZWRrZXlzKCI6XCJcPEMtXz4wIDEgMiAzIDQgNSA2IDcgOCA5IGAgLiAgISAgXCIgJCAlIF4gJiAvICgpID0gXFwgPyAgKyAtIF8gKiA6ICMgfiBAIDwgPiB7IH0gfCBCIEUgRiBIIEkgSyBMIE0gTyBQIFEgUiBUIFUgVyBZXDxDUj4iLCAndHgnKQorICBjYWxsIGFzc2VydF9lcXVhbCgiXCLxoPWg8KDyoPOg96BdoFugwqDnoOag9qDAoPqg9KChoOqgfaB7oLygvqCnoH6grqC6oOig6aCtoKugoL+g66C9oKmooK+grKCqoKWgpKC7oKCjoKCmoKKguaC4oLegtqC1oLSgs6CyoLGgsCIsIGdldHJlZygnOicpKQorCisgICIgb3RoZXIgY2hhcmFjdGVycyB3aXRob3V0IHNwYWNlcworICBjYWxsIGZlZWRrZXlzKCI6XCJcPEMtXz4wMTIzNDU2Nzg5YC4hXCIkJV4mLygpPVxcPystXyo6I35APD57fXxCRUZISUtMTU9QUVJUVVdZXDxDUj4iLCAndHgnKQorICBjYWxsIGFzc2VydF9lcXVhbCgiXCLx9fDy8/ddW8Ln5vbA+vSh6n17vL6nfq666Omtq7/rvamor6yqpaS7o6aiubi3trW0s7KxsCIsIGdldHJlZygnOicpKQorCisgIHNldCBub2FsbG93cmV2aW5zIG5vYWx0a2V5bWFwCitlbmRmdW5jCmRpZmYgLS1naXQgYS9zcmMvdmVyc2lvbi5jIGIvc3JjL3ZlcnNpb24uYwppbmRleCAxN2Q5ZTYzLi42N2ZlNjliIDEwMDY0NAotLS0gYS9zcmMvdmVyc2lvbi5jCisrKyBiL3NyYy92ZXJzaW9uLmMKQEAgLTc2NSw2ICs3NjUsOCBAQAogc3RhdGljIGludCBpbmNsdWRlZF9wYXRjaGVzW10gPQogeyAgIC8qIEFkZCBuZXcgcGF0Y2ggbnVtYmVyIGJlbG93IHRoaXMgbGluZSAqLwogLyoqLworICAgIDI2MywKKy8qKi8KICAgICAyNjIsCiAvKiovCiAgICAgMjYxLAo=