ZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfYXV0b2NtZC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X2F1dG9jbWQudmltCmluZGV4IDczN2RkMGIuLjAwNzJlM2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfYXV0b2NtZC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9hdXRvY21kLnZpbQpAQCAtMzA2Miw3ICszMDYyLDcgQEAKICAgYXVncm91cCBFTkQKICAgbGV0IHNhdmVfY3BvID0gJmNwbwogICBzZXQgY3BvKz1mCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCdyIFhmaWxlJywgWydFODEyOicsICdFNDg0OiddKQorICBjYWxsIGFzc2VydF9mYWlscygnciBYY2hhbmdlYnVmJywgWydFODEyOicsICdFNDg0OiddKQogICBjYWxsIGFzc2VydF9lcXVhbCgnc29tZWZpbGUnLCBAJSkKICAgbGV0ICZjcG8gPSBzYXZlX2NwbwogICBhdWdyb3VwIFRlc3RBdUNtZApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9ldmFsX3N0dWZmLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfZXZhbF9zdHVmZi52aW0KaW5kZXggOTM0Mjg2Yi4uMzY2OWNmZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9ldmFsX3N0dWZmLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X2V2YWxfc3R1ZmYudmltCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZXhjbWQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9leGNtZC52aW0KaW5kZXggNTJkNDFkYi4uYTU2Njc2ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9leGNtZC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9leGNtZC52aW0KQEAgLTgzLDIzICs4MywyMyBAQAogCiAiIFRlc3QgZm9yIHRoZSA6ZHJvcCBjb21tYW5kCiBmdW5jIFRlc3RfZHJvcF9jbWQoKQotICBjYWxsIHdyaXRlZmlsZShbJ0wxJywgJ0wyJ10sICdYZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFsnTDEnLCAnTDInXSwgJ1hkcm9wZmlsZScpCiAgIGVuZXcgfCBvbmx5Ci0gIGRyb3AgWGZpbGUKKyAgZHJvcCBYZHJvcGZpbGUKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ0wyJywgZ2V0bGluZSgyKSkKICAgIiBUZXN0IGZvciBzd2l0Y2hpbmcgdG8gYW4gZXhpc3Rpbmcgd2luZG93CiAgIGJlbG93IG5ldwotICBkcm9wIFhmaWxlCisgIGRyb3AgWGRyb3BmaWxlCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDEsIHdpbm5yKCkpCiAgICIgVGVzdCBmb3Igc3BsaXR0aW5nIHRoZSBjdXJyZW50IHdpbmRvdwogICBlbmV3IHwgb25seQogICBzZXQgbW9kaWZpZWQKLSAgZHJvcCBYZmlsZQorICBkcm9wIFhkcm9wZmlsZQogICBjYWxsIGFzc2VydF9lcXVhbCgyLCB3aW5ucignJCcpKQogICAiIENoZWNrIGZvciBzZXR0aW5nIHRoZSBhcmd1bWVudCBsaXN0Ci0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnWGZpbGUnXSwgYXJndigpKQorICBjYWxsIGFzc2VydF9lcXVhbChbJ1hkcm9wZmlsZSddLCBhcmd2KCkpCiAgIGVuZXcgfCBvbmx5IQotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWGRyb3BmaWxlJykKIGVuZGZ1bmMKIAogIiBUZXN0IGZvciB0aGUgOmFwcGVuZCBjb21tYW5kCkBAIC01MDksMTAgKzUwOSwxMCBAQAogICBDaGVja05vdFJvb3QKIAogICAiIFJlZGlyZWN0aW5nIHRvIGEgcmVhZC1vbmx5IGZpbGUKLSAgY2FsbCB3cml0ZWZpbGUoW10sICdYZmlsZScpCi0gIGNhbGwgc2V0ZnBlcm0oJ1hmaWxlJywgJ3ItLXItLXItLScpCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCdyZWRpciEgPiBYZmlsZScsICdFMTkwOicpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFtdLCAnWHJlZGlyZmlsZScpCisgIGNhbGwgc2V0ZnBlcm0oJ1hyZWRpcmZpbGUnLCAnci0tci0tci0tJykKKyAgY2FsbCBhc3NlcnRfZmFpbHMoJ3JlZGlyISA+IFhyZWRpcmZpbGUnLCAnRTE5MDonKQorICBjYWxsIGRlbGV0ZSgnWHJlZGlyZmlsZScpCiBlbmRmdW5jCiAKICIgVGVzdCBmb3IgdGhlIDpmaWxldHlwZSBjb21tYW5kCkBAIC01MzIsMjEgKzUzMiwyMSBAQAogCiAiIFRlc3QgZm9yIHRoZSA6cmVhZCBjb21tYW5kCiBmdW5jIFRlc3RfcmVhZF9jbWQoKQotICBjYWxsIHdyaXRlZmlsZShbJ29uZSddLCAnWGZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbJ29uZSddLCAnWGNtZGZpbGUnKQogICBuZXcKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3JlYWQnLCAnRTMyOicpCi0gIGVkaXQgWGZpbGUKKyAgZWRpdCBYY21kZmlsZQogICByZWFkCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnb25lJywgJ29uZSddLCBnZXRsaW5lKDEsICckJykpCiAgIGNsb3NlIQogICBuZXcKLSAgcmVhZCBYZmlsZQorICByZWFkIFhjbWRmaWxlCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnJywgJ29uZSddLCBnZXRsaW5lKDEsICckJykpCiAgIGNhbGwgZGVsZXRlYnVmbGluZSgnJywgMSwgJyQnKQotICBjYWxsIGZlZWRrZXlzKCJRciBYZmlsZVw8Q1I+dmlzdWFsXDxDUj4iLCAneHQnKQorICBjYWxsIGZlZWRrZXlzKCJRciBYY21kZmlsZVw8Q1I+dmlzdWFsXDxDUj4iLCAneHQnKQogICBjYWxsIGFzc2VydF9lcXVhbChbJ29uZSddLCBnZXRsaW5lKDEsICckJykpCiAgIGNsb3NlIQotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWGNtZGZpbGUnKQogZW5kZnVuYwogCiAiIFRlc3QgZm9yIHJ1bm5pbmcgRXggY29tbWFuZHMgd2hlbiB0ZXh0IGlzIGxvY2tlZC4KQEAgLTYzMyw5ICs2MzMsOSBAQAogICBlbmRpZgogICBjYWxsIGFzc2VydF9mYWlscygibGV0ICRURVNUVkFSPTEiLCAnRTQ4OicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIGZlZWRrZXlzKCdpdmltJykiLCAnRTQ4OicpCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCJzb3VyY2UhIFhmaWxlIiwgJ0U0ODonKQotICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCBkZWxldGUoJ1hmaWxlJykiLCAnRTQ4OicpCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHdyaXRlZmlsZShbXSwgJ1hmaWxlJykiLCAnRTQ4OicpCisgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJzb3VyY2UhIFhzb21lZmlsZSIsICdFNDg6JykKKyAgY2FsbCBhc3NlcnRfZmFpbHMoImNhbGwgZGVsZXRlKCdYdGhhdGZpbGUnKSIsICdFNDg6JykKKyAgY2FsbCBhc3NlcnRfZmFpbHMoImNhbGwgd3JpdGVmaWxlKFtdLCAnWGFub3RoZXJmaWxlJykiLCAnRTQ4OicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCchbHMnLCAnRTQ4OicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdzaGVsbCcsICdFNDg6JykKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3N0b3AnLCAnRTQ4OicpCkBAIC02NjAsNyArNjYwLDcgQEAKICAgaWYgaGFzKCd0ZXJtaW5hbCcpCiAgICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3Rlcm1pbmFsJywgJ0U0ODonKQogICAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHRlcm1fc3RhcnQoInZpbSIpJywgJ0U0ODonKQotICAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHRlcm1fZHVtcHdyaXRlKDEsICJYZmlsZSIpJywgJ0U0ODonKQorICAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHRlcm1fZHVtcHdyaXRlKDEsICJYZHVtcGZpbGUiKScsICdFNDg6JykKICAgZW5kaWYKICAgaWYgaGFzKCdjaGFubmVsJykKICAgICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCBjaF9sb2dmaWxlKCdjaGxvZycpIiwgJ0U0ODonKQpAQCAtNzI3LDE3ICs3MjcsMTcgQEAKIAogIiBUZXN0IDp3cml0ZSBhZnRlciBjaGFuZ2luZyBuYW1lIHdpdGggOmZpbGUgYW5kIGxvYWRpbmcgaXQgd2l0aCA6ZWRpdAogZnVuYyBUZXN0X3dyaXRlX2FmdGVyX3JlbmFtZSgpCi0gIGNhbGwgd3JpdGVmaWxlKFsndGV4dCddLCAnWGZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbJ3RleHQnXSwgJ1hhZnRlcmZpbGUnKQogCiAgIGVuZXcKLSAgZmlsZSBYZmlsZQorICBmaWxlIFhhZnRlcmZpbGUKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3dyaXRlJywgJ0UxMzogRmlsZSBleGlzdHMgKGFkZCAhIHRvIG92ZXJyaWRlKScpCiAKICAgIiB3b3JrcyBPSyBhZnRlciAiOmVkaXQiCiAgIGVkaXQKICAgd3JpdGUKIAotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWGFmdGVyZmlsZScpCiAgIGJ3aXBlIQogZW5kZnVuYwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X2V4cGFuZC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X2V4cGFuZC52aW0KaW5kZXggY2Q1MzdmNC4uOGYyZmFiNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9leHBhbmQudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfZXhwYW5kLnZpbQpAQCAtNTcsMjYgKzU3LDI2IEBACiAgIHVubGV0ICRGT08KIAogICBuZXcKLSAgZWRpdCBYZmlsZTEKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJ2UgWGZpbGUxJywgZXhwYW5kY21kKCdlICUnKSkKLSAgZWRpdCBYZmlsZTIKLSAgZWRpdCBYZmlsZTEKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJ2UgWGZpbGUyJywgJ2UgIyctPmV4cGFuZGNtZCgpKQotICBlZGl0IFhmaWxlMgotICBlZGl0IFhmaWxlMwotICBlZGl0IFhmaWxlNAotICBsZXQgYm51bSA9IGJ1Zm5yKCdYZmlsZTInKQotICBjYWxsIGFzc2VydF9lcXVhbCgnZSBYZmlsZTInLCBleHBhbmRjbWQoJ2UgIycgLiBibnVtKSkKKyAgZWRpdCBYcGFuZGZpbGUxCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdlIFhwYW5kZmlsZTEnLCBleHBhbmRjbWQoJ2UgJScpKQorICBlZGl0IFhwYW5kZmlsZTIKKyAgZWRpdCBYcGFuZGZpbGUxCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdlIFhwYW5kZmlsZTInLCAnZSAjJy0+ZXhwYW5kY21kKCkpCisgIGVkaXQgWHBhbmRmaWxlMgorICBlZGl0IFhwYW5kZmlsZTMKKyAgZWRpdCBYcGFuZGZpbGU0CisgIGxldCBibnVtID0gYnVmbnIoJ1hwYW5kZmlsZTInKQorICBjYWxsIGFzc2VydF9lcXVhbCgnZSBYcGFuZGZpbGUyJywgZXhwYW5kY21kKCdlICMnIC4gYm51bSkpCiAgIGNhbGwgc2V0bGluZSgnLicsICdWaW0hQCMnKQogICBjYWxsIGFzc2VydF9lcXVhbCgnZSBWaW0nLCBleHBhbmRjbWQoJ2UgPGN3b3JkPicpKQogICBjYWxsIGFzc2VydF9lcXVhbCgnZSBWaW0hQCMnLCBleHBhbmRjbWQoJ2UgPGNXT1JEPicpKQogICBlbmV3IQotICBlZGl0IFhmaWxlLmphdmEKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJ2UgWGZpbGUucHknLCBleHBhbmRjbWQoJ2UgJTpyLnB5JykpCisgIGVkaXQgWHBhbmRmaWxlLmphdmEKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ2UgWHBhbmRmaWxlLnB5JywgZXhwYW5kY21kKCdlICU6ci5weScpKQogICBjYWxsIGFzc2VydF9lcXVhbCgnbWFrZSBhYmMuamF2YScsIGV4cGFuZGNtZCgnbWFrZSBhYmMuJTplJykpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdtYWtlIFhhYmMuamF2YScsIGV4cGFuZGNtZCgnbWFrZSAlOnM/ZmlsZT9hYmM/JykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdtYWtlIFhhYmMuamF2YScsIGV4cGFuZGNtZCgnbWFrZSAlOnM/cGFuZGZpbGU/YWJjPycpKQogICBlZGl0IGExYTJhMy5yYgotICBjYWxsIGFzc2VydF9lcXVhbCgnbWFrZSBiMWIyYjMucmIgYTFhMmEzIFhmaWxlLm8nLCBleHBhbmRjbWQoJ21ha2UgJTpncz9hP2I/ICU8ICM8Lm8nKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ21ha2UgYjFiMmIzLnJiIGExYTJhMyBYcGFuZGZpbGUubycsIGV4cGFuZGNtZCgnbWFrZSAlOmdzP2E/Yj8gJTwgIzwubycpKQogCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdtYWtlIDxhZmlsZT4nLCBleHBhbmRjbWQoIm1ha2UgPGFmaWxlPiIpKQogICBjYWxsIGFzc2VydF9lcXVhbCgnbWFrZSA8YW1hdGNoPicsIGV4cGFuZGNtZCgibWFrZSA8YW1hdGNoPiIpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9maWxlX3Blcm0udmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9maWxlX3Blcm0udmltCmluZGV4IDFjYjA5ZTguLmJiNjU3M2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsZV9wZXJtLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X2ZpbGVfcGVybS52aW0KQEAgLTIyLDkgKzIyLDkgQEAKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgc2V0ZnBlcm0oJ1h0ZXN0JywgJ3J3eC0tLS0tLScpKQogICBjYWxsIGRlbGV0ZSgnWHRlc3QnKQogCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNldGZwZXJtKFsnWGZpbGUnXSwgJ3J3LXJ3LXJ3LScpIiwgJ0U3MzA6JykKLSAgY2FsbCBhc3NlcnRfZmFpbHMoImNhbGwgc2V0ZnBlcm0oJ1hmaWxlJywgW10pIiwgJ0U3MzA6JykKLSAgY2FsbCBhc3NlcnRfZmFpbHMoImNhbGwgc2V0ZnBlcm0oJ1hmaWxlJywgJ3J3eHJ3eHJ3eHJ3JykiLCAnRTQ3NTonKQorICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCBzZXRmcGVybShbJ1hwZXJtZmlsZSddLCAncnctcnctcnctJykiLCAnRTczMDonKQorICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCBzZXRmcGVybSgnWHBlcm1maWxlJywgW10pIiwgJ0U3MzA6JykKKyAgY2FsbCBhc3NlcnRfZmFpbHMoImNhbGwgc2V0ZnBlcm0oJ1hwZXJtZmlsZScsICdyd3hyd3hyd3hydycpIiwgJ0U0NzU6JykKIGVuZGZ1bmMKIAogIiB2aW06IHNoaWZ0d2lkdGg9MiBzdHM9MiBleHBhbmR0YWIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsZWNoYW5nZWQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9maWxlY2hhbmdlZC52aW0KaW5kZXggNWRjYTQzZi4uNWE5YTQwMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9maWxlY2hhbmdlZC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9maWxlY2hhbmdlZC52aW0KQEAgLTI1MywxNSArMjUzLDE1IEBACiAKICIgVGVzdCBmb3IgZWRpdGluZyBhIG5ldyBidWZmZXIgZnJvbSBhIEZpbGVDaGFuZ2VkU2hlbGwgYXV0b2NtZAogZnVuYyBUZXN0X0ZpbGVDaGFuZ2VkU2hlbGxfbmV3YnVmKCkKLSAgY2FsbCB3cml0ZWZpbGUoWydvbmUnLCAndHdvJ10sICdYZmlsZScpCi0gIG5ldyBYZmlsZQorICBjYWxsIHdyaXRlZmlsZShbJ29uZScsICd0d28nXSwgJ1hjaGZpbGUnKQorICBuZXcgWGNoZmlsZQogICBhdWdyb3VwIHRlc3RuZXdidWYKICAgICBhdXRvY21kIEZpbGVDaGFuZ2VkU2hlbGwgKiBlbmV3CiAgIGF1Z3JvdXAgRU5ECi0gIGNhbGwgd3JpdGVmaWxlKFsncmVkJ10sICdYZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFsncmVkJ10sICdYY2hmaWxlJykKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NoZWNrdGltZScsICdFODExOicpCiAgIGF1ISB0ZXN0bmV3YnVmCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYY2hmaWxlJykKIGVuZGZ1bmMKIAogIiB2aW06IHNoaWZ0d2lkdGg9MiBzdHM9MiBleHBhbmR0YWIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsZWZvcm1hdC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X2ZpbGVmb3JtYXQudmltCmluZGV4IDZiYTZlNDkuLjFjNjZlODggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsZWZvcm1hdC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9maWxlZm9ybWF0LnZpbQpAQCAtMjIsMTYgKzIyLDE2IEBACiBmdW5jIFRlc3RfZmlsZWZvcm1hdF9hdXRvY29tbWFuZCgpCiAgIGxldCBmaWxlY250ID0gWyIiLCAiZm9vYmFyXDxDUj4iLCAiZWluc1w8Q1I+IiwgIlw8Q1I+IiwgInp3ZWlcPENSPiIsICJkcmVpIiwgInZpZXIiLCAiZsO8bmYiLCAiIl0KICAgbGV0IGZmcyA9ICZmZnMKLSAgY2FsbCB3cml0ZWZpbGUoZmlsZWNudCwgJ1hmaWxlJywgJ2InKQotICBhdSBCdWZSZWFkUHJlIFhmaWxlIHNldCBmZnM9ZG9zIGZmPWRvcwotICBuZXcgWGZpbGUKKyAgY2FsbCB3cml0ZWZpbGUoZmlsZWNudCwgJ1hmZmFmaWxlJywgJ2InKQorICBhdSBCdWZSZWFkUHJlIFhmZmFmaWxlIHNldCBmZnM9ZG9zIGZmPWRvcworICBuZXcgWGZmYWZpbGUKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ2RvcycsICZsOmZmKQogICBjYWxsIGFzc2VydF9lcXVhbCgnZG9zJywgJmZmcykKIAogICAiIGNsZWFudXAKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hmZmFmaWxlJykKICAgbGV0ICZmZnMgPSBmZnMKLSAgYXUhIEJ1ZlJlYWRQcmUgWGZpbGUKKyAgYXUhIEJ1ZlJlYWRQcmUgWGZmYWZpbGUKICAgYnchCiBlbmRmdW5jCiAKQEAgLTMxNCwxNCArMzE0LDE0IEBACiAiIHVzZWQgYXMgdGhlICdmaWxlZm9ybWF0Jy4KIGZ1bmMgVGVzdF9maWxlZm9ybWF0X29uX3N0YXJ0dXAoKQogICBsZXQgYWZ0ZXIgPTw8IHRyaW0gRU5ECi0gICAgY2FsbCB3cml0ZWZpbGUoWyZmaWxlZm9ybWF0XSwgJ1hmaWxlJywgJ2EnKQorICAgIGNhbGwgd3JpdGVmaWxlKFsmZmlsZWZvcm1hdF0sICdYb25zZmlsZScsICdhJykKICAgICBxdWl0CiAgIEVORAogICBjYWxsIFJ1blZpbShbInNldCBmZnM9ZG9zLHVuaXgsbWFjIl0sIGFmdGVyLCAnJykKICAgY2FsbCBSdW5WaW0oWyJzZXQgZmZzPW1hYyxkb3MsdW5peCJdLCBhZnRlciwgJycpCiAgIGNhbGwgUnVuVmltKFsic2V0IGZmcz11bml4LG1hYyxkb3MiXSwgYWZ0ZXIsICcnKQotICBjYWxsIGFzc2VydF9lcXVhbChbJ2RvcycsICdtYWMnLCAndW5peCddLCByZWFkZmlsZSgnWGZpbGUnKSkKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWydkb3MnLCAnbWFjJywgJ3VuaXgnXSwgcmVhZGZpbGUoJ1hvbnNmaWxlJykpCisgIGNhbGwgZGVsZXRlKCdYb25zZmlsZScpCiBlbmRmdW5jCiAKICIgdmltOiBzaGlmdHdpZHRoPTIgc3RzPTIgZXhwYW5kdGFiCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X2ZpbGV0eXBlLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsZXR5cGUudmltCmluZGV4IGZiYjhkMmQuLjU1MTYwMmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsZXR5cGUudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsZXR5cGUudmltCkBAIC0xNCwxNSArMTQsMTUgQEAKIAogZnVuYyBUZXN0X2NvbmZfdHlwZSgpCiAgIGZpbGV0eXBlIG9uCi0gIGNhbGwgd3JpdGVmaWxlKFsnIyBzb21lIGNvbW1lbnQnLCAnbXVzdCBiZSBjb25mJ10sICdYZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFsnIyBzb21lIGNvbW1lbnQnLCAnbXVzdCBiZSBjb25mJ10sICdYY29uZmZpbGUnKQogICBhdWdyb3VwIGZpbGV0eXBlZGV0ZWN0CiAgICAgYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoJY2FsbCBhc3NlcnRfZXF1YWwoMCwgZGlkX2ZpbGV0eXBlKCkpCiAgIGF1Z3JvdXAgRU5ECi0gIHNwbGl0IFhmaWxlCisgIHNwbGl0IFhjb25mZmlsZQogICBjYWxsIGFzc2VydF9lcXVhbCgnY29uZicsICZmaWxldHlwZSkKIAogICBid2lwZSEKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hjb25mZmlsZScpCiAgIGZpbGV0eXBlIG9mZgogZW5kZnVuYwogCkBAIC0zMCwxNSArMzAsMTUgQEAKICAgZmlsZXR5cGUgb24KICAgYXVncm91cCBmaWxldHlwZWRldGVjdAogICAgIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqCWNhbGwgYXNzZXJ0X2VxdWFsKDAsIGRpZF9maWxldHlwZSgpKQotICAgIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCBYZmlsZQlzZXRmIHRlc3RmaWxlCisgICAgYXUgQnVmTmV3RmlsZSxCdWZSZWFkIFhvdGhlcmZpbGUJc2V0ZiB0ZXN0ZmlsZQogICAgIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqCWNhbGwgYXNzZXJ0X2VxdWFsKDEsIGRpZF9maWxldHlwZSgpKQogICBhdWdyb3VwIEVORAotICBjYWxsIHdyaXRlZmlsZShbJyMgc29tZSBjb21tZW50JywgJ211c3QgYmUgY29uZiddLCAnWGZpbGUnKQotICBzcGxpdCBYZmlsZQorICBjYWxsIHdyaXRlZmlsZShbJyMgc29tZSBjb21tZW50JywgJ211c3QgYmUgY29uZiddLCAnWG90aGVyZmlsZScpCisgIHNwbGl0IFhvdGhlcmZpbGUKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ3Rlc3RmaWxlJywgJmZpbGV0eXBlKQogCiAgIGJ3aXBlIQotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWG90aGVyZmlsZScpCiAgIGZpbGV0eXBlIG9mZgogZW5kZnVuYwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X2ZvbGQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9mb2xkLnZpbQppbmRleCAyNjE4MDg0Li4zMzMwM2RhIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X2ZvbGQudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfZm9sZC52aW0KQEAgLTEzNyw5ICsxMzcsOSBAQAogICAgIGNhbGwgYXNzZXJ0X2VxdWFsKDEsIGZvbGRsZXZlbChuKSkKICAgZW5kZm9yCiAKLSAgY2FsbCB3cml0ZWZpbGUoWyJhIiwgIiIsICJcPFRhYj5hIl0sICdYZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFsiYSIsICIiLCAiXDxUYWI+YSJdLCAnWGluZm9maWxlJykKICAgZm9sZG9wZW4KLSAgMnJlYWQgWGZpbGUKKyAgMnJlYWQgWGluZm9maWxlCiAgICVmb2xkY2xvc2UKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgZm9sZGxldmVsKDEpKQogICBjYWxsIGFzc2VydF9lcXVhbCgyLCBmb2xkY2xvc2VkZW5kKDEpKQpAQCAtMTUwLDcgKzE1MCw3IEBACiAKICAgYndpcGUhCiAgIHNldCBmb2xkbWV0aG9kJgotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWGluZm9maWxlJykKIGVuZGZ1bmMKIAogZnVuYyBUZXN0X2NvbWJpbmluZ19mb2xkc19pbmRlbnQoKQpAQCAtMjE2LDggKzIxNiw4IEBACiAgIHNldCBmb2xkZXhwcj1zOlRlc3RGb2xkRXhwcih2OmxudW0pCiAgIDIKICAgZm9sZG9wZW4KLSAgY2FsbCB3cml0ZWZpbGUoWydiJywgJ2InLCAnYScsICdhJywgJ2QnLCAnYScsICdhJywgJ2MnXSwgJ1hmaWxlJykKLSAgcmVhZCBYZmlsZQorICBjYWxsIHdyaXRlZmlsZShbJ2InLCAnYicsICdhJywgJ2EnLCAnZCcsICdhJywgJ2EnLCAnYyddLCAnWHVwZm9maWxlJykKKyAgcmVhZCBYdXBmb2ZpbGUKICAgJWZvbGRjbG9zZQogICBjYWxsIGFzc2VydF9lcXVhbCgyLCBmb2xkY2xvc2VkZW5kKDEpKQogICBjYWxsIGFzc2VydF9lcXVhbCgwLCBmb2xkbGV2ZWwoMykpCkBAIC0yMjYsNyArMjI2LDcgQEAKICAgY2FsbCBhc3NlcnRfZXF1YWwoMTAsIGZvbGRjbG9zZWRlbmQoNykpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDE0LCBmb2xkY2xvc2VkZW5kKDExKSkKIAotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWHVwZm9maWxlJykKICAgYndpcGUhCiAgIHNldCBmb2xkbWV0aG9kJiBmb2xkZXhwciYKIGVuZGZ1bmMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZnVuY3Rpb25zLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfZnVuY3Rpb25zLnZpbQppbmRleCBlMDUyNjhhLi5jYWQxZDRiIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X2Z1bmN0aW9ucy52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9mdW5jdGlvbnMudmltCkBAIC0zNzUsMjIgKzM3NSwyMiBAQAogCiAgICIgdGVzdCBmb3Igc2hvcnRjdXQgZmlsZQogICBpZiBleGVjdXRhYmxlKCdjc2NyaXB0JykKLSAgICBuZXcgWGZpbGUKKyAgICBuZXcgWHJlc2ZpbGUKICAgICB3cQogICAgIGxldCBsaW5lcyA9PDwgdHJpbSBFTkQKIAlTZXQgZnMgPSBDcmVhdGVPYmplY3QoIlNjcmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0IikKIAlTZXQgd3MgPSBXU2NyaXB0LkNyZWF0ZU9iamVjdCgiV1NjcmlwdC5TaGVsbCIpCiAJU2V0IHNob3J0Y3V0ID0gd3MuQ3JlYXRlU2hvcnRjdXQoIlhsaW5rLmxuayIpCi0Jc2hvcnRjdXQuVGFyZ2V0UGF0aCA9IGZzLkJ1aWxkUGF0aCh3cy5DdXJyZW50RGlyZWN0b3J5LCAiWGZpbGUiKQorCXNob3J0Y3V0LlRhcmdldFBhdGggPSBmcy5CdWlsZFBhdGgod3MuQ3VycmVudERpcmVjdG9yeSwgIlhyZXNmaWxlIikKIAlzaG9ydGN1dC5TYXZlCiAgICAgRU5ECiAgICAgY2FsbCB3cml0ZWZpbGUobGluZXMsICdsaW5rLnZicycpCiAgICAgc2lsZW50ICFjc2NyaXB0IGxpbmsudmJzCiAgICAgY2FsbCBkZWxldGUoJ2xpbmsudmJzJykKLSAgICBjYWxsIGFzc2VydF9lcXVhbChzOm5vcm1hbGl6ZV9mbmFtZShnZXRjd2QoKSAuICdcWGZpbGUnKSwgczpub3JtYWxpemVfZm5hbWUocmVzb2x2ZSgnLi9YbGluay5sbmsnKSkpCi0gICAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgICBjYWxsIGFzc2VydF9lcXVhbChzOm5vcm1hbGl6ZV9mbmFtZShnZXRjd2QoKSAuICdcWHJlc2ZpbGUnKSwgczpub3JtYWxpemVfZm5hbWUocmVzb2x2ZSgnLi9YbGluay5sbmsnKSkpCisgICAgY2FsbCBkZWxldGUoJ1hyZXNmaWxlJykKIAotICAgIGNhbGwgYXNzZXJ0X2VxdWFsKHM6bm9ybWFsaXplX2ZuYW1lKGdldGN3ZCgpIC4gJ1xYZmlsZScpLCBzOm5vcm1hbGl6ZV9mbmFtZShyZXNvbHZlKCcuL1hsaW5rLmxuaycpKSkKKyAgICBjYWxsIGFzc2VydF9lcXVhbChzOm5vcm1hbGl6ZV9mbmFtZShnZXRjd2QoKSAuICdcWHJlc2ZpbGUnKSwgczpub3JtYWxpemVfZm5hbWUocmVzb2x2ZSgnLi9YbGluay5sbmsnKSkpCiAgICAgY2FsbCBkZWxldGUoJ1hsaW5rLmxuaycpCiAgIGVsc2UKICAgICBlY2hvbXNnICdza2lwcGVkIHRlc3QgZm9yIHNob3J0Y3V0IGZpbGUnCkBAIC0zOTksMjAgKzM5OSwyMCBAQAogICAiIHJlbW92ZSBmaWxlcwogICBjYWxsIGRlbGV0ZSgnWGxpbmsnKQogICBjYWxsIGRlbGV0ZSgnWGRpcicsICdkJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hyZXNmaWxlJykKIAogICAiIHRlc3QgZm9yIHN5bWJvbGljIGxpbmsgdG8gYSBmaWxlCi0gIG5ldyBYZmlsZQorICBuZXcgWHJlc2ZpbGUKICAgd3EKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hmaWxlJywgcmVzb2x2ZSgnWGZpbGUnKSkKLSAgc2lsZW50ICFta2xpbmsgWGxpbmsgWGZpbGUKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hyZXNmaWxlJywgcmVzb2x2ZSgnWHJlc2ZpbGUnKSkKKyAgc2lsZW50ICFta2xpbmsgWGxpbmsgWHJlc2ZpbGUKICAgaWYgIXY6c2hlbGxfZXJyb3IKLSAgICBjYWxsIGFzc2VydF9lcXVhbChzOm5vcm1hbGl6ZV9mbmFtZShnZXRjd2QoKSAuICdcWGZpbGUnKSwgczpub3JtYWxpemVfZm5hbWUocmVzb2x2ZSgnLi9YbGluaycpKSkKKyAgICBjYWxsIGFzc2VydF9lcXVhbChzOm5vcm1hbGl6ZV9mbmFtZShnZXRjd2QoKSAuICdcWHJlc2ZpbGUnKSwgczpub3JtYWxpemVfZm5hbWUocmVzb2x2ZSgnLi9YbGluaycpKSkKICAgICBjYWxsIGRlbGV0ZSgnWGxpbmsnKQogICBlbHNlCiAgICAgZWNob21zZyAnc2tpcHBlZCB0ZXN0IGZvciBzeW1ib2xpYyBsaW5rIHRvIGEgZmlsZScKICAgZW5kaWYKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hyZXNmaWxlJykKIAogICAiIHRlc3QgZm9yIGp1bmN0aW9uIHRvIGEgZGlyZWN0b3J5CiAgIGNhbGwgbWtkaXIoJ1hkaXInKQpAQCAtNDQ3LDkgKzQ0Nyw5IEBACiAgIGVuZGlmCiAKICAgIiB0ZXN0IGZvciBidWZmZXIgbmFtZQotICBuZXcgWGZpbGUKKyAgbmV3IFhidWZmaWxlCiAgIHdxCi0gIHNpbGVudCAhbWtsaW5rIFhsaW5rIFhmaWxlCisgIHNpbGVudCAhbWtsaW5rIFhsaW5rIFhidWZmaWxlCiAgIGlmICF2OnNoZWxsX2Vycm9yCiAgICAgZWRpdCBYbGluawogICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdYbGluaycsIGJ1Zm5hbWUoJyUnKSkKQEAgLTQ1OCw3ICs0NTgsNyBAQAogICBlbHNlCiAgICAgZWNob21zZyAnc2tpcHBlZCB0ZXN0IGZvciBidWZmZXIgbmFtZScKICAgZW5kaWYKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hidWZmaWxlJykKIAogICAiIHRlc3QgZm9yIHJlcGFyc2UgcG9pbnQKICAgY2FsbCBta2RpcignWGRpcicpCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X2dmLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfZ2YudmltCmluZGV4IDA0MjI4YjIuLjUzNTcxZDggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfZ2YudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfZ2YudmltCkBAIC00OSwzOCArNDksMzggQEAKIGZ1bmMgVGVzdF9nRigpCiAgIG5ldwogICBjYWxsIHNldGxpbmUoMSwgWycxMTEnLCAnMjIyJywgJzMzMycsICc0NDQnXSkKLSAgdyEgWGZpbGUKKyAgdyEgWGdmZmlsZQogICBjbG9zZQogICBuZXcKICAgc2V0IGlzZm5hbWUtPToKLSAgY2FsbCBzZXRsaW5lKDEsIFsnb25lJywgJ1hmaWxlOjMnLCAndGhyZWUnXSkKKyAgY2FsbCBzZXRsaW5lKDEsIFsnb25lJywgJ1hnZmZpbGU6MycsICd0aHJlZSddKQogICAyCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdub3JtYWwgZ0YnLCAnRTM3OicpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDIsIGdldGN1cnBvcygpWzFdKQotICB3ISBYZmlsZTIKKyAgdyEgWGdmZmlsZTIKICAgbm9ybWFsIGdGCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdYZmlsZScsIGJ1Zm5hbWUoJyUnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hnZmZpbGUnLCBidWZuYW1lKCclJykpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDMsIGdldGN1cnBvcygpWzFdKQogCiAgIGVuZXchCi0gIGNhbGwgc2V0bGluZSgxLCBbJ29uZScsICd0aGUgWGZpbGUgbGluZSAyLCBhbmQgbW9yZScsICd0aHJlZSddKQotICB3ISBYZmlsZTIKKyAgY2FsbCBzZXRsaW5lKDEsIFsnb25lJywgJ3RoZSBYZ2ZmaWxlIGxpbmUgMiwgYW5kIG1vcmUnLCAndGhyZWUnXSkKKyAgdyEgWGdmZmlsZTIKICAgbm9ybWFsIDJHZlgKICAgbm9ybWFsIGdGCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdYZmlsZScsIGJ1Zm5hbWUoJyUnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hnZmZpbGUnLCBidWZuYW1lKCclJykpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDIsIGdldGN1cnBvcygpWzFdKQogCiAgICIganVtcGluZyB0byB0aGUgZmlsZS9saW5lIHdpdGggQ1RSTC1XX0YKICAgJWJ3IQogICBlZGl0IFhmaWxlMQotICBjYWxsIHNldGxpbmUoMSwgWydvbmUnLCAnWGZpbGU6NCcsICd0aHJlZSddKQorICBjYWxsIHNldGxpbmUoMSwgWydvbmUnLCAnWGdmZmlsZTo0JywgJ3RocmVlJ10pCiAgIGV4ZSAibm9ybWFsIDJHXDxDLVc+RiIKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hmaWxlJywgYnVmbmFtZSgnJScpKQorICBjYWxsIGFzc2VydF9lcXVhbCgnWGdmZmlsZScsIGJ1Zm5hbWUoJyUnKSkKICAgY2FsbCBhc3NlcnRfZXF1YWwoNCwgZ2V0Y3VycG9zKClbMV0pCiAKICAgc2V0IGlzZm5hbWUmCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZTInKQorICBjYWxsIGRlbGV0ZSgnWGdmZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYZ2ZmaWxlMicpCiAgICVidyEKIGVuZGZ1bmMKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9ndWkudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9ndWkudmltCmluZGV4IGZjYjU0ZTUuLjI5ZTRlY2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfZ3VpLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X2d1aS52aW0KQEAgLTE2MDIsNyArMTYwMiw3IEBACiAKIGZ1bmMgVGVzdF9ndWlfZGlhbG9nX2ZpbGUoKQogICBsZXQgbGluZXMgPTw8IHRyaW0gRU5ECi0gICAgZmlsZSBYZmlsZQorICAgIGZpbGUgWGRpYWxmaWxlCiAgICAgbm9ybWFsIGF4eHgKICAgICBjb25maXJtIHFhCiAgIEVORApAQCAtMTYxNCwxMCArMTYxNCwxMCBAQAogICBleGVjdXRlIHByZWZpeCAuLiBHZXRWaW1Db21tYW5kKCkgLi4gJyAtZyAtZiAtLWNsZWFuIC0tZ3VpLWRpYWxvZy1maWxlIFhkaWFsb2cgLVMgWGxpbmVzJwogCiAgIGNhbGwgV2FpdEZvckFzc2VydCh7LT4gYXNzZXJ0X3RydWUoZmlsZXJlYWRhYmxlKCdYZGlhbG9nJykpfSkKLSAgY2FsbCBhc3NlcnRfbWF0Y2goJ1F1ZXN0aW9uOiBTYXZlIGNoYW5nZXMgdG8gIlhmaWxlIj8nLCByZWFkZmlsZSgnWGRpYWxvZycpLT5qb2luKCc8Tkw+JykpCisgIGNhbGwgYXNzZXJ0X21hdGNoKCdRdWVzdGlvbjogU2F2ZSBjaGFuZ2VzIHRvICJYZGlhbGZpbGUiPycsIHJlYWRmaWxlKCdYZGlhbG9nJyktPmpvaW4oJzxOTD4nKSkKIAogICBjYWxsIGRlbGV0ZSgnWGRpYWxvZycpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYZGlhbGZpbGUnKQogICBjYWxsIGRlbGV0ZSgnWGxpbmVzJykKIGVuZGZ1bmMKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9pbmRlbnQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9pbmRlbnQudmltCmluZGV4IDNiNWI2NDMuLjk3YzQ0YjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfaW5kZW50LnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X2luZGVudC52aW0KQEAgLTE2MSw5ICsxNjEsOSBAQAogICBmdW5jIEdldEluZGVudCgpCiAgICAgcmV0dXJuIGxpbmUoJy4nKSAqIDIKICAgZW5kZnVuYwotICBjYWxsIHdyaXRlZmlsZShbJyMgdmltOiBpbmRlbnRleHByPUdldEluZGVudCgpJ10sICdYZmlsZS50eHQnKQorICBjYWxsIHdyaXRlZmlsZShbJyMgdmltOiBpbmRlbnRleHByPUdldEluZGVudCgpJ10sICdYbWxmaWxlLnR4dCcpCiAgIHNldCBtb2RlbGluZWV4cHIKLSAgbmV3IFhmaWxlLnR4dAorICBuZXcgWG1sZmlsZS50eHQKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ0dldEluZGVudCgpJywgJmluZGVudGV4cHIpCiAgIGV4ZSAibm9ybWFsIE9hXG5iXG4iCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnICBhJywgJyAgICBiJ10sIGdldGxpbmUoMSwgMikpCkBAIC0xNzIsNyArMTcyLDcgQEAKICAgZGVsZnVuYyBHZXRJbmRlbnQKICAgbGV0ICZtb2RlbGluZSA9IG1vZGVsaW5lCiAgIGNsb3NlIQotICBjYWxsIGRlbGV0ZSgnWGZpbGUudHh0JykKKyAgY2FsbCBkZWxldGUoJ1htbGZpbGUudHh0JykKIGVuZGZ1bmMKIAogZnVuYyBUZXN0X2luZGVudF9mdW5jX3dpdGhfZ3EoKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9pbnNfY29tcGxldGUudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9pbnNfY29tcGxldGUudmltCmluZGV4IGNlZTZhMzIuLmE3OWE3ODYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfaW5zX2NvbXBsZXRlLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X2luc19jb21wbGV0ZS52aW0KQEAgLTEyMjYsMTQgKzEyMjYsMTQgQEAKICAgQ2hlY2tVbml4CiAgIENoZWNrTm90Um9vdAogCi0gIGNhbGwgd3JpdGVmaWxlKFsnYWJvdXQnLCAnYWJvdmUnXSwgJ1hmaWxlJykKLSAgY2FsbCBzZXRmcGVybSgnWGZpbGUnLCAnLS0tci0tci0tJykKKyAgY2FsbCB3cml0ZWZpbGUoWydhYm91dCcsICdhYm92ZSddLCAnWHVucmZpbGUnKQorICBjYWxsIHNldGZwZXJtKCdYdW5yZmlsZScsICctLS1yLS1yLS0nKQogICBuZXcKICAgc2V0IGNvbXBsZXRlPXNYZmlsZQogICBleGUgIm5vcm1hbCEgaWFcPEMtUD4iCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdhJywgZ2V0bGluZSgxKSkKICAgYnchCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYdW5yZmlsZScpCiAgIHNldCBjb21wbGV0ZSYKIGVuZGZ1bmMKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9ta3Nlc3Npb24udmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9ta3Nlc3Npb24udmltCmluZGV4IGM5MTZiMWEuLjkyY2Y4YmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfbWtzZXNzaW9uLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X21rc2Vzc2lvbi52aW0KQEAgLTEyMzUsOCArMTIzNSw4IEBACiAKICIgVGVzdCBmb3IgY3JlYXRpbmcgdmlld3Mgd2l0aCBtYW51YWwgZm9sZHMKIGZ1bmMgVGVzdF9ta3ZpZXdfbWFudWFsX2ZvbGQoKQotICBjYWxsIHdyaXRlZmlsZShyYW5nZSgxLDEwKSwgJ1hmaWxlJykKLSAgbmV3IFhmaWxlCisgIGNhbGwgd3JpdGVmaWxlKHJhbmdlKDEsMTApLCAnWG1rdmZpbGUnKQorICBuZXcgWG1rdmZpbGUKICAgIiBjcmVhdGUgcmVjdXJzaXZlIGZvbGRzCiAgIDUsNmZvbGQKICAgNCw3Zm9sZApAQCAtMTI1OSw3ICsxMjU5LDcgQEAKICAgc291cmNlIFh2aWV3CiAgIGNhbGwgYXNzZXJ0X2VxdWFsKFstMSwgLTEsIC0xLCAtMSwgLTEsIC0xXSwgW2ZvbGRjbG9zZWQoMyksIGZvbGRjbG9zZWQoNCksCiAgICAgICAgIFwgZm9sZGNsb3NlZCg1KSwgZm9sZGNsb3NlZCg2KSwgZm9sZGNsb3NlZCg3KSwgZm9sZGNsb3NlZCg4KV0pCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYbWt2ZmlsZScpCiAgIGNhbGwgZGVsZXRlKCdYdmlldycpCiAgIGJ3IQogZW5kZnVuYwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9tb2RlbGluZS52aW0gYi9zcmMvdGVzdGRpci90ZXN0X21vZGVsaW5lLnZpbQppbmRleCBmMjhhZDNlLi5mYzA3NzliIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X21vZGVsaW5lLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X21vZGVsaW5lLnZpbQpAQCAtMzUwLDEzICszNTAsMTMgQEAKIAogIiBTb21lIG9wdGlvbnMgY2Fubm90IGJlIHNldCBmcm9tIHRoZSBtb2RlbGluZSB3aGVuICdkaWZmJyBvcHRpb24gaXMgc2V0CiBmdW5jIFRlc3RfbW9kZWxpbmVfZGlmZl9idWZmZXIoKQotICBjYWxsIHdyaXRlZmlsZShbJ3ZpbTogZGlmZiBmb2xkbWV0aG9kPW1hcmtlciB3cmFwJ10sICdYZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFsndmltOiBkaWZmIGZvbGRtZXRob2Q9bWFya2VyIHdyYXAnXSwgJ1htZGlmaWxlJykKICAgc2V0IGZvbGRtZXRob2QmIG5vd3JhcAotICBuZXcgWGZpbGUKKyAgbmV3IFhtZGlmaWxlCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdtYW51YWwnLCAmZm9sZG1ldGhvZCkKICAgY2FsbCBhc3NlcnRfZmFsc2UoJndyYXApCiAgIHNldCB3cmFwJgotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWG1kaWZpbGUnKQogICBidwogZW5kZnVuYwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X25vcm1hbC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X25vcm1hbC52aW0KaW5kZXggODZmMGVmNi4uMzUyYzYwOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9ub3JtYWwudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Rfbm9ybWFsLnZpbQpAQCAtMTcwOSwxNCArMTcwOSwxNCBAQAogZnVuYyBUZXN0X25vcm1hbDIwX2V4bW9kZSgpCiAgICIgUmVhZGluZyBmcm9tIHJlZGlyZWN0ZWQgZmlsZSBkb2Vzbid0IHdvcmsgb24gTVMtV2luZG93cwogICBDaGVja05vdE1TV2luZG93cwotICBjYWxsIHdyaXRlZmlsZShbJzFhJywgJ2ZvbycsICdiYXInLCAnLicsICd3ISBYZmlsZTInLCAncSEnXSwgJ1hzY3JpcHQnKQotICBjYWxsIHdyaXRlZmlsZShbJzEnLCAnMiddLCAnWGZpbGUnKQotICBjYWxsIHN5c3RlbShHZXRWaW1Db21tYW5kKCkgLi4gJyAtZSAtcyA8IFhzY3JpcHQgWGZpbGUnKQotICBsZXQgYT1yZWFkZmlsZSgnWGZpbGUyJykKKyAgY2FsbCB3cml0ZWZpbGUoWycxYScsICdmb28nLCAnYmFyJywgJy4nLCAndyEgWG4yMGZpbGUyJywgJ3EhJ10sICdYbjIwc2NyaXB0JykKKyAgY2FsbCB3cml0ZWZpbGUoWycxJywgJzInXSwgJ1huMjBmaWxlJykKKyAgY2FsbCBzeXN0ZW0oR2V0VmltQ29tbWFuZCgpIC4uICcgLWUgLXMgPCBYbjIwc2NyaXB0IFhuMjBmaWxlJykKKyAgbGV0IGE9cmVhZGZpbGUoJ1huMjBmaWxlMicpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnMScsICdmb28nLCAnYmFyJywgJzInXSwgYSkKIAogICAiIGNsZWFuIHVwCi0gIGZvciBmaWxlIGluIFsnWGZpbGUnLCAnWGZpbGUyJywgJ1hzY3JpcHQnXQorICBmb3IgZmlsZSBpbiBbJ1huMjBmaWxlJywgJ1huMjBmaWxlMicsICdYbjIwc2NyaXB0J10KICAgICBjYWxsIGRlbGV0ZShmaWxlKQogICBlbmRmb3IKICAgYnchCkBAIC0xNzU4LDIyICsxNzU4LDIyIEBACiAgICIgVGVzdCBmb3IgWloKICAgIiBsZXQgc2hlbGwgPSAmc2hlbGwKICAgIiBsZXQgJnNoZWxsID0gJ3NoJwotICBjYWxsIHdyaXRlZmlsZShbJzEnLCAnMiddLCAnWGZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbJzEnLCAnMiddLCAnWG4yMmZpbGUnKQogICBsZXQgYXJncyA9ICcgLU4gLWkgTk9ORSAtLW5vcGx1Z2lucyAtWCAtLW5vdC1hLXRlcm0nCi0gIGNhbGwgc3lzdGVtKEdldFZpbUNvbW1hbmQoKSAuLiBhcmdzIC4uICcgLWMgIiVkIiAtYyAiOm5vcm0hIFpaIiBYZmlsZScpCi0gIGxldCBhID0gcmVhZGZpbGUoJ1hmaWxlJykKKyAgY2FsbCBzeXN0ZW0oR2V0VmltQ29tbWFuZCgpIC4uIGFyZ3MgLi4gJyAtYyAiJWQiIC1jICI6bm9ybSEgWloiIFhuMjJmaWxlJykKKyAgbGV0IGEgPSByZWFkZmlsZSgnWG4yMmZpbGUnKQogICBjYWxsIGFzc2VydF9lcXVhbChbXSwgYSkKICAgIiBUZXN0IGZvciBaUQotICBjYWxsIHdyaXRlZmlsZShbJzEnLCAnMiddLCAnWGZpbGUnKQotICBjYWxsIHN5c3RlbShHZXRWaW1Db21tYW5kKCkgLiBhcmdzIC4gJyAtYyAiJWQiIC1jICI6bm9ybSEgWlEiIFhmaWxlJykKLSAgbGV0IGEgPSByZWFkZmlsZSgnWGZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbJzEnLCAnMiddLCAnWG4yMmZpbGUnKQorICBjYWxsIHN5c3RlbShHZXRWaW1Db21tYW5kKCkgLiBhcmdzIC4gJyAtYyAiJWQiIC1jICI6bm9ybSEgWlEiIFhuMjJmaWxlJykKKyAgbGV0IGEgPSByZWFkZmlsZSgnWG4yMmZpbGUnKQogICBjYWxsIGFzc2VydF9lcXVhbChbJzEnLCAnMiddLCBhKQogCiAgICIgVW5zdXBwb3J0ZWQgWiBjb21tYW5kCiAgIGNhbGwgYXNzZXJ0X2JlZXBzKCdub3JtYWwhIFpXJykKIAogICAiIGNsZWFuIHVwCi0gIGZvciBmaWxlIGluIFsnWGZpbGUnXQorICBmb3IgZmlsZSBpbiBbJ1huMjJmaWxlJ10KICAgICBjYWxsIGRlbGV0ZShmaWxlKQogICBlbmRmb3IKICAgIiBsZXQgJnNoZWxsID0gc2hlbGwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3Rfb3B0aW9ucy52aW0gYi9zcmMvdGVzdGRpci90ZXN0X29wdGlvbnMudmltCmluZGV4IDU2NjI5ZDkuLmVjMTE0OTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3Rfb3B0aW9ucy52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9vcHRpb25zLnZpbQpAQCAtODgzLDcgKzg4Myw3IEBACiAgIG5ldwogICBjYWxsIHNldGxpbmUoMSwgWydMMSddKQogICBzZXQgbm93cml0ZQotICBjYWxsIGFzc2VydF9mYWlscygnd3JpdGUgWGZpbGUnLCAnRTE0MjonKQorICBjYWxsIGFzc2VydF9mYWlscygnd3JpdGUgWHdyZmlsZScsICdFMTQyOicpCiAgIHNldCB3cml0ZQogICBjbG9zZSEKIGVuZGZ1bmMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfcGx1c19hcmdfZWRpdC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X3BsdXNfYXJnX2VkaXQudmltCmluZGV4IGU5MDE5YzEuLjcyMTNiMjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfcGx1c19hcmdfZWRpdC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9wbHVzX2FyZ19lZGl0LnZpbQpAQCAtMTIsMjYgKzEyLDI2IEBACiAKIGZ1bmMgVGVzdF9lZGl0X2JhZCgpCiAgICIgVGVzdCBsb2FkaW5nIGEgdXRmOCBmaWxlIHdpdGggYmFkIHV0Zjggc2VxdWVuY2VzLgotICBjYWxsIHdyaXRlZmlsZShbIltceGZmXVtceGMwXVtceGUyXHg4OVx4ZjBdW1x4YzJceGMyXSJdLCAiWGZpbGUiKQorICBjYWxsIHdyaXRlZmlsZShbIltceGZmXVtceGMwXVtceGUyXHg4OVx4ZjBdW1x4YzJceGMyXSJdLCAiWGJhZGZpbGUiKQogICBuZXcKIAogICAiIFdpdGhvdXQgKytiYWQ9Li4uLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBsaWtlICsrYmFkPT8KLSAgZSEgKytlbmM9dXRmOCBYZmlsZQorICBlISArK2VuYz11dGY4IFhiYWRmaWxlCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdbP11bP11bPz8/XVs/P10nLCBnZXRsaW5lKDEpKQogCi0gIGUhICsrZW5jb2Rpbmc9dXRmOCArK2JhZD1fIFhmaWxlCisgIGUhICsrZW5jb2Rpbmc9dXRmOCArK2JhZD1fIFhiYWRmaWxlCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdbX11bX11bX19fXVtfX10nLCBnZXRsaW5lKDEpKQogCi0gIGUhICsrZW5jPXV0ZjggKytiYWQ9ZHJvcCBYZmlsZQorICBlISArK2VuYz11dGY4ICsrYmFkPWRyb3AgWGJhZGZpbGUKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ1tdW11bXVtdJywgZ2V0bGluZSgxKSkKIAotICBlISArK2VuYz11dGY4ICsrYmFkPWtlZXAgWGZpbGUKKyAgZSEgKytlbmM9dXRmOCArK2JhZD1rZWVwIFhiYWRmaWxlCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCJbXHhmZl1bXHhjMF1bXHhlMlx4ODlceGYwXVtceGMyXHhjMl0iLCBnZXRsaW5lKDEpKQogCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCdlISArK2VuYz11dGY4ICsrYmFkPWZvbyBYZmlsZScsICdFNDc0OicpCisgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdlISArK2VuYz11dGY4ICsrYmFkPWZvbyBYYmFkZmlsZScsICdFNDc0OicpCiAKICAgYnchCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYYmFkZmlsZScpCiBlbmRmdW5jCiAKICIgVGVzdCBmb3IgKytiaW4gYW5kICsrbm9iaW4gYXJndW1lbnRzCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3BvcHVwd2luLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfcG9wdXB3aW4udmltCmluZGV4IGE5MmJkOGIuLjdjZGQxMjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfcG9wdXB3aW4udmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfcG9wdXB3aW4udmltCkBAIC00MTA0LDcgKzQxMDQsNyBAQAogCiAKIGZ1bmMgVGVzdF9wb3B1cF9zZXRvcHRpb25zX290aGVyX3RhYigpCi0gIG5ldyBYZmlsZQorICBuZXcgWHBvdGZpbGUKICAgbGV0IHdpbmlkID0gd2luX2dldGlkKCkKICAgY2FsbCBzZXRsaW5lKDEsICdzb21lIHRleHQnKQogICBjYWxsIHByb3BfdHlwZV9hZGQoJ3RleHRwcm9wJywge30pCkBAIC00MTE2LDcgKzQxMTYsNyBAQAogCiAgIHRhYmNsb3NlCiAgIGNhbGwgcG9wdXBfY2xvc2UoaWQpCi0gIGJ3aXBlISBYZmlsZQorICBid2lwZSEgWHBvdGZpbGUKICAgY2FsbCBwcm9wX3R5cGVfZGVsZXRlKCd0ZXh0cHJvcCcpCiBlbmRmdW5jCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfcHl0aG9uMi52aW0gYi9zcmMvdGVzdGRpci90ZXN0X3B5dGhvbjIudmltCmluZGV4IDNmYzNjMjAuLmFmMWUzNDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfcHl0aG9uMi52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9weXRob24yLnZpbQpAQCAtMTU2NSwxMSArMTU2NSwxMSBAQAogICAlYnchCiAKICAgIiBSYW5nZSBvYmplY3QgZm9yIGEgZGVsZXRlZCBidWZmZXIKLSAgbmV3IFhmaWxlCisgIG5ldyBYcGJ1ZmZpbGUKICAgY2FsbCBzZXRsaW5lKDEsIFsnb25lJywgJ3R3bycsICd0aHJlZSddKQogICBweSBiID0gdmltLmN1cnJlbnQuYnVmZmVyCiAgIHB5IHIgPSB2aW0uY3VycmVudC5idWZmZXIucmFuZ2UoMCwgMikKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJzxyYW5nZSBYZmlsZSAoMDoyKT4nLCBweWV2YWwoJ3JlcHIociknKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJzxyYW5nZSBYcGJ1ZmZpbGUgKDA6Mik+JywgcHlldmFsKCdyZXByKHIpJykpCiAgICVidyEKICAgY2FsbCBBc3NlcnRFeGNlcHRpb24oWydweSByWzpdID0gW10nXSwKICAgICAgICAgXCAnVmltKHB5dGhvbik6dmltLmVycm9yOiBhdHRlbXB0IHRvIHJlZmVyIHRvIGRlbGV0ZWQgYnVmZmVyJykKQEAgLTE1OTgsNyArMTU5OCw3IEBACiAiIFRlc3QgdmltLmJ1ZmZlcnMgb2JqZWN0CiBmdW5jIFRlc3RfcHl0aG9uX2J1ZmZlcnMoKQogICAlYnchCi0gIGVkaXQgWGZpbGUKKyAgZWRpdCBYcGJ1ZmZpbGUKICAgcHkgY2IgPSB2aW0uY3VycmVudC5idWZmZXIKICAgc2V0IGhpZGRlbgogICBlZGl0IGEKQEAgLTE2MjYsOCArMTYyNiw4IEBACiAgICAgY2IuYXBwZW5kKCdpMzonICsgc3RyKG5leHQoaTMpKSkKICAgICBkZWwgaTMKICAgRU9GCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnaTo8YnVmZmVyIFhmaWxlPicsCi0gICAgICAgIFwgJ2kyOjxidWZmZXIgWGZpbGU+JywgJ2k6PGJ1ZmZlciBhPicsICdpMzo8YnVmZmVyIFhmaWxlPiddLAorICBjYWxsIGFzc2VydF9lcXVhbChbJ2k6PGJ1ZmZlciBYcGJ1ZmZpbGU+JywKKyAgICAgICAgXCAnaTI6PGJ1ZmZlciBYcGJ1ZmZpbGU+JywgJ2k6PGJ1ZmZlciBhPicsICdpMzo8YnVmZmVyIFhwYnVmZmlsZT4nXSwKICAgICAgICAgXCBnZXRsaW5lKDIsICckJykpCiAgICVkCiAKQEAgLTE2NDUsNyArMTY0NSw3IEBACiAKICAgICBjYi5hcHBlbmQoc3RyKGxlbih2aW0uYnVmZmVycykpKQogICBFT0YKLSAgY2FsbCBhc3NlcnRfZXF1YWwoW2J1Zm5yKCdYZmlsZScpIC4uICc6PGJ1ZmZlciBYZmlsZT49PGJ1ZmZlciBYZmlsZT4nLAorICBjYWxsIGFzc2VydF9lcXVhbChbYnVmbnIoJ1hwYnVmZmlsZScpIC4uICc6PGJ1ZmZlciBYcGJ1ZmZpbGU+PTxidWZmZXIgWHBidWZmaWxlPicsCiAgICAgICAgIFwgYnVmbnIoJ2EnKSAuLiAnOjxidWZmZXIgYT49PGJ1ZmZlciBhPicsCiAgICAgICAgIFwgYnVmbnIoJ2InKSAuLiAnOjxidWZmZXIgYj49PGJ1ZmZlciBiPicsCiAgICAgICAgIFwgYnVmbnIoJ2MnKSAuLiAnOjxidWZmZXIgYz49PGJ1ZmZlciBjPicsICc0J10sIGdldGxpbmUoMiwgJyQnKSkKQEAgLTE2NzUsMTUgKzE2NzUsMTUgQEAKICAgICBkZWwgaTQKICAgICBkZWwgYm51bXMKICAgRU9GCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnaTQ6PGJ1ZmZlciBYZmlsZT4nLAotICAgICAgICBcICdpNDo8YnVmZmVyIFhmaWxlPicsICdTdG9wSXRlcmF0aW9uJ10sIGdldGxpbmUoMiwgJyQnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWydpNDo8YnVmZmVyIFhwYnVmZmlsZT4nLAorICAgICAgICBcICdpNDo8YnVmZmVyIFhwYnVmZmlsZT4nLCAnU3RvcEl0ZXJhdGlvbiddLCBnZXRsaW5lKDIsICckJykpCiAgICVidyEKIGVuZGZ1bmMKIAogIiBUZXN0IHZpbS57dGFicGFnZSx3aW5kb3d9bGlzdCBhbmQgdmltLnt0YWJwYWdlLHdpbmRvd30gb2JqZWN0cwogZnVuYyBUZXN0X3B5dGhvbl90YWJwYWdlX3dpbmRvdygpCiAgICVidwotICBlZGl0IFhmaWxlCisgIGVkaXQgWHBidWZmaWxlCiAgIHB5IGNiID0gdmltLmN1cnJlbnQuYnVmZmVyCiAgIHRhYm5ldyAwCiAgIHRhYm5ldyAxCkBAIC0xNzQ4LDcgKzE3NDgsNyBAQAogICAgIEN1cnJlbnQgdGFiIHBhZ2VzOgogICAgICAgPHRhYnBhZ2UgMD4oMSk6IDEgd2luZG93cywgY3VycmVudCBpcyA8d2luZG93IG9iamVjdCAodW5rbm93bik+CiAgICAgICBXaW5kb3dzOgotICAgICAgICA8d2luZG93IG9iamVjdCAodW5rbm93bik+KDEpOiBkaXNwbGF5cyBidWZmZXIgPGJ1ZmZlciBYZmlsZT47IGN1cnNvciBpcyBhdCAoMiwgMCkKKyAgICAgICAgPHdpbmRvdyBvYmplY3QgKHVua25vd24pPigxKTogZGlzcGxheXMgYnVmZmVyIDxidWZmZXIgWHBidWZmaWxlPjsgY3Vyc29yIGlzIGF0ICgyLCAwKQogICAgICAgPHRhYnBhZ2UgMT4oMik6IDEgd2luZG93cywgY3VycmVudCBpcyA8d2luZG93IG9iamVjdCAodW5rbm93bik+CiAgICAgICBXaW5kb3dzOgogICAgICAgICA8d2luZG93IG9iamVjdCAodW5rbm93bik+KDEpOiBkaXNwbGF5cyBidWZmZXIgPGJ1ZmZlciAwPjsgY3Vyc29yIGlzIGF0ICgxLCAwKQpAQCAtMTc2NCwxNCArMTc2NCwxNCBAQAogICAgICAgICA8d2luZG93IDM+KDQpOiBkaXNwbGF5cyBidWZmZXIgPGJ1ZmZlciAyPjsgY3Vyc29yIGlzIGF0ICgxLCAwKQogICAgIE51bWJlciBvZiB3aW5kb3dzIGluIGN1cnJlbnQgdGFiIHBhZ2U6IDQKICAgRU5ECi0gIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCBnZXRidWZsaW5lKGJ1Zm5yKCdYZmlsZScpLCAyLCAnJCcpKQorICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWHBidWZmaWxlJyksIDIsICckJykpCiAgICVidyEKIGVuZGZ1bmMKIAogIiBUZXN0IHZpbS5jdXJyZW50CiBmdW5jIFRlc3RfcHl0aG9uX3ZpbV9jdXJyZW50KCkKICAgJWJ3Ci0gIGVkaXQgWGZpbGUKKyAgZWRpdCBYcGJ1ZmZpbGUKICAgcHkgY2IgPSB2aW0uY3VycmVudC5idWZmZXIKICAgdGFibmV3IDAKICAgdGFibmV3IDEKQEAgLTE3OTcsOCArMTc5Nyw4IEBACiAgICAgQ3VycmVudCB3aW5kb3c6IDx3aW5kb3cgMD46IDx3aW5kb3cgMD4gaXMgPHdpbmRvdyAwPgogICAgIEN1cnJlbnQgYnVmZmVyOiA8YnVmZmVyIGMuMj46IDxidWZmZXIgYy4yPiBpcyA8YnVmZmVyIGMuMj4gaXMgPGJ1ZmZlciBjLjI+CiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWGZpbGUnKSwgMiwgJyQnKSkKLSAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYZmlsZScpLCAxLCAnJCcpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCBnZXRidWZsaW5lKGJ1Zm5yKCdYcGJ1ZmZpbGUnKSwgMiwgJyQnKSkKKyAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYcGJ1ZmZpbGUnKSwgMSwgJyQnKQogCiAgICIgQXNzaWduaW5nOiBmYWlscwogICBweSA8PCB0cmltIEVPRgpAQCAtMTgyMSwxMCArMTgyMSwxMCBAQAogICAgIFR5cGUgZXJyb3IgYXQgYXNzaWduaW5nIE5vbmUgdG8gdmltLmN1cnJlbnQudGFicGFnZQogICAgIFR5cGUgZXJyb3IgYXQgYXNzaWduaW5nIE5vbmUgdG8gdmltLmN1cnJlbnQuYnVmZmVyCiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWGZpbGUnKSwgMiwgJyQnKSkKLSAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYZmlsZScpLCAxLCAnJCcpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCBnZXRidWZsaW5lKGJ1Zm5yKCdYcGJ1ZmZpbGUnKSwgMiwgJyQnKSkKKyAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYcGJ1ZmZpbGUnKSwgMSwgJyQnKQogCi0gIGNhbGwgc2V0YnVmbGluZShidWZucignWGZpbGUnKSwgMSwgJ3B5dGhvbiBpbnRlcmZhY2UnKQorICBjYWxsIHNldGJ1ZmxpbmUoYnVmbnIoJ1hwYnVmZmlsZScpLCAxLCAncHl0aG9uIGludGVyZmFjZScpCiAgIHB5IDw8IHRyaW0gRU9GCiAgICAgIyBBc3NpZ25pbmc6IHN1Y2Nlc3MKICAgICB2aW0uY3VycmVudC50YWJwYWdlID0gdmltLnRhYnBhZ2VzWy0yXQpAQCAtMTg0MCwxMyArMTg0MCwxMyBAQAogICBsZXQgZXhwZWN0ZWQgPTw8IHRyaW0gRU5ECiAgICAgQ3VycmVudCB0YWIgcGFnZTogPHRhYnBhZ2UgMj4KICAgICBDdXJyZW50IHdpbmRvdzogPHdpbmRvdyAwPgotICAgIEN1cnJlbnQgYnVmZmVyOiA8YnVmZmVyIFhmaWxlPgorICAgIEN1cnJlbnQgYnVmZmVyOiA8YnVmZmVyIFhwYnVmZmlsZT4KICAgICBDdXJyZW50IGxpbmU6ICdweXRob24gaW50ZXJmYWNlJwogICBFTkQKLSAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIGdldGJ1ZmxpbmUoYnVmbnIoJ1hmaWxlJyksIDIsICckJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCBnZXRidWZsaW5lKGJ1Zm5yKCdYcGJ1ZmZpbGUnKSwgMiwgJyQnKSkKICAgcHkgdmltLmN1cnJlbnQubGluZSA9ICdvbmUgbGluZScKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ29uZSBsaW5lJywgZ2V0bGluZSgnLicpKQotICBjYWxsIGRlbGV0ZWJ1ZmxpbmUoYnVmbnIoJ1hmaWxlJyksIDEsICckJykKKyAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYcGJ1ZmZpbGUnKSwgMSwgJyQnKQogCiAgIHB5IDw8IHRyaW0gRU9GCiAgICAgd3MgPSBsaXN0KHZpbS53aW5kb3dzKQpAQCAtMTg2Niw3ICsxODY2LDcgQEAKICAgICB3LnZhbGlkOiBbVHJ1ZSwgRmFsc2VdCiAgICAgdC52YWxpZDogW1RydWUsIEZhbHNlLCBUcnVlLCBGYWxzZV0KICAgRU5ECi0gIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCBnZXRidWZsaW5lKGJ1Zm5yKCdYZmlsZScpLCAyLCAnJCcpKQorICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWHBidWZmaWxlJyksIDIsICckJykpCiAgICVidyEKIGVuZGZ1bmMKIApAQCAtMjQwOSw3ICsyNDA5LDcgQEAKIAogIiBUZXN0IGNoZGlyCiBmdW5jIFRlc3RfcHl0aG9uX2NoZGlyKCkKLSAgbmV3IFhmaWxlCisgIG5ldyBYcHljZmlsZQogICBweSBjYiA9IHZpbS5jdXJyZW50LmJ1ZmZlcgogICBweSA8PCB0cmltIEVPRgogICAgIGltcG9ydCBvcwpAQCAtMjQyMCw3ICsyNDIwLDcgQEAKICAgICBwYXRoID0gZm5hbWVtb2RpZnkoJy4nLCAnOnA6aDp0JykKICAgICBpZiBwYXRoICE9ICdzcmMnIGFuZCBwYXRoICE9ICdzcmMyJzoKICAgICAgICMgUnVubmluZyB0ZXN0cyBmcm9tIGEgc2hhZG93IGRpcmVjdG9yeSwgc28gbW92ZSB1cCBhbm90aGVyIGxldmVsCi0gICAgICAjIFRoaXMgd2lsbCByZXN1bHQgaW4gQCUgbG9va2luZyBsaWtlIHNoYWRvdy90ZXN0ZGlyL1hmaWxlLCBoZW5jZSB0aGUKKyAgICAgICMgVGhpcyB3aWxsIHJlc3VsdCBpbiBAJSBsb29raW5nIGxpa2Ugc2hhZG93L3Rlc3RkaXIvWHB5Y2ZpbGUsIGhlbmNlIHRoZQogICAgICAgIyBleHRyYSBmbmFtZW1vZGlmeQogICAgICAgb3MuY2hkaXIoJy4uJykKICAgICAgIGNiLmFwcGVuZChmbmFtZW1vZGlmeSgnLicsICc6cDpoOnQnKSkKQEAgLTI0MzYsOCArMjQzNiw4IEBACiAgICAgY2IuYXBwZW5kKHZpbS5ldmFsKCdAJScpKQogICAgIGRlbCBmbmFtZW1vZGlmeQogICBFT0YKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWyd0ZXN0ZGlyJywgJ1hmaWxlJywgJ3NyYycsICd0ZXN0ZGlyL1hmaWxlJywgJ3Rlc3RkaXInLAotICAgICAgICBcICdYZmlsZSddLCBnZXRsaW5lKDIsICckJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsndGVzdGRpcicsICdYcHljZmlsZScsICdzcmMnLCAndGVzdGRpci9YcHljZmlsZScsICd0ZXN0ZGlyJywKKyAgICAgICAgXCAnWHB5Y2ZpbGUnXSwgZ2V0bGluZSgyLCAnJCcpKQogICBjbG9zZSEKICAgY2FsbCBBc3NlcnRFeGNlcHRpb24oWyJweSB2aW0uY2hkaXIoTm9uZSkiXSwgIlZpbShweXRob24pOlR5cGVFcnJvcjoiKQogZW5kZnVuYwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9weXRob24zLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfcHl0aG9uMy52aW0KaW5kZXggNzc4ZDgzYi4uNDM3ZGE1MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9weXRob24zLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3B5dGhvbjMudmltCkBAIC0xNzYyLDExICsxNzYyLDExIEBACiAgICVidyEKIAogICAiIFJhbmdlIG9iamVjdCBmb3IgYSBkZWxldGVkIGJ1ZmZlcgotICBuZXcgWGZpbGUKKyAgbmV3IFhwM2J1ZmZpbGUKICAgY2FsbCBzZXRsaW5lKDEsIFsnb25lJywgJ3R3bycsICd0aHJlZSddKQogICBweTMgYiA9IHZpbS5jdXJyZW50LmJ1ZmZlcgogICBweTMgciA9IHZpbS5jdXJyZW50LmJ1ZmZlci5yYW5nZSgwLCAyKQotICBjYWxsIGFzc2VydF9lcXVhbCgnPHJhbmdlIFhmaWxlICgwOjIpPicsIHB5M2V2YWwoJ3JlcHIociknKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJzxyYW5nZSBYcDNidWZmaWxlICgwOjIpPicsIHB5M2V2YWwoJ3JlcHIociknKSkKICAgJWJ3IQogICBjYWxsIEFzc2VydEV4Y2VwdGlvbihbJ3B5MyByWzpdID0gW10nXSwKICAgICAgICAgXCAnVmltKHB5Myk6dmltLmVycm9yOiBhdHRlbXB0IHRvIHJlZmVyIHRvIGRlbGV0ZWQgYnVmZmVyJykKQEAgLTE3OTUsNyArMTc5NSw3IEBACiAiIFRlc3QgdmltLmJ1ZmZlcnMgb2JqZWN0CiBmdW5jIFRlc3RfcHl0aG9uM19idWZmZXJzKCkKICAgJWJ3IQotICBlZGl0IFhmaWxlCisgIGVkaXQgWHAzYnVmZmlsZQogICBweTMgY2IgPSB2aW0uY3VycmVudC5idWZmZXIKICAgc2V0IGhpZGRlbgogICBlZGl0IGEKQEAgLTE4MTksOCArMTgxOSw4IEBACiAgICAgY2IuYXBwZW5kKCdpMzonICsgc3RyKG5leHQoaTMpKSkKICAgICBkZWwgaTMKICAgRU9GCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnaTo8YnVmZmVyIFhmaWxlPicsCi0gICAgICAgIFwgJ2kyOjxidWZmZXIgWGZpbGU+JywgJ2k6PGJ1ZmZlciBhPicsICdpMzo8YnVmZmVyIFhmaWxlPiddLAorICBjYWxsIGFzc2VydF9lcXVhbChbJ2k6PGJ1ZmZlciBYcDNidWZmaWxlPicsCisgICAgICAgIFwgJ2kyOjxidWZmZXIgWHAzYnVmZmlsZT4nLCAnaTo8YnVmZmVyIGE+JywgJ2kzOjxidWZmZXIgWHAzYnVmZmlsZT4nXSwKICAgICAgICAgXCBnZXRsaW5lKDIsICckJykpCiAgICVkCiAKQEAgLTE4MzgsNyArMTgzOCw3IEBACiAKICAgICBjYi5hcHBlbmQoc3RyKGxlbih2aW0uYnVmZmVycykpKQogICBFT0YKLSAgY2FsbCBhc3NlcnRfZXF1YWwoW2J1Zm5yKCdYZmlsZScpIC4uICc6PGJ1ZmZlciBYZmlsZT49PGJ1ZmZlciBYZmlsZT4nLAorICBjYWxsIGFzc2VydF9lcXVhbChbYnVmbnIoJ1hwM2J1ZmZpbGUnKSAuLiAnOjxidWZmZXIgWHAzYnVmZmlsZT49PGJ1ZmZlciBYcDNidWZmaWxlPicsCiAgICAgICAgIFwgYnVmbnIoJ2EnKSAuLiAnOjxidWZmZXIgYT49PGJ1ZmZlciBhPicsCiAgICAgICAgIFwgYnVmbnIoJ2InKSAuLiAnOjxidWZmZXIgYj49PGJ1ZmZlciBiPicsCiAgICAgICAgIFwgYnVmbnIoJ2MnKSAuLiAnOjxidWZmZXIgYz49PGJ1ZmZlciBjPicsICc0J10sIGdldGxpbmUoMiwgJyQnKSkKQEAgLTE4NjgsMTUgKzE4NjgsMTUgQEAKICAgICBkZWwgaTQKICAgICBkZWwgYm51bXMKICAgRU9GCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnaTQ6PGJ1ZmZlciBYZmlsZT4nLAotICAgICAgICBcICdpNDo8YnVmZmVyIFhmaWxlPicsICdTdG9wSXRlcmF0aW9uJ10sIGdldGxpbmUoMiwgJyQnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWydpNDo8YnVmZmVyIFhwM2J1ZmZpbGU+JywKKyAgICAgICAgXCAnaTQ6PGJ1ZmZlciBYcDNidWZmaWxlPicsICdTdG9wSXRlcmF0aW9uJ10sIGdldGxpbmUoMiwgJyQnKSkKICAgJWJ3IQogZW5kZnVuYwogCiAiIFRlc3QgdmltLnt0YWJwYWdlLHdpbmRvd31saXN0IGFuZCB2aW0ue3RhYnBhZ2Usd2luZG93fSBvYmplY3RzCiBmdW5jIFRlc3RfcHl0aG9uM190YWJwYWdlX3dpbmRvdygpCiAgICVidwotICBlZGl0IFhmaWxlCisgIGVkaXQgWHAzYnVmZmlsZQogICBweTMgY2IgPSB2aW0uY3VycmVudC5idWZmZXIKICAgdGFibmV3IDAKICAgdGFibmV3IDEKQEAgLTE5MzcsNyArMTkzNyw3IEBACiAgICAgQ3VycmVudCB0YWIgcGFnZXM6CiAgICAgICA8dGFicGFnZSAwPigxKTogMSB3aW5kb3dzLCBjdXJyZW50IGlzIDx3aW5kb3cgb2JqZWN0ICh1bmtub3duKT4KICAgICAgIFdpbmRvd3M6Ci0gICAgICAgIDx3aW5kb3cgb2JqZWN0ICh1bmtub3duKT4oMSk6IGRpc3BsYXlzIGJ1ZmZlciA8YnVmZmVyIFhmaWxlPjsgY3Vyc29yIGlzIGF0ICgyLCAwKQorICAgICAgICA8d2luZG93IG9iamVjdCAodW5rbm93bik+KDEpOiBkaXNwbGF5cyBidWZmZXIgPGJ1ZmZlciBYcDNidWZmaWxlPjsgY3Vyc29yIGlzIGF0ICgyLCAwKQogICAgICAgPHRhYnBhZ2UgMT4oMik6IDEgd2luZG93cywgY3VycmVudCBpcyA8d2luZG93IG9iamVjdCAodW5rbm93bik+CiAgICAgICBXaW5kb3dzOgogICAgICAgICA8d2luZG93IG9iamVjdCAodW5rbm93bik+KDEpOiBkaXNwbGF5cyBidWZmZXIgPGJ1ZmZlciAwPjsgY3Vyc29yIGlzIGF0ICgxLCAwKQpAQCAtMTk1MywxNCArMTk1MywxNCBAQAogICAgICAgICA8d2luZG93IDM+KDQpOiBkaXNwbGF5cyBidWZmZXIgPGJ1ZmZlciAyPjsgY3Vyc29yIGlzIGF0ICgxLCAwKQogICAgIE51bWJlciBvZiB3aW5kb3dzIGluIGN1cnJlbnQgdGFiIHBhZ2U6IDQKICAgRU5ECi0gIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCBnZXRidWZsaW5lKGJ1Zm5yKCdYZmlsZScpLCAyLCAnJCcpKQorICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWHAzYnVmZmlsZScpLCAyLCAnJCcpKQogICAlYnchCiBlbmRmdW5jCiAKICIgVGVzdCB2aW0uY3VycmVudAogZnVuYyBUZXN0X3B5dGhvbjNfdmltX2N1cnJlbnQoKQogICAlYncKLSAgZWRpdCBYZmlsZQorICBlZGl0IFhweTNjZmlsZQogICBweTMgY2IgPSB2aW0uY3VycmVudC5idWZmZXIKICAgdGFibmV3IDAKICAgdGFibmV3IDEKQEAgLTE5ODYsOCArMTk4Niw4IEBACiAgICAgQ3VycmVudCB3aW5kb3c6IDx3aW5kb3cgMD46IDx3aW5kb3cgMD4gaXMgPHdpbmRvdyAwPgogICAgIEN1cnJlbnQgYnVmZmVyOiA8YnVmZmVyIGMuMj46IDxidWZmZXIgYy4yPiBpcyA8YnVmZmVyIGMuMj4gaXMgPGJ1ZmZlciBjLjI+CiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWGZpbGUnKSwgMiwgJyQnKSkKLSAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYZmlsZScpLCAxLCAnJCcpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCBnZXRidWZsaW5lKGJ1Zm5yKCdYcHkzY2ZpbGUnKSwgMiwgJyQnKSkKKyAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYcHkzY2ZpbGUnKSwgMSwgJyQnKQogCiAgICIgQXNzaWduaW5nOiBmYWlscwogICBweTMgPDwgdHJpbSBFT0YKQEAgLTIwMTAsMTAgKzIwMTAsMTAgQEAKICAgICBUeXBlIGVycm9yIGF0IGFzc2lnbmluZyBOb25lIHRvIHZpbS5jdXJyZW50LnRhYnBhZ2UKICAgICBUeXBlIGVycm9yIGF0IGFzc2lnbmluZyBOb25lIHRvIHZpbS5jdXJyZW50LmJ1ZmZlcgogICBFTkQKLSAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIGdldGJ1ZmxpbmUoYnVmbnIoJ1hmaWxlJyksIDIsICckJykpCi0gIGNhbGwgZGVsZXRlYnVmbGluZShidWZucignWGZpbGUnKSwgMSwgJyQnKQorICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWHB5M2NmaWxlJyksIDIsICckJykpCisgIGNhbGwgZGVsZXRlYnVmbGluZShidWZucignWHB5M2NmaWxlJyksIDEsICckJykKIAotICBjYWxsIHNldGJ1ZmxpbmUoYnVmbnIoJ1hmaWxlJyksIDEsICdweXRob24gaW50ZXJmYWNlJykKKyAgY2FsbCBzZXRidWZsaW5lKGJ1Zm5yKCdYcHkzY2ZpbGUnKSwgMSwgJ3B5dGhvbiBpbnRlcmZhY2UnKQogICBweTMgPDwgdHJpbSBFT0YKICAgICAjIEFzc2lnbmluZzogc3VjY2VzcwogICAgIHZpbS5jdXJyZW50LnRhYnBhZ2UgPSB2aW0udGFicGFnZXNbLTJdCkBAIC0yMDI5LDEzICsyMDI5LDEzIEBACiAgIGxldCBleHBlY3RlZCA9PDwgdHJpbSBFTkQKICAgICBDdXJyZW50IHRhYiBwYWdlOiA8dGFicGFnZSAyPgogICAgIEN1cnJlbnQgd2luZG93OiA8d2luZG93IDA+Ci0gICAgQ3VycmVudCBidWZmZXI6IDxidWZmZXIgWGZpbGU+CisgICAgQ3VycmVudCBidWZmZXI6IDxidWZmZXIgWHB5M2NmaWxlPgogICAgIEN1cnJlbnQgbGluZTogJ3B5dGhvbiBpbnRlcmZhY2UnCiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWGZpbGUnKSwgMiwgJyQnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIGdldGJ1ZmxpbmUoYnVmbnIoJ1hweTNjZmlsZScpLCAyLCAnJCcpKQogICBweTMgdmltLmN1cnJlbnQubGluZSA9ICdvbmUgbGluZScKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ29uZSBsaW5lJywgZ2V0bGluZSgnLicpKQotICBjYWxsIGRlbGV0ZWJ1ZmxpbmUoYnVmbnIoJ1hmaWxlJyksIDEsICckJykKKyAgY2FsbCBkZWxldGVidWZsaW5lKGJ1Zm5yKCdYcHkzY2ZpbGUnKSwgMSwgJyQnKQogCiAgIHB5MyA8PCB0cmltIEVPRgogICAgIHdzID0gbGlzdCh2aW0ud2luZG93cykKQEAgLTIwNTUsNyArMjA1NSw3IEBACiAgICAgdy52YWxpZDogW1RydWUsIEZhbHNlXQogICAgIHQudmFsaWQ6IFtUcnVlLCBGYWxzZSwgVHJ1ZSwgRmFsc2VdCiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgZ2V0YnVmbGluZShidWZucignWGZpbGUnKSwgMiwgJyQnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIGdldGJ1ZmxpbmUoYnVmbnIoJ1hweTNjZmlsZScpLCAyLCAnJCcpKQogICAlYnchCiBlbmRmdW5jCiAKQEAgLTI1OTgsNyArMjU5OCw3IEBACiAKICIgVGVzdCBjaGRpcgogZnVuYyBUZXN0X3B5dGhvbjNfY2hkaXIoKQotICBuZXcgWGZpbGUKKyAgbmV3IFhwM2NkZmlsZQogICBweTMgY2IgPSB2aW0uY3VycmVudC5idWZmZXIKICAgcHkzIDw8IHRyaW0gRU9GCiAgICAgaW1wb3J0IG9zCkBAIC0yNjA5LDcgKzI2MDksNyBAQAogICAgIHBhdGggPSBmbmFtZW1vZGlmeSgnLicsICc6cDpoOnQnKQogICAgIGlmIHBhdGggIT0gYidzcmMnIGFuZCBwYXRoICE9IGInc3JjMic6CiAgICAgICAjIFJ1bm5pbmcgdGVzdHMgZnJvbSBhIHNoYWRvdyBkaXJlY3RvcnksIHNvIG1vdmUgdXAgYW5vdGhlciBsZXZlbAotICAgICAgIyBUaGlzIHdpbGwgcmVzdWx0IGluIEAlIGxvb2tpbmcgbGlrZSBzaGFkb3cvdGVzdGRpci9YZmlsZSwgaGVuY2UgdGhlCisgICAgICAjIFRoaXMgd2lsbCByZXN1bHQgaW4gQCUgbG9va2luZyBsaWtlIHNoYWRvdy90ZXN0ZGlyL1hwM2NkZmlsZSwgaGVuY2UgdGhlCiAgICAgICAjIHNsaWNpbmcgdG8gcmVtb3ZlIHRoZSBsZWFkaW5nIHBhdGggYW5kIHBhdGggc2VwYXJhdG9yCiAgICAgICBvcy5jaGRpcignLi4nKQogICAgICAgY2IuYXBwZW5kKHN0cihmbmFtZW1vZGlmeSgnLicsICc6cDpoOnQnKSkpCkBAIC0yNjI1LDggKzI2MjUsOCBAQAogICAgIGNiLmFwcGVuZCh2aW0uZXZhbCgnQCUnKSkKICAgICBkZWwgZm5hbWVtb2RpZnkKICAgRU9GCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsiYid0ZXN0ZGlyJyIsICdYZmlsZScsICJiJ3NyYyciLCAndGVzdGRpci9YZmlsZScsCi0gICAgICAgIFwiYid0ZXN0ZGlyJyIsICdYZmlsZSddLCBnZXRsaW5lKDIsICckJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsiYid0ZXN0ZGlyJyIsICdYcDNjZGZpbGUnLCAiYidzcmMnIiwgJ3Rlc3RkaXIvWHAzY2RmaWxlJywKKyAgICAgICAgXCJiJ3Rlc3RkaXInIiwgJ1hwM2NkZmlsZSddLCBnZXRsaW5lKDIsICckJykpCiAgIGNsb3NlIQogICBjYWxsIEFzc2VydEV4Y2VwdGlvbihbInB5MyB2aW0uY2hkaXIoTm9uZSkiXSwgIlZpbShweTMpOlR5cGVFcnJvcjoiKQogZW5kZnVuYwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9zb3VyY2UudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9zb3VyY2UudmltCmluZGV4IDQ3MzZlOTMuLjQ0Y2QyZmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3Rfc291cmNlLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3NvdXJjZS52aW0KQEAgLTYzLDEwICs2MywxMCBAQAogCiAiIFdoZW4gc291cmNpbmcgYSB2aW0gc2NyaXB0LCBzaGViYW5nIHNob3VsZCBiZSBpZ25vcmVkLgogZnVuYyBUZXN0X3NvdXJjZV9pZ25vcmVfc2hlYmFuZygpCi0gIGNhbGwgd3JpdGVmaWxlKFsnIyEuL3h5emFiYycsICdsZXQgZzp2YWw9MzY5J10sICdYZmlsZS52aW0nKQotICBzb3VyY2UgWGZpbGUudmltCisgIGNhbGwgd3JpdGVmaWxlKFsnIyEuL3h5emFiYycsICdsZXQgZzp2YWw9MzY5J10sICdYc2lzZmlsZS52aW0nKQorICBzb3VyY2UgWHNpc2ZpbGUudmltCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKGc6dmFsLCAzNjkpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZS52aW0nKQorICBjYWxsIGRlbGV0ZSgnWHNpc2ZpbGUudmltJykKIGVuZGZ1bmMKIAogIiBUZXN0IGZvciBleHBhbmRpbmcgPHNmaWxlPiBpbiBhbiBhdXRvY21kIGFuZCBmb3IgPHNsbnVtPiBhbmQgPHNmbG51bT4KQEAgLTQ4MCwxMiArNDgwLDEyIEBACiAKICAgICAgYXVncm91cCBUZXN0CiAgICAgICAgYXUhCi0gICAgICAgYXUgQnVmTmV3RmlsZSBYZmlsZSBnOnJlYWRGaWxlID0gMQorICAgICAgIGF1IEJ1Zk5ld0ZpbGUgWHN1YmZpbGUgZzpyZWFkRmlsZSA9IDEKICAgICAgICAgICAgICB8IGc6cmVhZEV4dHJhID0gMgogICAgICBhdWdyb3VwIEVORAogICAgICBnOnJlYWRGaWxlID0gMAogICAgICBnOnJlYWRFeHRyYSA9IDAKLSAgICAgbmV3IFhmaWxlCisgICAgIG5ldyBYc3ViZmlsZQogICAgICBid2lwZSEKICAgICAgYXVncm91cCBUZXN0CiAgICAgICAgYXUhCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3N0YXQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9zdGF0LnZpbQppbmRleCBkZTRhMjA0Li5lODAxYmZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3N0YXQudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Rfc3RhdC52aW0KQEAgLTE3MSw3ICsxNzEsNyBAQAogICAgIHJldHVybgogICBlbmRpZgogCi0gIHNpbGVudCAhbG4gLXMgWGZpbGUgWGxpbmsKKyAgc2lsZW50ICFsbiAtcyBYbGlua2ZpbGUgWGxpbmsKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ2xpbmsnLCBnZXRmdHlwZSgnWGxpbmsnKSkKICAgY2FsbCBkZWxldGUoJ1hsaW5rJykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9zdWJzdGl0dXRlLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3Rfc3Vic3RpdHV0ZS52aW0KaW5kZXggN2U3Y2NmZi4uZGYwMWUwNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9zdWJzdGl0dXRlLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3N1YnN0aXR1dGUudmltCkBAIC0xNDEsNyArMTQxLDcgQEAKIAogZnVuYyBUZXN0X3N1YnN0aXR1dGVfcmVwZWF0KCkKICAgIiBUaGlzIGNhdXNlZCBhbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCi0gIHNwbGl0IFhmaWxlCisgIHNwbGl0IFhzdWJmaWxlCiAgIHMvXi94CiAgIGNhbGwgZmVlZGtleXMoIlFzY1w8Q1I+eSIsICd0eCcpCiAgIGJ3aXBlIQpAQCAtMTA2OCw3ICsxMDY4LDcgQEAKICAgbmV3CiAgIG5vcm0gbzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKICAgZnVuYyBFZGl0U2NyaXB0KCkKLSAgICBzaWxlbnQhIHNjciEgWGZpbGUKKyAgICBzaWxlbnQhIHNjciEgWHNlZGZpbGUKICAgZW5kZnVuYwogICBzL1wlJykvXD1FZGl0U2NyaXB0KCkKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF90YWJwYWdlLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfdGFicGFnZS52aW0KaW5kZXggN2UxMDViMS4uZmU5NzU3OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF90YWJwYWdlLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3RhYnBhZ2UudmltCkBAIC03NjgsMTQgKzc2OCwxNCBAQAogZnVuYyBUZXN0X3RhYnBhZ2VfY2xvc2Vfb25fc3dpdGNoKCkKICAgdGFibmV3CiAgIHRhYm5ldwotICBlZGl0IFhmaWxlCisgIGVkaXQgWHRhYmZpbGUKICAgYXVncm91cCBUMgogICAgIGF1IQotICAgIGF1IEJ1ZkxlYXZlIFhmaWxlIDF0YWJjbG9zZQorICAgIGF1IEJ1ZkxlYXZlIFh0YWJmaWxlIDF0YWJjbG9zZQogICBhdWdyb3VwIEVORAogICB0YWJmaXJzdAogICBjYWxsIGFzc2VydF9lcXVhbCgyLCB0YWJwYWdlbnIoKSkKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hmaWxlJywgQCUpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdYdGFiZmlsZScsIEAlKQogICBhdWdyb3VwIFQyCiAgICAgYXUhCiAgIGF1Z3JvdXAgRU5ECmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3RhZ2p1bXAudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF90YWdqdW1wLnZpbQppbmRleCA4MTYwNmZjLi41OTUzN2VlIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3RhZ2p1bXAudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfdGFnanVtcC52aW0KQEAgLTE1LDIwICsxNSwyMCBAQAogZnVuYyBUZXN0X3B0anVtcCgpCiAgIENoZWNrRmVhdHVyZSBxdWlja2ZpeAogCi0gIHNldCB0YWdzPVh0YWdzCisgIHNldCB0YWdzPVhwdHRhZ3MKICAgY2FsbCB3cml0ZWZpbGUoWyIhX1RBR19GSUxFX0VOQ09ESU5HXHR1dGYtOFx0Ly8iLAotICAgICAgICBcICJvbmVcdFhmaWxlXHQxIiwKLSAgICAgICAgXCAidGhyZWVcdFhmaWxlXHQzIiwKLSAgICAgICAgXCAidHdvXHRYZmlsZVx0MiJdLAotICAgICAgICBcICdYdGFncycpCi0gIGNhbGwgd3JpdGVmaWxlKFsnb25lJywgJ3R3bycsICd0aHJlZSddLCAnWGZpbGUnKQorICAgICAgICBcICJvbmVcdFhwdGZpbGVcdDEiLAorICAgICAgICBcICJ0aHJlZVx0WHB0ZmlsZVx0MyIsCisgICAgICAgIFwgInR3b1x0WHB0ZmlsZVx0MiJdLAorICAgICAgICBcICdYcHR0YWdzJykKKyAgY2FsbCB3cml0ZWZpbGUoWydvbmUnLCAndHdvJywgJ3RocmVlJ10sICdYcHRmaWxlJykKIAogICAlYnchCiAgIHB0anVtcCB0d28KICAgY2FsbCBhc3NlcnRfZXF1YWwoMiwgd2lubnIoKSkKICAgd2luY21kIHAKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgJnByZXZpZXd3aW5kb3cpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdYZmlsZScsIGV4cGFuZCgiJTpwOnQiKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hwdGZpbGUnLCBleHBhbmQoIiU6cDp0IikpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDIsIGxpbmUoJy4nKSkKICAgY2FsbCBhc3NlcnRfZXF1YWwoMiwgd2lubnIoJyQnKSkKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgd2lubnIoKSkKQEAgLTM4LDcgKzM4LDcgQEAKICAgY2FsbCBhc3NlcnRfZXF1YWwoMiwgd2lubnIoKSkKICAgd2luY21kIHAKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgJnByZXZpZXd3aW5kb3cpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdYZmlsZScsIGV4cGFuZCgiJTpwOnQiKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hwdGZpbGUnLCBleHBhbmQoIiU6cDp0IikpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDMsIGxpbmUoJy4nKSkKICAgY2FsbCBhc3NlcnRfZXF1YWwoMiwgd2lubnIoJyQnKSkKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgd2lubnIoKSkKQEAgLTQ4LDggKzQ4LDggQEAKICAgY2FsbCBhc3NlcnRfZXF1YWwoNSwgd2luaGVpZ2h0KDApKQogICBjbG9zZQogCi0gIGNhbGwgZGVsZXRlKCdYdGFncycpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYcHR0YWdzJykKKyAgY2FsbCBkZWxldGUoJ1hwdGZpbGUnKQogICBzZXQgdGFncyYKIGVuZGZ1bmMKIApAQCAtNzMsMTIgKzczLDEyIEBACiBlbmRmdW5jCiAKIGZ1bmMgVGVzdF9zdGF0aWNfdGFnanVtcCgpCi0gIHNldCB0YWdzPVh0YWdzCisgIHNldCB0YWdzPVh0anRhZ3MKICAgY2FsbCB3cml0ZWZpbGUoWyIhX1RBR19GSUxFX0VOQ09ESU5HXHR1dGYtOFx0Ly8iLAotICAgICAgICBcICJvbmVcdFhmaWxlMVx0L15vbmUvO1wiXHRmXHRmaWxlOlx0c2lnbmF0dXJlOih2b2lkKSIsCi0gICAgICAgIFwgIndvcmRcdFhmaWxlMlx0Y21kMiJdLAotICAgICAgICBcICdYdGFncycpCi0gIG5ldyBYZmlsZTEKKyAgICAgICAgXCAib25lXHRYdGpmaWxlMVx0L15vbmUvO1wiXHRmXHRmaWxlOlx0c2lnbmF0dXJlOih2b2lkKSIsCisgICAgICAgIFwgIndvcmRcdFh0amZpbGUyXHRjbWQyIl0sCisgICAgICAgIFwgJ1h0anRhZ3MnKQorICBuZXcgWHRqZmlsZTEKICAgY2FsbCBzZXRsaW5lKDEsIFsnZW1wdHknLCAnb25lKCknLCAnZW1wdHknXSkKICAgd3JpdGUKICAgdGFnIG9uZQpAQCAtODYsMTkgKzg2LDE5IEBACiAKICAgYndpcGUhCiAgIHNldCB0YWdzJgotICBjYWxsIGRlbGV0ZSgnWHRhZ3MnKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUxJykKKyAgY2FsbCBkZWxldGUoJ1h0anRhZ3MnKQorICBjYWxsIGRlbGV0ZSgnWHRqZmlsZTEnKQogZW5kZnVuYwogCiBmdW5jIFRlc3RfZHVwbGljYXRlX3RhZ2p1bXAoKQotICBzZXQgdGFncz1YdGFncworICBzZXQgdGFncz1YZHR0YWdzCiAgIGNhbGwgd3JpdGVmaWxlKFsiIV9UQUdfRklMRV9FTkNPRElOR1x0dXRmLThcdC8vIiwKLSAgICAgICAgXCAidGhlc2FtZVx0WGZpbGUxXHQxO1wiXHRkXHRmaWxlOiIsCi0gICAgICAgIFwgInRoZXNhbWVcdFhmaWxlMVx0MjtcIlx0ZFx0ZmlsZToiLAotICAgICAgICBcICJ0aGVzYW1lXHRYZmlsZTFcdDM7XCJcdGRcdGZpbGU6IiwKKyAgICAgICAgXCAidGhlc2FtZVx0WGR0ZmlsZTFcdDE7XCJcdGRcdGZpbGU6IiwKKyAgICAgICAgXCAidGhlc2FtZVx0WGR0ZmlsZTFcdDI7XCJcdGRcdGZpbGU6IiwKKyAgICAgICAgXCAidGhlc2FtZVx0WGR0ZmlsZTFcdDM7XCJcdGRcdGZpbGU6IiwKICAgICAgICAgXCBdLAotICAgICAgICBcICdYdGFncycpCi0gIG5ldyBYZmlsZTEKKyAgICAgICAgXCAnWGR0dGFncycpCisgIG5ldyBYZHRmaWxlMQogICBjYWxsIHNldGxpbmUoMSwgWyd0aGVzYW1lIG9uZScsICd0aGVzYW1lIHR3bycsICd0aGVzYW1lIHRocmVlJ10pCiAgIHdyaXRlCiAgIHRhZyB0aGVzYW1lCkBAIC0xMTAsMTkgKzExMCwxOSBAQAogCiAgIGJ3aXBlIQogICBzZXQgdGFncyYKLSAgY2FsbCBkZWxldGUoJ1h0YWdzJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMScpCisgIGNhbGwgZGVsZXRlKCdYZHR0YWdzJykKKyAgY2FsbCBkZWxldGUoJ1hkdGZpbGUxJykKIGVuZGZ1bmMKIAogZnVuYyBUZXN0X3RhZ2p1bXBfc3dpdGNoYnVmKCkKICAgQ2hlY2tGZWF0dXJlIHF1aWNrZml4CiAKLSAgc2V0IHRhZ3M9WHRhZ3MKKyAgc2V0IHRhZ3M9WHN3dGFncwogICBjYWxsIHdyaXRlZmlsZShbIiFfVEFHX0ZJTEVfRU5DT0RJTkdcdHV0Zi04XHQvLyIsCi0gICAgICAgIFwgInNlY29uZFx0WGZpbGUxXHQyIiwKLSAgICAgICAgXCAidGhpcmRcdFhmaWxlMVx0MyIsXSwKLSAgICAgICAgXCAnWHRhZ3MnKQotICBjYWxsIHdyaXRlZmlsZShbJ2ZpcnN0JywgJ3NlY29uZCcsICd0aGlyZCddLCAnWGZpbGUxJykKKyAgICAgICAgXCAic2Vjb25kXHRYc2JmaWxlMVx0MiIsCisgICAgICAgIFwgInRoaXJkXHRYc2JmaWxlMVx0MyIsXSwKKyAgICAgICAgXCAnWHN3dGFncycpCisgIGNhbGwgd3JpdGVmaWxlKFsnZmlyc3QnLCAnc2Vjb25kJywgJ3RoaXJkJ10sICdYc2JmaWxlMScpCiAKICAgZW5ldyB8IG9ubHkKICAgc2V0IHN3aXRjaGJ1Zj0KQEAgLTE1Myw4ICsxNTMsOCBAQAogCiAgIHRhYmNsb3NlIQogICBlbmV3IHwgb25seQotICBjYWxsIGRlbGV0ZSgnWGZpbGUxJykKLSAgY2FsbCBkZWxldGUoJ1h0YWdzJykKKyAgY2FsbCBkZWxldGUoJ1hzYmZpbGUxJykKKyAgY2FsbCBkZWxldGUoJ1hzd3RhZ3MnKQogICBzZXQgdGFncyYKICAgc2V0IHN3aXRjaGJ1ZiZ2aW0KIGVuZGZ1bmMKQEAgLTIwNSwxNCArMjA1LDE0IEBACiAgIGNhbGwgd3JpdGVmaWxlKFsKICAgICAgICAgXCAiU0VDVElPTl9PRkYJIiAuIGdldGN3ZCgpIC4gIi9YdGVzdC5kaXIvWHRlc3QuYwkvXiNkZWZpbmUgIFNFQ1RJT05fT0ZGICAzJC8iLAogICAgICAgICBcICcnLAotICAgICAgICBcIF0sICdYdGFncycpCisgICAgICAgIFwgXSwgJ1hzeW10YWdzJykKICAgY2FsbCB3cml0ZWZpbGUoWycjZGVmaW5lICBTRUNUSU9OX09GRiAgMycsCiAgICAgICAgIFwgJyNkZWZpbmUgIE5VTV9TRUNUSU9OUyAzJ10sICdYdGVzdC5jJykKIAogICAiIFRyeSBqdW1waW5nIHRvIGEgdGFnLCBidXQgd2l0aCBhIHBhdGggdGhhdCBjb250YWlucyBhIHN5bWJvbGljIGxpbmsuICBXaGVuCiAgICIgd3JvbmcsIHRoaXMgd2lsbCBnaXZlIHRoZSBBVFRFTlRJT04gbWVzc2FnZS4gIFRoZSBuZXh0IHNwYWNlIHdpbGwgdGhlbiBiZQogICAiIGVhdGVuIGJ5IGhpdC1yZXR1cm4sIGluc3RlYWQgb2YgbW92aW5nIHRoZSBjdXJzb3IgdG8gJ2QnLgotICBzZXQgdGFncz1YdGFncworICBzZXQgdGFncz1Yc3ltdGFncwogICBlbmV3IQogICBjYWxsIGFwcGVuZCgwLCAnU0VDVElPTl9PRkYnKQogICBjYWxsIGN1cnNvcigxLDEpCkBAIC0yMjMsNyArMjIzLDcgQEAKICAgc2V0IGhpZGRlbiYKICAgc2V0IHRhZ3MmCiAgIGVuZXchCi0gIGNhbGwgZGVsZXRlKCdYdGFncycpCisgIGNhbGwgZGVsZXRlKCdYc3ltdGFncycpCiAgIGNhbGwgZGVsZXRlKCdYdGVzdC5jJykKICAgY2FsbCBkZWxldGUoIlh0ZXN0LmRpciIsICJyZiIpCiAgICVid2lwZSEKQEAgLTI2MywxMiArMjYzLDEyIEBACiAgIG5ldwogICBsZXQgY29udGVudCA9IFsnIV9UQUdfRklMRV9FTkNPRElORwljcDkzMgkvLycsCiAgICAgICAgIFwgIlx4ODJgXHg4MmFceDgyYglYdGFnczIudHh0CS9ceDgyYFx4ODJhXHg4MmIiXQotICBjYWxsIHdyaXRlZmlsZShjb250ZW50LCAnWHRhZ3MnKQotICBzZXQgdGFncz1YdGFncworICBjYWxsIHdyaXRlZmlsZShjb250ZW50LCAnWGVuY3RhZ3MnKQorICBzZXQgdGFncz1YZW5jdGFncwogICB0YWcgLy7vvKLvvKMKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ1h0YWdzMi50eHQnLCBleHBhbmQoJyU6dCcpKQogICBjYWxsIGFzc2VydF9lcXVhbCgn77yh77yi77yjJywgZ2V0bGluZSgnLicpKQotICBjYWxsIGRlbGV0ZSgnWHRhZ3MnKQorICBjYWxsIGRlbGV0ZSgnWGVuY3RhZ3MnKQogICBjbG9zZQogCiAgICIgY2FzZTM6CkBAIC0yODAsMTIgKzI4MCwxMiBAQAogICAgICAgY2FsbCBhZGQoY29udGVudHMsICdhYmMnIC4uIGkKICAgICAgICAgICAgIFwgLi4gIglYdGFnczMudHh0CS9ceDgyYFx4ODJhXHg4MmIiKQogICBlbmRmb3IKLSAgY2FsbCB3cml0ZWZpbGUoY29udGVudHMsICdYdGFncycpCi0gIHNldCB0YWdzPVh0YWdzCisgIGNhbGwgd3JpdGVmaWxlKGNvbnRlbnRzLCAnWGVuY3RhZ3MnKQorICBzZXQgdGFncz1YZW5jdGFncwogICB0YWcgYWJjNTAKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ1h0YWdzMy50eHQnLCBleHBhbmQoJyU6dCcpKQogICBjYWxsIGFzc2VydF9lcXVhbCgn77yh77yi77yjJywgZ2V0bGluZSgnLicpKQotICBjYWxsIGRlbGV0ZSgnWHRhZ3MnKQorICBjYWxsIGRlbGV0ZSgnWGVuY3RhZ3MnKQogICBjbG9zZQogCiAgIHNldCB0YWdzJgpAQCAtMzE0LDggKzMxNCw4IEBACiAgICAgICAgIFwgIlhtYWluLmMsNjQiLAogICAgICAgICBcICJ2b2lkIGZvbygpIHt9XHg3ZmZvb1x4MDExLDAiLAogICAgICAgICBcICJpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpXHg3Zm1haW5ceDAxMiwxNCIsCi0JXCBdLCAnWHRhZ3MnKQotICBzZXQgdGFncz1YdGFncworCVwgXSwgJ1h0ZXRhZ3MnKQorICBzZXQgdGFncz1YdGV0YWdzCiAgIHRhIGZvbwogICBjYWxsIGFzc2VydF9lcXVhbCgndm9pZCBmb28oKSB7fScsIGdldGxpbmUoJy4nKSkKIApAQCAtMzI4LDcgKzMyOCw3IEBACiAgICAgICAgIFwgIlhub25leGlzdGluZyxpbmNsdWRlIiwKICAgICAgICAgXCAiXHgwYyIsCiAgICAgICAgIFwgIlh0YWdzMixpbmNsdWRlIgotICAgICAgICBcIF0sICdYdGFncycpCisgICAgICAgIFwgXSwgJ1h0ZXRhZ3MnKQogICBjYWxsIHdyaXRlZmlsZShbCiAgICAgICAgIFwgIlx4MGMiLAogICAgICAgICBcICJYbWFpbi5jLDY0IiwKQEAgLTM0Myw3ICszNDMsNyBAQAogICAgICAgICBcICJceDBjIiwKICAgICAgICAgXCAiWG1haW4uYyw4IiwKICAgICAgICAgXCAiaW50IG1haW4iCi0gICAgICAgIFwgXSwgJ1h0YWdzJywgJ2InKQorICAgICAgICBcIF0sICdYdGV0YWdzJywgJ2InKQogICBjYWxsIGFzc2VydF9mYWlscygndGFnIGZvbycsICdFNDI2OicpCiAKICAgIiBpbnZhbGlkIGxpbmUgbnVtYmVyCkBAIC0zNTEsNyArMzUxLDcgQEAKIAlcICJceDBjIiwKICAgICAgICAgXCAiWG1haW4uYyw2NCIsCiAgICAgICAgIFwgInZvaWQgZm9vKCkge31ceDdmZm9vXHgwYWJjLDAiLAotCVwgXSwgJ1h0YWdzJykKKwlcIF0sICdYdGV0YWdzJykKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3RhZyBmb28nLCAnRTQyNjonKQogCiAgICIgaW52YWxpZCB0YWcgbmFtZQpAQCAtMzU5LDcgKzM1OSw3IEBACiAJXCAiXHgwYyIsCiAgICAgICAgIFwgIlhtYWluLmMsNjQiLAogICAgICAgICBcICI7Ozs7XHg3ZjEsMCIsCi0JXCBdLCAnWHRhZ3MnKQorCVwgXSwgJ1h0ZXRhZ3MnKQogICBjYWxsIGFzc2VydF9mYWlscygndGFnIGZvbycsICdFNDMxOicpCiAKICAgIiBlbmQgb2YgZmlsZSBhZnRlciBhIENUUkwtTCBsaW5lCkBAIC0zNjgsMTQgKzM2OCwxNCBAQAogICAgICAgICBcICJYbWFpbi5jLDY0IiwKICAgICAgICAgXCAidm9pZCBmb28oKSB7fVx4N2Zmb29ceDAxMSwwIiwKIAlcICJceDBjIiwKLQlcIF0sICdYdGFncycpCisJXCBdLCAnWHRldGFncycpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCd0YWcgbWFpbicsICdFNDI2OicpCiAKICAgIiBlcnJvciBpbiBhbiBpbmNsdWRlZCB0YWdzIGZpbGUKICAgY2FsbCB3cml0ZWZpbGUoWwogICAgICAgICBcICJceDBjIiwKICAgICAgICAgXCAiWHRhZ3MyLGluY2x1ZGUiCi0gICAgICAgIFwgXSwgJ1h0YWdzJykKKyAgICAgICAgXCBdLCAnWHRldGFncycpCiAgIGNhbGwgd3JpdGVmaWxlKFsKICAgICAgICAgXCAiXHgwYyIsCiAgICAgICAgIFwgIlhtYWluLmMsNjQiLApAQCAtMzgzLDcgKzM4Myw3IEBACiAgICAgICAgIFwgXSwgJ1h0YWdzMicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCd0YWcgZm9vJywgJ0U0MzE6JykKIAotICBjYWxsIGRlbGV0ZSgnWHRhZ3MnKQorICBjYWxsIGRlbGV0ZSgnWHRldGFncycpCiAgIGNhbGwgZGVsZXRlKCdYdGFnczInKQogICBjYWxsIGRlbGV0ZSgnWG1haW4uYycpCiAgIHNldCB0YWdzJgpAQCAtMzkyLDkgKzM5Miw5IEBACiAKICIgVGVzdCBmb3IgZ2V0dGluZyBhbmQgbW9kaWZ5aW5nIHRoZSB0YWcgc3RhY2sKIGZ1bmMgVGVzdF9nZXRzZXR0YWdzdGFjaygpCi0gIGNhbGwgd3JpdGVmaWxlKFsnbGluZTEnLCAnbGluZTInLCAnbGluZTMnXSwgJ1hmaWxlMScpCi0gIGNhbGwgd3JpdGVmaWxlKFsnbGluZTEnLCAnbGluZTInLCAnbGluZTMnXSwgJ1hmaWxlMicpCi0gIGNhbGwgd3JpdGVmaWxlKFsnbGluZTEnLCAnbGluZTInLCAnbGluZTMnXSwgJ1hmaWxlMycpCisgIGNhbGwgd3JpdGVmaWxlKFsnbGluZTEnLCAnbGluZTInLCAnbGluZTMnXSwgJ1hzdHNmaWxlMScpCisgIGNhbGwgd3JpdGVmaWxlKFsnbGluZTEnLCAnbGluZTInLCAnbGluZTMnXSwgJ1hzdHNmaWxlMicpCisgIGNhbGwgd3JpdGVmaWxlKFsnbGluZTEnLCAnbGluZTInLCAnbGluZTMnXSwgJ1hzdHNmaWxlMycpCiAKICAgZW5ldyB8IG9ubHkKICAgY2FsbCBzZXR0YWdzdGFjaygxLCB7J2l0ZW1zJyA6IFtdfSkKQEAgLTQwOSwxMiArNDA5LDEyIEBACiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNldHRhZ3N0YWNrKDEsIHsnaXRlbXMnIDogW119LCAnYicpIiwgJ0U5NjI6JykKICAgY2FsbCBhc3NlcnRfZXF1YWwoLTEsIHNldHRhZ3N0YWNrKDAsIHRlc3RfbnVsbF9kaWN0KCkpKQogCi0gIHNldCB0YWdzPVh0YWdzCisgIHNldCB0YWdzPVh0c3R0YWdzCiAgIGNhbGwgd3JpdGVmaWxlKFsiIV9UQUdfRklMRV9FTkNPRElOR1x0dXRmLThcdC8vIiwKLSAgICAgICAgXCAib25lXHRYZmlsZTFcdDEiLAotICAgICAgICBcICJ0aHJlZVx0WGZpbGUzXHQzIiwKLSAgICAgICAgXCAidHdvXHRYZmlsZTJcdDIiXSwKLSAgICAgICAgXCAnWHRhZ3MnKQorICAgICAgICBcICJvbmVcdFhzdHNmaWxlMVx0MSIsCisgICAgICAgIFwgInRocmVlXHRYc3RzZmlsZTNcdDMiLAorICAgICAgICBcICJ0d29cdFhzdHNmaWxlMlx0MiJdLAorICAgICAgICBcICdYdHN0dGFncycpCiAKICAgbGV0IHN0ayA9IFtdCiAgIGNhbGwgYWRkKHN0aywgeydidWZucicgOiBidWZucignJScpLCAndGFnbmFtZScgOiAnb25lJywKQEAgLTQ5NSwxMCArNDk1LDEwIEBACiAKICAgIiBUYWcgd2l0aCBtdWx0aXBsZSBtYXRjaGVzCiAgIGNhbGwgd3JpdGVmaWxlKFsiIV9UQUdfRklMRV9FTkNPRElOR1x0dXRmLThcdC8vIiwKLSAgICAgICAgXCAidHdvXHRYZmlsZTFcdDEiLAotICAgICAgICBcICJ0d29cdFhmaWxlMlx0MyIsCi0gICAgICAgIFwgInR3b1x0WGZpbGUzXHQyIl0sCi0gICAgICAgIFwgJ1h0YWdzJykKKyAgICAgICAgXCAidHdvXHRYc3RzZmlsZTFcdDEiLAorICAgICAgICBcICJ0d29cdFhzdHNmaWxlMlx0MyIsCisgICAgICAgIFwgInR3b1x0WHN0c2ZpbGUzXHQyIl0sCisgICAgICAgIFwgJ1h0c3R0YWdzJykKICAgY2FsbCBzZXR0YWdzdGFjaygxLCB7J2l0ZW1zJyA6IFtdfSkKICAgdGFnIHR3bwogICB0bmV4dApAQCAtNTE1LDEwICs1MTUsMTAgQEAKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NhbGwgZ2V0dGFnc3RhY2soKScsICdFMzQyOicpCiAKICAgY2FsbCBzZXR0YWdzdGFjaygxLCB7J2l0ZW1zJyA6IFtdfSkKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMScpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZTInKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUzJykKLSAgY2FsbCBkZWxldGUoJ1h0YWdzJykKKyAgY2FsbCBkZWxldGUoJ1hzdHNmaWxlMScpCisgIGNhbGwgZGVsZXRlKCdYc3RzZmlsZTInKQorICBjYWxsIGRlbGV0ZSgnWHN0c2ZpbGUzJykKKyAgY2FsbCBkZWxldGUoJ1h0c3R0YWdzJykKICAgc2V0IHRhZ3MmCiBlbmRmdW5jCiAKQEAgLTczNSwxMSArNzM1LDExIEBACiAiIFRlc3QgZm9yIDpwdGFnCiBmdW5jIFRlc3RfdGFnX3ByZXZpZXcoKQogICBjYWxsIHdyaXRlZmlsZShbIiFfVEFHX0ZJTEVfRU5DT0RJTkdcdHV0Zi04XHQvLyIsCi0gICAgICAgIFwgInNlY29uZFx0WGZpbGUxXHQyIiwKLSAgICAgICAgXCAidGhpcmRcdFhmaWxlMVx0MyIsXSwKKyAgICAgICAgXCAic2Vjb25kXHRYdHBmaWxlMVx0MiIsCisgICAgICAgIFwgInRoaXJkXHRYdHBmaWxlMVx0MyIsXSwKICAgICAgICAgXCAnWHRhZ3MnKQogICBzZXQgdGFncz1YdGFncwotICBjYWxsIHdyaXRlZmlsZShbJ2ZpcnN0JywgJ3NlY29uZCcsICd0aGlyZCddLCAnWGZpbGUxJykKKyAgY2FsbCB3cml0ZWZpbGUoWydmaXJzdCcsICdzZWNvbmQnLCAndGhpcmQnXSwgJ1h0cGZpbGUxJykKIAogICBlbmV3IHwgb25seQogICBwdGFnIHRoaXJkCkBAIC03NjYsNyArNzY2LDcgQEAKICAgcGNsb3NlCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDEsIHdpbm5yKCckJykpCiAKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMScpCisgIGNhbGwgZGVsZXRlKCdYdHBmaWxlMScpCiAgIGNhbGwgZGVsZXRlKCdYdGFncycpCiAgIHNldCB0YWdzJgogZW5kZnVuYwpAQCAtMTQ1MywyNCArMTQ1MywyNCBAQAogZnVuYyBUZXN0X3RhZ19sZW5ndGgoKQogICBzZXQgdGFncz1YdGFncwogICBjYWxsIHdyaXRlZmlsZShbIiFfVEFHX0ZJTEVfRU5DT0RJTkdcdHV0Zi04XHQvLyIsCi0gICAgICAgIFwgInRhbWVcdFhmaWxlMVx0MTsiLAotICAgICAgICBcICJ0YXBlXHRYZmlsZTJcdDE7Il0sICdYdGFncycpCi0gIGNhbGwgd3JpdGVmaWxlKFsndGFtZSddLCAnWGZpbGUxJykKLSAgY2FsbCB3cml0ZWZpbGUoWyd0YXBlJ10sICdYZmlsZTInKQorICAgICAgICBcICJ0YW1lXHRYdGxmaWxlMVx0MTsiLAorICAgICAgICBcICJ0YXBlXHRYdGxmaWxlMlx0MTsiXSwgJ1h0YWdzJykKKyAgY2FsbCB3cml0ZWZpbGUoWyd0YW1lJ10sICdYdGxmaWxlMScpCisgIGNhbGwgd3JpdGVmaWxlKFsndGFwZSddLCAnWHRsZmlsZTInKQogCiAgICIgSnVtcGluZyB0byB0aGUgdGFnICd0YXBlJywgc2hvdWxkIGluc3RlYWQganVtcCB0byAndGFtZScKICAgbmV3CiAgIHNldCB0YWdsZW5ndGg9MgogICB0YWcgdGFwZQotICBjYWxsIGFzc2VydF9lcXVhbCgnWGZpbGUxJywgQCUpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdYdGxmaWxlMScsIEAlKQogICAiIFRhZyBzZWFyY2ggc2hvdWxkIGp1bXAgdG8gdGhlIHJpZ2h0IHRhZwogICBlbmV3CiAgIHRhZyAvXnRhcGUkCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdYZmlsZTInLCBAJSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1h0bGZpbGUyJywgQCUpCiAKICAgY2FsbCBkZWxldGUoJ1h0YWdzJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMScpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZTInKQorICBjYWxsIGRlbGV0ZSgnWHRsZmlsZTEnKQorICBjYWxsIGRlbGV0ZSgnWHRsZmlsZTInKQogICBzZXQgdGFncyYgdGFnbGVuZ3RoJgogZW5kZnVuYwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3Rlcm1pbmFsLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfdGVybWluYWwudmltCmluZGV4IDkzY2I3NGQuLjIzOGZkODYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfdGVybWluYWwudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfdGVybWluYWwudmltCkBAIC02NDEsMTAgKzY0MSwxMCBAQAogZnVuYyBUZXN0X3Rlcm1pbmFsX2N3ZF9mYWlsdXJlKCkKICAgIiBDYXNlIDE6IFByb3ZpZGVkIGRpcmVjdG9yeSBpcyBub3QgYWN0dWFsbHkgYSBkaXJlY3RvcnkuICBBdHRlbXB0IHRvIG1ha2UKICAgIiB0aGUgZmlsZSBleGVjdXRhYmxlIGFzIHdlbGwuCi0gIGNhbGwgd3JpdGVmaWxlKFtdLCAnWGZpbGUnKQotICBjYWxsIHNldGZwZXJtKCdYZmlsZScsICdyd3gtLS0tLS0nKQotICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCB0ZXJtX3N0YXJ0KCZzaGVsbCwgeydjd2QnOiAnWGZpbGUnfSkiLCAnRTQ3NTonKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbXSwgJ1h0Y2ZpbGUnKQorICBjYWxsIHNldGZwZXJtKCdYZnRjaWxlJywgJ3J3eC0tLS0tLScpCisgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHRlcm1fc3RhcnQoJnNoZWxsLCB7J2N3ZCc6ICdYZnRjaWxlJ30pIiwgJ0U0NzU6JykKKyAgY2FsbCBkZWxldGUoJ1hmdGNpbGUnKQogCiAgICIgQ2FzZSAyOiBEaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHRlcm1fc3RhcnQoJnNoZWxsLCB7J2N3ZCc6ICdYZGlyJ30pIiwgJ0U0NzU6JykKQEAgLTg3OCwxMiArODc4LDEyIEBACiBmdW5jIFRlc3RfdGVybWluYWxfcmVkaXJfZmlsZSgpCiAgIGxldCBnOnRlc3RfaXNfZmxha3kgPSAxCiAgIGxldCBjbWQgPSBHZXRfY2F0XzEyM19jbWQoKQotICBsZXQgYnVmID0gdGVybV9zdGFydChjbWQsIHsnb3V0X2lvJzogJ2ZpbGUnLCAnb3V0X25hbWUnOiAnWGZpbGUnfSkKKyAgbGV0IGJ1ZiA9IHRlcm1fc3RhcnQoY21kLCB7J291dF9pbyc6ICdmaWxlJywgJ291dF9uYW1lJzogJ1h0cmZpbGUnfSkKICAgY2FsbCBUZXJtV2FpdChidWYpCiAgICIgQ29uUFRZIG1heSBwcmVjZWRlIGVzY2FwZSBzZXF1ZW5jZS4gVGhlcmUgYXJlIHRoaW5ncyB0aGF0IGFyZSBub3Qgc28uCiAgIGlmICFoYXMoJ2NvbnB0eScpCi0gICAgY2FsbCBXYWl0Rm9yQXNzZXJ0KHstPiBhc3NlcnRfbm90ZXF1YWwoMCwgbGVuKHJlYWRmaWxlKCJYZmlsZSIpKSl9KQotICAgIGNhbGwgYXNzZXJ0X21hdGNoKCcxMjMnLCByZWFkZmlsZSgnWGZpbGUnKVswXSkKKyAgICBjYWxsIFdhaXRGb3JBc3NlcnQoey0+IGFzc2VydF9ub3RlcXVhbCgwLCBsZW4ocmVhZGZpbGUoIlh0cmZpbGUiKSkpfSkKKyAgICBjYWxsIGFzc2VydF9tYXRjaCgnMTIzJywgcmVhZGZpbGUoJ1h0cmZpbGUnKVswXSkKICAgZW5kaWYKICAgbGV0IGc6am9iID0gdGVybV9nZXRqb2IoYnVmKQogICBjYWxsIFdhaXRGb3JBc3NlcnQoey0+IGFzc2VydF9lcXVhbCgiZGVhZCIsIGpvYl9zdGF0dXMoZzpqb2IpKX0pCkBAIC04OTQsMTggKzg5NCwxOCBAQAogICAgICIgSnVzdCB3YWl0IGZvciBhIG1vbWVudC4KICAgICBzbGVlcCA1MG0KICAgZW5kaWYKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1h0cmZpbGUnKQogICBid2lwZQogCiAgIGlmIGhhcygndW5peCcpCi0gICAgY2FsbCB3cml0ZWZpbGUoWydvbmUgbGluZSddLCAnWGZpbGUnKQotICAgIGxldCBidWYgPSB0ZXJtX3N0YXJ0KCdjYXQnLCB7J2luX2lvJzogJ2ZpbGUnLCAnaW5fbmFtZSc6ICdYZmlsZSd9KQorICAgIGNhbGwgd3JpdGVmaWxlKFsnb25lIGxpbmUnXSwgJ1h0cmZpbGUnKQorICAgIGxldCBidWYgPSB0ZXJtX3N0YXJ0KCdjYXQnLCB7J2luX2lvJzogJ2ZpbGUnLCAnaW5fbmFtZSc6ICdYdHJmaWxlJ30pCiAgICAgY2FsbCBUZXJtV2FpdChidWYpCiAgICAgY2FsbCBXYWl0Rm9yQXNzZXJ0KHstPiBhc3NlcnRfZXF1YWwoJ29uZSBsaW5lJywgdGVybV9nZXRsaW5lKGJ1ZiwgMSkpfSkKICAgICBsZXQgZzpqb2IgPSB0ZXJtX2dldGpvYihidWYpCiAgICAgY2FsbCBXYWl0Rm9yQXNzZXJ0KHstPiBhc3NlcnRfZXF1YWwoJ2RlYWQnLCBqb2Jfc3RhdHVzKGc6am9iKSl9KQogICAgIGJ3aXBlCi0gICAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgICBjYWxsIGRlbGV0ZSgnWHRyZmlsZScpCiAgIGVuZGlmCiBlbmRmdW5jCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfdGVybWluYWwyLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfdGVybWluYWwyLnZpbQppbmRleCBhNDBmYzg0Li42ZTcwYWQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3Rlcm1pbmFsMi52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF90ZXJtaW5hbDIudmltCkBAIC00MTUsMTEgKzQxNSwxMSBAQAogICBcIF0KIAogICBmb3IgYyBpbiBjb250ZW50cwotICAgIGNhbGwgd3JpdGVmaWxlKGMsICdYZmlsZScpCisgICAgY2FsbCB3cml0ZWZpbGUoYywgJ1hkbnRmaWxlJykKICAgICBpZiBoYXMoJ3dpbjMyJykKLSAgICAgIHRlcm0gY21kIC9jIHR5cGUgWGZpbGUKKyAgICAgIHRlcm0gY21kIC9jIHR5cGUgWGRudGZpbGUKICAgICBlbHNlCi0gICAgICB0ZXJtIGNhdCBYZmlsZQorICAgICAgdGVybSBjYXQgWGRudGZpbGUKICAgICBlbmRpZgogICAgIGxldCBibnIgPSBidWZucignJCcpCiAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ3Rlcm1pbmFsJywgZ2V0YnVmdmFyKGJuciwgJyZidWZ0eXBlJykpCkBAIC00MjksNyArNDI5LDcgQEAKICAgICBxdWl0CiAgIGVuZGZvcgogCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYZG50ZmlsZScpCiBlbmRmdW5jCiAKIGZ1bmMgR2V0RHVtbXlDbWQoKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF92aW05X2Fzc2lnbi52aW0gYi9zcmMvdGVzdGRpci90ZXN0X3ZpbTlfYXNzaWduLnZpbQppbmRleCBiMWZmMzkyLi41OGRkZTNmIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3ZpbTlfYXNzaWduLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3ZpbTlfYXNzaWduLnZpbQpAQCAtMjIxMSw3ICsyMjExLDcgQEAKICAgRU5ECiAgIHY5LkNoZWNrU2NyaXB0RmFpbHVyZShsaW5lcywgJ0U0NzY6JywgMSkKIAotICBlZGl0ISBYZmlsZQorICBlZGl0ISBYc2xmaWxlCiAgIGxpbmVzID08PCB0cmltIEVORAogICAgICAgdmFyIGVkaXQ6IGJvb2wKICAgICAgIGxlZ2FjeSBlZGl0CmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3ZpbTlfY21kLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9jbWQudmltCmluZGV4IGI5ZDhhZGIuLjYzNjc2OWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9jbWQudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9jbWQudmltCkBAIC05MzEsMTEgKzkzMSwxMSBAQAogICBsZXQgbGluZXMgPTw8IHRyaW0gRU5ECiAgICAgY2FsbCBzZXRsaW5lKDEsICdjaGFuZ2VkJykKICAgICBkZWYgR2V0b3V0KCkKLSAgICAgIGNvbmZpcm0gd3JpdGUgWGZpbGUKKyAgICAgIGNvbmZpcm0gd3JpdGUgWGNtb2RmaWxlCiAgICAgZW5kZGVmCiAgIEVORAogICBjYWxsIHdyaXRlZmlsZShsaW5lcywgJ1hjb25maXJtc2NyaXB0JykKLSAgY2FsbCB3cml0ZWZpbGUoWydlbXB0eSddLCAnWGZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbJ2VtcHR5J10sICdYY21vZGZpbGUnKQogICBsZXQgYnVmID0gUnVuVmltSW5UZXJtaW5hbCgnLVMgWGNvbmZpcm1zY3JpcHQnLCB7J3Jvd3MnOiA4fSkKICAgY2FsbCB0ZXJtX3NlbmRrZXlzKGJ1ZiwgIjpjYWxsIEdldG91dCgpXG4iKQogICBjYWxsIFdhaXRGb3JBc3NlcnQoey0+IGFzc2VydF9tYXRjaCgnKFkpZXMsIFxbTlxdbzogJywgdGVybV9nZXRsaW5lKGJ1ZiwgOCkpfSwgMTAwMCkKQEAgLTk0NSw5ICs5NDUsOSBAQAogICBjYWxsIFRlcm1XYWl0KGJ1ZikKICAgY2FsbCBTdG9wVmltSW5UZXJtaW5hbChidWYpCiAKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWydjaGFuZ2VkJ10sIHJlYWRmaWxlKCdYZmlsZScpKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQotICBjYWxsIGRlbGV0ZSgnLlhmaWxlLnN3cCcpICAiIGluIGNhc2UgVmltIHdhcyBraWxsZWQKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWydjaGFuZ2VkJ10sIHJlYWRmaWxlKCdYY21vZGZpbGUnKSkKKyAgY2FsbCBkZWxldGUoJ1hjbW9kZmlsZScpCisgIGNhbGwgZGVsZXRlKCcuWGNtb2RmaWxlLnN3cCcpICAiIGluIGNhc2UgVmltIHdhcyBraWxsZWQKICAgY2FsbCBkZWxldGUoJ1hjb25maXJtc2NyaXB0JykKIGVuZGZ1bmMKIApAQCAtMTA2NSwxMyArMTA2NSwxMyBAQAogICBlZGl0IFhzb21lZmlsZQogICBid2lwZSEKIAotICBhdSBCdWZOZXdGaWxlIFhmaWxlIGc6cmVhZEZpbGUgPSAxCisgIGF1IEJ1Zk5ld0ZpbGUgWGNtb2ZpbGUgZzpyZWFkRmlsZSA9IDEKICAgZzpyZWFkRmlsZSA9IDAKLSAgZWRpdCBYZmlsZQorICBlZGl0IFhjbW9maWxlCiAgIGFzc2VydF9lcXVhbCgxLCBnOnJlYWRGaWxlKQogICBid2lwZSEKICAgZzpyZWFkRmlsZSA9IDAKLSAgbm9hdXRvY21kIGVkaXQgWGZpbGUKKyAgbm9hdXRvY21kIGVkaXQgWGNtb2ZpbGUKICAgYXNzZXJ0X2VxdWFsKDAsIGc6cmVhZEZpbGUpCiAgIGF1ISBCdWZOZXdGaWxlCiAgIHVubGV0IGc6cmVhZEZpbGUKQEAgLTE0MDcsNyArMTQwNyw3IEBACiBlbmRkZWYKIAogZGVmIFRlc3RfY21kX2FyZ3VtZW50X3dpdGhvdXRfY29sb24oKQotICBuZXcgWGZpbGUKKyAgbmV3IFhhd2NmaWxlCiAgIHNldGxpbmUoMSwgWydhJywgJ2InLCAnYycsICdkJ10pCiAgIHdyaXRlCiAgIGVkaXQgKzMgJQpAQCAtMTQxNSw3ICsxNDE1LDcgQEAKICAgZWRpdCArL2EgJQogICBhc3NlcnRfZXF1YWwoMSwgZ2V0Y3VycG9zKClbMV0pCiAgIGJ3aXBlCi0gIGRlbGV0ZSgnWGZpbGUnKQorICBkZWxldGUoJ1hhd2NmaWxlJykKIGVuZGRlZgogCiBkZWYgVGVzdF9hbWJpZ3VvdXNfdXNlcl9jbWQoKQpAQCAtMTg4Miw3ICsxODgyLDcgQEAKICAgICAgIHZhciB0ZXh0OiBzdHJpbmcKICAgICAgIHJlZGlyID0+IHRleHQKICAgICAgICAgZWNobyAnaGVsbG8nCi0gICAgICAgIHJlZGlyID4gWGZpbGUKKyAgICAgICAgcmVkaXIgPiBYbm9wZmlsZQogICAgICAgcmVkaXIgRU5ECiAgIEVORAogICB2OS5DaGVja0RlZkZhaWx1cmUobGluZXMsICdFMTA5MjonKQpAQCAtMjAyNSwxMCArMjAyNSwxMCBAQAogIiBUZXN0IGZvciB0aGUgJ3ByZXZpZXdwb3B1cCcgb3B0aW9uCiBkZWYgVGVzdF9wcmV2aWV3cG9wdXAoKQogICBzZXQgcHJldmlld3BvcHVwPWhlaWdodDoxMCx3aWR0aDo2MAotICBwZWRpdCBYZmlsZQorICBwZWRpdCBYcHBmaWxlCiAgIHZhciBpZCA9IHBvcHVwX2ZpbmRwcmV2aWV3KCkKICAgYXNzZXJ0X25vdGVxdWFsKGlkLCAwKQotICBhc3NlcnRfbWF0Y2goJ1hmaWxlJywgcG9wdXBfZ2V0b3B0aW9ucyhpZCkudGl0bGUpCisgIGFzc2VydF9tYXRjaCgnWHBwZmlsZScsIHBvcHVwX2dldG9wdGlvbnMoaWQpLnRpdGxlKQogICBwb3B1cF9jbGVhcigpCiAgIHNldCBwcmV2aWV3cG9wdXAmCiBlbmRkZWYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9pbXBvcnQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF92aW05X2ltcG9ydC52aW0KaW5kZXggNmFlMmUyZi4uYjY4ODI5NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF92aW05X2ltcG9ydC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF92aW05X2ltcG9ydC52aW0KQEAgLTE0MTQsMTMgKzE0MTQsMTMgQEAKICAgRU5ECiAgIHY5LkNoZWNrU2NyaXB0U3VjY2VzcyhsaW5lcykKIAotICB3cml0ZWZpbGUoWydvbmUnLCAndHdvJ10sICdYZmlsZScpCi0gIG5ldyBYZmlsZQotICB3cml0ZSArK2VuYz11Y2FzZSBYZmlsZTEKLSAgYXNzZXJ0X2VxdWFsKFsnT05FJywgJ1RXTyddLCByZWFkZmlsZSgnWGZpbGUxJykpCisgIHdyaXRlZmlsZShbJ29uZScsICd0d28nXSwgJ1hpaWNmaWxlJykKKyAgbmV3IFhpaWNmaWxlCisgIHdyaXRlICsrZW5jPXVjYXNlIFhpaWNmaWxlMQorICBhc3NlcnRfZXF1YWwoWydPTkUnLCAnVFdPJ10sIHJlYWRmaWxlKCdYaWljZmlsZTEnKSkKIAotICBkZWxldGUoJ1hmaWxlJykKLSAgZGVsZXRlKCdYZmlsZTEnKQorICBkZWxldGUoJ1hpaWNmaWxlJykKKyAgZGVsZXRlKCdYaWljZmlsZTEnKQogICBkZWxldGUoJ1hjb252ZXJ0LnZpbScpCiAgIGJ3aXBlIQogICBzZXQgY2hhcmNvbnZlcnQmCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3ZpbTlfc2NyaXB0LnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9zY3JpcHQudmltCmluZGV4IGJkZWZjODcuLmFlZWUxNDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9zY3JpcHQudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9zY3JpcHQudmltCkBAIC05NjgsMTEgKzk2OCwxMSBAQAogICB2YXIgbGluZXMgPTw8IHRyaW0gRU5ECiAgICAgICB2aW05c2NyaXB0CiAgICAgICBhdSBCdWZFbnRlciAqIGV2YWwgMSArIDIKLSAgICAgIHdyaXRlZmlsZShbJ3RleHQnXSwgJ1hmaWxlMScpCi0gICAgICB3cml0ZWZpbGUoWyd0ZXh0J10sICdYZmlsZTInKQorICAgICAgd3JpdGVmaWxlKFsndGV4dCddLCAnWGNuY2ZpbGUxJykKKyAgICAgIHdyaXRlZmlsZShbJ3RleHQnXSwgJ1hjbmNmaWxlMicpCiAgICAgICB2YXIgaXRlbXMgPSBbCi0gICAgICAgICAge2xudW06IDEsIGZpbGVuYW1lOiAnWGZpbGUxJywgdmFsaWQ6IHRydWV9LAotICAgICAgICAgIHtsbnVtOiAxLCBmaWxlbmFtZTogJ1hmaWxlMicsIHZhbGlkOiB0cnVlfQorICAgICAgICAgIHtsbnVtOiAxLCBmaWxlbmFtZTogJ1hjbmNmaWxlMScsIHZhbGlkOiB0cnVlfSwKKyAgICAgICAgICB7bG51bTogMSwgZmlsZW5hbWU6ICdYY25jZmlsZTInLCB2YWxpZDogdHJ1ZX0KICAgICAgICAgXQogICAgICAgc2V0cWZsaXN0KFtdLCAnICcsIHtpdGVtczogaXRlbXN9KQogICAgICAgY3dpbmRvdwpAQCAtOTg4LDE3ICs5ODgsMTcgQEAKIAogICAgICAgQ25leHRPckNmaXJzdCgpCiAgICAgICBDbmV4dE9yQ2ZpcnN0KCkKLSAgICAgIHdyaXRlZmlsZShbZ2V0cWZsaXN0KHtpZHg6IDB9KS5pZHhdLCAnWHJlc3VsdCcpCisgICAgICB3cml0ZWZpbGUoW2dldHFmbGlzdCh7aWR4OiAwfSkuaWR4XSwgJ1hjbmNyZXN1bHQnKQogICAgICAgcWFsbAogICBFTkQKICAgd3JpdGVmaWxlKGxpbmVzLCAnWENhdGNoQ25leHQnKQogICBnOlJ1blZpbShbXSwgW10sICctLWNsZWFuIC1TIFhDYXRjaENuZXh0JykKLSAgYXNzZXJ0X2VxdWFsKFsnMSddLCByZWFkZmlsZSgnWHJlc3VsdCcpKQorICBhc3NlcnRfZXF1YWwoWycxJ10sIHJlYWRmaWxlKCdYY25jcmVzdWx0JykpCiAKLSAgZGVsZXRlKCdYZmlsZTEnKQotICBkZWxldGUoJ1hmaWxlMicpCisgIGRlbGV0ZSgnWGNuY2ZpbGUxJykKKyAgZGVsZXRlKCdYY25jZmlsZTInKQogICBkZWxldGUoJ1hDYXRjaENuZXh0JykKLSAgZGVsZXRlKCdYcmVzdWx0JykKKyAgZGVsZXRlKCdYY25jcmVzdWx0JykKIGVuZGRlZgogCiBkZWYgVGVzdF90aHJvd19za2lwcGVkKCkKQEAgLTI3MDgsNyArMjcwOCw3IEBACiAgICAgICAnI3tzb21ldGhpbmcnLAogICAgICAgXSwgJ0UxMTcwOicpCiAKLSAgc3BsaXQgWGZpbGUKKyAgc3BsaXQgWHY5Y2ZpbGUKICAgdjkuQ2hlY2tTY3JpcHRTdWNjZXNzKFsKICAgICAgICd2aW05c2NyaXB0JywKICAgICAgICdlZGl0ICNzb21ldGhpbmcnLApAQCAtMzU0NCwyMCArMzU0NCwyMCBAQAogICAgIG1rZGlyKCdYaG9tZScpCiAgICAgdmFyIGxpbmVzID08PCB0cmltIEVORAogICAgICAgICB2aW05c2NyaXB0Ci0gICAgICAgIHdyaXRlZmlsZShbJ2JlZm9yZTogJyAuLiAmY3BvXSwgJ1hyZXN1bHQnKQorICAgICAgICB3cml0ZWZpbGUoWydiZWZvcmU6ICcgLi4gJmNwb10sICdYcnBvcmVzdWx0JykKICAgICAgICAgc2V0IGNwbys9TQotICAgICAgICB3cml0ZWZpbGUoWydhZnRlcjogJyAuLiAmY3BvXSwgJ1hyZXN1bHQnLCAnYScpCisgICAgICAgIHdyaXRlZmlsZShbJ2FmdGVyOiAnIC4uICZjcG9dLCAnWHJwb3Jlc3VsdCcsICdhJykKICAgICBFTkQKICAgICB3cml0ZWZpbGUobGluZXMsICdYaG9tZS8udmltcmMnKQogCiAgICAgbGluZXMgPTw8IHRyaW0gRU5ECi0gICAgICAgIGNhbGwgd3JpdGVmaWxlKFsnbGF0ZXI6ICcgLi4gJmNwb10sICdYcmVzdWx0JywgJ2EnKQorICAgICAgICBjYWxsIHdyaXRlZmlsZShbJ2xhdGVyOiAnIC4uICZjcG9dLCAnWHJwb3Jlc3VsdCcsICdhJykKICAgICBFTkQKICAgICB3cml0ZWZpbGUobGluZXMsICdYbGVnYWN5JykKIAogICAgIGxpbmVzID08PCB0cmltIEVORAogICAgICAgICB2aW05c2NyaXB0Ci0gICAgICAgIGNhbGwgd3JpdGVmaWxlKFsndmltOTogJyAuLiAmY3BvXSwgJ1hyZXN1bHQnLCAnYScpCisgICAgICAgIGNhbGwgd3JpdGVmaWxlKFsndmltOTogJyAuLiAmY3BvXSwgJ1hycG9yZXN1bHQnLCAnYScpCiAgICAgICAgIHFhCiAgICAgRU5ECiAgICAgd3JpdGVmaWxlKGxpbmVzLCAnWHZpbTknKQpAQCAtMzU3MCwxMyArMzU3MCwxMyBAQAogICAgICAgICAnYmVmb3JlOiBhQUJjZUZzJywKICAgICAgICAgJ2FmdGVyOiBhQUJjZUZzTScsCiAgICAgICAgICdsYXRlcjogYUFCY2VGc00nLAotICAgICAgICAndmltOTogYUFCY2VGcyddLCByZWFkZmlsZSgnWHJlc3VsdCcpKQorICAgICAgICAndmltOTogYUFCY2VGcyddLCByZWFkZmlsZSgnWHJwb3Jlc3VsdCcpKQogCiAgICAgJEhPTUUgPSBzYXZlX0hPTUUKICAgICBkZWxldGUoJ1hob21lJywgJ3JmJykKICAgICBkZWxldGUoJ1hsZWdhY3knKQogICAgIGRlbGV0ZSgnWHZpbTknKQotICAgIGRlbGV0ZSgnWHJlc3VsdCcpCisgICAgZGVsZXRlKCdYcnBvcmVzdWx0JykKICAgZW5kaWYKIGVuZGRlZgogCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3Zpc3VhbC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X3Zpc3VhbC52aW0KaW5kZXggY2RlNzBiZC4uMzFjZTgyOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF92aXN1YWwudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfdmlzdWFsLnZpbQpAQCAtMTQ3Miw3ICsxNDcyLDcgQEAKIGZ1bmMgVGVzdF92aXN1YWxfYXJlYV9hZGp1c3RlZF93aGVuX2hpZGluZygpCiAgICIgVGhlIFZpc3VhbCBhcmVhIGVuZGVkIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGxpbmUgYWZ0ZXIgOmhpZGUKICAgY2FsbCBzZXRsaW5lKDEsICd4eHgnKQotICB2c3BsaXQgWGZpbGUKKyAgdnNwbGl0IFh2YWFmaWxlCiAgIGNhbGwgc2V0bGluZSgxLCAneHh4eHh4eHgnKQogICBub3JtISAWJG8KICAgaGlkCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3dpbmRvd19jbWQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF93aW5kb3dfY21kLnZpbQppbmRleCBiZWE2MTJmLi40NGZkNjQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3dpbmRvd19jbWQudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Rfd2luZG93X2NtZC52aW0KQEAgLTEwODMsMTIgKzEwODMsMTIgQEAKICAgICBlbmR0cnkKICAgZW5kd2hpbGUKIAotICBjYWxsIHdyaXRlZmlsZShbJ2ZpcnN0JywgJ3NlY29uZCcsICd0aGlyZCddLCAnWGZpbGUxJykKLSAgY2FsbCB3cml0ZWZpbGUoW10sICdYZmlsZTInKQotICBjYWxsIHdyaXRlZmlsZShbXSwgJ1hmaWxlMycpCisgIGNhbGwgd3JpdGVmaWxlKFsnZmlyc3QnLCAnc2Vjb25kJywgJ3RoaXJkJ10sICdYbm9yZmlsZTEnKQorICBjYWxsIHdyaXRlZmlsZShbXSwgJ1hub3JmaWxlMicpCisgIGNhbGwgd3JpdGVmaWxlKFtdLCAnWG5vcmZpbGUzJykKIAogICAiIEFyZ3VtZW50IGxpc3QgcmVsYXRlZCBjb21tYW5kcwotICBhcmdzIFhmaWxlMSBYZmlsZTIgWGZpbGUzCisgIGFyZ3MgWG5vcmZpbGUxIFhub3JmaWxlMiBYbm9yZmlsZTMKICAgbmV4dAogICBmb3IgY21kIGluIFsnc2FyZ3VtZW50IDInLCAnc25leHQnLCAnc3ByZXZpb3VzJywgJ3NOZXh0JywgJ3NyZXdpbmQnLAogCQkJXCAnc2ZpcnN0JywgJ3NsYXN0J10KQEAgLTEwOTksMTMgKzEwOTksMTMgQEAKICAgIiBCdWZmZXIgcmVsYXRlZCBjb21tYW5kcwogICBzZXQgbW9kaWZpZWQKICAgaGlkZSBlbmV3Ci0gIGZvciBjbWQgaW4gWydzYnVmZmVyIFhmaWxlMScsICdzYm5leHQnLCAnc2JwcmV2aW91cycsICdzYk5leHQnLCAnc2JyZXdpbmQnLAorICBmb3IgY21kIGluIFsnc2J1ZmZlciBYbm9yZmlsZTEnLCAnc2JuZXh0JywgJ3NicHJldmlvdXMnLCAnc2JOZXh0JywgJ3NicmV3aW5kJywKIAkJXCAnc2JmaXJzdCcsICdzYmxhc3QnLCAnc2JhbGwnLCAnc2Jtb2RpZmllZCcsICdzdW5oaWRlJ10KICAgICBjYWxsIGFzc2VydF9mYWlscyhkaXIgLi4gY21kLCAnRTM2OicpCiAgIGVuZGZvcgogCiAgICIgV2luZG93IHJlbGF0ZWQgY29tbWFuZHMKLSAgZm9yIGNtZCBpbiBbJ3NwbGl0JywgJ3NwbGl0IFhmaWxlMicsICduZXcnLCAnbmV3IFhmaWxlMycsICdzdmlldyBYZmlsZTEnLAorICBmb3IgY21kIGluIFsnc3BsaXQnLCAnc3BsaXQgWG5vcmZpbGUyJywgJ25ldycsICduZXcgWG5vcmZpbGUzJywgJ3N2aWV3IFhub3JmaWxlMScsCiAJCVwgJ3NmaW5kIHJ1bnRlc3QudmltJ10KICAgICBjYWxsIGFzc2VydF9mYWlscyhkaXIgLi4gY21kLCAnRTM2OicpCiAgIGVuZGZvcgpAQCAtMTEyOCw3ICsxMTI4LDcgQEAKICAgICBjYWxsIGFzc2VydF9mYWlscyhkaXIgLi4gJ2xvcGVuJywgJ0UzNjonKQogCiAgICAgIiBQcmV2aWV3IHdpbmRvdwotICAgIGNhbGwgYXNzZXJ0X2ZhaWxzKGRpciAuLiAncGVkaXQgWGZpbGUyJywgJ0UzNjonKQorICAgIGNhbGwgYXNzZXJ0X2ZhaWxzKGRpciAuLiAncGVkaXQgWG5vcmZpbGUyJywgJ0UzNjonKQogICAgIGNhbGwgc2V0bGluZSgxLCAnYWJjJykKICAgICBjYWxsIGFzc2VydF9mYWlscyhkaXIgLi4gJ3BzZWFyY2ggYWJjJywgJ0UzNjonKQogICBlbmRpZgpAQCAtMTEzNiwxNSArMTEzNiwxNSBAQAogICAiIFdpbmRvdyBjb21tYW5kcyAoQ1RSTC1XIF4gYW5kIENUUkwtVyBmKQogICBpZiBhOmRpcl9hcmcgPT0gJ2gnCiAgICAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NhbGwgZmVlZGtleXMoIlw8Qy1XPl4iLCAieHQiKScsICdFMzY6JykKLSAgICBjYWxsIHNldGxpbmUoMSwgJ1hmaWxlMScpCisgICAgY2FsbCBzZXRsaW5lKDEsICdYbm9yZmlsZTEnKQogICAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIGZlZWRrZXlzKCJnZ1w8Qy1XPmYiLCAieHQiKScsICdFMzY6JykKICAgZW5kaWYKICAgZW5ldyEKIAogICAiIFRhZyBjb21tYW5kcyAoOnN0YWcsIDpzdHNlbGVjdCBhbmQgOnN0anVtcCkKICAgY2FsbCB3cml0ZWZpbGUoWyIhX1RBR19GSUxFX0VOQ09ESU5HXHR1dGYtOFx0Ly8iLAotICAgICAgICBcICJzZWNvbmRcdFhmaWxlMVx0MiIsCi0gICAgICAgIFwgInRoaXJkXHRYZmlsZTFcdDMiLF0sCisgICAgICAgIFwgInNlY29uZFx0WG5vcmZpbGUxXHQyIiwKKyAgICAgICAgXCAidGhpcmRcdFhub3JmaWxlMVx0MyIsXSwKICAgICAgICAgXCAnWHRhZ3MnKQogICBzZXQgdGFncz1YdGFncwogICBjYWxsIGFzc2VydF9mYWlscyhkaXIgLi4gJ3N0YWcgc2Vjb25kJywgJ0UzNjonKQpAQCAtMTE2Niw5ICsxMTY2LDkgQEAKICAgZW5kaWYKIAogICAlYndpcGUhCi0gIGNhbGwgZGVsZXRlKCdYZmlsZTEnKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUyJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMycpCisgIGNhbGwgZGVsZXRlKCdYbm9yZmlsZTEnKQorICBjYWxsIGRlbGV0ZSgnWG5vcmZpbGUyJykKKyAgY2FsbCBkZWxldGUoJ1hub3JmaWxlMycpCiAgIG9ubHkKIGVuZGZ1bmMKIApAQCAtMTM4NywxNiArMTM4NywxNiBAQAogIiB3aW5kb3cgdG8gYW5vdGhlci4KIGZ1bmMgVGVzdF9jbG9zZV9kZXN0X3dpbmRvdygpCiAgIHNwbGl0Ci0gIGVkaXQgWGZpbGUKKyAgZWRpdCBYZHN0ZmlsZQogCiAgICIgVGVzdCBmb3IgQnVmTGVhdmUKICAgYXVncm91cCBUMQogICAgIGF1IQotICAgIGF1IEJ1ZkxlYXZlIFhmaWxlICR3aW5jbWQgYworICAgIGF1IEJ1ZkxlYXZlIFhkc3RmaWxlICR3aW5jbWQgYwogICBhdWdyb3VwIEVORAogICB3aW5jbWQgYgogICBjYWxsIGFzc2VydF9lcXVhbCgxLCB3aW5ucignJCcpKQotICBjYWxsIGFzc2VydF9lcXVhbCgnWGZpbGUnLCBAJSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hkc3RmaWxlJywgQCUpCiAgIGF1Z3JvdXAgVDEKICAgICBhdSEKICAgYXVncm91cCBFTkQKQEAgLTE0MTAsNyArMTQxMCw3IEBACiAgIGF1Z3JvdXAgRU5ECiAgIHdpbmNtZCB0CiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDEsIHdpbm5yKCckJykpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdYZmlsZScsIEAlKQorICBjYWxsIGFzc2VydF9lcXVhbCgnWGRzdGZpbGUnLCBAJSkKICAgYXVncm91cCBUMQogICAgIGF1IQogICBhdWdyb3VwIEVORApAQCAtMTU5NSwxMiArMTU5NSwxMiBAQAogICBjYWxsIGFzc2VydF9mYWlscygnc3BsaXQnLCAnRTM0MjonKQogICBjYWxsIGFzc2VydF9lcXVhbCgxLCB3aW5ucignJCcpKQogCi0gIGVkaXQgWGZpbGUxCi0gIGVkaXQgWGZpbGUyCisgIGVkaXQgWHdhZmZpbGUxCisgIGVkaXQgWHdhZmZpbGUyCiAgIGNhbGwgdGVzdF9hbGxvY19mYWlsKEdldEFsbG9jSWQoJ25ld3dpbl93dmFycycpLCAwLCAwKQotICBjYWxsIGFzc2VydF9mYWlscygnc2IgWGZpbGUxJywgJ0UzNDI6JykKKyAgY2FsbCBhc3NlcnRfZmFpbHMoJ3NiIFh3YWZmaWxlMScsICdFMzQyOicpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDEsIHdpbm5yKCckJykpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdYZmlsZTInLCBAJSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ1h3YWZmaWxlMicsIEAlKQogICAlYnchCiAKICAgIiBGSVhNRTogVGhlIGZvbGxvd2luZyB0ZXN0IGNyYXNoZXMgVmltCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3dyaXRlZmlsZS52aW0gYi9zcmMvdGVzdGRpci90ZXN0X3dyaXRlZmlsZS52aW0KaW5kZXggOTIxMTJmOC4uOTFkYjE4ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF93cml0ZWZpbGUudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3Rfd3JpdGVmaWxlLnZpbQpAQCAtMTgsNyArMTgsNyBAQAogICBjYWxsIGFzc2VydF9lcXVhbCgidmltbWVycyIsIGxbNF0pCiAgIGNhbGwgZGVsZXRlKGYpCiAKLSAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NhbGwgd3JpdGVmaWxlKCJ0ZXh0IiwgIlhmaWxlIiknLCAnRTQ3NTogSW52YWxpZCBhcmd1bWVudDogd3JpdGVmaWxlKCkgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIExpc3Qgb3IgYSBCbG9iJykKKyAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NhbGwgd3JpdGVmaWxlKCJ0ZXh0IiwgIlh3ZmZpbGUiKScsICdFNDc1OiBJbnZhbGlkIGFyZ3VtZW50OiB3cml0ZWZpbGUoKSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgTGlzdCBvciBhIEJsb2InKQogZW5kZnVuYwogCiBmdW5jIFRlc3Rfd3JpdGVmaWxlX2lnbm9yZV9yZWdleHBfZXJyb3IoKQpAQCAtMjcsMTcgKzI3LDE3IEBACiBlbmRmdW5jCiAKIGZ1bmMgVGVzdF93cml0ZWZpbGVfZmFpbHNfZ2VudGx5KCkKLSAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NhbGwgd3JpdGVmaWxlKFsidGVzdCJdLCAiWGZpbGUiLCBbXSknLCAnRTczMDonKQotICBjYWxsIGFzc2VydF9mYWxzZShmaWxlcmVhZGFibGUoIlhmaWxlIikpCi0gIGNhbGwgZGVsZXRlKCJYZmlsZSIpCisgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHdyaXRlZmlsZShbInRlc3QiXSwgIlh3ZmZpbGUiLCBbXSknLCAnRTczMDonKQorICBjYWxsIGFzc2VydF9mYWxzZShmaWxlcmVhZGFibGUoIlh3ZmZpbGUiKSkKKyAgY2FsbCBkZWxldGUoIlh3ZmZpbGUiKQogCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHdyaXRlZmlsZShbInRlc3QiLCBbXSwgW10sIFtdLCAidHNldCJdLCAiWGZpbGUiKScsICdFNzMwOicpCi0gIGNhbGwgYXNzZXJ0X2ZhbHNlKGZpbGVyZWFkYWJsZSgiWGZpbGUiKSkKLSAgY2FsbCBkZWxldGUoIlhmaWxlIikKKyAgY2FsbCBhc3NlcnRfZmFpbHMoJ2NhbGwgd3JpdGVmaWxlKFsidGVzdCIsIFtdLCBbXSwgW10sICJ0c2V0Il0sICJYd2ZmaWxlIiknLCAnRTczMDonKQorICBjYWxsIGFzc2VydF9mYWxzZShmaWxlcmVhZGFibGUoIlh3ZmZpbGUiKSkKKyAgY2FsbCBkZWxldGUoIlh3ZmZpbGUiKQogCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHdyaXRlZmlsZShbXSwgIlhmaWxlIiwgW10pJywgJ0U3MzA6JykKLSAgY2FsbCBhc3NlcnRfZmFsc2UoZmlsZXJlYWRhYmxlKCJYZmlsZSIpKQotICBjYWxsIGRlbGV0ZSgiWGZpbGUiKQorICBjYWxsIGFzc2VydF9mYWlscygnY2FsbCB3cml0ZWZpbGUoW10sICJYd2ZmaWxlIiwgW10pJywgJ0U3MzA6JykKKyAgY2FsbCBhc3NlcnRfZmFsc2UoZmlsZXJlYWRhYmxlKCJYd2ZmaWxlIikpCisgIGNhbGwgZGVsZXRlKCJYd2ZmaWxlIikKIAogICBjYWxsIGFzc2VydF9mYWlscygnY2FsbCB3cml0ZWZpbGUoW10sIFtdKScsICdFNzMwOicpCiBlbmRmdW5jCkBAIC01MiwzNSArNTIsMzUgQEAKICAgc2V0IG5vYmFja3VwIG5vd3JpdGViYWNrdXAgYmFja3VwZGlyPS4gYmFja3Vwc2tpcD0KICAgbmV3CiAgIGxldCBjb250ZW50cyA9IFsibGluZSBvbmUiLCAibGluZSB0d28iXQotICBjYWxsIHdyaXRlZmlsZShjb250ZW50cywgJ1hmaWxlJykKLSAgZWRpdCBYZmlsZQorICBjYWxsIHdyaXRlZmlsZShjb250ZW50cywgJ1h3ZmNmaWxlJykKKyAgZWRpdCBYd2ZjZmlsZQogICBjYWxsIHNldGxpbmUoMSwgWyJmaXJzdCBsaW5lIiwgImNhbm5vdCBjb252ZXJ0IFx1MDEwYiIsICJ0aGlyZCBsaW5lIl0pCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCd3cml0ZSArK2VuYz1jcDkzMicsICdFNTEzOicpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKGNvbnRlbnRzLCByZWFkZmlsZSgnWGZpbGUnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoY29udGVudHMsIHJlYWRmaWxlKCdYd2ZjZmlsZScpKQogCiAgICIgV2l0aCAnYmFja3VwY29weScgc2V0LCBpZiB0aGVyZSBpcyBhIGNvbnZlcnNpb24gZXJyb3IsIHRoZSBiYWNrdXAgZmlsZSBpcwogICAiIHN0aWxsIGNyZWF0ZWQuCiAgIHNldCBiYWNrdXBjb3B5PXllcyB3cml0ZWJhY2t1cCYgYmFja3VwJgotICBjYWxsIGRlbGV0ZSgnWGZpbGUnIC4uICZiYWNrdXBleHQpCisgIGNhbGwgZGVsZXRlKCdYd2ZjZmlsZScgLi4gJmJhY2t1cGV4dCkKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3dyaXRlICsrZW5jPWNwOTMyJywgJ0U1MTM6JykKLSAgY2FsbCBhc3NlcnRfZXF1YWwoY29udGVudHMsIHJlYWRmaWxlKCdYZmlsZScpKQotICBjYWxsIGFzc2VydF9lcXVhbChjb250ZW50cywgcmVhZGZpbGUoJ1hmaWxlJyAuLiAmYmFja3VwZXh0KSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoY29udGVudHMsIHJlYWRmaWxlKCdYd2ZjZmlsZScpKQorICBjYWxsIGFzc2VydF9lcXVhbChjb250ZW50cywgcmVhZGZpbGUoJ1h3ZmNmaWxlJyAuLiAmYmFja3VwZXh0KSkKICAgc2V0IGJhY2t1cGNvcHkmCiAgICVidyEKIAogICAiIENvbnZlcnNpb24gZXJyb3IgZHVyaW5nIHdyaXRlCiAgIG5ldwogICBjYWxsIHNldGxpbmUoMSwgWyJcVTEwMDAwMDAwIl0pCi0gIGxldCBvdXRwdXQgPSBleGVjdXRlKCd3cml0ZSEgKytlbmM9dXRmLTE2IFhmaWxlJykKKyAgbGV0IG91dHB1dCA9IGV4ZWN1dGUoJ3dyaXRlISArK2VuYz11dGYtMTYgWHdmY2ZpbGUnKQogICBjYWxsIGFzc2VydF9tYXRjaCgnQ09OVkVSU0lPTiBFUlJPUicsIG91dHB1dCkKLSAgbGV0IG91dHB1dCA9IGV4ZWN1dGUoJ3dyaXRlISArK2VuYz11Y3MtMiBYZmlsZScpCisgIGxldCBvdXRwdXQgPSBleGVjdXRlKCd3cml0ZSEgKytlbmM9dWNzLTIgWHdmY2ZpbGUnKQogICBjYWxsIGFzc2VydF9tYXRjaCgnQ09OVkVSU0lPTiBFUlJPUicsIG91dHB1dCkKICAgY2FsbCBkZWxldGUoJ1hmaWx6ficpCiAgIGNhbGwgZGVsZXRlKCdYZmlseX4nKQogICAlYnchCiAKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJyAuLiAmYmFja3VwZXh0KQorICBjYWxsIGRlbGV0ZSgnWHdmY2ZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWHdmY2ZpbGUnIC4uICZiYWNrdXBleHQpCiAgIGJ3aXBlIQogICBzZXQgYmFja3VwJiB3cml0ZWJhY2t1cCYgYmFja3VwZGlyJnZpbSBiYWNrdXBza2lwJnZpbQogZW5kZnVuYwpAQCAtOTQsMTYgKzk0LDE2IEBACiAgICIgYnV0IHRoZW4gdGhlIGJhY2t1cCBmaWxlIG11c3QgcmVtYWluCiAgIHNldCBub2JhY2t1cCB3cml0ZWJhY2t1cCBiYWNrdXBkaXI9LiBiYWNrdXBza2lwPQogICBsZXQgY29udGVudHMgPSBbImxpbmUgb25lIiwgImxpbmUgdHdvIl0KLSAgY2FsbCB3cml0ZWZpbGUoY29udGVudHMsICdYZmlsZV9jb252ZXJzaW9uX2VycicpCi0gIGVkaXQgWGZpbGVfY29udmVyc2lvbl9lcnIKKyAgY2FsbCB3cml0ZWZpbGUoY29udGVudHMsICdYd2YyZmlsZV9jb252ZXJzaW9uX2VycicpCisgIGVkaXQgWHdmMmZpbGVfY29udmVyc2lvbl9lcnIKICAgY2FsbCBzZXRsaW5lKDEsIFsiZmlyc3QgbGluZSIsICJjYW5ub3QgY29udmVydCBcdTAxMGIiLCAidGhpcmQgbGluZSJdKQogICBzZXQgZmlsZWVuY29kaW5nPWxhdGluMQogICBsZXQgb3V0cHV0ID0gZXhlY3V0ZSgnd3JpdGUnKQogICBjYWxsIGFzc2VydF9tYXRjaCgnQ09OVkVSU0lPTiBFUlJPUicsIG91dHB1dCkKLSAgY2FsbCBhc3NlcnRfZXF1YWwoY29udGVudHMsIHJlYWRmaWxlKCdYZmlsZV9jb252ZXJzaW9uX2Vycn4nKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoY29udGVudHMsIHJlYWRmaWxlKCdYd2YyZmlsZV9jb252ZXJzaW9uX2Vycn4nKSkKIAotICBjYWxsIGRlbGV0ZSgnWGZpbGVfY29udmVyc2lvbl9lcnInKQotICBjYWxsIGRlbGV0ZSgnWGZpbGVfY29udmVyc2lvbl9lcnJ+JykKKyAgY2FsbCBkZWxldGUoJ1h3ZjJmaWxlX2NvbnZlcnNpb25fZXJyJykKKyAgY2FsbCBkZWxldGUoJ1h3ZjJmaWxlX2NvbnZlcnNpb25fZXJyficpCiAgIGJ3aXBlIQogICBzZXQgYmFja3VwJiB3cml0ZWJhY2t1cCYgYmFja3VwZGlyJnZpbSBiYWNrdXBza2lwJnZpbQogZW5kZnVuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAgIGF1Z3JvdXAgdGVzdGdyb3VwCiAgICAgYXV0b2NtZCBCdWZXcml0ZVByZSAqIHNwbGl0CiAgIGF1Z3JvdXAgRU5ECi0gIGUhIFhmaWxlCisgIGUhIFh3cXNmaWxlCiAgIGNhbGwgc2V0bGluZSgxLCAnbm90aGluZycpCiAgIHdxCiAKQEAgLTEzMCwxMyArMTMwLDEzIEBACiAgICAgdW5sZXQgZzpmbGFnCiAgIGVuZGlmCiAgIGF1ISB0ZXN0Z3JvdXAKLSAgYndpcGUgWGZpbGUKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgYndpcGUgWHdxc2ZpbGUKKyAgY2FsbCBkZWxldGUoJ1h3cXNmaWxlJykKIGVuZGZ1bmMKIAogZnVuYyBUZXN0X25vd3JpdGVfcXVpdF9zcGxpdCgpCiAgICIgUHJldmVudCBleGl0aW5nIGJ5IG9wZW5pbmcgYSBoZWxwIHdpbmRvdy4KLSAgZSEgWGZpbGUKKyAgZSEgWG5xc2ZpbGUKICAgaGVscAogICB3aW5jbWQgdwogICBleGUgd2lubnIoKSAuICdxJwpAQCAtMTQ5LDcgKzE0OSw3IEBACiAgICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgZzpmbGFnKQogICAgIHVubGV0IGc6ZmxhZwogICBlbmRpZgotICBid2lwZSBYZmlsZQorICBid2lwZSBYbnFzZmlsZQogZW5kZnVuYwogCiBmdW5jIFRlc3Rfd3JpdGVmaWxlX3N5bmNfYXJnKCkKQEAgLTIxMywyMyArMjEzLDIzIEBACiAgIENoZWNrVW5peAogICBuZXcKICAgY2FsbCBzZXRsaW5lKDEsIFsnTDEnLCAnTDInLCAnTDMnLCAnTDQnXSkKLSAgMiwzdyAhY2F0ID4gWGZpbGUKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWydMMicsICdMMyddLCByZWFkZmlsZSgnWGZpbGUnKSkKKyAgMiwzdyAhY2F0ID4gWHB0ZmlsZQorICBjYWxsIGFzc2VydF9lcXVhbChbJ0wyJywgJ0wzJ10sIHJlYWRmaWxlKCdYcHRmaWxlJykpCiAgIGNsb3NlIQotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWHB0ZmlsZScpCiBlbmRmdW5jCiAKICIgVGVzdCBmb3IgOnNhdmVhcwogZnVuYyBUZXN0X3NhdmVhcygpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdzYXZlYXMnLCAnRTQ3MTonKQotICBjYWxsIHdyaXRlZmlsZShbJ0wxJ10sICdYZmlsZScpCi0gIG5ldyBYZmlsZQorICBjYWxsIHdyaXRlZmlsZShbJ0wxJ10sICdYc2FmaWxlJykKKyAgbmV3IFhzYWZpbGUKICAgbmV3CiAgIGNhbGwgc2V0bGluZSgxLCBbJ0wxJ10pCi0gIGNhbGwgYXNzZXJ0X2ZhaWxzKCdzYXZlYXMgWGZpbGUnLCAnRTEzOTonKQorICBjYWxsIGFzc2VydF9mYWlscygnc2F2ZWFzIFhzYWZpbGUnLCAnRTEzOTonKQogICBjbG9zZSEKICAgZW5ldyB8IG9ubHkKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hzYWZpbGUnKQogCiAgICIgOnNhdmVhcyBzaG91bGQgZGV0ZWN0IGFuZCBzZXQgdGhlIGZpbGUgdHlwZS4KICAgc3ludGF4IG9uCkBAIC0yNDIsOCArMjQyLDggQEAKIAogZnVuYyBUZXN0X3dyaXRlX2Vycm9ycygpCiAgICIgVGVzdCBmb3Igd3JpdGluZyBwYXJ0aWFsIGJ1ZmZlcgotICBjYWxsIHdyaXRlZmlsZShbJ0wxJywgJ0wyJywgJ0wzJ10sICdYZmlsZScpCi0gIG5ldyBYZmlsZQorICBjYWxsIHdyaXRlZmlsZShbJ0wxJywgJ0wyJywgJ0wzJ10sICdYd2VmaWxlJykKKyAgbmV3IFh3ZWZpbGUKICAgY2FsbCBhc3NlcnRfZmFpbHMoJzEsMndyaXRlJywgJ0UxNDA6JykKICAgY2xvc2UhCiAKQEAgLTI2MywyNCArMjYzLDI0IEBACiAgIGVuZXchCiAKICAgIiBUZXN0IGZvciB3cml0aW5nIGEgJ3JlYWRvbmx5JyBmaWxlCi0gIG5ldyBYZmlsZQorICBuZXcgWHdlZmlsZQogICBzZXQgcmVhZG9ubHkKICAgY2FsbCBhc3NlcnRfZmFpbHMoJ3dyaXRlJywgJ0U0NTonKQogICBjbG9zZQogCiAgICIgVGVzdCBmb3Igd3JpdGluZyB0byBhIHJlYWQtb25seSBmaWxlCi0gIG5ldyBYZmlsZQotICBjYWxsIHNldGZwZXJtKCdYZmlsZScsICdyLS1yLS1yLS0nKQorICBuZXcgWHdlZmlsZQorICBjYWxsIHNldGZwZXJtKCdYd2VmaWxlJywgJ3ItLXItLXItLScpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCd3cml0ZScsICdFNTA1OicpCi0gIGNhbGwgc2V0ZnBlcm0oJ1hmaWxlJywgJ3J3LXJ3LXJ3LScpCisgIGNhbGwgc2V0ZnBlcm0oJ1h3ZWZpbGUnLCAncnctcnctcnctJykKICAgY2xvc2UKIAotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWHdlZmlsZScpCiAKLSAgY2FsbCB3cml0ZWZpbGUodGVzdF9udWxsX2xpc3QoKSwgJ1hmaWxlJykKLSAgY2FsbCBhc3NlcnRfZmFsc2UoZmlsZXJlYWRhYmxlKCdYZmlsZScpKQotICBjYWxsIHdyaXRlZmlsZSh0ZXN0X251bGxfYmxvYigpLCAnWGZpbGUnKQotICBjYWxsIGFzc2VydF9mYWxzZShmaWxlcmVhZGFibGUoJ1hmaWxlJykpCisgIGNhbGwgd3JpdGVmaWxlKHRlc3RfbnVsbF9saXN0KCksICdYd2VmaWxlJykKKyAgY2FsbCBhc3NlcnRfZmFsc2UoZmlsZXJlYWRhYmxlKCdYd2VmaWxlJykpCisgIGNhbGwgd3JpdGVmaWxlKHRlc3RfbnVsbF9ibG9iKCksICdYd2VmaWxlJykKKyAgY2FsbCBhc3NlcnRfZmFsc2UoZmlsZXJlYWRhYmxlKCdYd2VmaWxlJykpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHdyaXRlZmlsZShbXSwgIiIpJywgJ0U0ODI6JykKIAogICAiIHZlcnkgbG9uZyBmaWxlIG5hbWUKQEAgLTMwNSw5ICszMDUsOSBAQAogICBDaGVja1J1blZpbUluVGVybWluYWwKIAogICAiIEZpcnN0IHJlYWQgdGhlIGZpbGUgaW50byBhIGJ1ZmZlcgotICBjYWxsIHdyaXRlZmlsZShbIkxpbmUxIiwgIkxpbmUyIl0sICdYZmlsZScpCi0gIGxldCBvbGRfZnRpbWUgPSBnZXRmdGltZSgnWGZpbGUnKQotICBsZXQgYnVmID0gUnVuVmltSW5UZXJtaW5hbCgnWGZpbGUnLCAje3Jvd3MgOiAxMH0pCisgIGNhbGwgd3JpdGVmaWxlKFsiTGluZTEiLCAiTGluZTIiXSwgJ1h3Zm1maWxlJykKKyAgbGV0IG9sZF9mdGltZSA9IGdldGZ0aW1lKCdYd2ZtZmlsZScpCisgIGxldCBidWYgPSBSdW5WaW1JblRlcm1pbmFsKCdYd2ZtZmlsZScsICN7cm93cyA6IDEwfSkKICAgY2FsbCBUZXJtV2FpdChidWYpCiAgIGNhbGwgdGVybV9zZW5ka2V5cyhidWYsICI6c2V0IG5vc3dhcGZpbGVcPENSPiIpCiAgIGNhbGwgVGVybVdhaXQoYnVmKQpAQCAtMzE2LDEyICszMTYsMTIgQEAKICAgIiBkaWZmZXJlbnQuIE5vdGUgdGhhdCBvbiBMaW51eC9Vbml4LCB0aGUgZmlsZSBpcyBjb25zaWRlcmVkIG1vZGlmaWVkCiAgICIgb3V0c2lkZSwgb25seSBpZiB0aGUgZGlmZmVyZW5jZSBpcyAyIHNlY29uZHMgb3IgbW9yZQogICBzbGVlcCAxCi0gIGNhbGwgd3JpdGVmaWxlKFsiTGluZTMiLCAiTGluZTQiXSwgJ1hmaWxlJykKLSAgbGV0IG5ld19mdGltZSA9IGdldGZ0aW1lKCdYZmlsZScpCisgIGNhbGwgd3JpdGVmaWxlKFsiTGluZTMiLCAiTGluZTQiXSwgJ1h3Zm1maWxlJykKKyAgbGV0IG5ld19mdGltZSA9IGdldGZ0aW1lKCdYd2ZtZmlsZScpCiAgIHdoaWxlIG5ld19mdGltZSAtIG9sZF9mdGltZSA8IDIKICAgICBzbGVlcCAxMDBtCi0gICAgY2FsbCB3cml0ZWZpbGUoWyJMaW5lMyIsICJMaW5lNCJdLCAnWGZpbGUnKQotICAgIGxldCBuZXdfZnRpbWUgPSBnZXRmdGltZSgnWGZpbGUnKQorICAgIGNhbGwgd3JpdGVmaWxlKFsiTGluZTMiLCAiTGluZTQiXSwgJ1h3Zm1maWxlJykKKyAgICBsZXQgbmV3X2Z0aW1lID0gZ2V0ZnRpbWUoJ1h3Zm1maWxlJykKICAgZW5kd2hpbGUKIAogICAiIFRyeSB0byBvdmVyd3JpdGUgdGhlIGZpbGUgYW5kIGNoZWNrIGZvciB0aGUgcHJvbXB0CkBAIC0zMzIsMjQgKzMzMiwyNCBAQAogICAgICAgICBcIHRlcm1fZ2V0bGluZShidWYsIDEwKSkKICAgY2FsbCB0ZXJtX3NlbmRrZXlzKGJ1ZiwgIm5cPENSPiIpCiAgIGNhbGwgVGVybVdhaXQoYnVmKQotICBjYWxsIGFzc2VydF9lcXVhbChuZXdfZnRpbWUsIGdldGZ0aW1lKCdYZmlsZScpKQorICBjYWxsIGFzc2VydF9lcXVhbChuZXdfZnRpbWUsIGdldGZ0aW1lKCdYd2ZtZmlsZScpKQogICBjYWxsIHRlcm1fc2VuZGtleXMoYnVmLCAiOndcPENSPiIpCiAgIGNhbGwgVGVybVdhaXQoYnVmKQogICBjYWxsIHRlcm1fc2VuZGtleXMoYnVmLCAieVw8Q1I+IikKICAgY2FsbCBUZXJtV2FpdChidWYpCi0gIGNhbGwgV2FpdEZvckFzc2VydCh7LT4gYXNzZXJ0X2VxdWFsKCdMaW5lMicsIHJlYWRmaWxlKCdYZmlsZScpWzFdKX0pCisgIGNhbGwgV2FpdEZvckFzc2VydCh7LT4gYXNzZXJ0X2VxdWFsKCdMaW5lMicsIHJlYWRmaWxlKCdYd2ZtZmlsZScpWzFdKX0pCiAKICAgIiBjbGVhbiB1cAogICBjYWxsIFN0b3BWaW1JblRlcm1pbmFsKGJ1ZikKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1h3Zm1maWxlJykKIGVuZGZ1bmMKIAogIiBUZXN0IGZvciBhbiBhdXRvY21kIHVubG9hZGluZyBhIGJ1ZmZlciBkdXJpbmcgYSB3cml0ZSBjb21tYW5kCiBmdW5jIFRlc3Rfd3JpdGVfYXV0b2NtZF91bmxvYWRidWZfbG9ja21hcmsoKQogICBhdWdyb3VwIFdyaXRlVGVzdAotICAgIGF1dG9jbWQgQnVmV3JpdGVQcmUgWGZpbGUgZW5ldyB8IHdyaXRlCisgICAgYXV0b2NtZCBCdWZXcml0ZVByZSBYd2F1ZmlsZSBlbmV3IHwgd3JpdGUKICAgYXVncm91cCBFTkQKLSAgZSBYZmlsZQorICBlIFh3YXVmaWxlCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCdsb2NrbWFya3Mgd3JpdGUnLCBbJ0UzMjonLCAnRTIwMzonXSkKICAgYXVncm91cCBXcml0ZVRlc3QKICAgICBhdSEKQEAgLTM1OSw3ICszNTksNyBAQAogCiAiIFRlc3QgZm9yIHdyaXRpbmcgYSBidWZmZXIgd2l0aCAnYWN3cml0ZScgYnV0IHdpdGhvdXQgYXV0b2NtZHMKIGZ1bmMgVGVzdF93cml0ZV9hY3dyaXRlX2Vycm9yKCkKLSAgbmV3IFhmaWxlCisgIG5ldyBYd2FlZmlsZQogICBjYWxsIHNldGxpbmUoMSwgWydsaW5lMScsICdsaW5lMicsICdsaW5lMyddKQogICBzZXQgYnVmdHlwZT1hY3dyaXRlCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCd3cml0ZScsICdFNjc2OicpCkBAIC0zNzAsMzUgKzM3MCwzNSBAQAogCiAiIFRlc3QgZm9yIGFkZGluZyBhbmQgcmVtb3ZpbmcgbGluZXMgZnJvbSBhbiBhdXRvY21kIHdoZW4gd3JpdGluZyBhIGJ1ZmZlcgogZnVuYyBUZXN0X3dyaXRlX2F1dG9jbWRfYWRkX3JlbW92ZV9saW5lcygpCi0gIG5ldyBYZmlsZQorICBuZXcgWHdhYWZpbGUKICAgY2FsbCBzZXRsaW5lKDEsIFsnYWFhJywgJ2JiYicsICdjY2MnLCAnZGRkJ10pCiAKICAgIiBBdXRvY21kIGRlbGV0aW5nIGxpbmVzIGZyb20gdGhlIGZpbGUgd2hlbiB3cml0aW5nIGEgcGFydGlhbCBmaWxlCiAgIGF1Z3JvdXAgV3JpdGVUZXN0MgogICAgIGF1IQotICAgIGF1dG9jbWQgRmlsZVdyaXRlUHJlIFhmaWxlIDEsMmQKKyAgICBhdXRvY21kIEZpbGVXcml0ZVByZSBYd2FhZmlsZSAxLDJkCiAgIGF1Z3JvdXAgRU5ECiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCcyLDN3IScsICdFMjA0OicpCiAKICAgIiBBdXRvY21kIGFkZGluZyBsaW5lcyB0byBhIGZpbGUgd2hlbiB3cml0aW5nIGEgcGFydGlhbCBmaWxlCiAgIGF1Z3JvdXAgV3JpdGVUZXN0MgogICAgIGF1IQotICAgIGF1dG9jbWQgRmlsZVdyaXRlUHJlIFhmaWxlIGNhbGwgYXBwZW5kKDAsIFsneHh4JywgJ3l5eSddKQorICAgIGF1dG9jbWQgRmlsZVdyaXRlUHJlIFh3YWFmaWxlIGNhbGwgYXBwZW5kKDAsIFsneHh4JywgJ3l5eSddKQogICBhdWdyb3VwIEVORAogICAlZAogICBjYWxsIHNldGxpbmUoMSwgWydhYWEnLCAnYmJiJywgJ2NjYycsICdkZGQnXSkKICAgMSwydyEKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWyd4eHgnLCAneXl5JywgJ2FhYScsICdiYmInXSwgcmVhZGZpbGUoJ1hmaWxlJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsneHh4JywgJ3l5eScsICdhYWEnLCAnYmJiJ10sIHJlYWRmaWxlKCdYd2FhZmlsZScpKQogCiAgICIgQXV0b2NtZCBkZWxldGluZyBsaW5lcyBmcm9tIHRoZSBmaWxlIHdoZW4gd3JpdGluZyB0aGUgd2hvbGUgZmlsZQogICBhdWdyb3VwIFdyaXRlVGVzdDIKICAgICBhdSEKLSAgICBhdXRvY21kIEJ1ZldyaXRlUHJlIFhmaWxlIDEsMmQKKyAgICBhdXRvY21kIEJ1ZldyaXRlUHJlIFh3YWFmaWxlIDEsMmQKICAgYXVncm91cCBFTkQKICAgJWQKICAgY2FsbCBzZXRsaW5lKDEsIFsnYWFhJywgJ2JiYicsICdjY2MnLCAnZGRkJ10pCiAgIHcKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWydjY2MnLCAnZGRkJ10sIHJlYWRmaWxlKCdYZmlsZScpKQorICBjYWxsIGFzc2VydF9lcXVhbChbJ2NjYycsICdkZGQnXSwgcmVhZGZpbGUoJ1h3YWFmaWxlJykpCiAKICAgYXVncm91cCBXcml0ZVRlc3QyCiAgICAgYXUhCkBAIC00MDYsMTQgKzQwNiwxNCBAQAogICBhdWdyb3VwISBXcml0ZVRlc3QyCiAKICAgY2xvc2UhCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCisgIGNhbGwgZGVsZXRlKCdYd2FhZmlsZScpCiBlbmRmdW5jCiAKICIgVGVzdCBmb3Igd3JpdGluZyB0byBhIHJlYWRvbmx5IGZpbGUKIGZ1bmMgVGVzdF93cml0ZV9yZWFkb25seSgpCi0gIGNhbGwgd3JpdGVmaWxlKFtdLCAnWGZpbGUnKQotICBjYWxsIHNldGZwZXJtKCdYZmlsZScsICJyLS0tLS0tLS0iKQotICBlZGl0IFhmaWxlCisgIGNhbGwgd3JpdGVmaWxlKFtdLCAnWHdyb2ZpbGUnKQorICBjYWxsIHNldGZwZXJtKCdYd3JvZmlsZScsICJyLS0tLS0tLS0iKQorICBlZGl0IFh3cm9maWxlCiAgIHNldCBub3JlYWRvbmx5IGJhY2t1cHNraXA9CiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCd3cml0ZScsICdFNTA1OicpCiAgIGxldCBzYXZlX2NwbyA9ICZjcG8KQEAgLTQyMiwxMSArNDIyLDExIEBACiAgIGxldCAmY3BvID0gc2F2ZV9jcG8KICAgY2FsbCBzZXRsaW5lKDEsIFsnbGluZTEnXSkKICAgd3JpdGUhCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnbGluZTEnXSwgcmVhZGZpbGUoJ1hmaWxlJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnbGluZTEnXSwgcmVhZGZpbGUoJ1h3cm9maWxlJykpCiAKICAgIiBBdXRvLXNhdmluZyBhIHJlYWRvbmx5IGZpbGUgc2hvdWxkIGZhaWwgd2l0aCAnYXV0b3dyaXRlYWxsJwogICAlYnchCi0gIGUgWGZpbGUKKyAgZSBYd3JvZmlsZQogICBzZXQgbm9yZWFkb25seSBhdXRvd3JpdGVhbGwKICAgY2FsbCBzZXRsaW5lKDEsIFsnYWFhYSddKQogICBjYWxsIGFzc2VydF9mYWlscygnbicsICdFNTA1OicpCkBAIC00MzYsMzkgKzQzNiwzOSBAQAogICBzZXQgYXV0b3dyaXRlYWxsJgogCiAgIHNldCBiYWNrdXBza2lwJgotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWHdyb2ZpbGUnKQogICAlYnchCiBlbmRmdW5jCiAKICIgVGVzdCBmb3IgJ3BhdGNobW9kZScKIGZ1bmMgVGVzdF9wYXRjaG1vZGUoKQotICBjYWxsIHdyaXRlZmlsZShbJ29uZSddLCAnWGZpbGUnKQorICBjYWxsIHdyaXRlZmlsZShbJ29uZSddLCAnWHBhZmlsZScpCiAgIHNldCBwYXRjaG1vZGU9Lm9yaWcgbm9iYWNrdXAgYmFja3Vwc2tpcD0gd3JpdGViYWNrdXAKLSAgbmV3IFhmaWxlCisgIG5ldyBYcGFmaWxlCiAgIGNhbGwgc2V0bGluZSgxLCAndHdvJykKICAgIiBmaXJzdCB3cml0ZSBzaG91bGQgY3JlYXRlIHRoZSAub3JpZyBmaWxlCiAgIHdyaXRlCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnb25lJ10sIHJlYWRmaWxlKCdYZmlsZS5vcmlnJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnb25lJ10sIHJlYWRmaWxlKCdYcGFmaWxlLm9yaWcnKSkKICAgY2FsbCBzZXRsaW5lKDEsICd0aHJlZScpCiAgICIgc3Vic2VxdWVudCB3cml0ZXMgc2hvdWxkIG5vdCBjcmVhdGUvbW9kaWZ5IHRoZSAub3JpZyBmaWxlCiAgIHdyaXRlCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnb25lJ10sIHJlYWRmaWxlKCdYZmlsZS5vcmlnJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnb25lJ10sIHJlYWRmaWxlKCdYcGFmaWxlLm9yaWcnKSkKIAogICAiIHVzZSAncGF0Y2htb2RlJyB3aXRoICdub2JhY2t1cCcgYW5kICdub3dyaXRlYmFja3VwJyB0byBjcmVhdGUgYW4gZW1wdHkKICAgIiBvcmlnaW5hbCBmaWxlCi0gIGNhbGwgZGVsZXRlKCdYZmlsZScpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZS5vcmlnJykKKyAgY2FsbCBkZWxldGUoJ1hwYWZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWHBhZmlsZS5vcmlnJykKICAgJWJ3IQogICBzZXQgcGF0Y2htb2RlPS5vcmlnIG5vYmFja3VwIG5vd3JpdGViYWNrdXAKLSAgZWRpdCBYZmlsZQorICBlZGl0IFhwYWZpbGUKICAgY2FsbCBzZXRsaW5lKDEsIFsneHh4J10pCiAgIHdyaXRlCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsneHh4J10sIHJlYWRmaWxlKCdYZmlsZScpKQotICBjYWxsIGFzc2VydF9lcXVhbChbXSwgcmVhZGZpbGUoJ1hmaWxlLm9yaWcnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWyd4eHgnXSwgcmVhZGZpbGUoJ1hwYWZpbGUnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoW10sIHJlYWRmaWxlKCdYcGFmaWxlLm9yaWcnKSkKIAogICBzZXQgcGF0Y2htb2RlJiBiYWNrdXAmIGJhY2t1cHNraXAmIHdyaXRlYmFja3VwJgotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUub3JpZycpCisgIGNhbGwgZGVsZXRlKCdYcGFmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hwYWZpbGUub3JpZycpCiBlbmRmdW5jCiAKICIgVGVzdCBmb3Igd3JpdGluZyB0byBhIGZpbGUgaW4gYSByZWFkb25seSBkaXJlY3RvcnkKQEAgLTUwMCw3ICs1MDAsNyBAQAogZnVuYyBUZXN0X3dyaXRlX2ludmFsaWRfZW5jb2RpbmcoKQogICBuZXcKICAgY2FsbCBzZXRsaW5lKDEsICdhYmMnKQotICBjYWxsIGFzc2VydF9mYWlscygnd3JpdGUgKytlbmM9YXhieWMgWGZpbGUnLCAnRTIxMzonKQorICBjYWxsIGFzc2VydF9mYWlscygnd3JpdGUgKytlbmM9YXhieWMgWGllZmlsZScsICdFMjEzOicpCiAgIGNsb3NlIQogZW5kZnVuYwogCkBAIC01MTUsMTAxICs1MTUsMTAxIEBACiAgICAgMiBjcDEyNTEgdGV4dDogxOv/IFZpbSB2ZXJzaW9uIDYuMi4gIM/u8evl5O3l5SDo5+zl7eXt6OU6IDE5NzAgSmFuIDAxCiAgICAgMyBjcDg2NiB0ZXh0OiCEq+8gVmltIHZlcnNpb24gNi4yLiAgj67hq6WkraWlIKinrKWtpa2opTogMTk3MCBKYW4gMDEKICAgRU5ECi0gIGNhbGwgd3JpdGVmaWxlKHRleHQsICdYZmlsZScpCi0gIGVkaXQgWGZpbGUKKyAgY2FsbCB3cml0ZWZpbGUodGV4dCwgJ1h3ZmVmaWxlJykKKyAgZWRpdCBYd2ZlZmlsZQogCiAgICIgd3JpdGUgdGVzdHM6CiAgICIgY29tYmluZSB0aHJlZSB2YWx1ZXMgZm9yICdlbmNvZGluZycgd2l0aCB0aHJlZSB2YWx1ZXMgZm9yICdmaWxlZW5jb2RpbmcnCiAgICIgYWxzbyB3cml0ZSBmaWxlcyBmb3IgcmVhZCB0ZXN0cwogICBjYWxsIGN1cnNvcigxLCAxKQogICBzZXQgZW5jb2Rpbmc9dXRmLTgKLSAgLnchICsrZW5jPXV0Zi04IFh0ZXN0Ci0gIC53ICsrZW5jPWNwMTI1MSA+PiBYdGVzdAotICAudyArK2VuYz1jcDg2NiA+PiBYdGVzdAorICAudyEgKytlbmM9dXRmLTggWHdmZXRlc3QKKyAgLncgKytlbmM9Y3AxMjUxID4+IFh3ZmV0ZXN0CisgIC53ICsrZW5jPWNwODY2ID4+IFh3ZmV0ZXN0CiAgIC53ISArK2VuYz11dGYtOCBYdXRmOAogICBsZXQgZXhwZWN0ZWQgPTw8IHRyaW0gRU5ECiAgICAgMSB1dGYtOCB0ZXh0OiDQlNC70Y8gVmltIHZlcnNpb24gNi4yLiAg0J/QvtGB0LvQtdC00L3QtdC1INC40LfQvNC10L3QtdC90LjQtTogMTk3MCBKYW4gMDEKICAgICAxIHV0Zi04IHRleHQ6IMTr/yBWaW0gdmVyc2lvbiA2LjIuICDP7vHr5eTt5eUg6Ofs5e3l7ejlOiAxOTcwIEphbiAwMQogICAgIDEgdXRmLTggdGV4dDoghKvvIFZpbSB2ZXJzaW9uIDYuMi4gII+u4aulpK2lpSCop6ylraWtqKU6IDE5NzAgSmFuIDAxCiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgcmVhZGZpbGUoJ1h0ZXN0JykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCByZWFkZmlsZSgnWHdmZXRlc3QnKSkKIAogICBjYWxsIGN1cnNvcigyLCAxKQogICBzZXQgZW5jb2Rpbmc9Y3AxMjUxCi0gIC53ISArK2VuYz11dGYtOCBYdGVzdAotICAudyArK2VuYz1jcDEyNTEgPj4gWHRlc3QKLSAgLncgKytlbmM9Y3A4NjYgPj4gWHRlc3QKKyAgLnchICsrZW5jPXV0Zi04IFh3ZmV0ZXN0CisgIC53ICsrZW5jPWNwMTI1MSA+PiBYd2ZldGVzdAorICAudyArK2VuYz1jcDg2NiA+PiBYd2ZldGVzdAogICAudyEgKytlbmM9Y3AxMjUxIFhjcDEyNTEKICAgbGV0IGV4cGVjdGVkID08PCB0cmltIEVORAogICAgIDIgY3AxMjUxIHRleHQ6INCU0LvRjyBWaW0gdmVyc2lvbiA2LjIuICDQn9C+0YHQu9C10LTQvdC10LUg0LjQt9C80LXQvdC10L3QuNC1OiAxOTcwIEphbiAwMQogICAgIDIgY3AxMjUxIHRleHQ6IMTr/yBWaW0gdmVyc2lvbiA2LjIuICDP7vHr5eTt5eUg6Ofs5e3l7ejlOiAxOTcwIEphbiAwMQogICAgIDIgY3AxMjUxIHRleHQ6IISr7yBWaW0gdmVyc2lvbiA2LjIuICCPruGrpaStpaUgqKespa2lrailOiAxOTcwIEphbiAwMQogICBFTkQKLSAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIHJlYWRmaWxlKCdYdGVzdCcpKQorICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgcmVhZGZpbGUoJ1h3ZmV0ZXN0JykpCiAKICAgY2FsbCBjdXJzb3IoMywgMSkKICAgc2V0IGVuY29kaW5nPWNwODY2Ci0gIC53ISArK2VuYz11dGYtOCBYdGVzdAotICAudyArK2VuYz1jcDEyNTEgPj4gWHRlc3QKLSAgLncgKytlbmM9Y3A4NjYgPj4gWHRlc3QKKyAgLnchICsrZW5jPXV0Zi04IFh3ZmV0ZXN0CisgIC53ICsrZW5jPWNwMTI1MSA+PiBYd2ZldGVzdAorICAudyArK2VuYz1jcDg2NiA+PiBYd2ZldGVzdAogICAudyEgKytlbmM9Y3A4NjYgWGNwODY2CiAgIGxldCBleHBlY3RlZCA9PDwgdHJpbSBFTkQKICAgICAzIGNwODY2IHRleHQ6INCU0LvRjyBWaW0gdmVyc2lvbiA2LjIuICDQn9C+0YHQu9C10LTQvdC10LUg0LjQt9C80LXQvdC10L3QuNC1OiAxOTcwIEphbiAwMQogICAgIDMgY3A4NjYgdGV4dDogxOv/IFZpbSB2ZXJzaW9uIDYuMi4gIM/u8evl5O3l5SDo5+zl7eXt6OU6IDE5NzAgSmFuIDAxCiAgICAgMyBjcDg2NiB0ZXh0OiCEq+8gVmltIHZlcnNpb24gNi4yLiAgj67hq6WkraWlIKinrKWtpa2opTogMTk3MCBKYW4gMDEKICAgRU5ECi0gIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCByZWFkZmlsZSgnWHRlc3QnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIHJlYWRmaWxlKCdYd2ZldGVzdCcpKQogCiAgICIgcmVhZCB0aHJlZSAnZmlsZWVuY29kaW5nJ3Mgd2l0aCB1dGYtOCAnZW5jb2RpbmcnCiAgIHNldCBlbmNvZGluZz11dGYtOCBmZW5jcz11dGYtOCxjcDEyNTEKICAgZSBYdXRmOAotICAudyEgKytlbmM9dXRmLTggWHRlc3QKKyAgLnchICsrZW5jPXV0Zi04IFh3ZmV0ZXN0CiAgIGUgWGNwMTI1MQotICAudyArK2VuYz11dGYtOCA+PiBYdGVzdAorICAudyArK2VuYz11dGYtOCA+PiBYd2ZldGVzdAogICBzZXQgZmVuY3M9dXRmLTgsY3A4NjYKICAgZSBYY3A4NjYKLSAgLncgKytlbmM9dXRmLTggPj4gWHRlc3QKKyAgLncgKytlbmM9dXRmLTggPj4gWHdmZXRlc3QKICAgbGV0IGV4cGVjdGVkID08PCB0cmltIEVORAogICAgIDEgdXRmLTggdGV4dDog0JTQu9GPIFZpbSB2ZXJzaW9uIDYuMi4gINCf0L7RgdC70LXQtNC90LXQtSDQuNC30LzQtdC90LXQvdC40LU6IDE5NzAgSmFuIDAxCiAgICAgMiBjcDEyNTEgdGV4dDog0JTQu9GPIFZpbSB2ZXJzaW9uIDYuMi4gINCf0L7RgdC70LXQtNC90LXQtSDQuNC30LzQtdC90LXQvdC40LU6IDE5NzAgSmFuIDAxCiAgICAgMyBjcDg2NiB0ZXh0OiDQlNC70Y8gVmltIHZlcnNpb24gNi4yLiAg0J/QvtGB0LvQtdC00L3QtdC1INC40LfQvNC10L3QtdC90LjQtTogMTk3MCBKYW4gMDEKICAgRU5ECi0gIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCByZWFkZmlsZSgnWHRlc3QnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIHJlYWRmaWxlKCdYd2ZldGVzdCcpKQogCiAgICIgcmVhZCB0aHJlZSAnZmlsZWVuY29kaW5nJ3Mgd2l0aCBjcDEyNTEgJ2VuY29kaW5nJwogICBzZXQgZW5jb2Rpbmc9dXRmLTggZmVuY3M9dXRmLTgsY3AxMjUxCiAgIGUgWHV0ZjgKLSAgLnchICsrZW5jPWNwMTI1MSBYdGVzdAorICAudyEgKytlbmM9Y3AxMjUxIFh3ZmV0ZXN0CiAgIGUgWGNwMTI1MQotICAudyArK2VuYz1jcDEyNTEgPj4gWHRlc3QKKyAgLncgKytlbmM9Y3AxMjUxID4+IFh3ZmV0ZXN0CiAgIHNldCBmZW5jcz11dGYtOCxjcDg2NgogICBlIFhjcDg2NgotICAudyArK2VuYz1jcDEyNTEgPj4gWHRlc3QKKyAgLncgKytlbmM9Y3AxMjUxID4+IFh3ZmV0ZXN0CiAgIGxldCBleHBlY3RlZCA9PDwgdHJpbSBFTkQKICAgICAxIHV0Zi04IHRleHQ6IMTr/yBWaW0gdmVyc2lvbiA2LjIuICDP7vHr5eTt5eUg6Ofs5e3l7ejlOiAxOTcwIEphbiAwMQogICAgIDIgY3AxMjUxIHRleHQ6IMTr/yBWaW0gdmVyc2lvbiA2LjIuICDP7vHr5eTt5eUg6Ofs5e3l7ejlOiAxOTcwIEphbiAwMQogICAgIDMgY3A4NjYgdGV4dDogxOv/IFZpbSB2ZXJzaW9uIDYuMi4gIM/u8evl5O3l5SDo5+zl7eXt6OU6IDE5NzAgSmFuIDAxCiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgcmVhZGZpbGUoJ1h0ZXN0JykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCByZWFkZmlsZSgnWHdmZXRlc3QnKSkKIAogICAiIHJlYWQgdGhyZWUgJ2ZpbGVlbmNvZGluZydzIHdpdGggY3A4NjYgJ2VuY29kaW5nJwogICBzZXQgZW5jb2Rpbmc9Y3A4NjYgZmVuY3M9dXRmLTgsY3AxMjUxCiAgIGUgWHV0ZjgKLSAgLnchICsrZW5jPWNwODY2IFh0ZXN0CisgIC53ISArK2VuYz1jcDg2NiBYd2ZldGVzdAogICBlIFhjcDEyNTEKLSAgLncgKytlbmM9Y3A4NjYgPj4gWHRlc3QKKyAgLncgKytlbmM9Y3A4NjYgPj4gWHdmZXRlc3QKICAgc2V0IGZlbmNzPXV0Zi04LGNwODY2CiAgIGUgWGNwODY2Ci0gIC53ICsrZW5jPWNwODY2ID4+IFh0ZXN0CisgIC53ICsrZW5jPWNwODY2ID4+IFh3ZmV0ZXN0CiAgIGxldCBleHBlY3RlZCA9PDwgdHJpbSBFTkQKICAgICAxIHV0Zi04IHRleHQ6IISr7yBWaW0gdmVyc2lvbiA2LjIuICCPruGrpaStpaUgqKespa2lrailOiAxOTcwIEphbiAwMQogICAgIDIgY3AxMjUxIHRleHQ6IISr7yBWaW0gdmVyc2lvbiA2LjIuICCPruGrpaStpaUgqKespa2lrailOiAxOTcwIEphbiAwMQogICAgIDMgY3A4NjYgdGV4dDoghKvvIFZpbSB2ZXJzaW9uIDYuMi4gII+u4aulpK2lpSCop6ylraWtqKU6IDE5NzAgSmFuIDAxCiAgIEVORAotICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgcmVhZGZpbGUoJ1h0ZXN0JykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKGV4cGVjdGVkLCByZWFkZmlsZSgnWHdmZXRlc3QnKSkKIAotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQotICBjYWxsIGRlbGV0ZSgnWHRlc3QnKQorICBjYWxsIGRlbGV0ZSgnWHdmZWZpbGUnKQorICBjYWxsIGRlbGV0ZSgnWHdmZXRlc3QnKQogICBjYWxsIGRlbGV0ZSgnWHV0ZjgnKQogICBjYWxsIGRlbGV0ZSgnWGNwMTI1MScpCiAgIGNhbGwgZGVsZXRlKCdYY3A4NjYnKQpAQCAtNjM1LDExNCArNjM1LDExNCBAQAogICBzZXQgY3BvcHRpb25zKz1TCiAKICAgIiBDaGVjayB0aGF0IGVkaXRpbmcgYSBsYXRpbjEgZmlsZSBkb2Vzbid0IHNlZSBhIEJPTQotICBjYWxsIHdyaXRlZmlsZShbIlx4RkVceEZFbGF0aW4tMSJdLCAnWHRlc3QxJykKLSAgZWRpdCBYdGVzdDEKKyAgY2FsbCB3cml0ZWZpbGUoWyJceEZFXHhGRWxhdGluLTEiXSwgJ1hyd3Rlc3QxJykKKyAgZWRpdCBYcnd0ZXN0MQogICBjYWxsIGFzc2VydF9lcXVhbCgnbGF0aW4xJywgJmZpbGVlbmNvZGluZykKICAgY2FsbCBhc3NlcnRfZXF1YWwoMCwgJmJvbWIpCiAgIHNldCBmZW5jPWxhdGluMQotICB3cml0ZSBYZmlsZTIKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWyJceEZFXHhGRWxhdGluLTEiLCAnJ10sIHJlYWRmaWxlKCdYZmlsZTInLCAnYicpKQorICB3cml0ZSBYcndmaWxlMgorICBjYWxsIGFzc2VydF9lcXVhbChbIlx4RkVceEZFbGF0aW4tMSIsICcnXSwgcmVhZGZpbGUoJ1hyd2ZpbGUyJywgJ2InKSkKICAgc2V0IGJvbWIgZmVuYz1sYXRpbjEKLSAgd3JpdGUgWHRlc3QzCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsiXHhGRVx4RkVsYXRpbi0xIiwgJyddLCByZWFkZmlsZSgnWHRlc3QzJywgJ2InKSkKKyAgd3JpdGUgWHJ3dGVzdDMKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWyJceEZFXHhGRWxhdGluLTEiLCAnJ10sIHJlYWRmaWxlKCdYcnd0ZXN0MycsICdiJykpCiAgIHNldCBib21iJgogCiAgICIgQ2hlY2sgdXRmLTggQk9NCiAgICVidyEKLSAgY2FsbCB3cml0ZWZpbGUoW3V0ZjhfYm9tIC4uICJ1dGYtOCJdLCAnWHRlc3QxJykKLSAgZWRpdCEgWHRlc3QxCisgIGNhbGwgd3JpdGVmaWxlKFt1dGY4X2JvbSAuLiAidXRmLTgiXSwgJ1hyd3Rlc3QxJykKKyAgZWRpdCEgWHJ3dGVzdDEKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ3V0Zi04JywgJmZpbGVlbmNvZGluZykKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgJmJvbWIpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCd1dGYtOCcsIGdldGxpbmUoMSkpCiAgIHNldCBmZW5jPWxhdGluMQotICB3cml0ZSEgWGZpbGUyCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsndXRmLTgnLCAnJ10sIHJlYWRmaWxlKCdYZmlsZTInLCAnYicpKQorICB3cml0ZSEgWHJ3ZmlsZTIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWyd1dGYtOCcsICcnXSwgcmVhZGZpbGUoJ1hyd2ZpbGUyJywgJ2InKSkKICAgc2V0IGZlbmM9dXRmLTgKLSAgdyEgWHRlc3QzCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFt1dGY4X2JvbSAuLiAidXRmLTgiLCAnJ10sIHJlYWRmaWxlKCdYdGVzdDMnLCAnYicpKQorICB3ISBYcnd0ZXN0MworICBjYWxsIGFzc2VydF9lcXVhbChbdXRmOF9ib20gLi4gInV0Zi04IiwgJyddLCByZWFkZmlsZSgnWHJ3dGVzdDMnLCAnYicpKQogCiAgICIgQ2hlY2sgdXRmLTggd2l0aCBhbiBlcnJvciAod2lsbCBmYWxsIGJhY2sgdG8gbGF0aW4tMSkKICAgJWJ3IQotICBjYWxsIHdyaXRlZmlsZShbdXRmOF9ib20gLi4gInV0Zi04XHg4MGVyciJdLCAnWHRlc3QxJykKLSAgZWRpdCEgWHRlc3QxCisgIGNhbGwgd3JpdGVmaWxlKFt1dGY4X2JvbSAuLiAidXRmLThceDgwZXJyIl0sICdYcnd0ZXN0MScpCisgIGVkaXQhIFhyd3Rlc3QxCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdsYXRpbjEnLCAmZmlsZWVuY29kaW5nKQogICBjYWxsIGFzc2VydF9lcXVhbCgwLCAmYm9tYikKICAgY2FsbCBhc3NlcnRfZXF1YWwoIlx4QzNceEFGXHhDMlx4QkJceEMyXHhCRnV0Zi04XHhDMlx4ODBlcnIiLCBnZXRsaW5lKDEpKQogICBzZXQgZmVuYz1sYXRpbjEKLSAgd3JpdGUhIFhmaWxlMgotICBjYWxsIGFzc2VydF9lcXVhbChbdXRmOF9ib20gLi4gInV0Zi04XHg4MGVyciIsICcnXSwgcmVhZGZpbGUoJ1hmaWxlMicsICdiJykpCisgIHdyaXRlISBYcndmaWxlMgorICBjYWxsIGFzc2VydF9lcXVhbChbdXRmOF9ib20gLi4gInV0Zi04XHg4MGVyciIsICcnXSwgcmVhZGZpbGUoJ1hyd2ZpbGUyJywgJ2InKSkKICAgc2V0IGZlbmM9dXRmLTgKLSAgdyEgWHRlc3QzCisgIHchIFhyd3Rlc3QzCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKFsiXHhDM1x4QUZceEMyXHhCQlx4QzJceEJGdXRmLThceEMyXHg4MGVyciIsICcnXSwKLSAgICAgICAgXCByZWFkZmlsZSgnWHRlc3QzJywgJ2InKSkKKyAgICAgICAgXCByZWFkZmlsZSgnWHJ3dGVzdDMnLCAnYicpKQogCiAgICIgQ2hlY2sgdWNzLTIgQk9NCiAgICVidyEKLSAgY2FsbCB3cml0ZWZpbGUoW3V0ZjE2YmVfYm9tIC4uICJcbnVcbmNcbnNcbi1cbjJcbiJdLCAnWHRlc3QxJykKLSAgZWRpdCEgWHRlc3QxCisgIGNhbGwgd3JpdGVmaWxlKFt1dGYxNmJlX2JvbSAuLiAiXG51XG5jXG5zXG4tXG4yXG4iXSwgJ1hyd3Rlc3QxJykKKyAgZWRpdCEgWHJ3dGVzdDEKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ3V0Zi0xNicsICZmaWxlZW5jb2RpbmcpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKDEsICZib21iKQogICBjYWxsIGFzc2VydF9lcXVhbCgndWNzLTInLCBnZXRsaW5lKDEpKQogICBzZXQgZmVuYz1sYXRpbjEKLSAgd3JpdGUhIFhmaWxlMgotICBjYWxsIGFzc2VydF9lcXVhbChbInVjcy0yIiwgJyddLCByZWFkZmlsZSgnWGZpbGUyJywgJ2InKSkKKyAgd3JpdGUhIFhyd2ZpbGUyCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsidWNzLTIiLCAnJ10sIHJlYWRmaWxlKCdYcndmaWxlMicsICdiJykpCiAgIHNldCBmZW5jPXVjcy0yCi0gIHchIFh0ZXN0MworICB3ISBYcnd0ZXN0MwogICBjYWxsIGFzc2VydF9lcXVhbChbdXRmMTZiZV9ib20gLi4gIlxudVxuY1xuc1xuLVxuMlxuIiwgJyddLAotICAgICAgICBcIHJlYWRmaWxlKCdYdGVzdDMnLCAnYicpKQorICAgICAgICBcIHJlYWRmaWxlKCdYcnd0ZXN0MycsICdiJykpCiAKICAgIiBDaGVjayB1Y3MtMmxlIEJPTQogICAlYnchCi0gIGNhbGwgd3JpdGVmaWxlKFt1dGYxNmxlX2JvbSAuLiAidVxuY1xuc1xuLVxuMlxubFxuZVxuIl0sICdYdGVzdDEnKQorICBjYWxsIHdyaXRlZmlsZShbdXRmMTZsZV9ib20gLi4gInVcbmNcbnNcbi1cbjJcbmxcbmVcbiJdLCAnWHJ3dGVzdDEnKQogICAiIE5lZWQgdG8gYWRkIGEgTlVMIGJ5dGUgYWZ0ZXIgdGhlIE5MIGJ5dGUKLSAgY2FsbCB3cml0ZWZpbGUoMHowMCwgJ1h0ZXN0MScsICdhJykKLSAgZWRpdCEgWHRlc3QxCisgIGNhbGwgd3JpdGVmaWxlKDB6MDAsICdYcnd0ZXN0MScsICdhJykKKyAgZWRpdCEgWHJ3dGVzdDEKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ3V0Zi0xNmxlJywgJmZpbGVlbmNvZGluZykKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgJmJvbWIpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCd1Y3MtMmxlJywgZ2V0bGluZSgxKSkKICAgc2V0IGZlbmM9bGF0aW4xCi0gIHdyaXRlISBYZmlsZTIKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWyJ1Y3MtMmxlIiwgJyddLCByZWFkZmlsZSgnWGZpbGUyJywgJ2InKSkKKyAgd3JpdGUhIFhyd2ZpbGUyCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsidWNzLTJsZSIsICcnXSwgcmVhZGZpbGUoJ1hyd2ZpbGUyJywgJ2InKSkKICAgc2V0IGZlbmM9dWNzLTJsZQotICB3ISBYdGVzdDMKKyAgdyEgWHJ3dGVzdDMKICAgY2FsbCBhc3NlcnRfZXF1YWwoW3V0ZjE2bGVfYm9tIC4uICJ1XG5jXG5zXG4tXG4yXG5sXG5lXG4iLCAiXG4iXSwKLSAgICAgICAgXCByZWFkZmlsZSgnWHRlc3QzJywgJ2InKSkKKyAgICAgICAgXCByZWFkZmlsZSgnWHJ3dGVzdDMnLCAnYicpKQogCiAgICIgQ2hlY2sgdWNzLTQgQk9NCiAgICVidyEKLSAgY2FsbCB3cml0ZWZpbGUoW3V0ZjMyYmVfYm9tIC4uICJcblxuXG51XG5cblxuY1xuXG5cbnNcblxuXG4tXG5cblxuNFxuXG5cbiJdLCAnWHRlc3QxJykKLSAgZWRpdCEgWHRlc3QxCisgIGNhbGwgd3JpdGVmaWxlKFt1dGYzMmJlX2JvbSAuLiAiXG5cblxudVxuXG5cbmNcblxuXG5zXG5cblxuLVxuXG5cbjRcblxuXG4iXSwgJ1hyd3Rlc3QxJykKKyAgZWRpdCEgWHJ3dGVzdDEKICAgY2FsbCBhc3NlcnRfZXF1YWwoJ3Vjcy00JywgJmZpbGVlbmNvZGluZykKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgJmJvbWIpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCd1Y3MtNCcsIGdldGxpbmUoMSkpCiAgIHNldCBmZW5jPWxhdGluMQotICB3cml0ZSEgWGZpbGUyCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsidWNzLTQiLCAnJ10sIHJlYWRmaWxlKCdYZmlsZTInLCAnYicpKQorICB3cml0ZSEgWHJ3ZmlsZTIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWyJ1Y3MtNCIsICcnXSwgcmVhZGZpbGUoJ1hyd2ZpbGUyJywgJ2InKSkKICAgc2V0IGZlbmM9dWNzLTQKLSAgdyEgWHRlc3QzCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFt1dGYzMmJlX2JvbSAuLiAiXG5cblxudVxuXG5cbmNcblxuXG5zXG5cblxuLVxuXG5cbjRcblxuXG4iLCAnJ10sIHJlYWRmaWxlKCdYdGVzdDMnLCAnYicpKQorICB3ISBYcnd0ZXN0MworICBjYWxsIGFzc2VydF9lcXVhbChbdXRmMzJiZV9ib20gLi4gIlxuXG5cbnVcblxuXG5jXG5cblxuc1xuXG5cbi1cblxuXG40XG5cblxuIiwgJyddLCByZWFkZmlsZSgnWHJ3dGVzdDMnLCAnYicpKQogCiAgICIgQ2hlY2sgdWNzLTRsZSBCT00KICAgJWJ3IQotICBjYWxsIHdyaXRlZmlsZShbdXRmMzJsZV9ib20gLi4gInVcblxuXG5jXG5cblxuc1xuXG5cbi1cblxuXG40XG5cblxubFxuXG5cbmVcblxuXG4iXSwgJ1h0ZXN0MScpCisgIGNhbGwgd3JpdGVmaWxlKFt1dGYzMmxlX2JvbSAuLiAidVxuXG5cbmNcblxuXG5zXG5cblxuLVxuXG5cbjRcblxuXG5sXG5cblxuZVxuXG5cbiJdLCAnWHJ3dGVzdDEnKQogICAiIE5lZWQgdG8gYWRkIHRocmVlIE5VTCBieXRlcyBhZnRlciB0aGUgTkwgYnl0ZQotICBjYWxsIHdyaXRlZmlsZSgwejAwMDAwMCwgJ1h0ZXN0MScsICdhJykKLSAgZWRpdCEgWHRlc3QxCisgIGNhbGwgd3JpdGVmaWxlKDB6MDAwMDAwLCAnWHJ3dGVzdDEnLCAnYScpCisgIGVkaXQhIFhyd3Rlc3QxCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCd1Y3MtNGxlJywgJmZpbGVlbmNvZGluZykKICAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgJmJvbWIpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCd1Y3MtNGxlJywgZ2V0bGluZSgxKSkKICAgc2V0IGZlbmM9bGF0aW4xCi0gIHdyaXRlISBYZmlsZTIKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWyJ1Y3MtNGxlIiwgJyddLCByZWFkZmlsZSgnWGZpbGUyJywgJ2InKSkKKyAgd3JpdGUhIFhyd2ZpbGUyCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsidWNzLTRsZSIsICcnXSwgcmVhZGZpbGUoJ1hyd2ZpbGUyJywgJ2InKSkKICAgc2V0IGZlbmM9dWNzLTRsZQotICB3ISBYdGVzdDMKLSAgY2FsbCBhc3NlcnRfZXF1YWwoW3V0ZjMybGVfYm9tIC4uICJ1XG5cblxuY1xuXG5cbnNcblxuXG4tXG5cblxuNFxuXG5cbmxcblxuXG5lXG5cblxuIiwgIlxuXG5cbiJdLCByZWFkZmlsZSgnWHRlc3QzJywgJ2InKSkKKyAgdyEgWHJ3dGVzdDMKKyAgY2FsbCBhc3NlcnRfZXF1YWwoW3V0ZjMybGVfYm9tIC4uICJ1XG5cblxuY1xuXG5cbnNcblxuXG4tXG5cblxuNFxuXG5cbmxcblxuXG5lXG5cblxuIiwgIlxuXG5cbiJdLCByZWFkZmlsZSgnWHJ3dGVzdDMnLCAnYicpKQogCiAgIHNldCBjcG9wdGlvbnMtPVMKICAgbGV0ICZmaWxlZW5jb2RpbmcgPSBzYXZlX2ZpbGVlbmNvZGluZwotICBjYWxsIGRlbGV0ZSgnWHRlc3QxJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMicpCi0gIGNhbGwgZGVsZXRlKCdYdGVzdDMnKQorICBjYWxsIGRlbGV0ZSgnWHJ3dGVzdDEnKQorICBjYWxsIGRlbGV0ZSgnWHJ3ZmlsZTInKQorICBjYWxsIGRlbGV0ZSgnWHJ3dGVzdDMnKQogICAlYnchCiBlbmRmdW5jCiAKQEAgLTc3Myw4MyArNzczLDgzIEBACiAgICIgV2l0aCB0aGUgZGVmYXVsdCAnYmFja3VwY29weScgc2V0dGluZywgc2F2aW5nIGEgc3ltYm9saWMgbGluayBmaWxlCiAgICIgc2hvdWxkIG5vdCBicmVhayB0aGUgbGluay4KICAgc2V0IGJhY2t1cGNvcHkmCi0gIGNhbGwgd3JpdGVmaWxlKFsnMTExMSddLCAnWGZpbGUxJykKLSAgc2lsZW50ICFsbiAtcyBYZmlsZTEgWGZpbGUyCi0gIG5ldyBYZmlsZTIKKyAgY2FsbCB3cml0ZWZpbGUoWycxMTExJ10sICdYYmNmaWxlMScpCisgIHNpbGVudCAhbG4gLXMgWGJjZmlsZTEgWGJjZmlsZTIKKyAgbmV3IFhiY2ZpbGUyCiAgIGNhbGwgc2V0bGluZSgxLCBbJzIyMjInXSkKICAgd3JpdGUKICAgY2xvc2UKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWycyMjIyJ10sIHJlYWRmaWxlKCdYZmlsZTEnKSkKLSAgY2FsbCBhc3NlcnRfZXF1YWwoJ1hmaWxlMScsIHJlc29sdmUoJ1hmaWxlMicpKQotICBjYWxsIGFzc2VydF9lcXVhbCgnbGluaycsIGdldGZ0eXBlKCdYZmlsZTInKSkKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMScpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZTInKQorICBjYWxsIGFzc2VydF9lcXVhbChbJzIyMjInXSwgcmVhZGZpbGUoJ1hiY2ZpbGUxJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdYYmNmaWxlMScsIHJlc29sdmUoJ1hiY2ZpbGUyJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdsaW5rJywgZ2V0ZnR5cGUoJ1hiY2ZpbGUyJykpCisgIGNhbGwgZGVsZXRlKCdYYmNmaWxlMScpCisgIGNhbGwgZGVsZXRlKCdYYmNmaWxlMicpCiAKICAgIiBXaXRoIHRoZSAnYmFja3VwY29weScgc2V0IHRvICdicmVha3N5bWxpbmsnLCBzYXZpbmcgYSBzeW1ib2xpYyBsaW5rIGZpbGUKICAgIiBzaG91bGQgYnJlYWsgdGhlIGxpbmsuCiAgIHNldCBiYWNrdXBjb3B5PXllcyxicmVha3N5bWxpbmsKLSAgY2FsbCB3cml0ZWZpbGUoWycxMTExJ10sICdYZmlsZTEnKQotICBzaWxlbnQgIWxuIC1zIFhmaWxlMSBYZmlsZTIKLSAgbmV3IFhmaWxlMgorICBjYWxsIHdyaXRlZmlsZShbJzExMTEnXSwgJ1hiY2ZpbGUxJykKKyAgc2lsZW50ICFsbiAtcyBYYmNmaWxlMSBYYmNmaWxlMgorICBuZXcgWGJjZmlsZTIKICAgY2FsbCBzZXRsaW5lKDEsIFsnMjIyMiddKQogICB3cml0ZQogICBjbG9zZQotICBjYWxsIGFzc2VydF9lcXVhbChbJzExMTEnXSwgcmVhZGZpbGUoJ1hmaWxlMScpKQotICBjYWxsIGFzc2VydF9lcXVhbChbJzIyMjInXSwgcmVhZGZpbGUoJ1hmaWxlMicpKQotICBjYWxsIGFzc2VydF9lcXVhbCgnWGZpbGUyJywgcmVzb2x2ZSgnWGZpbGUyJykpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdmaWxlJywgZ2V0ZnR5cGUoJ1hmaWxlMicpKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUxJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMicpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnMTExMSddLCByZWFkZmlsZSgnWGJjZmlsZTEnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWycyMjIyJ10sIHJlYWRmaWxlKCdYYmNmaWxlMicpKQorICBjYWxsIGFzc2VydF9lcXVhbCgnWGJjZmlsZTInLCByZXNvbHZlKCdYYmNmaWxlMicpKQorICBjYWxsIGFzc2VydF9lcXVhbCgnZmlsZScsIGdldGZ0eXBlKCdYYmNmaWxlMicpKQorICBjYWxsIGRlbGV0ZSgnWGJjZmlsZTEnKQorICBjYWxsIGRlbGV0ZSgnWGJjZmlsZTInKQogICBzZXQgYmFja3VwY29weSYKIAogICAiIFdpdGggdGhlIGRlZmF1bHQgJ2JhY2t1cGNvcHknIHNldHRpbmcsIHNhdmluZyBhIGhhcmQgbGluayBmaWxlCiAgICIgc2hvdWxkIG5vdCBicmVhayB0aGUgbGluay4KICAgc2V0IGJhY2t1cGNvcHkmCi0gIGNhbGwgd3JpdGVmaWxlKFsnMTExMSddLCAnWGZpbGUxJykKLSAgc2lsZW50ICFsbiBYZmlsZTEgWGZpbGUyCi0gIG5ldyBYZmlsZTIKKyAgY2FsbCB3cml0ZWZpbGUoWycxMTExJ10sICdYYmNmaWxlMScpCisgIHNpbGVudCAhbG4gWGJjZmlsZTEgWGJjZmlsZTIKKyAgbmV3IFhiY2ZpbGUyCiAgIGNhbGwgc2V0bGluZSgxLCBbJzIyMjInXSkKICAgd3JpdGUKICAgY2xvc2UKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWycyMjIyJ10sIHJlYWRmaWxlKCdYZmlsZTEnKSkKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMScpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZTInKQorICBjYWxsIGFzc2VydF9lcXVhbChbJzIyMjInXSwgcmVhZGZpbGUoJ1hiY2ZpbGUxJykpCisgIGNhbGwgZGVsZXRlKCdYYmNmaWxlMScpCisgIGNhbGwgZGVsZXRlKCdYYmNmaWxlMicpCiAKICAgIiBXaXRoIHRoZSAnYmFja3VwY29weScgc2V0IHRvICdicmVha3N5bWxpbmsnLCBzYXZpbmcgYSBoYXJkIGxpbmsgZmlsZQogICAiIHNob3VsZCBicmVhayB0aGUgbGluay4KICAgc2V0IGJhY2t1cGNvcHk9eWVzLGJyZWFraGFyZGxpbmsKLSAgY2FsbCB3cml0ZWZpbGUoWycxMTExJ10sICdYZmlsZTEnKQotICBzaWxlbnQgIWxuIFhmaWxlMSBYZmlsZTIKLSAgbmV3IFhmaWxlMgorICBjYWxsIHdyaXRlZmlsZShbJzExMTEnXSwgJ1hiY2ZpbGUxJykKKyAgc2lsZW50ICFsbiBYYmNmaWxlMSBYYmNmaWxlMgorICBuZXcgWGJjZmlsZTIKICAgY2FsbCBzZXRsaW5lKDEsIFsnMjIyMiddKQogICB3cml0ZQotICBjYWxsIGFzc2VydF9lcXVhbChbJzExMTEnXSwgcmVhZGZpbGUoJ1hmaWxlMScpKQotICBjYWxsIGFzc2VydF9lcXVhbChbJzIyMjInXSwgcmVhZGZpbGUoJ1hmaWxlMicpKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUxJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMicpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnMTExMSddLCByZWFkZmlsZSgnWGJjZmlsZTEnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoWycyMjIyJ10sIHJlYWRmaWxlKCdYYmNmaWxlMicpKQorICBjYWxsIGRlbGV0ZSgnWGJjZmlsZTEnKQorICBjYWxsIGRlbGV0ZSgnWGJjZmlsZTInKQogCiAgICIgSWYgYSBiYWNrdXAgZmlsZSBpcyBhbHJlYWR5IHByZXNlbnQsIHRoZW4gYSBzbGlnaHRseSBtb2RpZmllZCBmaWxlbmFtZQogICAiIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBiYWNrdXAgZmlsZS4gVHJ5IHdpdGggJ2JhY2t1cGNvcHknIHNldCB0byAneWVzJyBhbmQKICAgIiAnbm8nLgogICAlYncKLSAgY2FsbCB3cml0ZWZpbGUoWydhYWFhJ10sICdYZmlsZScpCi0gIGNhbGwgd3JpdGVmaWxlKFsnYmJiYiddLCAnWGZpbGUuYmFrJykKKyAgY2FsbCB3cml0ZWZpbGUoWydhYWFhJ10sICdYYmNmaWxlJykKKyAgY2FsbCB3cml0ZWZpbGUoWydiYmJiJ10sICdYYmNmaWxlLmJhaycpCiAgIHNldCBiYWNrdXBjb3B5PXllcyBiYWNrdXBleHQ9LmJhawotICBuZXcgWGZpbGUKKyAgbmV3IFhiY2ZpbGUKICAgY2FsbCBzZXRsaW5lKDEsIFsnY2NjYyddKQogICB3cml0ZQogICBjbG9zZQotICBjYWxsIGFzc2VydF9lcXVhbChbJ2NjY2MnXSwgcmVhZGZpbGUoJ1hmaWxlJykpCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnYmJiYiddLCByZWFkZmlsZSgnWGZpbGUuYmFrJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnY2NjYyddLCByZWFkZmlsZSgnWGJjZmlsZScpKQorICBjYWxsIGFzc2VydF9lcXVhbChbJ2JiYmInXSwgcmVhZGZpbGUoJ1hiY2ZpbGUuYmFrJykpCiAgIHNldCBiYWNrdXBjb3B5PW5vIGJhY2t1cGV4dD0uYmFrCi0gIG5ldyBYZmlsZQorICBuZXcgWGJjZmlsZQogICBjYWxsIHNldGxpbmUoMSwgWydkZGRkJ10pCiAgIHdyaXRlCiAgIGNsb3NlCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKFsnZGRkZCddLCByZWFkZmlsZSgnWGZpbGUnKSkKLSAgY2FsbCBhc3NlcnRfZXF1YWwoWydiYmJiJ10sIHJlYWRmaWxlKCdYZmlsZS5iYWsnKSkKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKLSAgY2FsbCBkZWxldGUoJ1hmaWxlLmJhaycpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKFsnZGRkZCddLCByZWFkZmlsZSgnWGJjZmlsZScpKQorICBjYWxsIGFzc2VydF9lcXVhbChbJ2JiYmInXSwgcmVhZGZpbGUoJ1hiY2ZpbGUuYmFrJykpCisgIGNhbGwgZGVsZXRlKCdYYmNmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1hiY2ZpbGUuYmFrJykKIAogICAiIFdyaXRlIHRvIGEgZGV2aWNlIGZpbGUgKGluIFVuaXgtbGlrZSBzeXN0ZW1zKSB3aGljaCBjYW5ub3QgYmUgYmFja2VkIHVwLgogICBpZiBoYXMoJ3VuaXgnKQpAQCAtODgwLDEwICs4ODAsMTAgQEAKIGZ1bmMgVGVzdF93cml0ZV91dGYxNigpCiAgIG5ldwogICBjYWxsIHNldGxpbmUoMSwgWyJcVTAwMDEwMDAxIl0pCi0gIHdyaXRlICsrZW5jPXV0Zi0xNiBYZmlsZQorICB3cml0ZSArK2VuYz11dGYtMTYgWHcxNmZpbGUKICAgYnchCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKDB6RDgwMERDMDEsIHJlYWRmaWxlKCdYZmlsZScsICdCJylbMDozXSkKLSAgY2FsbCBkZWxldGUoJ1hmaWxlJykKKyAgY2FsbCBhc3NlcnRfZXF1YWwoMHpEODAwREMwMSwgcmVhZGZpbGUoJ1h3MTZmaWxlJywgJ0InKVswOjNdKQorICBjYWxsIGRlbGV0ZSgnWHcxNmZpbGUnKQogZW5kZnVuYwogCiAiIFRlc3QgZm9yIHRyeWluZyB0byBzYXZlIGEgYmFja3VwIGZpbGUgd2hlbiB0aGUgYmFja3VwIGZpbGUgaXMgYSBzeW1ib2xpYwpAQCAtODkzLDI0ICs4OTMsMjQgQEAKICAgY2FsbCBta2RpcignWGJhY2t1cCcpCiAgIGxldCBzYXZlX2JhY2t1cGRpciA9ICZiYWNrdXBkaXIKICAgc2V0IGJhY2t1cGRpcj0uLC4vWGJhY2t1cAotICBjYWxsIHdyaXRlZmlsZShbJzExMTEnXSwgJ1hmaWxlJykKLSAgc2lsZW50ICFsbiAtcyBYZmlsZSBYZmlsZS5iYWsKKyAgY2FsbCB3cml0ZWZpbGUoWycxMTExJ10sICdYd2JzZmlsZScpCisgIHNpbGVudCAhbG4gLXMgWHdic2ZpbGUgWHdic2ZpbGUuYmFrCiAKLSAgbmV3IFhmaWxlCisgIG5ldyBYd2JzZmlsZQogICBzZXQgYmFja3VwIGJhY2t1cGNvcHk9eWVzIGJhY2t1cGV4dD0uYmFrCiAgIHdyaXRlCi0gIGNhbGwgYXNzZXJ0X2VxdWFsKCdsaW5rJywgZ2V0ZnR5cGUoJ1hmaWxlLmJhaycpKQotICBjYWxsIGFzc2VydF9lcXVhbCgnWGZpbGUnLCByZXNvbHZlKCdYZmlsZS5iYWsnKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ2xpbmsnLCBnZXRmdHlwZSgnWHdic2ZpbGUuYmFrJykpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdYd2JzZmlsZScsIHJlc29sdmUoJ1h3YnNmaWxlLmJhaycpKQogICAiIGJhY2t1cCBmaWxlIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSAnYmFja3VwJyBkaXJlY3RvcnkKICAgaWYgIWhhcygnYnNkJykKICAgICAiIFRoaXMgY2hlY2sgZmFpbHMgb24gRnJlZUJTRAotICAgIGNhbGwgYXNzZXJ0X3RydWUoZmlsZXJlYWRhYmxlKCcuL1hiYWNrdXAvWGZpbGUuYmFrJykpCisgICAgY2FsbCBhc3NlcnRfdHJ1ZShmaWxlcmVhZGFibGUoJy4vWGJhY2t1cC9Yd2JzZmlsZS5iYWsnKSkKICAgZW5kaWYKICAgc2V0IGJhY2t1cCYgYmFja3VwY29weSYgYmFja3VwZXh0JgogICAlYncKIAotICBjYWxsIGRlbGV0ZSgnWGZpbGUnKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUuYmFrJykKKyAgY2FsbCBkZWxldGUoJ1h3YnNmaWxlJykKKyAgY2FsbCBkZWxldGUoJ1h3YnNmaWxlLmJhaycpCiAgIGNhbGwgZGVsZXRlKCdYYmFja3VwJywgJ3JmJykKICAgbGV0ICZiYWNrdXBkaXIgPSBzYXZlX2JhY2t1cGRpcgogZW5kZnVuYwpAQCAtOTE4LDE5ICs5MTgsMTkgQEAKICIgVGVzdCBmb3IgJzp3cml0ZSArK2JpbicgYW5kICc6d3JpdGUgKytub2JpbicKIGZ1bmMgVGVzdF93cml0ZV9iaW5hcnlfZmlsZSgpCiAgICIgY3JlYXRlIGEgZmlsZSB3aXRob3V0IGFuIGVvbC9lb2YgY2hhcmFjdGVyCi0gIGNhbGwgd3JpdGVmaWxlKDB6NjE2MTYxLCAnWGZpbGUxJywgJ2InKQotICBuZXcgWGZpbGUxCi0gIHdyaXRlICsrYmluIFhmaWxlMgotICB3cml0ZSArK25vYmluIFhmaWxlMwotICBjYWxsIGFzc2VydF9lcXVhbCgwejYxNjE2MSwgcmVhZGJsb2IoJ1hmaWxlMicpKQorICBjYWxsIHdyaXRlZmlsZSgwejYxNjE2MSwgJ1h3YmZpbGUxJywgJ2InKQorICBuZXcgWHdiZmlsZTEKKyAgd3JpdGUgKytiaW4gWHdiZmlsZTIKKyAgd3JpdGUgKytub2JpbiBYd2JmaWxlMworICBjYWxsIGFzc2VydF9lcXVhbCgwejYxNjE2MSwgcmVhZGJsb2IoJ1h3YmZpbGUyJykpCiAgIGlmIGhhcygnd2luMzInKQotICAgIGNhbGwgYXNzZXJ0X2VxdWFsKDB6NjE2MTYxMEQuMEEsIHJlYWRibG9iKCdYZmlsZTMnKSkKKyAgICBjYWxsIGFzc2VydF9lcXVhbCgwejYxNjE2MTBELjBBLCByZWFkYmxvYignWHdiZmlsZTMnKSkKICAgZWxzZQotICAgIGNhbGwgYXNzZXJ0X2VxdWFsKDB6NjE2MTYxMEEsIHJlYWRibG9iKCdYZmlsZTMnKSkKKyAgICBjYWxsIGFzc2VydF9lcXVhbCgwejYxNjE2MTBBLCByZWFkYmxvYignWHdiZmlsZTMnKSkKICAgZW5kaWYKLSAgY2FsbCBkZWxldGUoJ1hmaWxlMScpCi0gIGNhbGwgZGVsZXRlKCdYZmlsZTInKQotICBjYWxsIGRlbGV0ZSgnWGZpbGUzJykKKyAgY2FsbCBkZWxldGUoJ1h3YmZpbGUxJykKKyAgY2FsbCBkZWxldGUoJ1h3YmZpbGUyJykKKyAgY2FsbCBkZWxldGUoJ1h3YmZpbGUzJykKIGVuZGZ1bmMKIAogIiBDaGVjayB0aGF0IGJ1ZmZlciBpcyB3cml0dGVuIGJlZm9yZSB0cmlnZ2VyaW5nIFF1aXRQcmUKZGlmZiAtLWdpdCBhL3NyYy92ZXJzaW9uLmMgYi9zcmMvdmVyc2lvbi5jCmluZGV4IDc2MDdlNTcuLmE2ODEyOTIgMTAwNjQ0Ci0tLSBhL3NyYy92ZXJzaW9uLmMKKysrIGIvc3JjL3ZlcnNpb24uYwpAQCAtNzA4LDYgKzcwOCw4IEBACiBzdGF0aWMgaW50IGluY2x1ZGVkX3BhdGNoZXNbXSA9CiB7ICAgLyogQWRkIG5ldyBwYXRjaCBudW1iZXIgYmVsb3cgdGhpcyBsaW5lICovCiAvKiovCisgICAgMzYzLAorLyoqLwogICAgIDM2MiwKIC8qKi8KICAgICAzNjEsCg==