LS0gJElkOiB0ZXN0ZXMvc3RyaW5ncy5sdWEgJAotLSBTZWUgQ29weXJpZ2h0IE5vdGljZSBpbiBmaWxlIGFsbC5sdWEKCnByaW50KCd0ZXN0aW5nIHN0cmluZ3MgYW5kIHN0cmluZyBsaWJyYXJ5JykKCmxvY2FsIDxjb25zdD4gbWF4aSA9IG1hdGgubWF4aW50ZWdlcgpsb2NhbCA8Y29uc3Q+IG1pbmkgPSBtYXRoLm1pbmludGVnZXIKCgpsb2NhbCBmdW5jdGlvbiBjaGVja2Vycm9yIChtc2csIGYsIC4uLikKICBsb2NhbCBzLCBlcnIgPSBwY2FsbChmLCAuLi4pCiAgYXNzZXJ0KG5vdCBzIGFuZCBzdHJpbmcuZmluZChlcnIsIG1zZykpCmVuZAoKCi0tIHRlc3Rpbmcgc3RyaW5nIGNvbXBhcmlzb25zCmFzc2VydCgnYWxvJyA8ICdhbG8xJykKYXNzZXJ0KCcnIDwgJ2EnKQphc3NlcnQoJ2Fsb1wwYWxvJyA8ICdhbG9cMGInKQphc3NlcnQoJ2Fsb1wwYWxvXDBcMCcgPiAnYWxvXDBhbG9cMCcpCmFzc2VydCgnYWxvJyA8ICdhbG9cMCcpCmFzc2VydCgnYWxvXDAnID4gJ2FsbycpCmFzc2VydCgnXDAnIDwgJ1wxJykKYXNzZXJ0KCdcMFwwJyA8ICdcMFwxJykKYXNzZXJ0KCdcMVwwYVwwYScgPD0gJ1wxXDBhXDBhJykKYXNzZXJ0KG5vdCAoJ1wxXDBhXDBiJyA8PSAnXDFcMGFcMGEnKSkKYXNzZXJ0KCdcMFwwXDAnIDwgJ1wwXDBcMFwwJykKYXNzZXJ0KG5vdCgnXDBcMFwwXDAnIDwgJ1wwXDBcMCcpKQphc3NlcnQoJ1wwXDBcMCcgPD0gJ1wwXDBcMFwwJykKYXNzZXJ0KG5vdCgnXDBcMFwwXDAnIDw9ICdcMFwwXDAnKSkKYXNzZXJ0KCdcMFwwXDAnIDw9ICdcMFwwXDAnKQphc3NlcnQoJ1wwXDBcMCcgPj0gJ1wwXDBcMCcpCmFzc2VydChub3QgKCdcMFwwYicgPCAnXDBcMGFcMCcpKQoKLS0gdGVzdGluZyBzdHJpbmcuc3ViCmFzc2VydChzdHJpbmcuc3ViKCIxMjM0NTY3ODkiLDIsNCkgPT0gIjIzNCIpCmFzc2VydChzdHJpbmcuc3ViKCIxMjM0NTY3ODkiLDcpID09ICI3ODkiKQphc3NlcnQoc3RyaW5nLnN1YigiMTIzNDU2Nzg5Iiw3LDYpID09ICIiKQphc3NlcnQoc3RyaW5nLnN1YigiMTIzNDU2Nzg5Iiw3LDcpID09ICI3IikKYXNzZXJ0KHN0cmluZy5zdWIoIjEyMzQ1Njc4OSIsMCwwKSA9PSAiIikKYXNzZXJ0KHN0cmluZy5zdWIoIjEyMzQ1Njc4OSIsLTEwLDEwKSA9PSAiMTIzNDU2Nzg5IikKYXNzZXJ0KHN0cmluZy5zdWIoIjEyMzQ1Njc4OSIsMSw5KSA9PSAiMTIzNDU2Nzg5IikKYXNzZXJ0KHN0cmluZy5zdWIoIjEyMzQ1Njc4OSIsLTEwLC0yMCkgPT0gIiIpCmFzc2VydChzdHJpbmcuc3ViKCIxMjM0NTY3ODkiLC0xKSA9PSAiOSIpCmFzc2VydChzdHJpbmcuc3ViKCIxMjM0NTY3ODkiLC00KSA9PSAiNjc4OSIpCmFzc2VydChzdHJpbmcuc3ViKCIxMjM0NTY3ODkiLC02LCAtNCkgPT0gIjQ1NiIpCmFzc2VydChzdHJpbmcuc3ViKCIxMjM0NTY3ODkiLCBtaW5pLCAtNCkgPT0gIjEyMzQ1NiIpCmFzc2VydChzdHJpbmcuc3ViKCIxMjM0NTY3ODkiLCBtaW5pLCBtYXhpKSA9PSAiMTIzNDU2Nzg5IikKYXNzZXJ0KHN0cmluZy5zdWIoIjEyMzQ1Njc4OSIsIG1pbmksIG1pbmkpID09ICIiKQphc3NlcnQoc3RyaW5nLnN1YigiXDAwMDEyMzQ1Njc4OSIsMyw1KSA9PSAiMjM0IikKYXNzZXJ0KCgiXDAwMDEyMzQ1Njc4OSIpOnN1Yig4KSA9PSAiNzg5IikKCi0tIHRlc3Rpbmcgc3RyaW5nLmZpbmQKYXNzZXJ0KHN0cmluZy5maW5kKCIxMjM0NTY3ODkiLCAiMzQ1IikgPT0gMykKYSxiID0gc3RyaW5nLmZpbmQoIjEyMzQ1Njc4OSIsICIzNDUiKQphc3NlcnQoc3RyaW5nLnN1YigiMTIzNDU2Nzg5IiwgYSwgYikgPT0gIjM0NSIpCmFzc2VydChzdHJpbmcuZmluZCgiMTIzNDU2Nzg5MDEyMzQ1Njc4OSIsICIzNDUiLCAzKSA9PSAzKQphc3NlcnQoc3RyaW5nLmZpbmQoIjEyMzQ1Njc4OTAxMjM0NTY3ODkiLCAiMzQ1IiwgNCkgPT0gMTMpCmFzc2VydChzdHJpbmcuZmluZCgiMTIzNDU2Nzg5MDEyMzQ1Njc4OSIsICIzNDYiLCA0KSA9PSBuaWwpCmFzc2VydChzdHJpbmcuZmluZCgiMTIzNDU2Nzg5MDEyMzQ1Njc4OSIsICIuNDUiLCAtOSkgPT0gMTMpCmFzc2VydChzdHJpbmcuZmluZCgiYWJjZGVmZyIsICJcMCIsIDUsIDEpID09IG5pbCkKYXNzZXJ0KHN0cmluZy5maW5kKCIiLCAiIikgPT0gMSkKYXNzZXJ0KHN0cmluZy5maW5kKCIiLCAiIiwgMSkgPT0gMSkKYXNzZXJ0KG5vdCBzdHJpbmcuZmluZCgiIiwgIiIsIDIpKQphc3NlcnQoc3RyaW5nLmZpbmQoJycsICdhYWEnLCAxKSA9PSBuaWwpCmFzc2VydCgoJ2FsbyguKWFsbycpOmZpbmQoJyguKScsIDEsIDEpID09IDQpCgphc3NlcnQoc3RyaW5nLmxlbigiIikgPT0gMCkKYXNzZXJ0KHN0cmluZy5sZW4oIlwwXDBcMCIpID09IDMpCmFzc2VydChzdHJpbmcubGVuKCIxMjM0NTY3ODkwIikgPT0gMTApCgphc3NlcnQoIyIiID09IDApCmFzc2VydCgjIlwwXDBcMCIgPT0gMykKYXNzZXJ0KCMiMTIzNDU2Nzg5MCIgPT0gMTApCgotLSB0ZXN0aW5nIHN0cmluZy5ieXRlL3N0cmluZy5jaGFyCmFzc2VydChzdHJpbmcuYnl0ZSgiYSIpID09IDk3KQphc3NlcnQoc3RyaW5nLmJ5dGUoIlx4ZTQiKSA+IDEyNykKYXNzZXJ0KHN0cmluZy5ieXRlKHN0cmluZy5jaGFyKDI1NSkpID09IDI1NSkKYXNzZXJ0KHN0cmluZy5ieXRlKHN0cmluZy5jaGFyKDApKSA9PSAwKQphc3NlcnQoc3RyaW5nLmJ5dGUoIlwwIikgPT0gMCkKYXNzZXJ0KHN0cmluZy5ieXRlKCJcMFwwYWxvXDB4IiwgLTEpID09IHN0cmluZy5ieXRlKCd4JykpCmFzc2VydChzdHJpbmcuYnl0ZSgiYmEiLCAyKSA9PSA5NykKYXNzZXJ0KHN0cmluZy5ieXRlKCJcblxuIiwgMiwgLTEpID09IDEwKQphc3NlcnQoc3RyaW5nLmJ5dGUoIlxuXG4iLCAyLCAyKSA9PSAxMCkKYXNzZXJ0KHN0cmluZy5ieXRlKCIiKSA9PSBuaWwpCmFzc2VydChzdHJpbmcuYnl0ZSgiaGkiLCAtMykgPT0gbmlsKQphc3NlcnQoc3RyaW5nLmJ5dGUoImhpIiwgMykgPT0gbmlsKQphc3NlcnQoc3RyaW5nLmJ5dGUoImhpIiwgOSwgMTApID09IG5pbCkKYXNzZXJ0KHN0cmluZy5ieXRlKCJoaSIsIDIsIDEpID09IG5pbCkKYXNzZXJ0KHN0cmluZy5jaGFyKCkgPT0gIiIpCmFzc2VydChzdHJpbmcuY2hhcigwLCAyNTUsIDApID09ICJcMFwyNTVcMCIpCmFzc2VydChzdHJpbmcuY2hhcigwLCBzdHJpbmcuYnl0ZSgiXHhlNCIpLCAwKSA9PSAiXDBceGU0XDAiKQphc3NlcnQoc3RyaW5nLmNoYXIoc3RyaW5nLmJ5dGUoIlx4ZTRsXDDzdSIsIDEsIC0xKSkgPT0gIlx4ZTRsXDDzdSIpCmFzc2VydChzdHJpbmcuY2hhcihzdHJpbmcuYnl0ZSgiXHhlNGxcMPN1IiwgMSwgMCkpID09ICIiKQphc3NlcnQoc3RyaW5nLmNoYXIoc3RyaW5nLmJ5dGUoIlx4ZTRsXDDzdSIsIC0xMCwgMTAwKSkgPT0gIlx4ZTRsXDDzdSIpCgpjaGVja2Vycm9yKCJvdXQgb2YgcmFuZ2UiLCBzdHJpbmcuY2hhciwgMjU2KQpjaGVja2Vycm9yKCJvdXQgb2YgcmFuZ2UiLCBzdHJpbmcuY2hhciwgLTEpCmNoZWNrZXJyb3IoIm91dCBvZiByYW5nZSIsIHN0cmluZy5jaGFyLCBtYXRoLm1heGludGVnZXIpCmNoZWNrZXJyb3IoIm91dCBvZiByYW5nZSIsIHN0cmluZy5jaGFyLCBtYXRoLm1pbmludGVnZXIpCgphc3NlcnQoc3RyaW5nLnVwcGVyKCJhYlwwYyIpID09ICJBQlwwQyIpCmFzc2VydChzdHJpbmcubG93ZXIoIlwwQUJDYyUkIikgPT0gIlwwYWJjYyUkIikKYXNzZXJ0KHN0cmluZy5yZXAoJ3Rlc3RlJywgMCkgPT0gJycpCmFzc2VydChzdHJpbmcucmVwKCd06XNcMDB06icsIDIpID09ICd06XNcMHTqdOlzXDAwMHTqJykKYXNzZXJ0KHN0cmluZy5yZXAoJycsIDEwKSA9PSAnJykKCmlmIHN0cmluZy5wYWNrc2l6ZSgiaSIpID09IDQgdGhlbgogIC0tIHJlc3VsdCBsZW5ndGggd291bGQgYmUgMl4zMSAoaW50IG92ZXJmbG93KQogIGNoZWNrZXJyb3IoInRvbyBsYXJnZSIsIHN0cmluZy5yZXAsICdhYScsICgxIDw8IDMwKSkKICBjaGVja2Vycm9yKCJ0b28gbGFyZ2UiLCBzdHJpbmcucmVwLCAnYScsICgxIDw8IDMwKSwgJywnKQplbmQKCi0tIHJlcGV0aXRpb25zIHdpdGggc2VwYXJhdG9yCmFzc2VydChzdHJpbmcucmVwKCd0ZXN0ZScsIDAsICd4dXh1JykgPT0gJycpCmFzc2VydChzdHJpbmcucmVwKCd0ZXN0ZScsIDEsICd4dXh1JykgPT0gJ3Rlc3RlJykKYXNzZXJ0KHN0cmluZy5yZXAoJ1wxXDBcMScsIDIsICdcMFwwJykgPT0gJ1wxXDBcMVwwXDBcMVwwXDEnKQphc3NlcnQoc3RyaW5nLnJlcCgnJywgMTAsICcuJykgPT0gc3RyaW5nLnJlcCgnLicsIDkpKQphc3NlcnQobm90IHBjYWxsKHN0cmluZy5yZXAsICJhYSIsIG1heGkgLy8gMiArIDEwKSkKYXNzZXJ0KG5vdCBwY2FsbChzdHJpbmcucmVwLCAiIiwgbWF4aSAvLyAyICsgMTAsICJhYSIpKQoKYXNzZXJ0KHN0cmluZy5yZXZlcnNlIiIgPT0gIiIpCmFzc2VydChzdHJpbmcucmV2ZXJzZSJcMFwxXDJcMyIgPT0gIlwzXDJcMVwwIikKYXNzZXJ0KHN0cmluZy5yZXZlcnNlIlwwMDAxMjM0IiA9PSAiNDMyMVwwIikKCmZvciBpPTAsMzAgZG8gYXNzZXJ0KHN0cmluZy5sZW4oc3RyaW5nLnJlcCgnYScsIGkpKSA9PSBpKSBlbmQKCmFzc2VydCh0eXBlKHRvc3RyaW5nKG5pbCkpID09ICdzdHJpbmcnKQphc3NlcnQodHlwZSh0b3N0cmluZygxMikpID09ICdzdHJpbmcnKQphc3NlcnQoc3RyaW5nLmZpbmQodG9zdHJpbmd7fSwgJ3RhYmxlOicpKQphc3NlcnQoc3RyaW5nLmZpbmQodG9zdHJpbmcocHJpbnQpLCAnZnVuY3Rpb246JykpCmFzc2VydCgjdG9zdHJpbmcoJ1wwJykgPT0gMSkKYXNzZXJ0KHRvc3RyaW5nKHRydWUpID09ICJ0cnVlIikKYXNzZXJ0KHRvc3RyaW5nKGZhbHNlKSA9PSAiZmFsc2UiKQphc3NlcnQodG9zdHJpbmcoLTEyMDMpID09ICItMTIwMyIpCmFzc2VydCh0b3N0cmluZygxMjAzLjEyNSkgPT0gIjEyMDMuMTI1IikKYXNzZXJ0KHRvc3RyaW5nKC0wLjUpID09ICItMC41IikKYXNzZXJ0KHRvc3RyaW5nKC0zMjc2NykgPT0gIi0zMjc2NyIpCmlmIG1hdGgudG9pbnRlZ2VyKDIxNDc0ODM2NDcpIHRoZW4gICAtLSBubyBvdmVyZmxvdz8gKDMyIGJpdHMpCiAgYXNzZXJ0KHRvc3RyaW5nKC0yMTQ3NDgzNjQ3KSA9PSAiLTIxNDc0ODM2NDciKQplbmQKaWYgbWF0aC50b2ludGVnZXIoNDYxMTY4NjAxODQyNzM4NzkwNCkgdGhlbiAgIC0tIG5vIG92ZXJmbG93PyAoNjQgYml0cykKICBhc3NlcnQodG9zdHJpbmcoNDYxMTY4NjAxODQyNzM4NzkwNCkgPT0gIjQ2MTE2ODYwMTg0MjczODc5MDQiKQogIGFzc2VydCh0b3N0cmluZygtNDYxMTY4NjAxODQyNzM4NzkwNCkgPT0gIi00NjExNjg2MDE4NDI3Mzg3OTA0IikKZW5kCgppZiB0b3N0cmluZygwLjApID09ICIwLjAiIHRoZW4gICAtLSAic3RhbmRhcmQiIGNvZXJjaW9uIGZsb2F0LT5zdHJpbmcKICBhc3NlcnQoJycgLi4gMTIgPT0gJzEyJyBhbmQgMTIuMCAuLiAnJyA9PSAnMTIuMCcpCiAgYXNzZXJ0KHRvc3RyaW5nKC0xMjAzICsgMC4wKSA9PSAiLTEyMDMuMCIpCmVsc2UgICAtLSBjb21wYXRpYmxlIGNvZXJjaW9uCiAgYXNzZXJ0KHRvc3RyaW5nKDAuMCkgPT0gIjAiKQogIGFzc2VydCgnJyAuLiAxMiA9PSAnMTInIGFuZCAxMi4wIC4uICcnID09ICcxMicpCiAgYXNzZXJ0KHRvc3RyaW5nKC0xMjAzICsgMC4wKSA9PSAiLTEyMDMiKQplbmQKCmRvICAtLSB0ZXN0cyBmb3IgJyVwJyBmb3JtYXQKICAtLSBub3QgbXVjaCB0byB0ZXN0LCBhcyBDIGRvZXMgbm90IHNwZWNpZnkgd2hhdCAnJXAnIGRvZXMuCiAgLS0gKCJUaGUgdmFsdWUgb2YgdGhlIHBvaW50ZXIgaXMgY29udmVydGVkIHRvIGEgc2VxdWVuY2Ugb2YgcHJpbnRpbmcKICAtLSBjaGFyYWN0ZXJzLCBpbiBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIG1hbm5lci4iKQogIGxvY2FsIG51bGwgPSBzdHJpbmcuZm9ybWF0KCIlcCIsIG5pbCkKICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJXAiLCB7fSkgfj0gbnVsbCkKICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJXAiLCA0KSA9PSBudWxsKQogIGFzc2VydChzdHJpbmcuZm9ybWF0KCIlcCIsIHByaW50KSB+PSBudWxsKQogIGFzc2VydChzdHJpbmcuZm9ybWF0KCIlcCIsIGNvcm91dGluZS5ydW5uaW5nKCkpIH49IG51bGwpCiAgZG8KICAgIGxvY2FsIHQxID0ge307IGxvY2FsIHQyID0ge30KICAgIGFzc2VydChzdHJpbmcuZm9ybWF0KCIlcCIsIHQxKSB+PSBzdHJpbmcuZm9ybWF0KCIlcCIsIHQyKSkKICBlbmQKICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJXAiLCBzdHJpbmcucmVwKCJhIiwgMTApKSA9PQogICAgICAgICBzdHJpbmcuZm9ybWF0KCIlcCIsIHN0cmluZy5yZXAoImEiLCAxMCkpKSAgICAgLS0gc2hvcnQgc3RyaW5ncwogIGRvICAgICAtLSBsb25nIHN0cmluZ3MKICAgIGxvY2FsIHMxID0gc3RyaW5nLnJlcCgiYSIsIDMwMCk7IGxvY2FsIHMyID0gc3RyaW5nLnJlcCgiYSIsIDMwMCkKICAgIGFzc2VydChzdHJpbmcuZm9ybWF0KCIlcCIsIHMxKSB+PSBzdHJpbmcuZm9ybWF0KCIlcCIsIHMyKSkKICBlbmQKICBhc3NlcnQoI3N0cmluZy5mb3JtYXQoIiU5MHAiLCB7fSkgPT0gOTApCmVuZAoKeCA9ICci7WxvIlxuXFwnCmFzc2VydChzdHJpbmcuZm9ybWF0KCclcSVzJywgeCwgeCkgPT0gJyJcXCLtbG9cXCJcXFxuXFxcXCIi7WxvIlxuXFwnKQphc3NlcnQoc3RyaW5nLmZvcm1hdCgnJXEnLCAiXDAiKSA9PSBbWyJcMCJdXSkKYXNzZXJ0KGxvYWQoc3RyaW5nLmZvcm1hdCgncmV0dXJuICVxJywgeCkpKCkgPT0geCkKeCA9ICJcMFwxXDAwMjNcNVwwMDA5Igphc3NlcnQobG9hZChzdHJpbmcuZm9ybWF0KCdyZXR1cm4gJXEnLCB4KSkoKSA9PSB4KQphc3NlcnQoc3RyaW5nLmZvcm1hdCgiXDAlY1wwJWMleFwwIiwgc3RyaW5nLmJ5dGUoIlx4ZTQiKSwgc3RyaW5nLmJ5dGUoImIiKSwgMTQwKSA9PQogICAgICAgICAgICAgICJcMFx4ZTRcMGI4Y1wwIikKYXNzZXJ0KHN0cmluZy5mb3JtYXQoJycpID09ICIiKQphc3NlcnQoc3RyaW5nLmZvcm1hdCgiJWMiLDM0KS4uc3RyaW5nLmZvcm1hdCgiJWMiLDQ4KS4uc3RyaW5nLmZvcm1hdCgiJWMiLDkwKS4uc3RyaW5nLmZvcm1hdCgiJWMiLDEwMCkgPT0KICAgICAgIHN0cmluZy5mb3JtYXQoIiVjJWMlYyVjIiwgMzQsIDQ4LCA5MCwgMTAwKSkKYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVzXDAgaXMgbm90IFwwJXMiLCAnbm90IGJlJywgJ2JlJykgPT0gJ25vdCBiZVwwIGlzIG5vdCBcMGJlJykKYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiUlJWQgJTAxMGQiLCAxMCwgMjMpID09ICIlMTAgMDAwMDAwMDAyMyIpCmFzc2VydCh0b251bWJlcihzdHJpbmcuZm9ybWF0KCIlZiIsIDEwLjMpKSA9PSAxMC4zKQp4ID0gc3RyaW5nLmZvcm1hdCgnIiUtNTBzIicsICdhJykKYXNzZXJ0KCN4ID09IDUyKQphc3NlcnQoc3RyaW5nLnN1Yih4LCAxLCA0KSA9PSAnImEgICcpCgphc3NlcnQoc3RyaW5nLmZvcm1hdCgiLSUuMjBzLjIwcyIsIHN0cmluZy5yZXAoIiUiLCAyMDAwKSkgPT0KICAgICAgICAgICAgICAgICAgICAgIi0iLi5zdHJpbmcucmVwKCIlIiwgMjApLi4iLjIwcyIpCmFzc2VydChzdHJpbmcuZm9ybWF0KCciLSUyMHMuMjBzIicsIHN0cmluZy5yZXAoIiUiLCAyMDAwKSkgPT0KICAgICAgIHN0cmluZy5mb3JtYXQoIiVxIiwgIi0iLi5zdHJpbmcucmVwKCIlIiwgMjAwMCkuLiIuMjBzIikpCgpkbwogIGxvY2FsIGZ1bmN0aW9uIGNoZWNrUSAodikKICAgIGxvY2FsIHMgPSBzdHJpbmcuZm9ybWF0KCIlcSIsIHYpCiAgICBsb2NhbCBudiA9IGxvYWQoInJldHVybiAiIC4uIHMpKCkKICAgIGFzc2VydCh2ID09IG52IGFuZCBtYXRoLnR5cGUodikgPT0gbWF0aC50eXBlKG52KSkKICBlbmQKICBjaGVja1EoIlwwXDBcMVwyNTVcdXsyMzR9IikKICBjaGVja1EobWF0aC5tYXhpbnRlZ2VyKQogIGNoZWNrUShtYXRoLm1pbmludGVnZXIpCiAgY2hlY2tRKG1hdGgucGkpCiAgY2hlY2tRKDAuMSkKICBjaGVja1EodHJ1ZSkKICBjaGVja1EobmlsKQogIGNoZWNrUShmYWxzZSkKICBjaGVja1EobWF0aC5odWdlKQogIGNoZWNrUSgtbWF0aC5odWdlKQogIGFzc2VydChzdHJpbmcuZm9ybWF0KCIlcSIsIDAvMCkgPT0gIigwLzApIikgICAtLSBOYU4KICBjaGVja2Vycm9yKCJubyBsaXRlcmFsIiwgc3RyaW5nLmZvcm1hdCwgIiVxIiwge30pCmVuZAoKYXNzZXJ0KHN0cmluZy5mb3JtYXQoIlwwJXNcMCIsICJcMFwwXDEiKSA9PSAiXDBcMFwwXDFcMCIpCmNoZWNrZXJyb3IoImNvbnRhaW5zIHplcm9zIiwgc3RyaW5nLmZvcm1hdCwgIiUxMHMiLCAiXDAiKQpjaGVja2Vycm9yKCJjYW5ub3QgaGF2ZSBtb2RpZmllcnMiLCBzdHJpbmcuZm9ybWF0LCAiJTEwcSIsICIxIikKCi0tIGZvcm1hdCB4IHRvc3RyaW5nCmFzc2VydChzdHJpbmcuZm9ybWF0KCIlcyAlcyIsIG5pbCwgdHJ1ZSkgPT0gIm5pbCB0cnVlIikKYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVzICUuNHMiLCBmYWxzZSwgdHJ1ZSkgPT0gImZhbHNlIHRydWUiKQphc3NlcnQoc3RyaW5nLmZvcm1hdCgiJS4zcyAlLjNzIiwgZmFsc2UsIHRydWUpID09ICJmYWwgdHJ1IikKbG9jYWwgbSA9IHNldG1ldGF0YWJsZSh7fSwge19fdG9zdHJpbmcgPSBmdW5jdGlvbiAoKSByZXR1cm4gImhlbGxvIiBlbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX25hbWUgPSAiaGkifSkKYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVzICUuMTBzIiwgbSwgbSkgPT0gImhlbGxvIGhlbGxvIikKZ2V0bWV0YXRhYmxlKG0pLl9fdG9zdHJpbmcgPSBuaWwgICAtLSB3aWxsIHVzZSAnX19uYW1lJyBmcm9tIG5vdyBvbgphc3NlcnQoc3RyaW5nLmZvcm1hdCgiJS40cyIsIG0pID09ICJoaTogIikKCmdldG1ldGF0YWJsZShtKS5fX3Rvc3RyaW5nID0gZnVuY3Rpb24gKCkgcmV0dXJuIHt9IGVuZApjaGVja2Vycm9yKCInX190b3N0cmluZycgbXVzdCByZXR1cm4gYSBzdHJpbmciLCB0b3N0cmluZywgbSkKCgphc3NlcnQoc3RyaW5nLmZvcm1hdCgiJXgiLCAwLjApID09ICIwIikKYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiUwMngiLCAwLjApID09ICIwMCIpCmFzc2VydChzdHJpbmcuZm9ybWF0KCIlMDhYIiwgMHhGRkZGRkZGRikgPT0gIkZGRkZGRkZGIikKYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiUrMDhkIiwgMzE1MDEpID09ICIrMDAzMTUwMSIpCmFzc2VydChzdHJpbmcuZm9ybWF0KCIlKzA4ZCIsIC0zMDkyNykgPT0gIi0wMDMwOTI3IikKCgpkbyAgICAtLSBsb25nZXN0IG51bWJlciB0aGF0IGNhbiBiZSBmb3JtYXR0ZWQKICBsb2NhbCBpID0gMQogIGxvY2FsIGogPSAxMDAwMAogIHdoaWxlIGkgKyAxIDwgaiBkbyAgIC0tIGJpbmFyeSBzZWFyY2ggZm9yIG1heGltdW0gZmluaXRlIGZsb2F0CiAgICBsb2NhbCBtID0gKGkgKyBqKSAvLyAyCiAgICBpZiAxMF5tIDwgbWF0aC5odWdlIHRoZW4gaSA9IG0gZWxzZSBqID0gbSBlbmQKICBlbmQKICBhc3NlcnQoMTBeaSA8IG1hdGguaHVnZSBhbmQgMTBeaiA9PSBtYXRoLmh1Z2UpCiAgbG9jYWwgcyA9IHN0cmluZy5mb3JtYXQoJyUuOTlmJywgLSgxMF5pKSkKICBhc3NlcnQoc3RyaW5nLmxlbihzKSA+PSBpICsgMTAxKQogIGFzc2VydCh0b251bWJlcihzKSA9PSAtKDEwXmkpKQplbmQKCgotLSB0ZXN0aW5nIGxhcmdlIG51bWJlcnMgZm9yIGZvcm1hdApkbyAgIC0tIGFzc3VtZSBhdCBsZWFzdCAzMiBiaXRzCiAgbG9jYWwgbWF4LCBtaW4gPSAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMCAgICAtLSAibGFyZ2UiIGZvciAzMiBiaXRzCiAgYXNzZXJ0KHN0cmluZy5zdWIoc3RyaW5nLmZvcm1hdCgiJTh4IiwgLTEpLCAtOCkgPT0gImZmZmZmZmZmIikKICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJXgiLCBtYXgpID09ICI3ZmZmZmZmZiIpCiAgYXNzZXJ0KHN0cmluZy5zdWIoc3RyaW5nLmZvcm1hdCgiJXgiLCBtaW4pLCAtOCkgPT0gIjgwMDAwMDAwIikKICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJWQiLCBtYXgpID09ICAiMjE0NzQ4MzY0NyIpCiAgYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVkIiwgbWluKSA9PSAiLTIxNDc0ODM2NDgiKQogIGFzc2VydChzdHJpbmcuZm9ybWF0KCIldSIsIDB4ZmZmZmZmZmYpID09ICI0Mjk0OTY3Mjk1IikKICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJW8iLCAweEFCQ0QpID09ICIxMjU3MTUiKQoKICBtYXgsIG1pbiA9IDB4N2ZmZmZmZmZmZmZmZmZmZiwgLTB4ODAwMDAwMDAwMDAwMDAwMAogIGlmIG1heCA+IDIuMF41MyB0aGVuICAtLSBvbmx5IGZvciA2NCBiaXRzCiAgICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJXgiLCAoMl41MiB8IDApIC0gMSkgPT0gImZmZmZmZmZmZmZmZmYiKQogICAgYXNzZXJ0KHN0cmluZy5mb3JtYXQoIjB4JThYIiwgMHg4ZjAwMDAwMykgPT0gIjB4OEYwMDAwMDMiKQogICAgYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVkIiwgMl41MykgPT0gIjkwMDcxOTkyNTQ3NDA5OTIiKQogICAgYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVpIiwgLTJeNTMpID09ICItOTAwNzE5OTI1NDc0MDk5MiIpCiAgICBhc3NlcnQoc3RyaW5nLmZvcm1hdCgiJXgiLCBtYXgpID09ICI3ZmZmZmZmZmZmZmZmZmZmIikKICAgIGFzc2VydChzdHJpbmcuZm9ybWF0KCIleCIsIG1pbikgPT0gIjgwMDAwMDAwMDAwMDAwMDAiKQogICAgYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVkIiwgbWF4KSA9PSAgIjkyMjMzNzIwMzY4NTQ3NzU4MDciKQogICAgYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiVkIiwgbWluKSA9PSAiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiKQogICAgYXNzZXJ0KHN0cmluZy5mb3JtYXQoIiV1IiwgfigtMSA8PCA2NCkpID09ICIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpCiAgICBhc3NlcnQodG9zdHJpbmcoMTIzNDU2Nzg5MDEyMykgPT0gJzEyMzQ1Njc4OTAxMjMnKQogIGVuZAplbmQKCgpkbyBwcmludCgidGVzdGluZyAnZm9ybWF0ICVhICVBJyIpCiAgbG9jYWwgZnVuY3Rpb24gbWF0Y2hoZXhhIChuKQogICAgbG9jYWwgcyA9IHN0cmluZy5mb3JtYXQoIiVhIiwgbikKICAgIC0tIHJlc3VsdCBtYXRjaGVzIElTTyBDIHJlcXVpcmVtZW50cwogICAgYXNzZXJ0KHN0cmluZy5maW5kKHMsICJeJS0/MHhbMS05YS1mXSUuP1swLTlhLWZdKnBbLStdPyVkKyQiKSkKICAgIGFzc2VydCh0b251bWJlcihzKSA9PSBuKSAgLS0gYW5kIGhhcyBmdWxsIHByZWNpc2lvbgogICAgcyA9IHN0cmluZy5mb3JtYXQoIiVBIiwgbikKICAgIGFzc2VydChzdHJpbmcuZmluZChzLCAiXiUtPzBYWzEtOUEtRl0lLj9bMC05QS1GXSpQWy0rXT8lZCskIikpCiAgICBhc3NlcnQodG9udW1iZXIocykgPT0gbikKICBlbmQKICBmb3IgXywgbiBpbiBpcGFpcnN7MC4xLCAtMC4xLCAxLzMsIC0xLzMsIDFlMzAsIC0xZTMwLAogICAgICAgICAgICAgICAgICAgICAtNDUvMjQ3LCAxLCAtMSwgMiwgLTIsIDNlLTIwLCAtM2UtMjB9IGRvCiAgICBtYXRjaGhleGEobikKICBlbmQKCiAgYXNzZXJ0KHN0cmluZy5maW5kKHN0cmluZy5mb3JtYXQoIiVBIiwgMC4wKSwgIl4wWDAlLj8wP1AlKz8wJCIpKQogIGFzc2VydChzdHJpbmcuZmluZChzdHJpbmcuZm9ybWF0KCIlYSIsIC0wLjApLCAiXiUtMHgwJS4/MD9wJSs/MCQiKSkKCiAgaWYgbm90IF9wb3J0IHRoZW4gICAtLSB0ZXN0IGluZiwgLWluZiwgTmFOLCBhbmQgLTAuMAogICAgYXNzZXJ0KHN0cmluZy5maW5kKHN0cmluZy5mb3JtYXQoIiVhIiwgMS8wKSwgIl5pbmYiKSkKICAgIGFzc2VydChzdHJpbmcuZmluZChzdHJpbmcuZm9ybWF0KCIlQSIsIC0xLzApLCAiXiUtSU5GIikpCiAgICBhc3NlcnQoc3RyaW5nLmZpbmQoc3RyaW5nLmZvcm1hdCgiJWEiLCAwLzApLCAiXiUtP25hbiIpKQogICAgYXNzZXJ0KHN0cmluZy5maW5kKHN0cmluZy5mb3JtYXQoIiVhIiwgLTAuMCksICJeJS0weDAiKSkKICBlbmQKICAKICBpZiBub3QgcGNhbGwoc3RyaW5nLmZvcm1hdCwgIiUuM2EiLCAwKSB0aGVuCiAgICAoTWVzc2FnZSBvciBwcmludCkoIlxuID4+PiBtb2RpZmllcnMgZm9yIGZvcm1hdCAnJWEnIG5vdCBhdmFpbGFibGUgPDw8XG4iKQogIGVsc2UKICAgIGFzc2VydChzdHJpbmcuZmluZChzdHJpbmcuZm9ybWF0KCIlKy4yQSIsIDEyKSwgIl4lKzBYJXglLiV4MFAlKz8lZCQiKSkKICAgIGFzc2VydChzdHJpbmcuZmluZChzdHJpbmcuZm9ybWF0KCIlLjRBIiwgLTEyKSwgIl4lLTBYJXglLiV4MDAwUCUrPyVkJCIpKQogIGVuZAplbmQKCgotLSBlcnJvcnMgaW4gZm9ybWF0Cgpsb2NhbCBmdW5jdGlvbiBjaGVjayAoZm10LCBtc2cpCiAgY2hlY2tlcnJvcihtc2csIHN0cmluZy5mb3JtYXQsIGZtdCwgMTApCmVuZAoKbG9jYWwgYXV4ID0gc3RyaW5nLnJlcCgnMCcsIDYwMCkKY2hlY2soIiUxMDAuM2QiLCAidG9vIGxvbmciKQpjaGVjaygiJTEiLi5hdXguLiIuM2QiLCAidG9vIGxvbmciKQpjaGVjaygiJTEuMTAwZCIsICJ0b28gbG9uZyIpCmNoZWNrKCIlMTAuMSIuLmF1eC4uIjAwNGQiLCAidG9vIGxvbmciKQpjaGVjaygiJXQiLCAiaW52YWxpZCBjb252ZXJzaW9uIikKY2hlY2soIiUiLi5hdXguLiJkIiwgInJlcGVhdGVkIGZsYWdzIikKY2hlY2soIiVkICVkIiwgIm5vIHZhbHVlIikKCgphc3NlcnQobG9hZCgicmV0dXJuIDFcbi0tY29tbWVudCB3aXRob3V0IGVuZGluZyBFT0wiKSgpID09IDEpCgoKY2hlY2tlcnJvcigidGFibGUgZXhwZWN0ZWQiLCB0YWJsZS5jb25jYXQsIDMpCmFzc2VydCh0YWJsZS5jb25jYXR7fSA9PSAiIikKYXNzZXJ0KHRhYmxlLmNvbmNhdCh7fSwgJ3gnKSA9PSAiIikKYXNzZXJ0KHRhYmxlLmNvbmNhdCh7J1wwJywgJ1wwXDEnLCAnXDBcMVwyJ30sICcuXDAuJykgPT0gIlwwLlwwLlwwXDEuXDAuXDBcMVwyIikKbG9jYWwgYSA9IHt9OyBmb3IgaT0xLDMwMCBkbyBhW2ldID0gInh1eHUiIGVuZAphc3NlcnQodGFibGUuY29uY2F0KGEsICIxMjMiKS4uIjEyMyIgPT0gc3RyaW5nLnJlcCgieHV4dTEyMyIsIDMwMCkpCmFzc2VydCh0YWJsZS5jb25jYXQoYSwgImIiLCAyMCwgMjApID09ICJ4dXh1IikKYXNzZXJ0KHRhYmxlLmNvbmNhdChhLCAiIiwgMjAsIDIxKSA9PSAieHV4dXh1eHUiKQphc3NlcnQodGFibGUuY29uY2F0KGEsICJ4IiwgMjIsIDIxKSA9PSAiIikKYXNzZXJ0KHRhYmxlLmNvbmNhdChhLCAiMyIsIDI5OSkgPT0gInh1eHUzeHV4dSIpCmFzc2VydCh0YWJsZS5jb25jYXQoe30sICJ4IiwgbWF4aSwgbWF4aSAtIDEpID09ICIiKQphc3NlcnQodGFibGUuY29uY2F0KHt9LCAieCIsIG1pbmkgKyAxLCBtaW5pKSA9PSAiIikKYXNzZXJ0KHRhYmxlLmNvbmNhdCh7fSwgIngiLCBtYXhpLCBtaW5pKSA9PSAiIikKYXNzZXJ0KHRhYmxlLmNvbmNhdCh7W21heGldID0gImFsbyJ9LCAieCIsIG1heGksIG1heGkpID09ICJhbG8iKQphc3NlcnQodGFibGUuY29uY2F0KHtbbWF4aV0gPSAiYWxvIiwgW21heGkgLSAxXSA9ICJ5In0sICItIiwgbWF4aSAtIDEsIG1heGkpCiAgICAgICA9PSAieS1hbG8iKQoKYXNzZXJ0KG5vdCBwY2FsbCh0YWJsZS5jb25jYXQsIHsiYSIsICJiIiwge319KSkKCmEgPSB7ImEiLCJiIiwiYyJ9CmFzc2VydCh0YWJsZS5jb25jYXQoYSwgIiwiLCAxLCAwKSA9PSAiIikKYXNzZXJ0KHRhYmxlLmNvbmNhdChhLCAiLCIsIDEsIDEpID09ICJhIikKYXNzZXJ0KHRhYmxlLmNvbmNhdChhLCAiLCIsIDEsIDIpID09ICJhLGIiKQphc3NlcnQodGFibGUuY29uY2F0KGEsICIsIiwgMikgPT0gImIsYyIpCmFzc2VydCh0YWJsZS5jb25jYXQoYSwgIiwiLCAzKSA9PSAiYyIpCmFzc2VydCh0YWJsZS5jb25jYXQoYSwgIiwiLCA0KSA9PSAiIikKCmlmIG5vdCBfcG9ydCB0aGVuCgogIGxvY2FsIGxvY2FsZXMgPSB7ICJwdGIiLCAicHRfQlIuaXNvODg1OTEiLCAiSVNPLTg4NTktMSIgfQogIGxvY2FsIGZ1bmN0aW9uIHRyeWxvY2FsZSAodykKICAgIGZvciBpID0gMSwgI2xvY2FsZXMgZG8KICAgICAgaWYgb3Muc2V0bG9jYWxlKGxvY2FsZXNbaV0sIHcpIHRoZW4KICAgICAgICBwcmludChzdHJpbmcuZm9ybWF0KCInJXMnIGxvY2FsZSBzZXQgdG8gJyVzJyIsIHcsIGxvY2FsZXNbaV0pKQogICAgICAgIHJldHVybiBsb2NhbGVzW2ldCiAgICAgIGVuZAogICAgZW5kCiAgICBwcmludChzdHJpbmcuZm9ybWF0KCInJXMnIGxvY2FsZSBub3QgZm91bmQiLCB3KSkKICAgIHJldHVybiBmYWxzZQogIGVuZAoKICBpZiB0cnlsb2NhbGUoImNvbGxhdGUiKSAgdGhlbgogICAgYXNzZXJ0KCJhbG8iIDwgIuFsbyIgYW5kICLhbG8iIDwgImFtbyIpCiAgZW5kCgogIGlmIHRyeWxvY2FsZSgiY3R5cGUiKSB0aGVuCiAgICBhc3NlcnQoc3RyaW5nLmdzdWIoIuHp7fP6IiwgIiVhIiwgIngiKSA9PSAieHh4eHgiKQogICAgYXNzZXJ0KHN0cmluZy5nc3ViKCLhwenJIiwgIiVsIiwgIngiKSA9PSAieMF4ySIpCiAgICBhc3NlcnQoc3RyaW5nLmdzdWIoIuHB6ckiLCAiJXUiLCAieCIpID09ICLheOl4IikKICAgIGFzc2VydChzdHJpbmcudXBwZXIi4cHpe3h1eHV95+NvIiA9PSAiwcHJe1hVWFV9x8NPIikKICBlbmQKCiAgb3Muc2V0bG9jYWxlKCJDIikKICBhc3NlcnQob3Muc2V0bG9jYWxlKCkgPT0gJ0MnKQogIGFzc2VydChvcy5zZXRsb2NhbGUobmlsLCAibnVtZXJpYyIpID09ICdDJykKCmVuZAoKCi0tIGJ1ZyBpbiBMdWEgNS4zLjIKLS0gJ2dtYXRjaCcgaXRlcmF0b3IgZG9lcyBub3Qgd29yayBhY3Jvc3MgY29yb3V0aW5lcwpkbwogIGxvY2FsIGYgPSBzdHJpbmcuZ21hdGNoKCIxIDIgMyA0IDUiLCAiJWQrIikKICBhc3NlcnQoZigpID09ICIxIikKICBjbyA9IGNvcm91dGluZS53cmFwKGYpCiAgYXNzZXJ0KGNvKCkgPT0gIjIiKQplbmQKCgppZiBUPT1uaWwgdGhlbgogIChNZXNzYWdlIG9yIHByaW50KQogICAgICgiXG4gPj4+IHRlc3RDIG5vdCBhY3RpdmU6IHNraXBwaW5nICdwdXNoZnN0cmluZycgdGVzdHMgPDw8XG4iKQplbHNlCgogIHByaW50InRlc3RpbmcgJ3B1c2hmc3RyaW5nJyIKCiAgLS0gZm9ybWF0cyAlVSwgJWYsICVJIGFscmVhZHkgdGVzdGVkIGVsc2V3aGVyZQoKICBsb2NhbCBibGVuID0gNDAwICAgIC0tIGludGVybmFsIGJ1ZmZlciBsZW5ndGggaW4gJ2x1YU9fcHVzaGZzdHJpbmcnCgogIGxvY2FsIGZ1bmN0aW9uIGNhbGxwZnMgKG9wLCBmbXQsIG4pCiAgICBsb2NhbCB4ID0ge1QudGVzdEMoInB1c2hmc3RyaW5nIiAuLiBvcCAuLiAiOyByZXR1cm4gKiIsIGZtdCwgbil9CiAgICAtLSBzdGFjayBoYXMgY29kZSwgJ2ZtdCcsICduJywgYW5kIHJlc3VsdCBmcm9tIG9wZXJhdGlvbgogICAgYXNzZXJ0KCN4ID09IDQpICAtLSBtYWtlIHN1cmUgbm90aGluZyBlbHNlIHdhcyBsZWZ0IGluIHRoZSBzdGFjawogICAgcmV0dXJuIHhbNF0KICBlbmQKCiAgbG9jYWwgZnVuY3Rpb24gdGVzdHBmcyAob3AsIGZtdCwgbikKICAgIGFzc2VydChjYWxscGZzKG9wLCBmbXQsIG4pID09IHN0cmluZy5mb3JtYXQoZm10LCBuKSkKICBlbmQKCiAgdGVzdHBmcygiSSIsICIiLCAwKQogIHRlc3RwZnMoIkkiLCBzdHJpbmcucmVwKCJhIiwgYmxlbiAtIDEpLCAwKQogIHRlc3RwZnMoIkkiLCBzdHJpbmcucmVwKCJhIiwgYmxlbiksIDApCiAgdGVzdHBmcygiSSIsIHN0cmluZy5yZXAoImEiLCBibGVuICsgMSksIDApCgogIGxvY2FsIHN0ciA9IHN0cmluZy5yZXAoImFiIiwgYmxlbikgLi4gIiVkIiAuLiBzdHJpbmcucmVwKCJkIiwgYmxlbiAvIDIpCiAgdGVzdHBmcygiSSIsIHN0ciwgMl4xNCkKICB0ZXN0cGZzKCJJIiwgc3RyLCAtMl4xNSkKCiAgc3RyID0gIiVkIiAuLiBzdHJpbmcucmVwKCJjZCIsIGJsZW4pCiAgdGVzdHBmcygiSSIsIHN0ciwgMl4xNCkKICB0ZXN0cGZzKCJJIiwgc3RyLCAtMl4xNSkKCiAgc3RyID0gc3RyaW5nLnJlcCgiYyIsIGJsZW4gLSAyKSAuLiAiJWQiCiAgdGVzdHBmcygiSSIsIHN0ciwgMl4xNCkKICB0ZXN0cGZzKCJJIiwgc3RyLCAtMl4xNSkKCiAgZm9yIGwgPSAxMiwgMTQgZG8KICAgIGxvY2FsIHN0cjEgPSBzdHJpbmcucmVwKCJhIiwgbCkKICAgIGZvciBpID0gMCwgNTAwLCAxMyBkbwogICAgICBmb3IgaiA9IDAsIDUwMCwgMTMgZG8KICAgICAgICBzdHIgPSBzdHJpbmcucmVwKCJhIiwgaSkgLi4gIiVzIiAuLiBzdHJpbmcucmVwKCJkIiwgaikKICAgICAgICB0ZXN0cGZzKCJTIiwgc3RyLCBzdHIxKQogICAgICAgIHRlc3RwZnMoIlMiLCBzdHIsIHN0cikKICAgICAgZW5kCiAgICBlbmQKICBlbmQKCiAgc3RyID0gImFiYyAlYyBkZWYiCiAgdGVzdHBmcygiSSIsIHN0ciwgc3RyaW5nLmJ5dGUoIkEiKSkKICB0ZXN0cGZzKCJJIiwgc3RyLCAyNTUpCgogIHN0ciA9IHN0cmluZy5yZXAoImEiLCBibGVuIC0gMSkgLi4gIiVwIiAuLiBzdHJpbmcucmVwKCJjZCIsIGJsZW4pCiAgdGVzdHBmcygiUCIsIHN0ciwge30pCgogIHN0ciA9IHN0cmluZy5yZXAoIiUlIiwgMyAqIGJsZW4pIC4uICIlcCIgLi4gc3RyaW5nLnJlcCgiJSUiLCAyICogYmxlbikKICB0ZXN0cGZzKCJQIiwgc3RyLCB7fSkKZW5kCgoKcHJpbnQoJ09LJykKCg==