// Path: src/main/java/redis/clients/collections/Ranking.java
// public interface Ranking<T extends Number> {
// 
// 	T getPoints();
// 	
// 	String getName();
// }
// 
// Path: src/main/java/redis/clients/collections/ScoresPoint.java
// public interface ScoresPoint<T extends Number> {
// 
// 	void initialPoint(String name, T value);
// 	
// 	T increment(String field, T value);
// 	
// 	T decrement(String field, T value);
// 	
// 	void remove(String field);
// 
// 	int size();
// 	
// 	List<Ranking<T>> range(long initial, long end);
// 	
// 	List<Ranking<T>> top(int top);
// 	
// 	List<Ranking<T>> last(int top);
// 	
// 	List<Ranking<T>> getRanking();
// }


import java.util.List;
import java.util.Objects;
import redis.clients.collections.Ranking;
import redis.clients.collections.ScoresPoint;
import redis.clients.jedis.Jedis;
	

	@Override
	public void remove(String name) {
		jedis.zrem(keyWithNameSpace, name);
	}

	@Override
	public int size() {
		return jedis.zcard(keyWithNameSpace).intValue();
	}
	
	@Override
	public List<Ranking<T>> top(int top) {
		return range(0, top-1);
	}
	
	@Override
	public List<Ranking<T>> last(int top) {
		long start = size() - top;
		long end = size() - 1;
		return range(start, end);
	}

	@Override
	public List<Ranking<T>> getRanking() {
		return range(0, size()-1);
	}
	
	@Override
// Path: src/main/java/redis/clients/collections/Ranking.java
// public interface Ranking<T extends Number> {
// 
// 	T getPoints();
// 	
// 	String getName();
// }
// 
// Path: src/main/java/redis/clients/collections/ScoresPoint.java
// public interface ScoresPoint<T extends Number> {
// 
// 	void initialPoint(String name, T value);
// 	
// 	T increment(String field, T value);
// 	
// 	T decrement(String field, T value);
// 	
// 	void remove(String field);
// 
// 	int size();
// 	
// 	List<Ranking<T>> range(long initial, long end);
// 	
// 	List<Ranking<T>> top(int top);
// 	
// 	List<Ranking<T>> last(int top);
// 	
// 	List<Ranking<T>> getRanking();
// }


// Path: src/main/java/redis/clients/collections/builder/AbstractScoresPoint.java
import java.util.List;
import java.util.Objects;
import redis.clients.collections.Ranking;
import redis.clients.collections.ScoresPoint;
import redis.clients.jedis.Jedis;

	

	@Override
	public void remove(String name) {
		jedis.zrem(keyWithNameSpace, name);
	}

	@Override
	public int size() {
		return jedis.zcard(keyWithNameSpace).intValue();
	}
	
	@Override
	public List<Ranking<T>> top(int top) {
		return range(0, top-1);
	}
	
	@Override
	public List<Ranking<T>> last(int top) {
		long start = size() - top;
		long end = size() - 1;
		return range(start, end);
	}

	@Override
	public List<Ranking<T>> getRanking() {
		return range(0, size()-1);
	}
	
	@Override
	public int hashCode() {