#include <iostream>
#include <string>
const std::string text = R"quine(
const std::string prefix = "#include <iostream>\n"
"#include <string>\n\n"
"const std::string text = R\"quine(" ;
const std::string suffix = ")quine\";\n\n";
const std::string quine = prefix + text + suffix + text ;
// _
// / )
// / /
// / / /)
// / / .-```-. / ^`-.
// \ \ / \_/ (|) `o
// \ \ / .-. \\ _ ,--'
// \ \/ / ) \( `^^^
// \ \/ ( )
// \ ) ) /
// ) /__ | (__
// (___))) (__)))
//
int main() { std::cout << quine ; }
)quine";
const std::string prefix = "#include <iostream>\n"
"#include <string>\n\n"
"const std::string text = R\"quine(" ;
const std::string suffix = ")quine\";\n\n";
const std::string quine = prefix + text + suffix + text ;
// _
// / )
// / /
// / / /)
// / / .-```-. / ^`-.
// \ \ / \_/ (|) `o
// \ \ / .-. \\ _ ,--'
// \ \/ / ) \( `^^^
// \ \/ ( )
// \ ) ) /
// ) /__ | (__
// (___))) (__)))
//
int main() { std::cout << quine ; }
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKY29uc3Qgc3RkOjpzdHJpbmcgdGV4dCA9IFIicXVpbmUoCiAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgcHJlZml4ID0gIiNpbmNsdWRlIDxpb3N0cmVhbT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiI2luY2x1ZGUgPHN0cmluZz5cblxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdCBzdGQ6OnN0cmluZyB0ZXh0ID0gUlwicXVpbmUoIiA7CiAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgc3VmZml4ID0gIilxdWluZVwiO1xuXG4iOwogICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHF1aW5lID0gcHJlZml4ICsgdGV4dCArIHN1ZmZpeCArIHRleHQgOwogICAgICAgICAgICAvLyAgICAgICAgIF8KICAgICAgICAgICAgLy8gICAgICAgIC8gKQogICAgICAgICAgICAvLyAgICAgICAvIC8KICAgICAgICAgICAgLy8gICAgICAvIC8gICAgICAgICAgICAgICAvKQogICAgICAgICAgICAvLyAgICAgLyAvICAgICAuLWBgYC0uICAgLyBeYC0uCiAgICAgICAgICAgIC8vICAgICBcIFwgICAgLyAgICAgICBcXy8gICh8KSBgbwogICAgICAgICAgICAvLyAgICAgIFwgXCAgLyAgIC4tLiAgIFxcIF8gICwtLScKICAgICAgICAgICAgLy8gICAgICAgXCBcLyAgIC8gICApICAgXCggYF5eXgogICAgICAgICAgICAvLyAgICAgICAgXCAgIFwvICAgICggICAgKQogICAgICAgICAgICAvLyAgICAgICAgIFwgICApICAgICApICAvCiAgICAgICAgICAgIC8vICAgICAgICAgICkgL19fICAgIHwgKF9fCiAgICAgICAgICAgIC8vICAgICAgICAgKF9fXykpKSAgIChfXykpKQogICAgICAgICAgICAvLwogICAgICAgIGludCBtYWluKCkgeyBzdGQ6OmNvdXQgPDwgcXVpbmUgOyB9CgopcXVpbmUiOwoKCiAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgcHJlZml4ID0gIiNpbmNsdWRlIDxpb3N0cmVhbT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiI2luY2x1ZGUgPHN0cmluZz5cblxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdCBzdGQ6OnN0cmluZyB0ZXh0ID0gUlwicXVpbmUoIiA7CiAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgc3VmZml4ID0gIilxdWluZVwiO1xuXG4iOwogICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHF1aW5lID0gcHJlZml4ICsgdGV4dCArIHN1ZmZpeCArIHRleHQgOwogICAgICAgICAgICAvLyAgICAgICAgIF8KICAgICAgICAgICAgLy8gICAgICAgIC8gKQogICAgICAgICAgICAvLyAgICAgICAvIC8KICAgICAgICAgICAgLy8gICAgICAvIC8gICAgICAgICAgICAgICAvKQogICAgICAgICAgICAvLyAgICAgLyAvICAgICAuLWBgYC0uICAgLyBeYC0uCiAgICAgICAgICAgIC8vICAgICBcIFwgICAgLyAgICAgICBcXy8gICh8KSBgbwogICAgICAgICAgICAvLyAgICAgIFwgXCAgLyAgIC4tLiAgIFxcIF8gICwtLScKICAgICAgICAgICAgLy8gICAgICAgXCBcLyAgIC8gICApICAgXCggYF5eXgogICAgICAgICAgICAvLyAgICAgICAgXCAgIFwvICAgICggICAgKQogICAgICAgICAgICAvLyAgICAgICAgIFwgICApICAgICApICAvCiAgICAgICAgICAgIC8vICAgICAgICAgICkgL19fICAgIHwgKF9fCiAgICAgICAgICAgIC8vICAgICAgICAgKF9fXykpKSAgIChfXykpKQogICAgICAgICAgICAvLwogICAgICAgIGludCBtYWluKCkgeyBzdGQ6OmNvdXQgPDwgcXVpbmUgOyB9Cg==