// Path: src/main/java/tc/oc/tracker/base/SimpleLifetimeManager.java
// public class SimpleLifetimeManager implements LifetimeManager {
//     public @Nonnull Lifetime getLifetime(@Nonnull LivingEntity entity) {
//         Preconditions.checkNotNull(entity, "entity");
// 
//         Lifetime lifetime = this.lifetimes.get(entity);
//         if(lifetime == null) {
//             lifetime = new SimpleLifetime();
//             this.lifetimes.put(entity, lifetime);
//         }
// 
//         return lifetime;
//     }
// 
//     public @Nonnull Lifetime setLifetime(@Nonnull LivingEntity entity, @Nonnull Lifetime lifetime) {
//         Preconditions.checkNotNull(entity, "entity");
//         Preconditions.checkNotNull(lifetime, "lifetime");
// 
//         Lifetime old = this.lifetimes.put(entity, lifetime);
//         if(old != null) {
//             return old;
//         } else {
//             return new SimpleLifetime();
//         }
//     }
// 
//     public @Nonnull Lifetime newLifetime(@Nonnull LivingEntity entity) {
//         Preconditions.checkNotNull(entity, "entity");
// 
//         Lifetime lifetime = new SimpleLifetime();
//         this.lifetimes.put(entity, lifetime);
// 
//         return lifetime;
//     }
// 
//     public @Nonnull Lifetime endLifetime(@Nonnull LivingEntity entity) {
//         Preconditions.checkNotNull(entity, "entity");
// 
//         Lifetime old = this.lifetimes.remove(entity);
//         if(old != null) {
//             return old;
//         } else {
//             return new SimpleLifetime();
//         }
//     }
// 
//     private final Map<LivingEntity, Lifetime> lifetimes = new WeakHashMap<LivingEntity, Lifetime>();
// }


import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.bukkit.entity.LivingEntity;
import tc.oc.tracker.base.SimpleLifetimeManager;
package tc.oc.tracker;




public final class Lifetimes {
    private Lifetimes() { }

    public static @Nonnull LifetimeManager getManager() {
        if(manager == null) {
// Path: src/main/java/tc/oc/tracker/base/SimpleLifetimeManager.java
// public class SimpleLifetimeManager implements LifetimeManager {
//     public @Nonnull Lifetime getLifetime(@Nonnull LivingEntity entity) {
//         Preconditions.checkNotNull(entity, "entity");
// 
//         Lifetime lifetime = this.lifetimes.get(entity);
//         if(lifetime == null) {
//             lifetime = new SimpleLifetime();
//             this.lifetimes.put(entity, lifetime);
//         }
// 
//         return lifetime;
//     }
// 
//     public @Nonnull Lifetime setLifetime(@Nonnull LivingEntity entity, @Nonnull Lifetime lifetime) {
//         Preconditions.checkNotNull(entity, "entity");
//         Preconditions.checkNotNull(lifetime, "lifetime");
// 
//         Lifetime old = this.lifetimes.put(entity, lifetime);
//         if(old != null) {
//             return old;
//         } else {
//             return new SimpleLifetime();
//         }
//     }
// 
//     public @Nonnull Lifetime newLifetime(@Nonnull LivingEntity entity) {
//         Preconditions.checkNotNull(entity, "entity");
// 
//         Lifetime lifetime = new SimpleLifetime();
//         this.lifetimes.put(entity, lifetime);
// 
//         return lifetime;
//     }
// 
//     public @Nonnull Lifetime endLifetime(@Nonnull LivingEntity entity) {
//         Preconditions.checkNotNull(entity, "entity");
// 
//         Lifetime old = this.lifetimes.remove(entity);
//         if(old != null) {
//             return old;
//         } else {
//             return new SimpleLifetime();
//         }
//     }
// 
//     private final Map<LivingEntity, Lifetime> lifetimes = new WeakHashMap<LivingEntity, Lifetime>();
// }


// Path: src/main/java/tc/oc/tracker/Lifetimes.java
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.bukkit.entity.LivingEntity;
import tc.oc.tracker.base.SimpleLifetimeManager;

package tc.oc.tracker;




public final class Lifetimes {
    private Lifetimes() { }

    public static @Nonnull LifetimeManager getManager() {
        if(manager == null) {
            manager = new SimpleLifetimeManager();