import java.util.Objects;
 
class Ideone {
 
    public static void main 
(String[] args
) {         Loop.from(0).to(10).execute(() -> {
            System.
out.
println("Hello World!");         });
    }
}
 
class Loop {
    private final int from;
    private final int to;
 
    private Loop(Builder builder) {
        this.from = builder.from();
        this.to = builder.to();
    }
 
    public static Builder from(int from) {
        return new Builder().from(from);
    }
 
    public static Builder to(int to) {
        return new Builder().to(to);
    }
 
    public void execute
(Runnable executable
) {         for (int i = from; i < to; i++) {
            executable.run();
        }
    }
 
    pupblic static class Builder {
        private int from = 0;
 
        private Builder() {}
 
        public Builder from(int from) {
            this.from = from;
            return this;
        }
 
        private int from() {
            return from;
        }
 
        public Builder to(int to) {
            this.to = to;
            return this;
        }
 
        private int to() {
            return to;
        }
 
        public void execute
(Runnable runnable
) {             Objects.requireNonNull(runnable);
            new Loop(this).execute(runnable);
        }
    }
}
				aW1wb3J0IGphdmEudXRpbC5PYmplY3RzOwoKY2xhc3MgSWRlb25lIHsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgewogICAgICAgIExvb3AuZnJvbSgwKS50bygxMCkuZXhlY3V0ZSgoKSAtPiB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSGVsbG8gV29ybGQhIik7CiAgICAgICAgfSk7CiAgICB9Cn0KCmNsYXNzIExvb3AgewogICAgcHJpdmF0ZSBmaW5hbCBpbnQgZnJvbTsKICAgIHByaXZhdGUgZmluYWwgaW50IHRvOwoKICAgIHByaXZhdGUgTG9vcChCdWlsZGVyIGJ1aWxkZXIpIHsKICAgICAgICB0aGlzLmZyb20gPSBidWlsZGVyLmZyb20oKTsKICAgICAgICB0aGlzLnRvID0gYnVpbGRlci50bygpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgQnVpbGRlciBmcm9tKGludCBmcm9tKSB7CiAgICAgICAgcmV0dXJuIG5ldyBCdWlsZGVyKCkuZnJvbShmcm9tKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIEJ1aWxkZXIgdG8oaW50IHRvKSB7CiAgICAgICAgcmV0dXJuIG5ldyBCdWlsZGVyKCkudG8odG8pOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIGV4ZWN1dGUoUnVubmFibGUgZXhlY3V0YWJsZSkgewogICAgICAgIGZvciAoaW50IGkgPSBmcm9tOyBpIDwgdG87IGkrKykgewogICAgICAgICAgICBleGVjdXRhYmxlLnJ1bigpOwogICAgICAgIH0KICAgIH0KCiAgICBwdXBibGljIHN0YXRpYyBjbGFzcyBCdWlsZGVyIHsKICAgICAgICBwcml2YXRlIGludCBmcm9tID0gMDsKICAgICAgICBwcml2YXRlIEludGVnZXIgdG8gPSBudWxsOwoKICAgICAgICBwcml2YXRlIEJ1aWxkZXIoKSB7fQoKICAgICAgICBwdWJsaWMgQnVpbGRlciBmcm9tKGludCBmcm9tKSB7CiAgICAgICAgICAgIHRoaXMuZnJvbSA9IGZyb207CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KCiAgICAgICAgcHJpdmF0ZSBpbnQgZnJvbSgpIHsKICAgICAgICAgICAgcmV0dXJuIGZyb207CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgQnVpbGRlciB0byhpbnQgdG8pIHsKICAgICAgICAgICAgdGhpcy50byA9IHRvOwogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgaW50IHRvKCkgewogICAgICAgICAgICByZXR1cm4gdG87CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgdm9pZCBleGVjdXRlKFJ1bm5hYmxlIHJ1bm5hYmxlKSB7CiAgICAgICAgICAgIE9iamVjdHMucmVxdWlyZU5vbk51bGwocnVubmFibGUpOwogICAgICAgICAgICBuZXcgTG9vcCh0aGlzKS5leGVjdXRlKHJ1bm5hYmxlKTsKICAgICAgICB9CiAgICB9Cn0=