Skip to contentLy8gPGJsb2NrOmRhdGE6MT4KY29uc3QgZGF0YSA9IHsKICBkYXRhc2V0czogW3sKICAgIGxhYmVsOiAnTXkgTWF0cml4JywKICAgIGRhdGE6IFsKICAgICAge3g6ICdBJywgeTogJ1gnLCB2OiAxMX0sCiAgICAgIHt4OiAnQScsIHk6ICdZJywgdjogMTJ9LAogICAgICB7eDogJ0EnLCB5OiAnWicsIHY6IDEzfSwKICAgICAge3g6ICdCJywgeTogJ1gnLCB2OiAyMX0sCiAgICAgIHt4OiAnQicsIHk6ICdZJywgdjogMjJ9LAogICAgICB7eDogJ0InLCB5OiAnWicsIHY6IDIzfSwKICAgICAge3g6ICdDJywgeTogJ1gnLCB2OiAzMX0sCiAgICAgIHt4OiAnQycsIHk6ICdZJywgdjogMzJ9LAogICAgICB7eDogJ0MnLCB5OiAnWicsIHY6IDMzfQogICAgXSwKICAgIGJhY2tncm91bmRDb2xvcihjb250ZXh0KSB7CiAgICAgIGNvbnN0IHZhbHVlID0gY29udGV4dC5kYXRhc2V0LmRhdGFbY29udGV4dC5kYXRhSW5kZXhdLnY7CiAgICAgIGNvbnN0IGFscGhhID0gKHZhbHVlIC0gNSkgLyA0MDsKICAgICAgcmV0dXJuIGhlbHBlcnMuY29sb3IoJ2dyZWVuJykuYWxwaGEoYWxwaGEpLnJnYlN0cmluZygpOwogICAgfSwKICAgIGJvcmRlckNvbG9yKGNvbnRleHQpIHsKICAgICAgY29uc3QgdmFsdWUgPSBjb250ZXh0LmRhdGFzZXQuZGF0YVtjb250ZXh0LmRhdGFJbmRleF0udjsKICAgICAgY29uc3QgYWxwaGEgPSAodmFsdWUgLSA1KSAvIDQwOwogICAgICByZXR1cm4gaGVscGVycy5jb2xvcignZGFya2dyZWVuJykuYWxwaGEoYWxwaGEpLnJnYlN0cmluZygpOwogICAgfSwKICAgIGJvcmRlcldpZHRoOiAxLAogICAgd2lkdGg6ICh7Y2hhcnR9KSA9PiAoY2hhcnQuY2hhcnRBcmVhIHx8IHt9KS53aWR0aCAvIDMgLSAxLAogICAgaGVpZ2h0OiAoe2NoYXJ0fSkgPT4oY2hhcnQuY2hhcnRBcmVhIHx8IHt9KS5oZWlnaHQgLyAzIC0gMQogIH1dCn07Ci8vIDwvYmxvY2s6ZGF0YT4KCi8vIDxibG9jazpjb25maWc6MD4KY29uc3QgY29uZmlnID0gewogIHR5cGU6ICdtYXRyaXgnLAogIGRhdGE6IGRhdGEsCiAgb3B0aW9uczogewogICAgcGx1Z2luczogewogICAgICBsZWdlbmQ6IGZhbHNlLAogICAgICB0b29sdGlwOiB7CiAgICAgICAgY2FsbGJhY2tzOiB7CiAgICAgICAgICB0aXRsZSgpIHsKICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgICAgfSwKICAgICAgICAgIGxhYmVsKGNvbnRleHQpIHsKICAgICAgICAgICAgY29uc3QgdiA9IGNvbnRleHQuZGF0YXNldC5kYXRhW2NvbnRleHQuZGF0YUluZGV4XTsKICAgICAgICAgICAgcmV0dXJuIFsneDogJyArIHYueCwgJ3k6ICcgKyB2LnksICd2OiAnICsgdi52XTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBzY2FsZXM6IHsKICAgICAgeDogewogICAgICAgIHR5cGU6ICdjYXRlZ29yeScsCiAgICAgICAgbGFiZWxzOiBbJ0EnLCAnQicsICdDJ10sCiAgICAgICAgdGlja3M6IHsKICAgICAgICAgIGRpc3BsYXk6IHRydWUKICAgICAgICB9LAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIGRpc3BsYXk6IGZhbHNlCiAgICAgICAgfQogICAgICB9LAogICAgICB5OiB7CiAgICAgICAgdHlwZTogJ2NhdGVnb3J5JywKICAgICAgICBsYWJlbHM6IFsnWCcsICdZJywgJ1onXSwKICAgICAgICBvZmZzZXQ6IHRydWUsCiAgICAgICAgdGlja3M6IHsKICAgICAgICAgIGRpc3BsYXk6IHRydWUKICAgICAgICB9LAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIGRpc3BsYXk6IGZhbHNlCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9OwovLyA8L2Jsb2NrOmNvbmZpZz4KCmNvbnN0IGFjdGlvbnMgPSBbCiAgewogICAgbmFtZTogJ1JhbmRvbWl6ZScsCiAgICBoYW5kbGVyKGNoYXJ0KSB7CiAgICAgIGNoYXJ0LmRhdGEuZGF0YXNldHMuZm9yRWFjaChkYXRhc2V0ID0+IHsKICAgICAgICBkYXRhc2V0LmRhdGEuZm9yRWFjaChwb2ludCA9PiB7CiAgICAgICAgICBwb2ludC52ID0gTWF0aC5yYW5kb20oKSAqIDUwOwogICAgICAgIH0pOwogICAgICB9KTsKICAgICAgY2hhcnQudXBkYXRlKCk7CiAgICB9CiAgfSwKXTsKCm1vZHVsZS5leHBvcnRzID0gewogIGFjdGlvbnMsCiAgY29uZmlnLAp9Ow==