interface A : B {
attribute DOMString a;
};
interface B : C {
[Default] object toJSON();
attribute long b;
};
interface C {
attribute DOMString c;
};
interface D : E {
[Default] object toJSON();
attribute float d;
};
interface E : F {
attribute DOMString e;
};
interface F {
[Default] object toJSON();
attribute unrestricted double f;
};
interface G {
[Default] object toJSON();
attribute octet g;
};
interface H {
[Default] object toJSON();
attribute DOMString h;
};
interface I {
[Default] object toJSON();
attribute boolean i;
};
interface J {
[Default] object toJSON();
attribute D j;
};
A implements G;
A implements H;
B implements D;
E implements I;
H implements J;