+ printf %s IyEvdXNyL2Jpbi9lbnYgYmFzaAojCiMgUnVucyAib2Mgcm9sbG91dCBzdGF0dXMiIGZvciBjb25maWd1cmVkIG5hbWVzcGFjZSwgcmVzb3VyY2UgdHlwZSwgYW5kIHNlbGVjdG9ycy4KIwpzaG9wdCAtcyBpbmhlcml0X2VycmV4aXQKc2V0IC1vIGVycmV4aXQKc2V0IC1vIGVycnRyYWNlCnNldCAtbyBub3Vuc2V0CnNldCAtbyBwaXBlZmFpbAoKdXNhZ2UoKSB7CiAgICBlY2hvICIKVXNhZ2U6CiAgICAkezAjIyovfQoKT3B0aW9uYWwgYXJndW1lbnRzOgogICAgLWQsIC0tZGVidWcKICAgICAgICBBY3RpdmF0ZSB0cmFjaW5nL2RlYnVnIG1vZGUuCiAgICAtaCwgLS1oZWxwCiAgICAgICAgRGlzcGxheSB0aGlzIG1lc3NhZ2UuCgpFeGFtcGxlOgogICAgXCQgZXhwb3J0IE5BTUVTUEFDRT1cIm5hbWVzcGFjZVwiCiAgICBcJCBleHBvcnQgUkVTT1VSQ0VfVFlQRT1cImRlcGxveW1lbnRcIgogICAgJHswIyMqL30gPFJFU09VUkNFX1NFTEVDVE9SUz4KIiA+JjIKfQoKcGFyc2VfYXJncygpIHsKICAgIE9QVElPTlM9KCkKICAgIFJFU09VUkNFUz0oKQogICAgd2hpbGUgW1sgJCMgLWd0IDAgXV07IGRvCiAgICAgICAgY2FzZSAiJDEiIGluCiAgICAgICAgLWQgfCAtLWRlYnVnKQogICAgICAgICAgICBzZXQgLXgKICAgICAgICAgICAgREVCVUc9Ii0tZGVidWciCiAgICAgICAgICAgIGV4cG9ydCBERUJVRwogICAgICAgICAgICBpbmZvICJSdW5uaW5nIHNjcmlwdCBhczogJChpZCkiCiAgICAgICAgICAgIDs7CiAgICAgICAgLWggfCAtLWhlbHApCiAgICAgICAgICAgIHVzYWdlCiAgICAgICAgICAgIGV4aXQgMAogICAgICAgICAgICA7OwogICAgICAgIC0tKip8LSopCiAgICAgICAgICAgICMgQWRkIG9wdGlvbnMgdG8gdGhlIHdhaXQgY29tbWFuZAogICAgICAgICAgICBPUFRJT05TKz0oIiQxIikKICAgICAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICAjIFRoZSByZXNvdXJjZSB0byB3YWl0IGZvcgogICAgICAgICAgICBSRVNPVVJDRVMrPSgiJDEiKQogICAgICAgICAgICA7OwogICAgICAgIGVzYWMKICAgICAgICBzaGlmdAogICAgZG9uZQp9CgpmYWlsKCkgewogICAgZWNobyAiIyBbRVJST1JdICR7Kn0iID4mMgogICAgZXhpdCAxCn0KCndhcm5pbmcoKSB7CiAgICBlY2hvICIjIFtXQVJOSU5HXSAkeyp9Igp9CgppbmZvKCkgewogICAgZWNobyAiIyBbSU5GT10gJHsqfSIKfQoKIwojIEZ1bmN0aW9ucwojCgp3YWl0X2Zvcl9yZXNvdXJjZXMoKSB7CiAgICBlY2hvICIjIENoZWNraW5nIGNvbmRpdGlvbnMgYXJlIG1ldCBmb3IgcmVzb3VyY2VzLi4uIgogICAgaWYgISBvYyB3YWl0IC0tdGltZW91dD0xMHMgIiR7T1BUSU9OU1tAXX0iICIke1JFU09VUkNFU1tAXX0iOyB0aGVuCiAgICAgICAgZWNobyAtZW4gIiNcbiMgV0FSTklORzogbm90IGFsbCByZXNvdXJjZXMgYXJlIHJlYWR5IVxuI1xuIgogICAgICAgIHJldHVybiAxCiAgICBmaQogICAgaW5mbyAiQWxsIHJlc291cmNlcyBhcmUgcmVhZHkhIgogICAgcmV0dXJuIDAKfQoKdGVzdF93YWl0X2ZvcigpIHsKICAgIFtbICR7I1JFU09VUkNFU1tAXX0gLWVxIDAgXV0gJiYgdXNhZ2UKCiAgICBmb3IgaSBpbiAkKHNlcSAxICIke1JFVFJJRVN9Iik7IGRvCiAgICAgICAgd2FpdD0kKChpICogNSkpCiAgICAgICAgW1sgJHdhaXQgLWd0IDMwICBdXSAmJiB3YWl0PTMwCiAgICAgICAgZWNobyAiIyMjIFske2l9LyR7UkVUUklFU31dIFdhaXRpbmcgZm9yICR7d2FpdH0gc2Vjb25kcyBiZWZvcmUgcmV0cnlpbmcuLi4iCiAgICAgICAgc2xlZXAgJHt3YWl0fQoKICAgICAgICBpZiB3YWl0X2Zvcl9yZXNvdXJjZXM7IHRoZW4KICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICBmaQogICAgZG9uZQoKICAgIGZhaWwgIk5vdCBhbGwgcmVzb3VyY2VzIGFyZSByZWFkeSBhZnRlciAke1JFVFJJRVN9IHJldHJpZXMhIgp9CgptYWluKCkgewogICAgcGFyc2VfYXJncyAiJEAiCgogICAgIyBOdW1iZXIgb2YgcmV0cmllcyB0byBhdHRlbXB0IGJlZm9yZSBnaXZpbmcgdXAuCiAgICBkZWNsYXJlIC1yIFJFVFJJRVM9JHtSRVRSSUVTOi0yMH0KCiAgICB0ZXN0X3dhaXRfZm9yCn0KCmlmIFsgIiR7QkFTSF9TT1VSQ0VbMF19IiA9PSAiJDAiIF07IHRoZW4KICAgIG1haW4gIiRAIgogICAgZWNobwogICAgZWNobyAiU3VjY2VzcyIKZmk= + base64 -d + chmod +x test-wait-for.sh