ZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsdGVyX21hcC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X2ZpbHRlcl9tYXAudmltCmluZGV4IDZjZGU0NTMuLjA3MmU3Y2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfZmlsdGVyX21hcC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9maWx0ZXJfbWFwLnZpbQpAQCAtMTUxLDcgKzE1MSw3IEBACiAgIGxldCBsaW5lcyA9PDwgdHJpbSBFTkQKICAgICBWQVIgcyA9ICJhYmMiCiAgICAgY2FsbCBmaWx0ZXIocywgJyJiIiAhPSB2OnZhbCcpCi0gICAgY2FsbCBhc3NlcnRfZXF1YWwocywgcykKKyAgICBjYWxsIGFzc2VydF9lcXVhbCgnYWJjJywgcykKICAgICBjYWxsIGFzc2VydF9lcXVhbCgnYWMnLCBmaWx0ZXIoJ2FiYycsICciYiIgIT0gdjp2YWwnKSkKICAgICBjYWxsIGFzc2VydF9lcXVhbCgn44GC44GE44GG44GI44GKJywgZmlsdGVyKCfjgYJ444GEeOOBhnjjgYh444GKJywgJyJ4IiAhPSB2OnZhbCcpKQogICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCfjgYJh8J+YivCfkpXwn5KVYvCfkpUnLCBmaWx0ZXIoJ+OBgnhhePCfmIp48J+SlfCfkpVi8J+SlXgnLCAnIngiICE9IHY6dmFsJykpCkBAIC0xNzIsNyArMTcyLDcgQEAKICAgbGV0IGxpbmVzID08PCB0cmltIEVORAogICAgIFZBUiBzID0gImFiYyIKICAgICBjYWxsIG1hcChzLCAnbnIyY2hhcihjaGFyMm5yKHY6dmFsKSArIDIpJykKLSAgICBjYWxsIGFzc2VydF9lcXVhbChzLCBzKQorICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdhYmMnLCBzKQogICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdjZGUnLCBtYXAoJ2FiYycsICducjJjaGFyKGNoYXIybnIodjp2YWwpICsgMiknKSkKICAgICBjYWxsIGFzc2VydF9lcXVhbCgnW+OBgl1baV1b44GGXVvjgYhdW+OBil0nLCBtYXAoJ+OBgmnjgYbjgYjjgYonLCAnIlsiIC4uIHY6dmFsIC4uICJdIicpKQogICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdb44GCXVthXVvwn5iKXVssXVvigLFdW+KAvF1b4oGHXVvigYhdW+KBiV1b8J+SlV1bYl1b8J+SlV1bY11b8J+SlV0nLCBtYXAoJ+OBgmHwn5iKLOKAseKAvOKBh+KBiOKBifCfkpVi8J+SlWPwn5KVJywgJyJbIiAuLiB2OnZhbCAuLiAiXSInKSkKQEAgLTE5MSw3ICsxOTEsNyBAQAogICBsZXQgbGluZXMgPTw8IHRyaW0gRU5ECiAgICAgVkFSIHMgPSAiYWJjIgogICAgIGNhbGwgbWFwbmV3KHMsICducjJjaGFyKGNoYXIybnIodjp2YWwpICsgMiknKQotICAgIGNhbGwgYXNzZXJ0X2VxdWFsKHMsIHMpCisgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ2FiYycsIHMpCiAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ2NkZScsIG1hcG5ldygnYWJjJywgJ25yMmNoYXIoY2hhcjJucih2OnZhbCkgKyAyKScpKQogICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdb44GCXVtpXVvjgYZdW+OBiF1b44GKXScsIG1hcG5ldygn44GCaeOBhuOBiOOBiicsICciWyIgLi4gdjp2YWwgLi4gIl0iJykpCiAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ1vjgYJdW2FdW/CfmIpdWyxdW+KAsV1b4oC8XVvigYddW+KBiF1b4oGJXVvwn5KVXVtiXVvwn5KVXVtjXVvwn5KVXScsIG1hcG5ldygn44GCYfCfmIos4oCx4oC84oGH4oGI4oGJ8J+SlWLwn5KVY/CfkpUnLCAnIlsiIC4uIHY6dmFsIC4uICJdIicpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9oaWdobGlnaHQudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9oaWdobGlnaHQudmltCmluZGV4IDAwMWNkMzkuLjU0NzYwMDggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfaGlnaGxpZ2h0LnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X2hpZ2hsaWdodC52aW0KQEAgLTkyMiwxNyArOTIyLDIwIEBACiAgIGxldCBobFRlc3RIaVByZSA9IEhpZ2hsaWdodEFyZ3MoJ1Rlc3RIaScpCiAKICAgIiBUZXN0IGNvbG9yc2NoZW1lCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCJcbmRlZmF1bHQiLCBleGVjdXRlKCdjb2xvcnNjaGVtZScpKQogICBoaSBjbGVhcgogICBpZiBleGlzdHMoJ3N5bnRheF9vbicpCiAgICAgc3ludGF4IHJlc2V0CiAgIGVuZGlmCiAgIGxldCBnOmNvbG9yc19uYW1lID0gJ3Rlc3QnCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCJcbnRlc3QiLCBleGVjdXRlKCdjb2xvcnNjaGVtZScpKQogICBoaSBsaW5rIFRlc3RMaW5rIEVycm9yTXNnCiAgIGhpIFRlc3RIaSBjdGVybWJnPWdyZWVuCiAKICAgIiBSZXN0b3JlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nCiAgIGNvbG9yc2NoZW1lIGRlZmF1bHQKICAgIiAnZGVmYXVsdCcgc2hvdWxkIHdvcmsgbm8gbWF0dGVyIGlmIGhpZ2hsaWdodCBncm91cCB3YXMgY2xlYXJlZAorICBjYWxsIGFzc2VydF9lcXVhbCgiXG5kZWZhdWx0IiwgZXhlY3V0ZSgnY29sb3JzY2hlbWUnKSkKICAgaGkgZGVmIGxpbmsgVGVzdExpbmsgSWRlbnRpZmllcgogICBoaSBkZWYgVGVzdEhpIGN0ZXJtYmc9cmVkCiAgIGxldCBobFRlc3RMaW5rUG9zdCA9IEhpZ2hsaWdodEFyZ3MoJ1Rlc3RMaW5rJykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfcmVnZXhwX2xhdGluLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfcmVnZXhwX2xhdGluLnZpbQppbmRleCBmOTM2NTQ5Li4xNjY0ODhiIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3JlZ2V4cF9sYXRpbi52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9yZWdleHBfbGF0aW4udmltCkBAIC02LDcgKzYsMTAgQEAKIHNvdXJjZSBjaGVjay52aW0KIAogZnVuYyBzOmVxdWl2YWxlbmNlX3Rlc3QoKQotICBsZXQgc3RyID0gIkHAwcLDxMUgQiBDIEQgRcjJyssgRiBHIEggSczNzs8gSiBLIEwgTSBO0SBP0tPU1dbYIFAgUSBSIFMgVCBV2drb3CBWIFcgWCBZ3SBaIGHg4eLj5OUgYiBjIGQgZejp6usgZiBnIGggaezt7u8gaiBrIGwgbSBu8SBv8vP09fb4IHAgcSByIHMgdCB1+fr7/CB2IHcgeCB5/f8geiIKKyAgbGV0IHN0ciA9ICdBwMHCw8TFIEIgQyBEIEXIycrLIEYgRyBIIEnMzc7PIEogSyBMIE0gTtEgT9LT1NXW2CBQIFEgUiBTIFQgVdna29wgViBXIFggWd0gWiAnCisgIFwgICAgICAuLiAnYeDh4uPk5SBiIGMgZCBl6Onq6yBmIGcgaCBp7O3u7yBqIGsgbCBtIG7xIG/y8/T19vggcCBxIHIgcyB0IHX5+vv8IHYgdyB4IHn9/yB6ICcKKyAgXCAgICAgIC4uICIwIDEgMiAzIDQgNSA2IDcgOCA5ICIKKyAgXCAgICAgIC4uICJgIH4gISA/IDsgOiAuICwgLyBcXCAnIFwiIHwgPCA+IFsgXSB7IH0gKCApIEAgIyAkICUgXiAmICogXyAtICsgXGIgXGUgXGYgXG4gXHIgXHQiCiAgIGxldCBncm91cHMgPSBzcGxpdChzdHIpCiAgIGZvciBncm91cDEgaW4gZ3JvdXBzCiAgICAgICBmb3IgYyBpbiBzcGxpdChncm91cDEsICdcenMnKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdF9zZWFyY2gudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9zZWFyY2gudmltCmluZGV4IGVhZjljMjMuLmY3OTBjODQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3Rfc2VhcmNoLnZpbQorKysgYi9zcmMvdGVzdGRpci90ZXN0X3NlYXJjaC52aW0KQEAgLTE2ODIsNiArMTY4Miw4IEBACiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNlYXJjaCgnXFwoJykiLCAnRTU0OicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNlYXJjaCgnXFwpJykiLCAnRTU1OicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNlYXJjaCgnXFx6XFwoXFwpJykiLCAnRTY2OicpCisgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNlYXJjaCgnXFx6MicpIiwgJ0U2NzonKQorICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCBzZWFyY2goJ1xcengnKSIsICdFODY3OicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNlYXJjaCgnXFwlW2FiJykiLCAnRTY5OicpCiAgIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIHNlYXJjaCgnXFwlW10nKSIsICdFNzA6JykKICAgY2FsbCBhc3NlcnRfZmFpbHMoImNhbGwgc2VhcmNoKCdcXCU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5dicpIiwgJ0U5NTE6JykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9idWlsdGluLnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfdmltOV9idWlsdGluLnZpbQppbmRleCBkZjllOGVjLi4yZWUxYTkzIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X3ZpbTlfYnVpbHRpbi52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF92aW05X2J1aWx0aW4udmltCkBAIC05NTYsNiArOTU2LDggQEAKIAogICBhc3NlcnRfZXF1YWwoInllcyIsIGV4cGFuZGNtZCgiYD17YTogJ3llcyd9WydhJ11gIikpCiAgIGV4cGFuZGNtZCgnJyktPmFzc2VydF9lcXVhbCgnJykKKworICBDaGVja0RlZkFuZFNjcmlwdEZhaWx1cmUoWydleHBhbmRjbWQoWzFdKSddLCBbJ0UxMDEzOiBBcmd1bWVudCAxOiB0eXBlIG1pc21hdGNoLCBleHBlY3RlZCBzdHJpbmcgYnV0IGdvdCBsaXN0PG51bWJlcj4nLCAnRTExNzQ6IFN0cmluZyByZXF1aXJlZCBmb3IgYXJndW1lbnQgMSddKQogZW5kZGVmCiAKIGRlZiBUZXN0X2V4dGVuZF9hcmdfdHlwZXMoKQpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uYyBiL3NyYy92ZXJzaW9uLmMKaW5kZXggNTIxZmUzOS4uZjRkMzE3MiAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uYworKysgYi9zcmMvdmVyc2lvbi5jCkBAIC03NTEsNiArNzUxLDggQEAKIHN0YXRpYyBpbnQgaW5jbHVkZWRfcGF0Y2hlc1tdID0KIHsgICAvKiBBZGQgbmV3IHBhdGNoIG51bWJlciBiZWxvdyB0aGlzIGxpbmUgKi8KIC8qKi8KKyAgICAzOTgyLAorLyoqLwogICAgIDM5ODEsCiAvKiovCiAgICAgMzk4MCwK