/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import sun.misc.Unsafe;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
new Accessor().run();
}
}
class Data{
int x = 0;
}
class Accessor{
private Data data;
private long off;
public static final Unsafe unsafe;
public void run(){
data = new Data();
base = data;
off = 12;
unsafe.putInt(base,off,1);
assert(data.x == 1);
}
static{
try {
Constructor<Unsafe> unsafeConstructor = Unsafe.class.getDeclaredConstructor();
unsafeConstructor.setAccessible(true);
unsafe = unsafeConstructor.newInstance();
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgc3VuLm1pc2MuVW5zYWZlOwppbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuQ29uc3RydWN0b3I7CmltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQluZXcgQWNjZXNzb3IoKS5ydW4oKTsKCX0KfQoKY2xhc3MgRGF0YXsKICAgIGludCB4ID0gMDsKfQoKY2xhc3MgQWNjZXNzb3J7Cglwcml2YXRlIERhdGEgZGF0YTsKCXByaXZhdGUgT2JqZWN0IGJhc2U7Cglwcml2YXRlIGxvbmcgb2ZmOwoJcHVibGljIHN0YXRpYyBmaW5hbCBVbnNhZmUgdW5zYWZlOwoJCglwdWJsaWMgdm9pZCBydW4oKXsKCSAgICBkYXRhID0gbmV3IERhdGEoKTsKCSAgICAKCSAgICBiYXNlID0gZGF0YTsKCSAgICBvZmYgPSAxMjsKCQoJICAgIHVuc2FmZS5wdXRJbnQoYmFzZSxvZmYsMSk7CgkgICAgYXNzZXJ0KGRhdGEueCA9PSAxKTsKCX0KCiAgICBzdGF0aWN7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgQ29uc3RydWN0b3I8VW5zYWZlPiB1bnNhZmVDb25zdHJ1Y3RvciA9IFVuc2FmZS5jbGFzcy5nZXREZWNsYXJlZENvbnN0cnVjdG9yKCk7CiAgICAgICAgICAgIHVuc2FmZUNvbnN0cnVjdG9yLnNldEFjY2Vzc2libGUodHJ1ZSk7CiAgICAgICAgICAgIHVuc2FmZSA9IHVuc2FmZUNvbnN0cnVjdG9yLm5ld0luc3RhbmNlKCk7CiAgICAgICAgfSBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIHwgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiB8IElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gfCBJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZSk7CiAgICAgICAgfQogICAgfQp9Cg==