import java.util.*;
import java.io.*;
class Main
{
public static void main
(String[] args
) { IntegerType int1 = new IntegerType(1);
IntegerType int2 = new IntegerType(1);
Set<IntegerType> set1 = new HashSet<>();
set1.add(int1);
Set<IntegerType> set2 = new HashSet<>();
set2.add(int2);
System.
out.
println(set1.
equals(set2
)); }
}
class IntegerType {
private int value;
public IntegerType(int value) {
this.value = value;
}
return this.value;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + value;
return result;
}
@Override
public boolean equals
(Object o
) { boolean result = false;
if (o == null || o.getClass() != getClass()) {
result = false;
} else {
IntegerType integerType = (IntegerType) o;
if (this.value == integerType.value()) {
result = true;
}
}
return result;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwoKY2xhc3MgTWFpbgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgSW50ZWdlclR5cGUgaW50MSA9IG5ldyBJbnRlZ2VyVHlwZSgxKTsKICAgICAgICBJbnRlZ2VyVHlwZSBpbnQyID0gbmV3IEludGVnZXJUeXBlKDEpOwogICAgICAgIFNldDxJbnRlZ2VyVHlwZT4gc2V0MSA9IG5ldyBIYXNoU2V0PD4oKTsKICAgICAgICBzZXQxLmFkZChpbnQxKTsKICAgICAgICBTZXQ8SW50ZWdlclR5cGU+IHNldDIgPSBuZXcgSGFzaFNldDw+KCk7CiAgICAgICAgc2V0Mi5hZGQoaW50Mik7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzZXQxLmVxdWFscyhzZXQyKSk7CiAgICB9Cn0KY2xhc3MgSW50ZWdlclR5cGUgewoKICAgICAgICBwcml2YXRlIGludCB2YWx1ZTsKCiAgICAgICAgcHVibGljIEludGVnZXJUeXBlKGludCB2YWx1ZSkgewogICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgSW50ZWdlciB2YWx1ZSgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7CiAgICAgICAgfQoKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgewogICAgICAgICAgICBmaW5hbCBpbnQgcHJpbWUgPSAzMTsKICAgICAgICAgICAgaW50IHJlc3VsdCA9IDE7CiAgICAgICAgICAgIHJlc3VsdCA9IHByaW1lICogcmVzdWx0ICsgdmFsdWU7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQoKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgaWYgKG8gPT0gbnVsbCB8fCBvLmdldENsYXNzKCkgIT0gZ2V0Q2xhc3MoKSkgewogICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBJbnRlZ2VyVHlwZSBpbnRlZ2VyVHlwZSA9IChJbnRlZ2VyVHlwZSkgbzsKICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09IGludGVnZXJUeXBlLnZhbHVlKCkpIHsKICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQp9