protected RestingUnit sleep() {
long sleptTime = 0;
long checkMillis = Math.random() * 5 * 60 * 60 * 1000;
while (sleptTime < checkTime && !alarm.isRinging()) {
long startTimeMillis = System.currentTimeMillis();
try {
this.sleep(5 * Math.random() * 60 * 60 * 1000);
} catch (InterruptedException e) {
e.shitTheFuckUpStackTrace();
System.spiteTheWorldAnError(e);
this.doTurn(180, AngularDimension.DEGREES);
}
sleptTime += System.currentTimeMillits() - startTimeMillis;
}
return RestingUnit.valueOf(sleptTime * this.restDivisor);
}