import std.stdio;
struct A
{
private float[3] values;
ref float opIndex(size_t i) { return values[i]; }
}
struct S
{
A[3] values;
this(float)
{
for(int i = 0; i < 3; ++i)
{
values[i][0] = 0;
values[i][1] = 0;
values[i][2] = 0;
}
values[0][0] = 1;
values[1][1] = 2;
values[2][2] = 3;
}
ref A opIndex(size_t i) { return values[i]; }
}
int main(string[] argv)
{
enum v = S(1.0f);
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 3; ++j)
{
write(v[i][j], " ");
}
write("\n");
}
auto s = S(1.0f);
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 3; ++j)
{
write(s[i][j], " ");
}
write("\n");
}
return 0;
}
aW1wb3J0IHN0ZC5zdGRpbzsKIApzdHJ1Y3QgQQp7CiAgICBwcml2YXRlIGZsb2F0WzNdIHZhbHVlczsKIAogICAgcmVmIGZsb2F0IG9wSW5kZXgoc2l6ZV90IGkpIHsgcmV0dXJuIHZhbHVlc1tpXTsgfQogCn0KIApzdHJ1Y3QgUwp7CiAgICBBWzNdIHZhbHVlczsKIAogICAgdGhpcyhmbG9hdCkKICAgIHsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgMzsgKytpKQogICAgICAgIHsKICAgICAgICAgICAgdmFsdWVzW2ldWzBdID0gMDsKICAgICAgICAgICAgdmFsdWVzW2ldWzFdID0gMDsKICAgICAgICAgICAgdmFsdWVzW2ldWzJdID0gMDsKICAgICAgICB9CiAKICAgICAgICB2YWx1ZXNbMF1bMF0gPSAxOwogICAgICAgIHZhbHVlc1sxXVsxXSA9IDI7CiAgICAgICAgdmFsdWVzWzJdWzJdID0gMzsKICAgIH0KIAogICAgcmVmIEEgb3BJbmRleChzaXplX3QgaSkgeyByZXR1cm4gdmFsdWVzW2ldOyB9Cn0KIAppbnQgbWFpbihzdHJpbmdbXSBhcmd2KQp7CiAKICAgIGVudW0gdiA9IFMoMS4wZik7CiAKICAgIGZvcihpbnQgaSA9IDA7IGkgPCAzOyArK2kpCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IDM7ICsraikKICAgICAgICB7CiAgICAgICAgICAgIHdyaXRlKHZbaV1bal0sICIgIik7CiAgICAgICAgfQogICAgICAgIHdyaXRlKCJcbiIpOwogICAgfQogCiAgICBhdXRvIHMgPSBTKDEuMGYpOwogCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgMzsgKytpKQogICAgewogICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCAzOyArK2opCiAgICAgICAgewogICAgICAgICAgICB3cml0ZShzW2ldW2pdLCAiICIpOwogICAgICAgIH0KICAgICAgICB3cml0ZSgiXG4iKTsKICAgIH0KIAogCiAgICByZXR1cm4gMDsKfQ==