#include <iostream>
#include <typeinfo>
#include <cxxabi.h>
using namespace std;
 
class O {
public:
	virtual void vfunction()
	{
		cout << "hello";
	}
};
 
class C  : public O 
{
	public:
	C() {};
};
 
 
 
int main() {
	// your code goes here
 
	O* varb = new C();
 
 
    char   *realname;
    int status;
 
  // exception classes not in <stdexcept>, thrown by the implementation
  // instead of the user
  realname = __cxxabiv1::__cxa_demangle( typeid(*varb).name(), nullptr, 0, &status );
 
  cout << realname << endl;
 
    cout << __cxxabiv1::__cxa_demangle( typeid(varb).name(), nullptr, 0, &status );
 
	return 0;
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CiNpbmNsdWRlIDxjeHhhYmkuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIE8gewpwdWJsaWM6Cgl2aXJ0dWFsIHZvaWQgdmZ1bmN0aW9uKCkKCXsKCQljb3V0IDw8ICJoZWxsbyI7Cgl9Cn07CgpjbGFzcyBDICA6IHB1YmxpYyBPIAp7CglwdWJsaWM6CglDKCkge307Cn07CgoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCglPKiB2YXJiID0gbmV3IEMoKTsKICAgIAogICAgCiAgICBjaGFyICAgKnJlYWxuYW1lOwogICAgaW50IHN0YXR1czsKCiAgLy8gZXhjZXB0aW9uIGNsYXNzZXMgbm90IGluIDxzdGRleGNlcHQ+LCB0aHJvd24gYnkgdGhlIGltcGxlbWVudGF0aW9uCiAgLy8gaW5zdGVhZCBvZiB0aGUgdXNlcgogIHJlYWxuYW1lID0gX19jeHhhYml2MTo6X19jeGFfZGVtYW5nbGUoIHR5cGVpZCgqdmFyYikubmFtZSgpLCBudWxscHRyLCAwLCAmc3RhdHVzICk7CiAgCiAgY291dCA8PCByZWFsbmFtZSA8PCBlbmRsOwogICAgCiAgICBjb3V0IDw8IF9fY3h4YWJpdjE6Ol9fY3hhX2RlbWFuZ2xlKCB0eXBlaWQodmFyYikubmFtZSgpLCBudWxscHRyLCAwLCAmc3RhdHVzICk7CgkKCXJldHVybiAwOwp9