diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2022-08-29 16:04:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-29 16:04:28 +0200 |
commit | 7d1f51a8937e0a86486267437d444696e81e8aa0 (patch) | |
tree | a5b145e7271998f7b4b968a2212ed487e54a92b5 /src/main/java/gtPlusPlus/plugin/villagers | |
parent | 5267969156d30b4bb5f4cb2279ebb49db6bd40e2 (diff) | |
download | GT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.tar.gz GT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.tar.bz2 GT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.zip |
Buildscript + Spotless (#318)
* Convert AES.java to readable class
* Buildscript
* Spotless
Diffstat (limited to 'src/main/java/gtPlusPlus/plugin/villagers')
16 files changed, 11544 insertions, 2699 deletions
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java b/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java index 09e4c4865f..3eba3333b4 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java @@ -2,129 +2,135 @@ package gtPlusPlus.plugin.villagers; import static gtPlusPlus.plugin.villagers.VillagerUtils.mVillagerMap; -import java.util.HashMap; - import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.VillagerRegistry; import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; import gtPlusPlus.api.interfaces.IPlugin; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.entity.EntityPrimedMiningExplosive; -import gtPlusPlus.core.entity.monster.EntityGiantChickenBase; -import gtPlusPlus.core.entity.monster.EntitySickBlaze; -import gtPlusPlus.core.entity.monster.EntityStaballoyConstruct; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.plugin.manager.Core_Manager; -import gtPlusPlus.plugin.villagers.block.BlockGenericSpawner; import gtPlusPlus.plugin.villagers.entity.EntityBaseVillager; import gtPlusPlus.plugin.villagers.entity.EntityNativeAustralian; import gtPlusPlus.plugin.villagers.trade.TradeHandlerAboriginal; import gtPlusPlus.plugin.villagers.trade.TradeHandlerBanker; import gtPlusPlus.plugin.villagers.trade.TradeHandlerTechnician; import gtPlusPlus.plugin.villagers.trade.TradeHandlerTrader; +import java.util.HashMap; import net.minecraft.util.ResourceLocation; public class Core_VillagerAdditions implements IPlugin { - public final static Core_VillagerAdditions mInstance; - private static boolean shouldLoad = false; + public static final Core_VillagerAdditions mInstance; + private static boolean shouldLoad = false; + + public static final HashMap<Integer, ResourceLocation> mVillagerSkins = new HashMap<Integer, ResourceLocation>(); + public static final AutoMap<Pair<Integer, IVillageTradeHandler>> mVillagerTrades = + new AutoMap<Pair<Integer, IVillageTradeHandler>>(); - public static final HashMap<Integer, ResourceLocation> mVillagerSkins = new HashMap<Integer, ResourceLocation>(); - public static final AutoMap<Pair<Integer, IVillageTradeHandler>> mVillagerTrades = new AutoMap<Pair<Integer, IVillageTradeHandler>>(); + static { + mInstance = new Core_VillagerAdditions(); + Core_Manager.registerPlugin(mInstance); + mInstance.log("Preparing " + mInstance.getPluginName() + " for use."); + } - static { - mInstance = new Core_VillagerAdditions(); - Core_Manager.registerPlugin(mInstance); - mInstance.log("Preparing "+mInstance.getPluginName()+" for use."); - } + @Override + public boolean preInit() { + if ( + /*CORE.ConfigSwitches.enableSulfuricAcidFix || */ CORE.DEVENV) { + shouldLoad = true; + } + if (shouldLoad) { + // Register Custom Villager Entity + EntityRegistry.registerGlobalEntityID( + EntityBaseVillager.class, + "WiseVillager", + EntityRegistry.findGlobalUniqueEntityId(), + Utils.rgbtoHexValue(180, 120, 120), + Utils.rgbtoHexValue(0, 0, 0)); + EntityRegistry.registerGlobalEntityID( + EntityNativeAustralian.class, + "Aboriginal", + EntityRegistry.findGlobalUniqueEntityId(), + Utils.rgbtoHexValue(50, 50, 50), + Utils.rgbtoHexValue(25, 25, 25)); + VillagerUtils.registerNewVillager(0, "Banker", "Banker", "Banker", "banker", new TradeHandlerBanker()); + VillagerUtils.registerNewVillager( + 1, "Technician", "Technician", "Technician", "technician", new TradeHandlerTechnician()); + VillagerUtils.registerNewVillager(2, "Trader", "Trader", "Trader", "trader", new TradeHandlerTrader()); + VillagerUtils.registerNewVillager( + 3, "Aboriginal", "Aboriginal", "Aboriginal", "aboriginal", new TradeHandlerAboriginal()); - @Override - public boolean preInit() { - if (/*CORE.ConfigSwitches.enableSulfuricAcidFix || */CORE.DEVENV) { - shouldLoad = true; - } - if (shouldLoad) { - //Register Custom Villager Entity - EntityRegistry.registerGlobalEntityID(EntityBaseVillager.class, "WiseVillager", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(180, 120, 120), Utils.rgbtoHexValue(0, 0, 0)); - EntityRegistry.registerGlobalEntityID(EntityNativeAustralian.class, "Aboriginal", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(50, 50, 50), Utils.rgbtoHexValue(25, 25, 25)); - VillagerUtils.registerNewVillager(0, "Banker", "Banker", "Banker", "banker", new TradeHandlerBanker()); - VillagerUtils.registerNewVillager(1, "Technician", "Technician", "Technician", "technician", new TradeHandlerTechnician()); - VillagerUtils.registerNewVillager(2, "Trader", "Trader", "Trader", "trader", new TradeHandlerTrader()); - VillagerUtils.registerNewVillager(3, "Aboriginal", "Aboriginal", "Aboriginal", "aboriginal", new TradeHandlerAboriginal()); - - if (mVillagerMap.size() > 0) { - for (VillagerObject g : mVillagerMap.values()) { - if (g != null && g.mID >= 0) { - VillagerRegistry.instance().registerVillagerId(7735+g.mID); - log("Registered a Custom Villager with ID of "+g.mID+"."); - //Utils.createNewMobSpawner(10+g.mID, EntityBaseVillager.class); - if (mVillagerSkins.get(g.mID) != null) { - VillagerRegistry.instance().registerVillagerSkin(7735+g.mID, mVillagerSkins.get(g.mID)); - log("Registered a Custom Skin for Villager with ID of "+g.mID+"."); - } - } - } - } - - //Register all Villager ID's and their Custom Trades. - if (mVillagerTrades.size() > 0) { - for (Pair<Integer, IVillageTradeHandler> g : mVillagerTrades) { - if (g != null && g.getKey() != null) { - if (g.getValue() != null) { - VillagerRegistry.instance().registerVillageTradeHandler(g.getKey(), g.getValue()); - log("Registered a Custom Trade for Villager with ID of "+g.getKey()+"."); - } - } - } - } - return true; - } - return false; - } + if (mVillagerMap.size() > 0) { + for (VillagerObject g : mVillagerMap.values()) { + if (g != null && g.mID >= 0) { + VillagerRegistry.instance().registerVillagerId(7735 + g.mID); + log("Registered a Custom Villager with ID of " + g.mID + "."); + // Utils.createNewMobSpawner(10+g.mID, EntityBaseVillager.class); + if (mVillagerSkins.get(g.mID) != null) { + VillagerRegistry.instance().registerVillagerSkin(7735 + g.mID, mVillagerSkins.get(g.mID)); + log("Registered a Custom Skin for Villager with ID of " + g.mID + "."); + } + } + } + } - @Override - public boolean init() { - if (shouldLoad) { - return true; - } - return false; - } + // Register all Villager ID's and their Custom Trades. + if (mVillagerTrades.size() > 0) { + for (Pair<Integer, IVillageTradeHandler> g : mVillagerTrades) { + if (g != null && g.getKey() != null) { + if (g.getValue() != null) { + VillagerRegistry.instance().registerVillageTradeHandler(g.getKey(), g.getValue()); + log("Registered a Custom Trade for Villager with ID of " + g.getKey() + "."); + } + } + } + } + return true; + } + return false; + } - @Override - public boolean postInit() { - if (shouldLoad) { - return true; - } - return false; - } + @Override + public boolean init() { + if (shouldLoad) { + return true; + } + return false; + } - @Override - public boolean serverStart() { - if (shouldLoad) { - return true; - } - return false; - } + @Override + public boolean postInit() { + if (shouldLoad) { + return true; + } + return false; + } - @Override - public boolean serverStop() { - if (shouldLoad) { - return true; - } - return false; - } + @Override + public boolean serverStart() { + if (shouldLoad) { + return true; + } + return false; + } - @Override - public String getPluginName() { - return "GT++ Enhanced Villagers"; - } + @Override + public boolean serverStop() { + if (shouldLoad) { + return true; + } + return false; + } - @Override - public String getPluginAbbreviation() { - return "Bank"; - } + @Override + public String getPluginName() { + return "GT++ Enhanced Villagers"; + } + @Override + public String getPluginAbbreviation() { + return "Bank"; + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java b/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java index e9cd254503..3c5eccbcc2 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java @@ -1,994 +1,9782 @@ package gtPlusPlus.plugin.villagers; -import org.apache.commons.lang3.StringUtils; - import gtPlusPlus.core.util.math.MathUtils; +import org.apache.commons.lang3.StringUtils; public class NameLists { - public static final String[] mFirstNames; - public static final String[] mLastNames; - public static final String[] mScottishFirstNames; - - static { - mFirstNames = generateFirstNames(); - mLastNames = generateLastNames(); - mScottishFirstNames = generateScottishFirstNames(); - } + public static final String[] mFirstNames; + public static final String[] mLastNames; + public static final String[] mScottishFirstNames; + + static { + mFirstNames = generateFirstNames(); + mLastNames = generateLastNames(); + mScottishFirstNames = generateScottishFirstNames(); + } + private static final String[] generateScottishFirstNames() { + return new String[] { + "Aadam", + "Aadit", + "Aahron", + "Aaran", + "Aaren", + "Aarez", + "Aarman", + "Aaron", + "Aaron-James", + "Aarron", + "Aaryan", + "Aaryn", + "Aayan", + "Aazaan", + "Abaan", + "Abbas", + "Abdallah", + "Abdalroof", + "Abdihakim", + "Abdirahman", + "Abdisalam", + "Abdul", + "Abdul-Aziz", + "Abdulbasir", + "Abdulkadir", + "Abdulkarem", + "Abdulkhader", + "Abdullah", + "Abdul-Majeed", + "Abdulmalik", + "Abdul-Rehman", + "Abdur", + "Abdurraheem", + "Abdur-Rahman", + "Abdur-Rehmaan", + "Abel", + "Abhinav", + "Abhisumant", + "Abid", + "Abir", + "Abraham", + "Abu", + "Abubakar", + "Ace", + "Adain", + "Adam", + "Adam-James", + "Addison", + "Addisson", + "Adegbola", + "Adegbolahan", + "Aden", + "Adenn", + "Adie", + "Adil", + "Aditya", + "Adnan", + "Adrian", + "Adrien", + "Aedan", + "Aedin", + "Aedyn", + "Aeron", + "Afonso", + "Ahmad", + "Ahmed", + "Ahmed-Aziz", + "Ahoua", + "Ahtasham", + "Aiadan", + "Aidan", + "Aiden", + "Aiden-Jack", + "Aiden-Vee", + "Aidian", + "Aidy", + "Ailin", + "Aiman", + "Ainsley", + "Ainslie", + "Airen", + "Airidas", + "Airlie", + "AJ", + "Ajay", + "A-Jay", + "Ajayraj", + "Akan", + "Akram", + "Al", + "Ala'", + "Alan", + "Alanas", + "Alasdair", + "Alastair", + "Alber", + "Albert", + "Albie", + "Aldred", + "Alec", + "Aled", + "Aleem", + "Aleksandar", + "Aleksander", + "Aleksandr", + "Aleksandrs", + "Alekzander", + "Alessandro", + "Alessio", + "Alex", + "Alexander", + "Alexei", + "Alexx", + "Alexzander", + "Alf", + "Alfee", + "Alfie", + "Alfred", + "Alfy", + "Alhaji", + "Al-Hassan", + "Ali", + "Aliekber", + "Alieu", + "Alihaider", + "Alisdair", + "Alishan", + "Alistair", + "Alistar", + "Alister", + "Aliyaan", + "Allan", + "Allan-Laiton", + "Allen", + "Allesandro", + "Allister", + "Ally", + "Alphonse", + "Altyiab", + "Alum", + "Alvern", + "Alvin", + "Alyas", + "Amaan", + "Aman", + "Amani", + "Ambanimoh", + "Ameer", + "Amgad", + "Ami", + "Amin", + "Amir", + "Ammaar", + "Ammar", + "Ammer", + "Amolpreet", + "Amos", + "Amrinder", + "Amrit", + "Amro", + "Anay", + "Andrea", + "Andreas", + "Andrei", + "Andrejs", + "Andrew", + "Andy", + "Anees", + "Anesu", + "Angel", + "Angelo", + "Angus", + "Anir", + "Anis", + "Anish", + "Anmolpreet", + "Annan", + "Anndra", + "Anselm", + "Anthony", + "Anthony-John", + "Antoine", + "Anton", + "Antoni", + "Antonio", + "Antony", + "Antonyo", + "Anubhav", + "Aodhan", + "Aon", + "Aonghus", + "Apisai", + "Arafat", + "Aran", + "Arandeep", + "Arann", + "Aray", + "Arayan", + "Archibald", + "Archie", + "Arda", + "Ardal", + "Ardeshir", + "Areeb", + "Areez", + "Aref", + "Arfin", + "Argyle", + "Argyll", + "Ari", + "Aria", + "Arian", + "Arihant", + "Aristomenis", + "Aristotelis", + "Arjuna", + "Arlo", + "Armaan", + "Arman", + "Armen", + "Arnab", + "Arnav", + "Arnold", + "Aron", + "Aronas", + "Arran", + "Arrham", + "Arron", + "Arryn", + "Arsalan", + "Artem", + "Arthur", + "Artur", + "Arturo", + "Arun", + "Arunas", + "Arved", + "Arya", + "Aryan", + "Aryankhan", + "Aryian", + "Aryn", + "Asa", + "Asfhan", + "Ash", + "Ashlee-jay", + "Ashley", + "Ashton", + "Ashton-Lloyd", + "Ashtyn", + "Ashwin", + "Asif", + "Asim", + "Aslam", + "Asrar", + "Ata", + "Atal", + "Atapattu", + "Ateeq", + "Athol", + "Athon", + "Athos-Carlos", + "Atli", + "Atom", + "Attila", + "Aulay", + "Aun", + "Austen", + "Austin", + "Avani", + "Averon", + "Avi", + "Avinash", + "Avraham", + "Awais", + "Awwal", + "Axel", + "Ayaan", + "Ayan", + "Aydan", + "Ayden", + "Aydin", + "Aydon", + "Ayman", + "Ayomide", + "Ayren", + "Ayrton", + "Aytug", + "Ayub", + "Ayyub", + "Azaan", + "Azedine", + "Azeem", + "Azim", + "Aziz", + "Azlan", + "Azzam", + "Azzedine", + "Babatunmise", + "Babur", + "Bader", + "Badr", + "Badsha", + "Bailee", + "Bailey", + "Bailie", + "Bailley", + "Baillie", + "Baley", + "Balian", + "Banan", + "Barath", + "Barkley", + "Barney", + "Baron", + "Barrie", + "Barry", + "Bartlomiej", + "Bartosz", + "Basher", + "Basile", + "Baxter", + "Baye", + "Bayley", + "Beau", + "Beinn", + "Bekim", + "Believe", + "Ben", + "Bendeguz", + "Benedict", + "Benjamin", + "Benjamyn", + "Benji", + "Benn", + "Bennett", + "Benny", + "Benoit", + "Bentley", + "Berkay", + "Bernard", + "Bertie", + "Bevin", + "Bezalel", + "Bhaaldeen", + "Bharath", + "Bilal", + "Bill", + "Billy", + "Binod", + "Bjorn", + "Blaike", + "Blaine", + "Blair", + "Blaire", + "Blake", + "Blazej", + "Blazey", + "Blessing", + "Blue", + "Blyth", + "Bo", + "Boab", + "Bob", + "Bobby", + "Bobby-Lee", + "Bodhan", + "Boedyn", + "Bogdan", + "Bohbi", + "Bony", + "Bowen", + "Bowie", + "Boyd", + "Bracken", + "Brad", + "Bradan", + "Braden", + "Bradley", + "Bradlie", + "Bradly", + "Brady", + "Bradyn", + "Braeden", + "Braiden", + "Brajan", + "Brandan", + "Branden", + "Brandon", + "Brandonlee", + "Brandon-Lee", + "Brandyn", + "Brannan", + "Brayden", + "Braydon", + "Braydyn", + "Breandan", + "Brehme", + "Brendan", + "Brendon", + "Brendyn", + "Breogan", + "Bret", + "Brett", + "Briaddon", + "Brian", + "Brodi", + "Brodie", + "Brody", + "Brogan", + "Broghan", + "Brooke", + "Brooklin", + "Brooklyn", + "Bruce", + "Bruin", + "Bruno", + "Brunon", + "Bryan", + "Bryce", + "Bryden", + "Brydon", + "Brydon-Craig", + "Bryn", + "Brynmor", + "Bryson", + "Buddy", + "Bully", + "Burak", + "Burhan", + "Butali", + "Butchi", + "Byron", + "Cabhan", + "Cadan", + "Cade", + "Caden", + "Cadon", + "Cadyn", + "Caedan", + "Caedyn", + "Cael", + "Caelan", + "Caelen", + "Caethan", + "Cahl", + "Cahlum", + "Cai", + "Caidan", + "Caiden", + "Caiden-Paul", + "Caidyn", + "Caie", + "Cailaen", + "Cailean", + "Caileb-John", + "Cailin", + "Cain", + "Caine", + "Cairn", + "Cal", + "Calan", + "Calder", + "Cale", + "Calean", + "Caleb", + "Calen", + "Caley", + "Calib", + "Calin", + "Callahan", + "Callan", + "Callan-Adam", + "Calley", + "Callie", + "Callin", + "Callum", + "Callun", + "Callyn", + "Calum", + "Calum-James", + "Calvin", + "Cambell", + "Camerin", + "Cameron", + "Campbel", + "Campbell", + "Camron", + "Caolain", + "Caolan", + "Carl", + "Carlo", + "Carlos", + "Carrich", + "Carrick", + "Carson", + "Carter", + "Carwyn", + "Casey", + "Casper", + "Cassy", + "Cathal", + "Cator", + "Cavan", + "Cayden", + "Cayden-Robert", + "Cayden-Tiamo", + "Ceejay", + "Ceilan", + "Ceiran", + "Ceirin", + "Ceiron", + "Cejay", + "Celik", + "Cephas", + "Cesar", + "Cesare", + "Chad", + "Chaitanya", + "Chang-Ha", + "Charles", + "Charley", + "Charlie", + "Charly", + "Chase", + "Che", + "Chester", + "Chevy", + "Chi", + "Chibudom", + "Chidera", + "Chimsom", + "Chin", + "Chintu", + "Chiqal", + "Chiron", + "Chris", + "Chris-Daniel", + "Chrismedi", + "Christian", + "Christie", + "Christoph", + "Christopher", + "Christopher-Lee", + "Christy", + "Chu", + "Chukwuemeka", + "Cian", + "Ciann", + "Ciar", + "Ciaran", + "Ciarian", + "Cieran", + "Cillian", + "Cillin", + "Cinar", + "CJ", + "C-Jay", + "Clark", + "Clarke", + "Clayton", + "Clement", + "Clifford", + "Clyde", + "Cobain", + "Coban", + "Coben", + "Cobi", + "Cobie", + "Coby", + "Codey", + "Codi", + "Codie", + "Cody", + "Cody-Lee", + "Coel", + "Cohan", + "Cohen", + "Colby", + "Cole", + "Colin", + "Coll", + "Colm", + "Colt", + "Colton", + "Colum", + "Colvin", + "Comghan", + "Conal", + "Conall", + "Conan", + "Conar", + "Conghaile", + "Conlan", + "Conley", + "Conli", + "Conlin", + "Conlly", + "Conlon", + "Conlyn", + "Connal", + "Connall", + "Connan", + "Connar", + "Connel", + "Connell", + "Conner", + "Connolly", + "Connor", + "Connor-David", + "Conor", + "Conrad", + "Cooper", + "Copeland", + "Coray", + "Corben", + "Corbin", + "Corey", + "Corey-James", + "Corey-Jay", + "Cori", + "Corie", + "Corin", + "Cormac", + "Cormack", + "Cormak", + "Corran", + "Corrie", + "Cory", + "Cosmo", + "Coupar", + "Craig", + "Craig-James", + "Crawford", + "Creag", + "Crispin", + "Cristian", + "Crombie", + "Cruiz", + "Cruz", + "Cuillin", + "Cullen", + "Cullin", + "Curtis", + "Cyrus", + "Daanyaal", + "Daegan", + "Daegyu", + "Dafydd", + "Dagon", + "Dailey", + "Daimhin", + "Daithi", + "Dakota", + "Daksh", + "Dale", + "Dalong", + "Dalton", + "Damian", + "Damien", + "Damon", + "Dan", + "Danar", + "Dane", + "Danial", + "Daniel", + "Daniele", + "Daniel-James", + "Daniels", + "Daniil", + "Danish", + "Daniyal", + "Danniel", + "Danny", + "Dante", + "Danyal", + "Danyil", + "Danys", + "Daood", + "Dara", + "Darach", + "Daragh", + "Darcy", + "D'arcy", + "Dareh", + "Daren", + "Darien", + "Darius", + "Darl", + "Darn", + "Darrach", + "Darragh", + "Darrel", + "Darrell", + "Darren", + "Darrie", + "Darrius", + "Darroch", + "Darryl", + "Darryn", + "Darwyn", + "Daryl", + "Daryn", + "Daud", + "Daumantas", + "Davi", + "David", + "David-Jay", + "David-Lee", + "Davie", + "Davis", + "Davy", + "Dawid", + "Dawson", + "Dawud", + "Dayem", + "Daymian", + "Deacon", + "Deagan", + "Dean", + "Deano", + "Decklan", + "Declain", + "Declan", + "Declyan", + "Declyn", + "Dedeniseoluwa", + "Deecan", + "Deegan", + "Deelan", + "Deklain-Jaimes", + "Del", + "Demetrius", + "Denis", + "Deniss", + "Dennan", + "Dennin", + "Dennis", + "Denny", + "Dennys", + "Denon", + "Denton", + "Denver", + "Denzel", + "Deon", + "Derek", + "Derick", + "Derin", + "Dermot", + "Derren", + "Derrie", + "Derrin", + "Derron", + "Derry", + "Derryn", + "Deryn", + "Deshawn", + "Desmond", + "Dev", + "Devan", + "Devin", + "Devlin", + "Devlyn", + "Devon", + "Devrin", + "Devyn", + "Dex", + "Dexter", + "Dhani", + "Dharam", + "Dhavid", + "Dhyia", + "Diarmaid", + "Diarmid", + "Diarmuid", + "Didier", + "Diego", + "Diesel", + "Diesil", + "Digby", + "Dilan", + "Dilano", + "Dillan", + "Dillon", + "Dilraj", + "Dimitri", + "Dinaras", + "Dion", + "Dissanayake", + "Dmitri", + "Doire", + "Dolan", + "Domanic", + "Domenico", + "Domhnall", + "Dominic", + "Dominick", + "Dominik", + "Donald", + "Donnacha", + "Donnie", + "Dorian", + "Dougal", + "Douglas", + "Dougray", + "Drakeo", + "Dre", + "Dregan", + "Drew", + "Dugald", + "Duncan", + "Duriel", + "Dustin", + "Dylan", + "Dylan-Jack", + "Dylan-James", + "Dylan-John", + "Dylan-Patrick", + "Dylin", + "Dyllan", + "Dyllan-James", + "Dyllon", + "Eadie", + "Eagann", + "Eamon", + "Eamonn", + "Eason", + "Eassan", + "Easton", + "Ebow", + "Ed", + "Eddie", + "Eden", + "Ediomi", + "Edison", + "Eduardo", + "Eduards", + "Edward", + "Edwin", + "Edwyn", + "Eesa", + "Efan", + "Efe", + "Ege", + "Ehsan", + "Ehsen", + "Eiddon", + "Eidhan", + "Eihli", + "Eimantas", + "Eisa", + "Eli", + "Elias", + "Elijah", + "Eliot", + "Elisau", + "Eljay", + "Eljon", + "Elliot", + "Elliott", + "Ellis", + "Ellisandro", + "Elshan", + "Elvin", + "Elyan", + "Emanuel", + "Emerson", + "Emil", + "Emile", + "Emir", + "Emlyn", + "Emmanuel", + "Emmet", + "Eng", + "Eniola", + "Enis", + "Ennis", + "Enrico", + "Enrique", + "Enzo", + "Eoghain", + "Eoghan", + "Eoin", + "Eonan", + "Erdehan", + "Eren", + "Erencem", + "Eric", + "Ericlee", + "Erik", + "Eriz", + "Ernie-Jacks", + "Eroni", + "Eryk", + "Eshan", + "Essa", + "Esteban", + "Ethan", + "Etienne", + "Etinosa", + "Euan", + "Eugene", + "Evan", + "Evann", + "Ewan", + "Ewen", + "Ewing", + "Exodi", + "Ezekiel", + "Ezra", + "Fabian", + "Fahad", + "Faheem", + "Faisal", + "Faizaan", + "Famara", + "Fares", + "Farhaan", + "Farhan", + "Farren", + "Farzad", + "Fauzaan", + "Favour", + "Fawaz", + "Fawkes", + "Faysal", + "Fearghus", + "Feden", + "Felix", + "Fergal", + "Fergie", + "Fergus", + "Ferre", + "Fezaan", + "Fiachra", + "Fikret", + "Filip", + "Filippo", + "Finan", + "Findlay", + "Findlay-James", + "Findlie", + "Finlay", + "Finley", + "Finn", + "Finnan", + "Finnean", + "Finnen", + "Finnlay", + "Finnley", + "Fintan", + "Fionn", + "Firaaz", + "Fletcher", + "Flint", + "Florin", + "Flyn", + "Flynn", + "Fodeba", + "Folarinwa", + "Forbes", + "Forgan", + "Forrest", + "Fox", + "Francesco", + "Francis", + "Francisco", + "Franciszek", + "Franco", + "Frank", + "Frankie", + "Franklin", + "Franko", + "Fraser", + "Frazer", + "Fred", + "Freddie", + "Frederick", + "Fruin", + "Fyfe", + "Fyn", + "Fynlay", + "Fynn", + "Gabriel", + "Gallagher", + "Gareth", + "Garren", + "Garrett", + "Garry", + "Gary", + "Gavin", + "Gavin-Lee", + "Gene", + "Geoff", + "Geoffrey", + "Geomer", + "Geordan", + "Geordie", + "George", + "Georgia", + "Georgy", + "Gerard", + "Ghyll", + "Giacomo", + "Gian", + "Giancarlo", + "Gianluca", + "Gianmarco", + "Gideon", + "Gil", + "Gio", + "Girijan", + "Girius", + "Gjan", + "Glascott", + "Glen", + "Glenn", + "Gordon", + "Grady", + "Graeme", + "Graham", + "Grahame", + "Grant", + "Grayson", + "Greg", + "Gregor", + "Gregory", + "Greig", + "Griffin", + "Griffyn", + "Grzegorz", + "Guang", + "Guerin", + "Guillaume", + "Gurardass", + "Gurdeep", + "Gursees", + "Gurthar", + "Gurveer", + "Gurwinder", + "Gus", + "Gustav", + "Guthrie", + "Guy", + "Gytis", + "Habeeb", + "Hadji", + "Hadyn", + "Hagun", + "Haiden", + "Haider", + "Hamad", + "Hamid", + "Hamish", + "Hamza", + "Hamzah", + "Han", + "Hansen", + "Hao", + "Hareem", + "Hari", + "Harikrishna", + "Haris", + "Harish", + "Harjeevan", + "Harjyot", + "Harlee", + "Harleigh", + "Harley", + "Harman", + "Harnek", + "Harold", + "Haroon", + "Harper", + "Harri", + "Harrington", + "Harris", + "Harrison", + "Harry", + "Harvey", + "Harvie", + "Harvinder", + "Hasan", + "Haseeb", + "Hashem", + "Hashim", + "Hassan", + "Hassanali", + "Hately", + "Havila", + "Hayden", + "Haydn", + "Haydon", + "Haydyn", + "Hcen", + "Hector", + "Heddle", + "Heidar", + "Heini", + "Hendri", + "Henri", + "Henry", + "Herbert", + "Heyden", + "Hiro", + "Hirvaansh", + "Hishaam", + "Hogan", + "Honey", + "Hong", + "Hope", + "Hopkin", + "Hosea", + "Howard", + "Howie", + "Hristomir", + "Hubert", + "Hugh", + "Hugo", + "Humza", + "Hunter", + "Husnain", + "Hussain", + "Hussan", + "Hussnain", + "Hussnan", + "Hyden", + "I", + "Iagan", + "Iain", + "Ian", + "Ibraheem", + "Ibrahim", + "Idahosa", + "Idrees", + "Idris", + "Iestyn", + "Ieuan", + "Igor", + "Ihtisham", + "Ijay", + "Ikechukwu", + "Ikemsinachukwu", + "Ilyaas", + "Ilyas", + "Iman", + "Immanuel", + "Inan", + "Indy", + "Ines", + "Innes", + "Ioannis", + "Ireayomide", + "Ireoluwa", + "Irvin", + "Irvine", + "Isa", + "Isaa", + "Isaac", + "Isaiah", + "Isak", + "Isher", + "Ishwar", + "Isimeli", + "Isira", + "Ismaeel", + "Ismail", + "Israel", + "Issiaka", + "Ivan", + "Ivar", + "Izaak", + "J", + "Jaay", + "Jac", + "Jace", + "Jack", + "Jacki", + "Jackie", + "Jack-James", + "Jackson", + "Jacky", + "Jacob", + "Jacques", + "Jad", + "Jaden", + "Jadon", + "Jadyn", + "Jae", + "Jagat", + "Jago", + "Jaheim", + "Jahid", + "Jahy", + "Jai", + "Jaida", + "Jaiden", + "Jaidyn", + "Jaii", + "Jaime", + "Jai-Rajaram", + "Jaise", + "Jak", + "Jake", + "Jakey", + "Jakob", + "Jaksyn", + "Jakub", + "Jamaal", + "Jamal", + "Jameel", + "Jameil", + "James", + "James-Paul", + "Jamey", + "Jamie", + "Jan", + "Jaosha", + "Jardine", + "Jared", + "Jarell", + "Jarl", + "Jarno", + "Jarred", + "Jarvi", + "Jasey-Jay", + "Jasim", + "Jaskaran", + "Jason", + "Jasper", + "Jaxon", + "Jaxson", + "Jay", + "Jaydan", + "Jayden", + "Jayden-James", + "Jayden-Lee", + "Jayden-Paul", + "Jayden-Thomas", + "Jaydn", + "Jaydon", + "Jaydyn", + "Jayhan", + "Jay-Jay", + "Jayke", + "Jaymie", + "Jayse", + "Jayson", + "Jaz", + "Jazeb", + "Jazib", + "Jazz", + "Jean", + "Jean-Lewis", + "Jean-Pierre", + "Jebadiah", + "Jed", + "Jedd", + "Jedidiah", + "Jeemie", + "Jeevan", + "Jeffrey", + "Jensen", + "Jenson", + "Jensyn", + "Jeremy", + "Jerome", + "Jeronimo", + "Jerrick", + "Jerry", + "Jesse", + "Jesuseun", + "Jeswin", + "Jevan", + "Jeyun", + "Jez", + "Jia", + "Jian", + "Jiao", + "Jimmy", + "Jincheng", + "JJ", + "Joaquin", + "Joash", + "Jock", + "Jody", + "Joe", + "Joeddy", + "Joel", + "Joey", + "Joey-Jack", + "Johann", + "Johannes", + "Johansson", + "John", + "Johnathan", + "Johndean", + "Johnjay", + "John-Michael", + "Johnnie", + "Johnny", + "Johnpaul", + "John-Paul", + "John-Scott", + "Johnson", + "Jole", + "Jomuel", + "Jon", + "Jonah", + "Jonatan", + "Jonathan", + "Jonathon", + "Jonny", + "Jonothan", + "Jon-Paul", + "Jonson", + "Joojo", + "Jordan", + "Jordi", + "Jordon", + "Jordy", + "Jordyn", + "Jorge", + "Joris", + "Jorryn", + "Josan", + "Josef", + "Joseph", + "Josese", + "Josh", + "Joshiah", + "Joshua", + "Josiah", + "Joss", + "Jostelle", + "Joynul", + "Juan", + "Jubin", + "Judah", + "Jude", + "Jules", + "Julian", + "Julien", + "Jun", + "Junior", + "Jura", + "Justan", + "Justin", + "Justinas", + "Kaan", + "Kabeer", + "Kabir", + "Kacey", + "Kacper", + "Kade", + "Kaden", + "Kadin", + "Kadyn", + "Kaeden", + "Kael", + "Kaelan", + "Kaelin", + "Kaelum", + "Kai", + "Kaid", + "Kaidan", + "Kaiden", + "Kaidinn", + "Kaidyn", + "Kaileb", + "Kailin", + "Kain", + "Kaine", + "Kainin", + "Kainui", + "Kairn", + "Kaison", + "Kaiwen", + "Kajally", + "Kajetan", + "Kalani", + "Kale", + "Kaleb", + "Kaleem", + "Kal-el", + "Kalen", + "Kalin", + "Kallan", + "Kallin", + "Kalum", + "Kalvin", + "Kalvyn", + "Kameron", + "Kames", + "Kamil", + "Kamran", + "Kamron", + "Kane", + "Karam", + "Karamvir", + "Karandeep", + "Kareem", + "Karim", + "Karimas", + "Karl", + "Karol", + "Karson", + "Karsyn", + "Karthikeya", + "Kasey", + "Kash", + "Kashif", + "Kasim", + "Kasper", + "Kasra", + "Kavin", + "Kayam", + "Kaydan", + "Kayden", + "Kaydin", + "Kaydn", + "Kaydyn", + "Kaydyne", + "Kayleb", + "Kaylem", + "Kaylum", + "Kayne", + "Kaywan", + "Kealan", + "Kealon", + "Kean", + "Keane", + "Kearney", + "Keatin", + "Keaton", + "Keavan", + "Keayn", + "Kedrick", + "Keegan", + "Keelan", + "Keelin", + "Keeman", + "Keenan", + "Keenan-Lee", + "Keeton", + "Kehinde", + "Keigan", + "Keilan", + "Keir", + "Keiran", + "Keiren", + "Keiron", + "Keiryn", + "Keison", + "Keith", + "Keivlin", + "Kelam", + "Kelan", + "Kellan", + "Kellen", + "Kelso", + "Kelum", + "Kelvan", + "Kelvin", + "Ken", + "Kenan", + "Kendall", + "Kendyn", + "Kenlin", + "Kenneth", + "Kensey", + "Kenton", + "Kenyon", + "Kenzeigh", + "Kenzi", + "Kenzie", + "Kenzo", + "Kenzy", + "Keo", + "Ker", + "Kern", + "Kerr", + "Kevan", + "Kevin", + "Kevyn", + "Kez", + "Khai", + "Khalan", + "Khaleel", + "Khaya", + "Khevien", + "Khizar", + "Khizer", + "Kia", + "Kian", + "Kian-James", + "Kiaran", + "Kiarash", + "Kie", + "Kiefer", + "Kiegan", + "Kienan", + "Kier", + "Kieran", + "Kieran-Scott", + "Kieren", + "Kierin", + "Kiern", + "Kieron", + "Kieryn", + "Kile", + "Killian", + "Kimi", + "Kingston", + "Kinneil", + "Kinnon", + "Kinsey", + "Kiran", + "Kirk", + "Kirwin", + "Kit", + "Kiya", + "Kiyonari", + "Kjae", + "Klein", + "Klevis", + "Kobe", + "Kobi", + "Koby", + "Koddi", + "Koden", + "Kodi", + "Kodie", + "Kody", + "Kofi", + "Kogan", + "Kohen", + "Kole", + "Konan", + "Konar", + "Konnor", + "Konrad", + "Koray", + "Korben", + "Korbyn", + "Korey", + "Kori", + "Korrin", + "Kory", + "Koushik", + "Kris", + "Krish", + "Krishan", + "Kriss", + "Kristian", + "Kristin", + "Kristofer", + "Kristoffer", + "Kristopher", + "Kruz", + "Krzysiek", + "Krzysztof", + "Ksawery", + "Ksawier", + "Kuba", + "Kurt", + "Kurtis", + "Kurtis-Jae", + "Kyaan", + "Kyan", + "Kyde", + "Kyden", + "Kye", + "Kyel", + "Kyhran", + "Kyie", + "Kylan", + "Kylar", + "Kyle", + "Kyle-Derek", + "Kylian", + "Kym", + "Kynan", + "Kyral", + "Kyran", + "Kyren", + "Kyrillos", + "Kyro", + "Kyron", + "Kyrran", + "Lachlainn", + "Lachlan", + "Lachlann", + "Lael", + "Lagan", + "Laird", + "Laison", + "Lakshya", + "Lance", + "Lancelot", + "Landon", + "Lang", + "Lasse", + "Latif", + "Lauchlan", + "Lauchlin", + "Laughlan", + "Lauren", + "Laurence", + "Laurie", + "Lawlyn", + "Lawrence", + "Lawrie", + "Lawson", + "Layne", + "Layton", + "Lee", + "Leigh", + "Leigham", + "Leighton", + "Leilan", + "Leiten", + "Leithen", + "Leland", + "Lenin", + "Lennan", + "Lennen", + "Lennex", + "Lennon", + "Lennox", + "Lenny", + "Leno", + "Lenon", + "Lenyn", + "Leo", + "Leon", + "Leonard", + "Leonardas", + "Leonardo", + "Lepeng", + "Leroy", + "Leven", + "Levi", + "Levon", + "Levy", + "Lewie", + "Lewin", + "Lewis", + "Lex", + "Leydon", + "Leyland", + "Leylann", + "Leyton", + "Liall", + "Liam", + "Liam-Stephen", + "Limo", + "Lincoln", + "Lincoln-John", + "Lincon", + "Linden", + "Linton", + "Lionel", + "Lisandro", + "Litrell", + "Liyonela-Elam", + "LLeyton", + "Lliam", + "Lloyd", + "Lloyde", + "Loche", + "Lochlan", + "Lochlann", + "Lochlan-Oliver", + "Lock", + "Lockey", + "Logan", + "Logann", + "Logan-Rhys", + "Loghan", + "Lokesh", + "Loki", + "Lomond", + "Lorcan", + "Lorenz", + "Lorenzo", + "Lorne", + "Loudon", + "Loui", + "Louie", + "Louis", + "Loukas", + "Lovell", + "Luc", + "Luca", + "Lucais", + "Lucas", + "Lucca", + "Lucian", + "Luciano", + "Lucien", + "Lucus", + "Luic", + "Luis", + "Luk", + "Luka", + "Lukas", + "Lukasz", + "Luke", + "Lukmaan", + "Luqman", + "Lyall", + "Lyle", + "Lyndsay", + "Lysander", + "Maanav", + "Maaz", + "Mac", + "Macallum", + "Macaulay", + "Macauley", + "Macaully", + "Machlan", + "Maciej", + "Mack", + "Mackenzie", + "Mackenzy", + "Mackie", + "Macsen", + "Macy", + "Madaki", + "Maddison", + "Maddox", + "Madison", + "Madison-Jake", + "Madox", + "Mael", + "Magnus", + "Mahan", + "Mahdi", + "Mahmoud", + "Maias", + "Maison", + "Maisum", + "Maitlind", + "Majid", + "Makensie", + "Makenzie", + "Makin", + "Maksim", + "Maksymilian", + "Malachai", + "Malachi", + "Malachy", + "Malakai", + "Malakhy", + "Malcolm", + "Malik", + "Malikye", + "Malo", + "Ma'moon", + "Manas", + "Maneet", + "Manmohan", + "Manolo", + "Manson", + "Mantej", + "Manuel", + "Manus", + "Marc", + "Marc-Anthony", + "Marcel", + "Marcello", + "Marcin", + "Marco", + "Marcos", + "Marcous", + "Marcquis", + "Marcus", + "Mario", + "Marios", + "Marius", + "Mark", + "Marko", + "Markus", + "Marley", + "Marlin", + "Marlon", + "Maros", + "Marshall", + "Martin", + "Marty", + "Martyn", + "Marvellous", + "Marvin", + "Marwan", + "Maryk", + "Marzuq", + "Mashhood", + "Mason", + "Mason-Jay", + "Masood", + "Masson", + "Matas", + "Matej", + "Mateusz", + "Mathew", + "Mathias", + "Mathu", + "Mathuyan", + "Mati", + "Matt", + "Matteo", + "Matthew", + "Matthew-William", + "Matthias", + "Max", + "Maxim", + "Maximilian", + "Maximillian", + "Maximus", + "Maxwell", + "Maxx", + "Mayeul", + "Mayson", + "Mazin", + "Mcbride", + "McCaulley", + "McKade", + "McKauley", + "McKay", + "McKenzie", + "McLay", + "Meftah", + "Mehmet", + "Mehraz", + "Meko", + "Melville", + "Meshach", + "Meyzhward", + "Micah", + "Michael", + "Michael-Alexander", + "Michael-James", + "Michal", + "Michat", + "Micheal", + "Michee", + "Mickey", + "Miguel", + "Mika", + "Mikael", + "Mi'kael", + "Mikee", + "Mikey", + "Mikhail", + "Mikolaj", + "Miles", + "Millar", + "Miller", + "Milo", + "Milos", + "Milosz", + "Mir", + "Mirza", + "Mitch", + "Mitchel", + "Mitchell", + "Moad", + "Moayd", + "Mobeen", + "Modoulamin", + "Modu", + "Mohamad", + "Mohamed", + "Mohammad", + "Mohammad-Bilal", + "Mohammed", + "Mohanad", + "Mohd", + "Momin", + "Momooreoluwa", + "Montague", + "Montgomery", + "Monty", + "Moore", + "Moosa", + "Moray", + "Morgan", + "Morgyn", + "Morris", + "Morton", + "Moshy", + "Motade", + "Moyes", + "Msughter", + "Mueez", + "Muhamadjavad", + "Muhammad", + "Muhammed", + "Muhsin", + "Muir", + "Munachi", + "Muneeb", + "Mungo", + "Munir", + "Munmair", + "Munro", + "Murdo", + "Murray", + "Murrough", + "Murry", + "Musa", + "Musse", + "Mustafa", + "Mustapha", + "Muzammil", + "Muzzammil", + "Mykie", + "Myles", + "Mylo", + "Nabeel", + "Nadeem", + "Nader", + "Nagib", + "Naif", + "Nairn", + "Narvic", + "Nash", + "Nasser", + "Nassir", + "Natan", + "Nate", + "Nathan", + "Nathanael", + "Nathanial", + "Nathaniel", + "Nathan-Rae", + "Nawfal", + "Nayan", + "Neco", + "Neil", + "Nelson", + "Neo", + "Neshawn", + "Nevan", + "Nevin", + "Ngonidzashe", + "Nial", + "Niall", + "Nicholas", + "Nick", + "Nickhill", + "Nicki", + "Nickson", + "Nicky", + "Nico", + "Nicodemus", + "Nicol", + "Nicolae", + "Nicolas", + "Nidhish", + "Nihaal", + "Nihal", + "Nikash", + "Nikhil", + "Niki", + "Nikita", + "Nikodem", + "Nikolai", + "Nikos", + "Nilav", + "Niraj", + "Niro", + "Niven", + "Noah", + "Noel", + "Nolan", + "Noor", + "Norman", + "Norrie", + "Nuada", + "Nyah", + "Oakley", + "Oban", + "Obieluem", + "Obosa", + "Odhran", + "Odin", + "Odynn", + "Ogheneochuko", + "Ogheneruno", + "Ohran", + "Oilibhear", + "Oisin", + "Ojima-Ojo", + "Okeoghene", + "Olaf", + "Ola-Oluwa", + "Olaoluwapolorimi", + "Ole", + "Olie", + "Oliver", + "Olivier", + "Oliwier", + "Ollie", + "Olurotimi", + "Oluwadamilare", + "Oluwadamiloju", + "Oluwafemi", + "Oluwafikunayomi", + "Oluwalayomi", + "Oluwatobiloba", + "Oluwatoni", + "Omar", + "Omri", + "Oran", + "Orin", + "Orlando", + "Orley", + "Orran", + "Orrick", + "Orrin", + "Orson", + "Oryn", + "Oscar", + "Osesenagha", + "Oskar", + "Ossian", + "Oswald", + "Otto", + "Owain", + "Owais", + "Owen", + "Owyn", + "Oz", + "Ozzy", + "Pablo", + "Pacey", + "Padraig", + "Paolo", + "Pardeepraj", + "Parkash", + "Parker", + "Pascoe", + "Pasquale", + "Patrick", + "Patrick-John", + "Patrikas", + "Patryk", + "Paul", + "Pavit", + "Pawel", + "Pawlo", + "Pearce", + "Pearse", + "Pearsen", + "Pedram", + "Pedro", + "Peirce", + "Peiyan", + "Pele", + "Peni", + "Peregrine", + "Peter", + "Phani", + "Philip", + "Philippos", + "Phinehas", + "Phoenix", + "Phoevos", + "Pierce", + "Pierre-Antoine", + "Pieter", + "Pietro", + "Piotr", + "Porter", + "Prabhjoit", + "Prabodhan", + "Praise", + "Pranav", + "Pravin", + "Precious", + "Prentice", + "Presley", + "Preston", + "Preston-Jay", + "Prinay", + "Prince", + "Prithvi", + "Promise", + "Puneetpaul", + "Pushkar", + "Qasim", + "Qirui", + "Quinlan", + "Quinn", + "Radmiras", + "Raees", + "Raegan", + "Rafael", + "Rafal", + "Rafferty", + "Rafi", + "Raheem", + "Rahil", + "Rahim", + "Rahman", + "Raith", + "Raithin", + "Raja", + "Rajab-Ali", + "Rajan", + "Ralfs", + "Ralph", + "Ramanas", + "Ramit", + "Ramone", + "Ramsay", + "Ramsey", + "Rana", + "Ranolph", + "Raphael", + "Rasmus", + "Rasul", + "Raul", + "Raunaq", + "Ravin", + "Ray", + "Rayaan", + "Rayan", + "Rayane", + "Rayden", + "Rayhan", + "Raymond", + "Rayne", + "Rayyan", + "Raza", + "Reace", + "Reagan", + "Reean", + "Reece", + "Reed", + "Reegan", + "Rees", + "Reese", + "Reeve", + "Regan", + "Regean", + "Reggie", + "Rehaan", + "Rehan", + "Reice", + "Reid", + "Reigan", + "Reilly", + "Reily", + "Reis", + "Reiss", + "Remigiusz", + "Remo", + "Remy", + "Ren", + "Renars", + "Reng", + "Rennie", + "Reno", + "Reo", + "Reuben", + "Rexford", + "Reynold", + "Rhein", + "Rheo", + "Rhett", + "Rheyden", + "Rhian", + "Rhoan", + "Rholmark", + "Rhoridh", + "Rhuairidh", + "Rhuan", + "Rhuaridh", + "Rhudi", + "Rhy", + "Rhyan", + "Rhyley", + "Rhyon", + "Rhys", + "Rhys-Bernard", + "Rhyse", + "Riach", + "Rian", + "Ricards", + "Riccardo", + "Ricco", + "Rice", + "Richard", + "Richey", + "Richie", + "Ricky", + "Rico", + "Ridley", + "Ridwan", + "Rihab", + "Rihan", + "Rihards", + "Rihonn", + "Rikki", + "Riley", + "Rio", + "Rioden", + "Rishi", + "Ritchie", + "Rivan", + "Riyadh", + "Riyaj", + "Roan", + "Roark", + "Roary", + "Rob", + "Robbi", + "Robbie", + "Robbie-lee", + "Robby", + "Robert", + "Robert-Gordon", + "Robertjohn", + "Robi", + "Robin", + "Rocco", + "Roddy", + "Roderick", + "Rodrigo", + "Roen", + "Rogan", + "Roger", + "Rohaan", + "Rohan", + "Rohin", + "Rohit", + "Rokas", + "Roman", + "Ronald", + "Ronan", + "Ronan-Benedict", + "Ronin", + "Ronnie", + "Rooke", + "Roray", + "Rori", + "Rorie", + "Rory", + "Roshan", + "Ross", + "Ross-Andrew", + "Rossi", + "Rowan", + "Rowen", + "Roy", + "Ruadhan", + "Ruaidhri", + "Ruairi", + "Ruairidh", + "Ruan", + "Ruaraidh", + "Ruari", + "Ruaridh", + "Ruben", + "Rubhan", + "Rubin", + "Rubyn", + "Rudi", + "Rudy", + "Rufus", + "Rui", + "Ruo", + "Rupert", + "Ruslan", + "Russel", + "Russell", + "Ryaan", + "Ryan", + "Ryan-Lee", + "Ryden", + "Ryder", + "Ryese", + "Ryhs", + "Rylan", + "Rylay", + "Rylee", + "Ryleigh", + "Ryley", + "Rylie", + "Ryo", + "Ryszard", + "Saad", + "Sabeen", + "Sachkirat", + "Saffi", + "Saghun", + "Sahaib", + "Sahbian", + "Sahil", + "Saif", + "Saifaddine", + "Saim", + "Sajid", + "Sajjad", + "Salahudin", + "Salman", + "Salter", + "Salvador", + "Sam", + "Saman", + "Samar", + "Samarjit", + "Samatar", + "Sambrid", + "Sameer", + "Sami", + "Samir", + "Sami-Ullah", + "Samual", + "Samuel", + "Samuela", + "Samy", + "Sanaullah", + "Sandro", + "Sandy", + "Sanfur", + "Sanjay", + "Santiago", + "Santino", + "Satveer", + "Saul", + "Saunders", + "Savin", + "Sayad", + "Sayeed", + "Sayf", + "Scot", + "Scott", + "Scott-Alexander", + "Seaan", + "Seamas", + "Seamus", + "Sean", + "Seane", + "Sean-James", + "Sean-Paul", + "Sean-Ray", + "Seb", + "Sebastian", + "Sebastien", + "Selasi", + "Seonaidh", + "Sephiroth", + "Sergei", + "Sergio", + "Seth", + "Sethu", + "Seumas", + "Shaarvin", + "Shadow", + "Shae", + "Shahmir", + "Shai", + "Shane", + "Shannon", + "Sharland", + "Sharoz", + "Shaughn", + "Shaun", + "Shaunpaul", + "Shaun-Paul", + "Shaun-Thomas", + "Shaurya", + "Shaw", + "Shawn", + "Shawnpaul", + "Shay", + "Shayaan", + "Shayan", + "Shaye", + "Shayne", + "Shazil", + "Shea", + "Sheafan", + "Sheigh", + "Shenuk", + "Sher", + "Shergo", + "Sheriff", + "Sherwyn", + "Shiloh", + "Shiraz", + "Shreeram", + "Shreyas", + "Shyam", + "Siddhant", + "Siddharth", + "Sidharth", + "Sidney", + "Siergiej", + "Silas", + "Simon", + "Sinai", + "Skye", + "Sofian", + "Sohaib", + "Sohail", + "Soham", + "Sohan", + "Sol", + "Solomon", + "Sonneey", + "Sonni", + "Sonny", + "Sorley", + "Soul", + "Spencer", + "Spondon", + "Stanislaw", + "Stanley", + "Stefan", + "Stefano", + "Stefin", + "Stephen", + "Stephenjunior", + "Steve", + "Steven", + "Steven-lee", + "Stevie", + "Stewart", + "Stewarty", + "Strachan", + "Struan", + "Stuart", + "Su", + "Subhaan", + "Sudais", + "Suheyb", + "Suilven", + "Sukhi", + "Sukhpal", + "Sukhvir", + "Sulayman", + "Sullivan", + "Sultan", + "Sung", + "Sunny", + "Suraj", + "Surien", + "Sweyn", + "Syed", + "Sylvain", + "Symon", + "Szymon", + "Tadd", + "Taddy", + "Tadhg", + "Taegan", + "Taegen", + "Tai", + "Tait", + "Taiwo", + "Talha", + "Taliesin", + "Talon", + "Talorcan", + "Tamar", + "Tamiem", + "Tammam", + "Tanay", + "Tane", + "Tanner", + "Tanvir", + "Tanzeel", + "Taonga", + "Tarik", + "Tariq-Jay", + "Tate", + "Taylan", + "Taylar", + "Tayler", + "Taylor", + "Taylor-Jay", + "Taylor-Lee", + "Tayo", + "Tayyab", + "Tayye", + "Tayyib", + "Teagan", + "Tee", + "Teejay", + "Tee-jay", + "Tegan", + "Teighen", + "Teiyib", + "Te-Jay", + "Temba", + "Teo", + "Teodor", + "Teos", + "Terry", + "Teydren", + "Theo", + "Theodore", + "Thiago", + "Thierry", + "Thom", + "Thomas", + "Thomas-Jay", + "Thomson", + "Thorben", + "Thorfinn", + "Thrinei", + "Thumbiko", + "Tiago", + "Tian", + "Tiarnan", + "Tibet", + "Tieran", + "Tiernan", + "Timothy", + "Timucin", + "Tiree", + "Tisloh", + "Titi", + "Titus", + "Tiylar", + "TJ", + "Tjay", + "T'jay", + "T-Jay", + "Tobey", + "Tobi", + "Tobias", + "Tobie", + "Toby", + "Todd", + "Tokinaga", + "Toluwalase", + "Tom", + "Tomas", + "Tomasz", + "Tommi-Lee", + "Tommy", + "Tomson", + "Tony", + "Torin", + "Torquil", + "Torran", + "Torrin", + "Torsten", + "Trafford", + "Trai", + "Travis", + "Tre", + "Trent", + "Trey", + "Tristain", + "Tristan", + "Troy", + "Tubagus", + "Turki", + "Turner", + "Ty", + "Ty-Alexander", + "Tye", + "Tyelor", + "Tylar", + "Tyler", + "Tyler-James", + "Tyler-Jay", + "Tyllor", + "Tylor", + "Tymom", + "Tymon", + "Tymoteusz", + "Tyra", + "Tyree", + "Tyrnan", + "Tyrone", + "Tyson", + "Ubaid", + "Ubayd", + "Uchenna", + "Uilleam", + "Umair", + "Umar", + "Umer", + "Umut", + "Urban", + "Uri", + "Usman", + "Uzair", + "Uzayr", + "Valen", + "Valentin", + "Valentino", + "Valery", + "Valo", + "Vasyl", + "Vedantsinh", + "Veeran", + "Victor", + "Victory", + "Vinay", + "Vince", + "Vincent", + "Vincenzo", + "Vinh", + "Vinnie", + "Vithujan", + "Vladimir", + "Vladislav", + "Vrishin", + "Vuyolwethu", + "Wabuya", + "Wai", + "Walid", + "Wallace", + "Walter", + "Waqaas", + "Warkhas", + "Warren", + "Warrick", + "Wasif", + "Wayde", + "Wayne", + "Wei", + "Wen", + "Wesley", + "Wesley-Scott", + "Wiktor", + "Wilkie", + "Will", + "William", + "William-John", + "Willum", + "Wilson", + "Windsor", + "Wojciech", + "Woyenbrakemi", + "Wyatt", + "Wylie", + "Wynn", + "Xabier", + "Xander", + "Xavier", + "Xiao", + "Xida", + "Xin", + "Xue", + "Yadgor", + "Yago", + "Yahya", + "Yakup", + "Yang", + "Yanick", + "Yann", + "Yannick", + "Yaseen", + "Yasin", + "Yasir", + "Yassin", + "Yoji", + "Yong", + "Yoolgeun", + "Yorgos", + "Youcef", + "Yousif", + "Youssef", + "Yu", + "Yuanyu", + "Yuri", + "Yusef", + "Yusuf", + "Yves", + "Zaaine", + "Zaak", + "Zac", + "Zach", + "Zachariah", + "Zacharias", + "Zacharie", + "Zacharius", + "Zachariya", + "Zachary", + "Zachary-Marc", + "Zachery", + "Zack", + "Zackary", + "Zaid", + "Zain", + "Zaine", + "Zaineddine", + "Zainedin", + "Zak", + "Zakaria", + "Zakariya", + "Zakary", + "Zaki", + "Zakir", + "Zakk", + "Zamaar", + "Zander", + "Zane", + "Zarran", + "Zayd", + "Zayn", + "Zayne", + "Ze", + "Zechariah", + "Zeek", + "Zeeshan", + "Zeid", + "Zein", + "Zen", + "Zendel", + "Zenith", + "Zennon", + "Zeph", + "Zerah", + "Zhen", + "Zhi", + "Zhong", + "Zhuo", + "Zi", + "Zidane", + "Zijie", + "Zinedine", + "Zion", + "Zishan", + "Ziya", + "Ziyaan", + "Zohaib", + "Zohair", + "Zoubaeir", + "Zubair", + "Zubayr", + "Zuriel", + "Jaime", + "Jayden", + "Josie", + "Juliet", + "Karys", + "Kathleen", + "Kendra", + "Keri", + "Keris", + "Kirstin", + "Klaudia", + "Luisa", + "Lydia", + "Maeve", + "Marnie", + "Miah", + "Mirrin", + "Nancy", + "Nia", + "Nikki", + "Oliwia", + "Paris", + "Piper", + "Pippa", + "Polly", + "Rhona", + "Safa", + "Saira", + "Sarah-Louise", + "Shona", + "Sorcha", + "Stacey", + "Tessa", + "Tiffany", + "Verity", + "Zarah", + "Zoya", + "Alexandria", + "Alina", + "Alison", + "Angela", + "Arianna", + "Chanel", + "Chelsey", + "Coral", + "Corinne", + "Danni", + "Darci", + "Dionne", + "Eliza", + "Elsie", + "Fatima", + "Freyja", + "Holli", + "Jane", + "Joanne", + "Karina", + "Katrina", + "Kaylah", + "Kaylee", + "Lori", + "Mila", + "Nikita", + "Penny", + "Sylvie", + "Tammy", + "Alexa", + "Brooklyn", + "Caragh", + "Codie", + "Constance", + "Dana", + "Demi-Lee", + "Emilie", + "Esther", + "Frankie", + "Isabelle", + "Jamie-Leigh", + "Jessie", + "Josephine", + "Kady", + "Kaila", + "Kerri", + "Kirstie", + "Lyla", + "Macey", + "Maisy", + "Margaret", + "Marie", + "Maryam", + "Mercedes", + "Mischa", + "Rosa", + "Serena", + "Sian", + "Tamzin", + "Vanessa", + "Violet", + "Yasmine", + "Aisha", + "Aleisha", + "Ana", + "Daniella", + "Elsa", + "Jodi", + "Karly", + "Leigha", + "Lila", + "Melanie", + "Miriam", + "Regan", + "Sally", + "Saskia", + "Simone", + "Tess", + "Thea", + "Zainab", + "Arwen", + "Bonnie", + "Eloise", + "Emma-Louise", + "Halle", + "Hana", + "Honey", + "Jamie-Lee", + "Karla", + "Leia", + "Leila", + "Madeline", + "Neave", + "Orlaith", + "Rhea", + "Sarah-Jane", + "Tara", + "Adele", + "Alannah", + "Alesha", + "Annabelle", + "Ayla", + "Becca", + "Darcie", + "Ebony", + "Erica", + "Georgie", + "Hanna", + "Julie", + "Kadie", + "Kelly", + "Kiara", + "Lillie", + "Mariam", + "Mikayla", + "Monica", + "Roisin", + "Savannah", + "Sky", + "Zahra", + "Alanna", + "Caoimhe", + "Chanelle", + "Elisha", + "Emilia", + "Iris", + "Kacie", + "Lia", + "Maja", + "Mary", + "Michelle", + "Tyler", + "Willow", + "Yasmin", + "Becky", + "Billie", + "Clara", + "Claudia", + "Cody", + "Elena", + "Eryn", + "Georgina", + "Kayley", + "Kimberley", + "Kira", + "Laila", + "Lauryn", + "Murron", + "Natalia", + "Ruth", + "Siobhan", + "Tiana", + "Bethan", + "Brodie", + "Cameron", + "Cassie", + "Harriet", + "Helen", + "Kathryn", + "Kyra", + "Mairi", + "Mckenzie", + "Tilly", + "Zuzanna", + "April", + "Christina", + "Claire", + "Darcey", + "Fern", + "Fiona", + "Joanna", + "Lucia", + "Charli", + "Jamie", + "Karis", + "Mackenzie", + "Marissa", + "Rihanna", + "Teagan", + "Tiegan", + "Kaitlin", + "Keeley", + "Leigh", + "Nadia", + "Alix", + "Callie", + "Carrie", + "Eden", + "Esme", + "Hazel", + "Miya", + "Nieve", + "Sadie", + "Sasha", + "Sinead", + "Stella", + "Ashleigh", + "Jade", + "Jemma", + "Michaela", + "Alexis", + "Aoife", + "Francesca", + "Lisa", + "Matilda", + "Annabel", + "Carmen", + "Eleanor", + "Faye", + "Kaci", + "Kasey", + "Kerry", + "Louisa", + "Macy", + "Mhairi", + "Rebekah", + "Teigan", + "Amie", + "Brogan", + "Catriona", + "Scarlett", + "Connie", + "Katelyn", + "Kenzie", + "Lexi", + "Nicola", + "Sienna", + "Abbi", + "Angel", + "Martha", + "Anya", + "Toni", + "Chantelle", + "Gabriella", + "Lexie", + "Abbey", + "Bailey", + "Isobel", + "Kelsie", + "Maia", + "Nina", + "Darcy", + "Lacey", + "Lana", + "Sofia", + "Stephanie", + "Ellen", + "Alicia", + "Gabrielle", + "Heidi", + "Jorja", + "Kyla", + "Rhiannon", + "Tegan", + "Maddison", + "Madeleine", + "Morven", + "Rowan", + "Lucie", + "Milly", + "Annie", + "Ashley", + "Ellis", + "Hope", + "Mirren", + "Rose", + "Alexandra", + "Jodie", + "Kacey", + "Phoebe", + "Tia", + "Ailsa", + "Alana", + "Kirsten", + "Charlie", + "Katy", + "Lilly", + "Alyssa", + "Maria", + "Naomi", + "Alisha", + "Danielle", + "Lola", + "Ciara", + "Elle", + "Faith", + "Natasha", + "Katherine", + "Lois", + "Mollie", + "Carla", + "Catherine", + "Cerys", + "Maisie", + "Victoria", + "Amelie", + "Demi", + "Gracie", + "Carys", + "Isabella", + "Leona", + "Alex", + "Hollie", + "Sara", + "Caitlyn", + "Kiera", + "Lara", + "Kate", + "Louise", + "Libby", + "Rhianna", + "Rosie", + "Alice", + "Julia", + "Maya", + "Natalie", + "Chelsea", + "Layla", + "Samantha", + "Heather", + "Kirsty", + "Rachael", + "Charley", + "Imogen", + "Elise", + "Hayley", + "Kelsey", + "Kara", + "Orla", + "Abi", + "Gemma", + "Laura", + "Mya", + "Bethany", + "Jasmine", + "Melissa", + "Poppy", + "Casey", + "Elizabeth", + "Kaitlyn", + "Carly", + "Abby", + "Neve", + "Courtney", + "Jennifer", + "Sophia", + "Shannon", + "Georgia", + "Amber", + "Robyn", + "Beth", + "Zara", + "Amelia", + "Taylor", + "Daisy", + "Paige", + "Kayleigh", + "Summer", + "Madison", + "Jenna", + "Morgan", + "Evie", + "Nicole", + "Ella", + "Cara", + "Iona", + "Eve", + "Zoe", + "Kayla", + "Molly", + "Abigail", + "Charlotte", + "Millie", + "Holly", + "Leah", + "Keira", + "Lily", + "Freya", + "Caitlin", + "Lauren", + "Rachel", + "Anna", + "Sarah", + "Ruby", + "Aimee", + "Mia", + "Skye", + "Abbie", + "Eva", + "Eilidh", + "Niamh", + "Megan", + "Brooke", + "Isla", + "Rebecca", + "Ava", + "Grace", + "Jessica", + "Hannah", + "Olivia", + "Chloe", + "Emily", + "Amy", + "Ellie", + "Erin", + "Katie", + "Lucy", + "Emma", + "Sophie" + }; + } - private static final String[] generateScottishFirstNames() { - return new String[] { "Aadam", "Aadit", "Aahron", "Aaran", "Aaren", - "Aarez", "Aarman", "Aaron", "Aaron-James", "Aarron", "Aaryan", "Aaryn", "Aayan", "Aazaan", "Abaan", "Abbas", - "Abdallah", "Abdalroof", "Abdihakim", "Abdirahman", "Abdisalam", "Abdul", "Abdul-Aziz", "Abdulbasir", - "Abdulkadir", "Abdulkarem", "Abdulkhader", "Abdullah", "Abdul-Majeed", "Abdulmalik", "Abdul-Rehman", - "Abdur", "Abdurraheem", "Abdur-Rahman", "Abdur-Rehmaan", "Abel", "Abhinav", "Abhisumant", "Abid", "Abir", - "Abraham", "Abu", "Abubakar", "Ace", "Adain", "Adam", "Adam-James", "Addison", "Addisson", "Adegbola", - "Adegbolahan", "Aden", "Adenn", "Adie", "Adil", "Aditya", "Adnan", "Adrian", "Adrien", "Aedan", "Aedin", - "Aedyn", "Aeron", "Afonso", "Ahmad", "Ahmed", "Ahmed-Aziz", "Ahoua", "Ahtasham", "Aiadan", "Aidan", "Aiden", - "Aiden-Jack", "Aiden-Vee", "Aidian", "Aidy", "Ailin", "Aiman", "Ainsley", "Ainslie", "Airen", "Airidas", - "Airlie", "AJ", "Ajay", "A-Jay", "Ajayraj", "Akan", "Akram", "Al", "Ala'", "Alan", "Alanas", "Alasdair", - "Alastair", "Alber", "Albert", "Albie", "Aldred", "Alec", "Aled", "Aleem", "Aleksandar", "Aleksander", - "Aleksandr", "Aleksandrs", "Alekzander", "Alessandro", "Alessio", "Alex", "Alexander", "Alexei", "Alexx", - "Alexzander", "Alf", "Alfee", "Alfie", "Alfred", "Alfy", "Alhaji", "Al-Hassan", "Ali", "Aliekber", "Alieu", - "Alihaider", "Alisdair", "Alishan", "Alistair", "Alistar", "Alister", "Aliyaan", "Allan", "Allan-Laiton", - "Allen", "Allesandro", "Allister", "Ally", "Alphonse", "Altyiab", "Alum", "Alvern", "Alvin", "Alyas", - "Amaan", "Aman", "Amani", "Ambanimoh", "Ameer", "Amgad", "Ami", "Amin", "Amir", "Ammaar", "Ammar", "Ammer", - "Amolpreet", "Amos", "Amrinder", "Amrit", "Amro", "Anay", "Andrea", "Andreas", "Andrei", "Andrejs", - "Andrew", "Andy", "Anees", "Anesu", "Angel", "Angelo", "Angus", "Anir", "Anis", "Anish", "Anmolpreet", - "Annan", "Anndra", "Anselm", "Anthony", "Anthony-John", "Antoine", "Anton", "Antoni", "Antonio", "Antony", - "Antonyo", "Anubhav", "Aodhan", "Aon", "Aonghus", "Apisai", "Arafat", "Aran", "Arandeep", "Arann", "Aray", - "Arayan", "Archibald", "Archie", "Arda", "Ardal", "Ardeshir", "Areeb", "Areez", "Aref", "Arfin", "Argyle", - "Argyll", "Ari", "Aria", "Arian", "Arihant", "Aristomenis", "Aristotelis", "Arjuna", "Arlo", "Armaan", - "Arman", "Armen", "Arnab", "Arnav", "Arnold", "Aron", "Aronas", "Arran", "Arrham", "Arron", "Arryn", - "Arsalan", "Artem", "Arthur", "Artur", "Arturo", "Arun", "Arunas", "Arved", "Arya", "Aryan", "Aryankhan", - "Aryian", "Aryn", "Asa", "Asfhan", "Ash", "Ashlee-jay", "Ashley", "Ashton", "Ashton-Lloyd", "Ashtyn", - "Ashwin", "Asif", "Asim", "Aslam", "Asrar", "Ata", "Atal", "Atapattu", "Ateeq", "Athol", "Athon", - "Athos-Carlos", "Atli", "Atom", "Attila", "Aulay", "Aun", "Austen", "Austin", "Avani", "Averon", "Avi", - "Avinash", "Avraham", "Awais", "Awwal", "Axel", "Ayaan", "Ayan", "Aydan", "Ayden", "Aydin", "Aydon", - "Ayman", "Ayomide", "Ayren", "Ayrton", "Aytug", "Ayub", "Ayyub", "Azaan", "Azedine", "Azeem", "Azim", - "Aziz", "Azlan", "Azzam", "Azzedine", "Babatunmise", "Babur", "Bader", "Badr", "Badsha", "Bailee", "Bailey", - "Bailie", "Bailley", "Baillie", "Baley", "Balian", "Banan", "Barath", "Barkley", "Barney", "Baron", - "Barrie", "Barry", "Bartlomiej", "Bartosz", "Basher", "Basile", "Baxter", "Baye", "Bayley", "Beau", "Beinn", - "Bekim", "Believe", "Ben", "Bendeguz", "Benedict", "Benjamin", "Benjamyn", "Benji", "Benn", "Bennett", - "Benny", "Benoit", "Bentley", "Berkay", "Bernard", "Bertie", "Bevin", "Bezalel", "Bhaaldeen", "Bharath", - "Bilal", "Bill", "Billy", "Binod", "Bjorn", "Blaike", "Blaine", "Blair", "Blaire", "Blake", "Blazej", - "Blazey", "Blessing", "Blue", "Blyth", "Bo", "Boab", "Bob", "Bobby", "Bobby-Lee", "Bodhan", "Boedyn", - "Bogdan", "Bohbi", "Bony", "Bowen", "Bowie", "Boyd", "Bracken", "Brad", "Bradan", "Braden", "Bradley", - "Bradlie", "Bradly", "Brady", "Bradyn", "Braeden", "Braiden", "Brajan", "Brandan", "Branden", "Brandon", - "Brandonlee", "Brandon-Lee", "Brandyn", "Brannan", "Brayden", "Braydon", "Braydyn", "Breandan", "Brehme", - "Brendan", "Brendon", "Brendyn", "Breogan", "Bret", "Brett", "Briaddon", "Brian", "Brodi", "Brodie", - "Brody", "Brogan", "Broghan", "Brooke", "Brooklin", "Brooklyn", "Bruce", "Bruin", "Bruno", "Brunon", - "Bryan", "Bryce", "Bryden", "Brydon", "Brydon-Craig", "Bryn", "Brynmor", "Bryson", "Buddy", "Bully", - "Burak", "Burhan", "Butali", "Butchi", "Byron", "Cabhan", "Cadan", "Cade", "Caden", "Cadon", "Cadyn", - "Caedan", "Caedyn", "Cael", "Caelan", "Caelen", "Caethan", "Cahl", "Cahlum", "Cai", "Caidan", "Caiden", - "Caiden-Paul", "Caidyn", "Caie", "Cailaen", "Cailean", "Caileb-John", "Cailin", "Cain", "Caine", "Cairn", - "Cal", "Calan", "Calder", "Cale", "Calean", "Caleb", "Calen", "Caley", "Calib", "Calin", "Callahan", - "Callan", "Callan-Adam", "Calley", "Callie", "Callin", "Callum", "Callun", "Callyn", "Calum", "Calum-James", - "Calvin", "Cambell", "Camerin", "Cameron", "Campbel", "Campbell", "Camron", "Caolain", "Caolan", "Carl", - "Carlo", "Carlos", "Carrich", "Carrick", "Carson", "Carter", "Carwyn", "Casey", "Casper", "Cassy", "Cathal", - "Cator", "Cavan", "Cayden", "Cayden-Robert", "Cayden-Tiamo", "Ceejay", "Ceilan", "Ceiran", "Ceirin", - "Ceiron", "Cejay", "Celik", "Cephas", "Cesar", "Cesare", "Chad", "Chaitanya", "Chang-Ha", "Charles", - "Charley", "Charlie", "Charly", "Chase", "Che", "Chester", "Chevy", "Chi", "Chibudom", "Chidera", "Chimsom", - "Chin", "Chintu", "Chiqal", "Chiron", "Chris", "Chris-Daniel", "Chrismedi", "Christian", "Christie", - "Christoph", "Christopher", "Christopher-Lee", "Christy", "Chu", "Chukwuemeka", "Cian", "Ciann", "Ciar", - "Ciaran", "Ciarian", "Cieran", "Cillian", "Cillin", "Cinar", "CJ", "C-Jay", "Clark", "Clarke", "Clayton", - "Clement", "Clifford", "Clyde", "Cobain", "Coban", "Coben", "Cobi", "Cobie", "Coby", "Codey", "Codi", - "Codie", "Cody", "Cody-Lee", "Coel", "Cohan", "Cohen", "Colby", "Cole", "Colin", "Coll", "Colm", "Colt", - "Colton", "Colum", "Colvin", "Comghan", "Conal", "Conall", "Conan", "Conar", "Conghaile", "Conlan", - "Conley", "Conli", "Conlin", "Conlly", "Conlon", "Conlyn", "Connal", "Connall", "Connan", "Connar", - "Connel", "Connell", "Conner", "Connolly", "Connor", "Connor-David", "Conor", "Conrad", "Cooper", - "Copeland", "Coray", "Corben", "Corbin", "Corey", "Corey-James", "Corey-Jay", "Cori", "Corie", "Corin", - "Cormac", "Cormack", "Cormak", "Corran", "Corrie", "Cory", "Cosmo", "Coupar", "Craig", "Craig-James", - "Crawford", "Creag", "Crispin", "Cristian", "Crombie", "Cruiz", "Cruz", "Cuillin", "Cullen", "Cullin", - "Curtis", "Cyrus", "Daanyaal", "Daegan", "Daegyu", "Dafydd", "Dagon", "Dailey", "Daimhin", "Daithi", - "Dakota", "Daksh", "Dale", "Dalong", "Dalton", "Damian", "Damien", "Damon", "Dan", "Danar", "Dane", - "Danial", "Daniel", "Daniele", "Daniel-James", "Daniels", "Daniil", "Danish", "Daniyal", "Danniel", "Danny", - "Dante", "Danyal", "Danyil", "Danys", "Daood", "Dara", "Darach", "Daragh", "Darcy", "D'arcy", "Dareh", - "Daren", "Darien", "Darius", "Darl", "Darn", "Darrach", "Darragh", "Darrel", "Darrell", "Darren", "Darrie", - "Darrius", "Darroch", "Darryl", "Darryn", "Darwyn", "Daryl", "Daryn", "Daud", "Daumantas", "Davi", "David", - "David-Jay", "David-Lee", "Davie", "Davis", "Davy", "Dawid", "Dawson", "Dawud", "Dayem", "Daymian", - "Deacon", "Deagan", "Dean", "Deano", "Decklan", "Declain", "Declan", "Declyan", "Declyn", "Dedeniseoluwa", - "Deecan", "Deegan", "Deelan", "Deklain-Jaimes", "Del", "Demetrius", "Denis", "Deniss", "Dennan", "Dennin", - "Dennis", "Denny", "Dennys", "Denon", "Denton", "Denver", "Denzel", "Deon", "Derek", "Derick", "Derin", - "Dermot", "Derren", "Derrie", "Derrin", "Derron", "Derry", "Derryn", "Deryn", "Deshawn", "Desmond", "Dev", - "Devan", "Devin", "Devlin", "Devlyn", "Devon", "Devrin", "Devyn", "Dex", "Dexter", "Dhani", "Dharam", - "Dhavid", "Dhyia", "Diarmaid", "Diarmid", "Diarmuid", "Didier", "Diego", "Diesel", "Diesil", "Digby", - "Dilan", "Dilano", "Dillan", "Dillon", "Dilraj", "Dimitri", "Dinaras", "Dion", "Dissanayake", "Dmitri", - "Doire", "Dolan", "Domanic", "Domenico", "Domhnall", "Dominic", "Dominick", "Dominik", "Donald", "Donnacha", - "Donnie", "Dorian", "Dougal", "Douglas", "Dougray", "Drakeo", "Dre", "Dregan", "Drew", "Dugald", "Duncan", - "Duriel", "Dustin", "Dylan", "Dylan-Jack", "Dylan-James", "Dylan-John", "Dylan-Patrick", "Dylin", "Dyllan", - "Dyllan-James", "Dyllon", "Eadie", "Eagann", "Eamon", "Eamonn", "Eason", "Eassan", "Easton", "Ebow", "Ed", - "Eddie", "Eden", "Ediomi", "Edison", "Eduardo", "Eduards", "Edward", "Edwin", "Edwyn", "Eesa", "Efan", - "Efe", "Ege", "Ehsan", "Ehsen", "Eiddon", "Eidhan", "Eihli", "Eimantas", "Eisa", "Eli", "Elias", "Elijah", - "Eliot", "Elisau", "Eljay", "Eljon", "Elliot", "Elliott", "Ellis", "Ellisandro", "Elshan", "Elvin", "Elyan", - "Emanuel", "Emerson", "Emil", "Emile", "Emir", "Emlyn", "Emmanuel", "Emmet", "Eng", "Eniola", "Enis", - "Ennis", "Enrico", "Enrique", "Enzo", "Eoghain", "Eoghan", "Eoin", "Eonan", "Erdehan", "Eren", "Erencem", - "Eric", "Ericlee", "Erik", "Eriz", "Ernie-Jacks", "Eroni", "Eryk", "Eshan", "Essa", "Esteban", "Ethan", - "Etienne", "Etinosa", "Euan", "Eugene", "Evan", "Evann", "Ewan", "Ewen", "Ewing", "Exodi", "Ezekiel", - "Ezra", "Fabian", "Fahad", "Faheem", "Faisal", "Faizaan", "Famara", "Fares", "Farhaan", "Farhan", "Farren", - "Farzad", "Fauzaan", "Favour", "Fawaz", "Fawkes", "Faysal", "Fearghus", "Feden", "Felix", "Fergal", - "Fergie", "Fergus", "Ferre", "Fezaan", "Fiachra", "Fikret", "Filip", "Filippo", "Finan", "Findlay", - "Findlay-James", "Findlie", "Finlay", "Finley", "Finn", "Finnan", "Finnean", "Finnen", "Finnlay", "Finnley", - "Fintan", "Fionn", "Firaaz", "Fletcher", "Flint", "Florin", "Flyn", "Flynn", "Fodeba", "Folarinwa", - "Forbes", "Forgan", "Forrest", "Fox", "Francesco", "Francis", "Francisco", "Franciszek", "Franco", "Frank", - "Frankie", "Franklin", "Franko", "Fraser", "Frazer", "Fred", "Freddie", "Frederick", "Fruin", "Fyfe", "Fyn", - "Fynlay", "Fynn", "Gabriel", "Gallagher", "Gareth", "Garren", "Garrett", "Garry", "Gary", "Gavin", - "Gavin-Lee", "Gene", "Geoff", "Geoffrey", "Geomer", "Geordan", "Geordie", "George", "Georgia", "Georgy", - "Gerard", "Ghyll", "Giacomo", "Gian", "Giancarlo", "Gianluca", "Gianmarco", "Gideon", "Gil", "Gio", - "Girijan", "Girius", "Gjan", "Glascott", "Glen", "Glenn", "Gordon", "Grady", "Graeme", "Graham", "Grahame", - "Grant", "Grayson", "Greg", "Gregor", "Gregory", "Greig", "Griffin", "Griffyn", "Grzegorz", "Guang", - "Guerin", "Guillaume", "Gurardass", "Gurdeep", "Gursees", "Gurthar", "Gurveer", "Gurwinder", "Gus", - "Gustav", "Guthrie", "Guy", "Gytis", "Habeeb", "Hadji", "Hadyn", "Hagun", "Haiden", "Haider", "Hamad", - "Hamid", "Hamish", "Hamza", "Hamzah", "Han", "Hansen", "Hao", "Hareem", "Hari", "Harikrishna", "Haris", - "Harish", "Harjeevan", "Harjyot", "Harlee", "Harleigh", "Harley", "Harman", "Harnek", "Harold", "Haroon", - "Harper", "Harri", "Harrington", "Harris", "Harrison", "Harry", "Harvey", "Harvie", "Harvinder", "Hasan", - "Haseeb", "Hashem", "Hashim", "Hassan", "Hassanali", "Hately", "Havila", "Hayden", "Haydn", "Haydon", - "Haydyn", "Hcen", "Hector", "Heddle", "Heidar", "Heini", "Hendri", "Henri", "Henry", "Herbert", "Heyden", - "Hiro", "Hirvaansh", "Hishaam", "Hogan", "Honey", "Hong", "Hope", "Hopkin", "Hosea", "Howard", "Howie", - "Hristomir", "Hubert", "Hugh", "Hugo", "Humza", "Hunter", "Husnain", "Hussain", "Hussan", "Hussnain", - "Hussnan", "Hyden", "I", "Iagan", "Iain", "Ian", "Ibraheem", "Ibrahim", "Idahosa", "Idrees", "Idris", - "Iestyn", "Ieuan", "Igor", "Ihtisham", "Ijay", "Ikechukwu", "Ikemsinachukwu", "Ilyaas", "Ilyas", "Iman", - "Immanuel", "Inan", "Indy", "Ines", "Innes", "Ioannis", "Ireayomide", "Ireoluwa", "Irvin", "Irvine", "Isa", - "Isaa", "Isaac", "Isaiah", "Isak", "Isher", "Ishwar", "Isimeli", "Isira", "Ismaeel", "Ismail", "Israel", - "Issiaka", "Ivan", "Ivar", "Izaak", "J", "Jaay", "Jac", "Jace", "Jack", "Jacki", "Jackie", "Jack-James", - "Jackson", "Jacky", "Jacob", "Jacques", "Jad", "Jaden", "Jadon", "Jadyn", "Jae", "Jagat", "Jago", "Jaheim", - "Jahid", "Jahy", "Jai", "Jaida", "Jaiden", "Jaidyn", "Jaii", "Jaime", "Jai-Rajaram", "Jaise", "Jak", "Jake", - "Jakey", "Jakob", "Jaksyn", "Jakub", "Jamaal", "Jamal", "Jameel", "Jameil", "James", "James-Paul", "Jamey", - "Jamie", "Jan", "Jaosha", "Jardine", "Jared", "Jarell", "Jarl", "Jarno", "Jarred", "Jarvi", "Jasey-Jay", - "Jasim", "Jaskaran", "Jason", "Jasper", "Jaxon", "Jaxson", "Jay", "Jaydan", "Jayden", "Jayden-James", - "Jayden-Lee", "Jayden-Paul", "Jayden-Thomas", "Jaydn", "Jaydon", "Jaydyn", "Jayhan", "Jay-Jay", "Jayke", - "Jaymie", "Jayse", "Jayson", "Jaz", "Jazeb", "Jazib", "Jazz", "Jean", "Jean-Lewis", "Jean-Pierre", - "Jebadiah", "Jed", "Jedd", "Jedidiah", "Jeemie", "Jeevan", "Jeffrey", "Jensen", "Jenson", "Jensyn", - "Jeremy", "Jerome", "Jeronimo", "Jerrick", "Jerry", "Jesse", "Jesuseun", "Jeswin", "Jevan", "Jeyun", "Jez", - "Jia", "Jian", "Jiao", "Jimmy", "Jincheng", "JJ", "Joaquin", "Joash", "Jock", "Jody", "Joe", "Joeddy", - "Joel", "Joey", "Joey-Jack", "Johann", "Johannes", "Johansson", "John", "Johnathan", "Johndean", "Johnjay", - "John-Michael", "Johnnie", "Johnny", "Johnpaul", "John-Paul", "John-Scott", "Johnson", "Jole", "Jomuel", - "Jon", "Jonah", "Jonatan", "Jonathan", "Jonathon", "Jonny", "Jonothan", "Jon-Paul", "Jonson", "Joojo", - "Jordan", "Jordi", "Jordon", "Jordy", "Jordyn", "Jorge", "Joris", "Jorryn", "Josan", "Josef", "Joseph", - "Josese", "Josh", "Joshiah", "Joshua", "Josiah", "Joss", "Jostelle", "Joynul", "Juan", "Jubin", "Judah", - "Jude", "Jules", "Julian", "Julien", "Jun", "Junior", "Jura", "Justan", "Justin", "Justinas", "Kaan", - "Kabeer", "Kabir", "Kacey", "Kacper", "Kade", "Kaden", "Kadin", "Kadyn", "Kaeden", "Kael", "Kaelan", - "Kaelin", "Kaelum", "Kai", "Kaid", "Kaidan", "Kaiden", "Kaidinn", "Kaidyn", "Kaileb", "Kailin", "Kain", - "Kaine", "Kainin", "Kainui", "Kairn", "Kaison", "Kaiwen", "Kajally", "Kajetan", "Kalani", "Kale", "Kaleb", - "Kaleem", "Kal-el", "Kalen", "Kalin", "Kallan", "Kallin", "Kalum", "Kalvin", "Kalvyn", "Kameron", "Kames", - "Kamil", "Kamran", "Kamron", "Kane", "Karam", "Karamvir", "Karandeep", "Kareem", "Karim", "Karimas", "Karl", - "Karol", "Karson", "Karsyn", "Karthikeya", "Kasey", "Kash", "Kashif", "Kasim", "Kasper", "Kasra", "Kavin", - "Kayam", "Kaydan", "Kayden", "Kaydin", "Kaydn", "Kaydyn", "Kaydyne", "Kayleb", "Kaylem", "Kaylum", "Kayne", - "Kaywan", "Kealan", "Kealon", "Kean", "Keane", "Kearney", "Keatin", "Keaton", "Keavan", "Keayn", "Kedrick", - "Keegan", "Keelan", "Keelin", "Keeman", "Keenan", "Keenan-Lee", "Keeton", "Kehinde", "Keigan", "Keilan", - "Keir", "Keiran", "Keiren", "Keiron", "Keiryn", "Keison", "Keith", "Keivlin", "Kelam", "Kelan", "Kellan", - "Kellen", "Kelso", "Kelum", "Kelvan", "Kelvin", "Ken", "Kenan", "Kendall", "Kendyn", "Kenlin", "Kenneth", - "Kensey", "Kenton", "Kenyon", "Kenzeigh", "Kenzi", "Kenzie", "Kenzo", "Kenzy", "Keo", "Ker", "Kern", "Kerr", - "Kevan", "Kevin", "Kevyn", "Kez", "Khai", "Khalan", "Khaleel", "Khaya", "Khevien", "Khizar", "Khizer", - "Kia", "Kian", "Kian-James", "Kiaran", "Kiarash", "Kie", "Kiefer", "Kiegan", "Kienan", "Kier", "Kieran", - "Kieran-Scott", "Kieren", "Kierin", "Kiern", "Kieron", "Kieryn", "Kile", "Killian", "Kimi", "Kingston", - "Kinneil", "Kinnon", "Kinsey", "Kiran", "Kirk", "Kirwin", "Kit", "Kiya", "Kiyonari", "Kjae", "Klein", - "Klevis", "Kobe", "Kobi", "Koby", "Koddi", "Koden", "Kodi", "Kodie", "Kody", "Kofi", "Kogan", "Kohen", - "Kole", "Konan", "Konar", "Konnor", "Konrad", "Koray", "Korben", "Korbyn", "Korey", "Kori", "Korrin", - "Kory", "Koushik", "Kris", "Krish", "Krishan", "Kriss", "Kristian", "Kristin", "Kristofer", "Kristoffer", - "Kristopher", "Kruz", "Krzysiek", "Krzysztof", "Ksawery", "Ksawier", "Kuba", "Kurt", "Kurtis", "Kurtis-Jae", - "Kyaan", "Kyan", "Kyde", "Kyden", "Kye", "Kyel", "Kyhran", "Kyie", "Kylan", "Kylar", "Kyle", "Kyle-Derek", - "Kylian", "Kym", "Kynan", "Kyral", "Kyran", "Kyren", "Kyrillos", "Kyro", "Kyron", "Kyrran", "Lachlainn", - "Lachlan", "Lachlann", "Lael", "Lagan", "Laird", "Laison", "Lakshya", "Lance", "Lancelot", "Landon", "Lang", - "Lasse", "Latif", "Lauchlan", "Lauchlin", "Laughlan", "Lauren", "Laurence", "Laurie", "Lawlyn", "Lawrence", - "Lawrie", "Lawson", "Layne", "Layton", "Lee", "Leigh", "Leigham", "Leighton", "Leilan", "Leiten", "Leithen", - "Leland", "Lenin", "Lennan", "Lennen", "Lennex", "Lennon", "Lennox", "Lenny", "Leno", "Lenon", "Lenyn", - "Leo", "Leon", "Leonard", "Leonardas", "Leonardo", "Lepeng", "Leroy", "Leven", "Levi", "Levon", "Levy", - "Lewie", "Lewin", "Lewis", "Lex", "Leydon", "Leyland", "Leylann", "Leyton", "Liall", "Liam", "Liam-Stephen", - "Limo", "Lincoln", "Lincoln-John", "Lincon", "Linden", "Linton", "Lionel", "Lisandro", "Litrell", - "Liyonela-Elam", "LLeyton", "Lliam", "Lloyd", "Lloyde", "Loche", "Lochlan", "Lochlann", "Lochlan-Oliver", - "Lock", "Lockey", "Logan", "Logann", "Logan-Rhys", "Loghan", "Lokesh", "Loki", "Lomond", "Lorcan", "Lorenz", - "Lorenzo", "Lorne", "Loudon", "Loui", "Louie", "Louis", "Loukas", "Lovell", "Luc", "Luca", "Lucais", - "Lucas", "Lucca", "Lucian", "Luciano", "Lucien", "Lucus", "Luic", "Luis", "Luk", "Luka", "Lukas", "Lukasz", - "Luke", "Lukmaan", "Luqman", "Lyall", "Lyle", "Lyndsay", "Lysander", "Maanav", "Maaz", "Mac", "Macallum", - "Macaulay", "Macauley", "Macaully", "Machlan", "Maciej", "Mack", "Mackenzie", "Mackenzy", "Mackie", - "Macsen", "Macy", "Madaki", "Maddison", "Maddox", "Madison", "Madison-Jake", "Madox", "Mael", "Magnus", - "Mahan", "Mahdi", "Mahmoud", "Maias", "Maison", "Maisum", "Maitlind", "Majid", "Makensie", "Makenzie", - "Makin", "Maksim", "Maksymilian", "Malachai", "Malachi", "Malachy", "Malakai", "Malakhy", "Malcolm", - "Malik", "Malikye", "Malo", "Ma'moon", "Manas", "Maneet", "Manmohan", "Manolo", "Manson", "Mantej", - "Manuel", "Manus", "Marc", "Marc-Anthony", "Marcel", "Marcello", "Marcin", "Marco", "Marcos", "Marcous", - "Marcquis", "Marcus", "Mario", "Marios", "Marius", "Mark", "Marko", "Markus", "Marley", "Marlin", "Marlon", - "Maros", "Marshall", "Martin", "Marty", "Martyn", "Marvellous", "Marvin", "Marwan", "Maryk", "Marzuq", - "Mashhood", "Mason", "Mason-Jay", "Masood", "Masson", "Matas", "Matej", "Mateusz", "Mathew", "Mathias", - "Mathu", "Mathuyan", "Mati", "Matt", "Matteo", "Matthew", "Matthew-William", "Matthias", "Max", "Maxim", - "Maximilian", "Maximillian", "Maximus", "Maxwell", "Maxx", "Mayeul", "Mayson", "Mazin", "Mcbride", - "McCaulley", "McKade", "McKauley", "McKay", "McKenzie", "McLay", "Meftah", "Mehmet", "Mehraz", "Meko", - "Melville", "Meshach", "Meyzhward", "Micah", "Michael", "Michael-Alexander", "Michael-James", "Michal", - "Michat", "Micheal", "Michee", "Mickey", "Miguel", "Mika", "Mikael", "Mi'kael", "Mikee", "Mikey", "Mikhail", - "Mikolaj", "Miles", "Millar", "Miller", "Milo", "Milos", "Milosz", "Mir", "Mirza", "Mitch", "Mitchel", - "Mitchell", "Moad", "Moayd", "Mobeen", "Modoulamin", "Modu", "Mohamad", "Mohamed", "Mohammad", - "Mohammad-Bilal", "Mohammed", "Mohanad", "Mohd", "Momin", "Momooreoluwa", "Montague", "Montgomery", "Monty", - "Moore", "Moosa", "Moray", "Morgan", "Morgyn", "Morris", "Morton", "Moshy", "Motade", "Moyes", "Msughter", - "Mueez", "Muhamadjavad", "Muhammad", "Muhammed", "Muhsin", "Muir", "Munachi", "Muneeb", "Mungo", "Munir", - "Munmair", "Munro", "Murdo", "Murray", "Murrough", "Murry", "Musa", "Musse", "Mustafa", "Mustapha", - "Muzammil", "Muzzammil", "Mykie", "Myles", "Mylo", "Nabeel", "Nadeem", "Nader", "Nagib", "Naif", "Nairn", - "Narvic", "Nash", "Nasser", "Nassir", "Natan", "Nate", "Nathan", "Nathanael", "Nathanial", "Nathaniel", - "Nathan-Rae", "Nawfal", "Nayan", "Neco", "Neil", "Nelson", "Neo", "Neshawn", "Nevan", "Nevin", - "Ngonidzashe", "Nial", "Niall", "Nicholas", "Nick", "Nickhill", "Nicki", "Nickson", "Nicky", "Nico", - "Nicodemus", "Nicol", "Nicolae", "Nicolas", "Nidhish", "Nihaal", "Nihal", "Nikash", "Nikhil", "Niki", - "Nikita", "Nikodem", "Nikolai", "Nikos", "Nilav", "Niraj", "Niro", "Niven", "Noah", "Noel", "Nolan", "Noor", - "Norman", "Norrie", "Nuada", "Nyah", "Oakley", "Oban", "Obieluem", "Obosa", "Odhran", "Odin", "Odynn", - "Ogheneochuko", "Ogheneruno", "Ohran", "Oilibhear", "Oisin", "Ojima-Ojo", "Okeoghene", "Olaf", "Ola-Oluwa", - "Olaoluwapolorimi", "Ole", "Olie", "Oliver", "Olivier", "Oliwier", "Ollie", "Olurotimi", "Oluwadamilare", - "Oluwadamiloju", "Oluwafemi", "Oluwafikunayomi", "Oluwalayomi", "Oluwatobiloba", "Oluwatoni", "Omar", - "Omri", "Oran", "Orin", "Orlando", "Orley", "Orran", "Orrick", "Orrin", "Orson", "Oryn", "Oscar", - "Osesenagha", "Oskar", "Ossian", "Oswald", "Otto", "Owain", "Owais", "Owen", "Owyn", "Oz", "Ozzy", "Pablo", - "Pacey", "Padraig", "Paolo", "Pardeepraj", "Parkash", "Parker", "Pascoe", "Pasquale", "Patrick", - "Patrick-John", "Patrikas", "Patryk", "Paul", "Pavit", "Pawel", "Pawlo", "Pearce", "Pearse", "Pearsen", - "Pedram", "Pedro", "Peirce", "Peiyan", "Pele", "Peni", "Peregrine", "Peter", "Phani", "Philip", "Philippos", - "Phinehas", "Phoenix", "Phoevos", "Pierce", "Pierre-Antoine", "Pieter", "Pietro", "Piotr", "Porter", - "Prabhjoit", "Prabodhan", "Praise", "Pranav", "Pravin", "Precious", "Prentice", "Presley", "Preston", - "Preston-Jay", "Prinay", "Prince", "Prithvi", "Promise", "Puneetpaul", "Pushkar", "Qasim", "Qirui", - "Quinlan", "Quinn", "Radmiras", "Raees", "Raegan", "Rafael", "Rafal", "Rafferty", "Rafi", "Raheem", "Rahil", - "Rahim", "Rahman", "Raith", "Raithin", "Raja", "Rajab-Ali", "Rajan", "Ralfs", "Ralph", "Ramanas", "Ramit", - "Ramone", "Ramsay", "Ramsey", "Rana", "Ranolph", "Raphael", "Rasmus", "Rasul", "Raul", "Raunaq", "Ravin", - "Ray", "Rayaan", "Rayan", "Rayane", "Rayden", "Rayhan", "Raymond", "Rayne", "Rayyan", "Raza", "Reace", - "Reagan", "Reean", "Reece", "Reed", "Reegan", "Rees", "Reese", "Reeve", "Regan", "Regean", "Reggie", - "Rehaan", "Rehan", "Reice", "Reid", "Reigan", "Reilly", "Reily", "Reis", "Reiss", "Remigiusz", "Remo", - "Remy", "Ren", "Renars", "Reng", "Rennie", "Reno", "Reo", "Reuben", "Rexford", "Reynold", "Rhein", "Rheo", - "Rhett", "Rheyden", "Rhian", "Rhoan", "Rholmark", "Rhoridh", "Rhuairidh", "Rhuan", "Rhuaridh", "Rhudi", - "Rhy", "Rhyan", "Rhyley", "Rhyon", "Rhys", "Rhys-Bernard", "Rhyse", "Riach", "Rian", "Ricards", "Riccardo", - "Ricco", "Rice", "Richard", "Richey", "Richie", "Ricky", "Rico", "Ridley", "Ridwan", "Rihab", "Rihan", - "Rihards", "Rihonn", "Rikki", "Riley", "Rio", "Rioden", "Rishi", "Ritchie", "Rivan", "Riyadh", "Riyaj", - "Roan", "Roark", "Roary", "Rob", "Robbi", "Robbie", "Robbie-lee", "Robby", "Robert", "Robert-Gordon", - "Robertjohn", "Robi", "Robin", "Rocco", "Roddy", "Roderick", "Rodrigo", "Roen", "Rogan", "Roger", "Rohaan", - "Rohan", "Rohin", "Rohit", "Rokas", "Roman", "Ronald", "Ronan", "Ronan-Benedict", "Ronin", "Ronnie", - "Rooke", "Roray", "Rori", "Rorie", "Rory", "Roshan", "Ross", "Ross-Andrew", "Rossi", "Rowan", "Rowen", - "Roy", "Ruadhan", "Ruaidhri", "Ruairi", "Ruairidh", "Ruan", "Ruaraidh", "Ruari", "Ruaridh", "Ruben", - "Rubhan", "Rubin", "Rubyn", "Rudi", "Rudy", "Rufus", "Rui", "Ruo", "Rupert", "Ruslan", "Russel", "Russell", - "Ryaan", "Ryan", "Ryan-Lee", "Ryden", "Ryder", "Ryese", "Ryhs", "Rylan", "Rylay", "Rylee", "Ryleigh", - "Ryley", "Rylie", "Ryo", "Ryszard", "Saad", "Sabeen", "Sachkirat", "Saffi", "Saghun", "Sahaib", "Sahbian", - "Sahil", "Saif", "Saifaddine", "Saim", "Sajid", "Sajjad", "Salahudin", "Salman", "Salter", "Salvador", - "Sam", "Saman", "Samar", "Samarjit", "Samatar", "Sambrid", "Sameer", "Sami", "Samir", "Sami-Ullah", - "Samual", "Samuel", "Samuela", "Samy", "Sanaullah", "Sandro", "Sandy", "Sanfur", "Sanjay", "Santiago", - "Santino", "Satveer", "Saul", "Saunders", "Savin", "Sayad", "Sayeed", "Sayf", "Scot", "Scott", - "Scott-Alexander", "Seaan", "Seamas", "Seamus", "Sean", "Seane", "Sean-James", "Sean-Paul", "Sean-Ray", - "Seb", "Sebastian", "Sebastien", "Selasi", "Seonaidh", "Sephiroth", "Sergei", "Sergio", "Seth", "Sethu", - "Seumas", "Shaarvin", "Shadow", "Shae", "Shahmir", "Shai", "Shane", "Shannon", "Sharland", "Sharoz", - "Shaughn", "Shaun", "Shaunpaul", "Shaun-Paul", "Shaun-Thomas", "Shaurya", "Shaw", "Shawn", "Shawnpaul", - "Shay", "Shayaan", "Shayan", "Shaye", "Shayne", "Shazil", "Shea", "Sheafan", "Sheigh", "Shenuk", "Sher", - "Shergo", "Sheriff", "Sherwyn", "Shiloh", "Shiraz", "Shreeram", "Shreyas", "Shyam", "Siddhant", "Siddharth", - "Sidharth", "Sidney", "Siergiej", "Silas", "Simon", "Sinai", "Skye", "Sofian", "Sohaib", "Sohail", "Soham", - "Sohan", "Sol", "Solomon", "Sonneey", "Sonni", "Sonny", "Sorley", "Soul", "Spencer", "Spondon", "Stanislaw", - "Stanley", "Stefan", "Stefano", "Stefin", "Stephen", "Stephenjunior", "Steve", "Steven", "Steven-lee", - "Stevie", "Stewart", "Stewarty", "Strachan", "Struan", "Stuart", "Su", "Subhaan", "Sudais", "Suheyb", - "Suilven", "Sukhi", "Sukhpal", "Sukhvir", "Sulayman", "Sullivan", "Sultan", "Sung", "Sunny", "Suraj", - "Surien", "Sweyn", "Syed", "Sylvain", "Symon", "Szymon", "Tadd", "Taddy", "Tadhg", "Taegan", "Taegen", - "Tai", "Tait", "Taiwo", "Talha", "Taliesin", "Talon", "Talorcan", "Tamar", "Tamiem", "Tammam", "Tanay", - "Tane", "Tanner", "Tanvir", "Tanzeel", "Taonga", "Tarik", "Tariq-Jay", "Tate", "Taylan", "Taylar", "Tayler", - "Taylor", "Taylor-Jay", "Taylor-Lee", "Tayo", "Tayyab", "Tayye", "Tayyib", "Teagan", "Tee", "Teejay", - "Tee-jay", "Tegan", "Teighen", "Teiyib", "Te-Jay", "Temba", "Teo", "Teodor", "Teos", "Terry", "Teydren", - "Theo", "Theodore", "Thiago", "Thierry", "Thom", "Thomas", "Thomas-Jay", "Thomson", "Thorben", "Thorfinn", - "Thrinei", "Thumbiko", "Tiago", "Tian", "Tiarnan", "Tibet", "Tieran", "Tiernan", "Timothy", "Timucin", - "Tiree", "Tisloh", "Titi", "Titus", "Tiylar", "TJ", "Tjay", "T'jay", "T-Jay", "Tobey", "Tobi", "Tobias", - "Tobie", "Toby", "Todd", "Tokinaga", "Toluwalase", "Tom", "Tomas", "Tomasz", "Tommi-Lee", "Tommy", "Tomson", - "Tony", "Torin", "Torquil", "Torran", "Torrin", "Torsten", "Trafford", "Trai", "Travis", "Tre", "Trent", - "Trey", "Tristain", "Tristan", "Troy", "Tubagus", "Turki", "Turner", "Ty", "Ty-Alexander", "Tye", "Tyelor", - "Tylar", "Tyler", "Tyler-James", "Tyler-Jay", "Tyllor", "Tylor", "Tymom", "Tymon", "Tymoteusz", "Tyra", - "Tyree", "Tyrnan", "Tyrone", "Tyson", "Ubaid", "Ubayd", "Uchenna", "Uilleam", "Umair", "Umar", "Umer", - "Umut", "Urban", "Uri", "Usman", "Uzair", "Uzayr", "Valen", "Valentin", "Valentino", "Valery", "Valo", - "Vasyl", "Vedantsinh", "Veeran", "Victor", "Victory", "Vinay", "Vince", "Vincent", "Vincenzo", "Vinh", - "Vinnie", "Vithujan", "Vladimir", "Vladislav", "Vrishin", "Vuyolwethu", "Wabuya", "Wai", "Walid", "Wallace", - "Walter", "Waqaas", "Warkhas", "Warren", "Warrick", "Wasif", "Wayde", "Wayne", "Wei", "Wen", "Wesley", - "Wesley-Scott", "Wiktor", "Wilkie", "Will", "William", "William-John", "Willum", "Wilson", "Windsor", - "Wojciech", "Woyenbrakemi", "Wyatt", "Wylie", "Wynn", "Xabier", "Xander", "Xavier", "Xiao", "Xida", "Xin", - "Xue", "Yadgor", "Yago", "Yahya", "Yakup", "Yang", "Yanick", "Yann", "Yannick", "Yaseen", "Yasin", "Yasir", - "Yassin", "Yoji", "Yong", "Yoolgeun", "Yorgos", "Youcef", "Yousif", "Youssef", "Yu", "Yuanyu", "Yuri", - "Yusef", "Yusuf", "Yves", "Zaaine", "Zaak", "Zac", "Zach", "Zachariah", "Zacharias", "Zacharie", - "Zacharius", "Zachariya", "Zachary", "Zachary-Marc", "Zachery", "Zack", "Zackary", "Zaid", "Zain", "Zaine", - "Zaineddine", "Zainedin", "Zak", "Zakaria", "Zakariya", "Zakary", "Zaki", "Zakir", "Zakk", "Zamaar", - "Zander", "Zane", "Zarran", "Zayd", "Zayn", "Zayne", "Ze", "Zechariah", "Zeek", "Zeeshan", "Zeid", "Zein", - "Zen", "Zendel", "Zenith", "Zennon", "Zeph", "Zerah", "Zhen", "Zhi", "Zhong", "Zhuo", "Zi", "Zidane", - "Zijie", "Zinedine", "Zion", "Zishan", "Ziya", "Ziyaan", "Zohaib", "Zohair", "Zoubaeir", "Zubair", "Zubayr", - "Zuriel", "Jaime", "Jayden", "Josie", "Juliet", "Karys", "Kathleen", "Kendra", "Keri", "Keris", "Kirstin", - "Klaudia", "Luisa", "Lydia", "Maeve", "Marnie", "Miah", "Mirrin", "Nancy", "Nia", "Nikki", "Oliwia", - "Paris", "Piper", "Pippa", "Polly", "Rhona", "Safa", "Saira", "Sarah-Louise", "Shona", "Sorcha", "Stacey", - "Tessa", "Tiffany", "Verity", "Zarah", "Zoya", "Alexandria", "Alina", "Alison", "Angela", "Arianna", - "Chanel", "Chelsey", "Coral", "Corinne", "Danni", "Darci", "Dionne", "Eliza", "Elsie", "Fatima", "Freyja", - "Holli", "Jane", "Joanne", "Karina", "Katrina", "Kaylah", "Kaylee", "Lori", "Mila", "Nikita", "Penny", - "Sylvie", "Tammy", "Alexa", "Brooklyn", "Caragh", "Codie", "Constance", "Dana", "Demi-Lee", "Emilie", - "Esther", "Frankie", "Isabelle", "Jamie-Leigh", "Jessie", "Josephine", "Kady", "Kaila", "Kerri", "Kirstie", - "Lyla", "Macey", "Maisy", "Margaret", "Marie", "Maryam", "Mercedes", "Mischa", "Rosa", "Serena", "Sian", - "Tamzin", "Vanessa", "Violet", "Yasmine", "Aisha", "Aleisha", "Ana", "Daniella", "Elsa", "Jodi", "Karly", - "Leigha", "Lila", "Melanie", "Miriam", "Regan", "Sally", "Saskia", "Simone", "Tess", "Thea", "Zainab", - "Arwen", "Bonnie", "Eloise", "Emma-Louise", "Halle", "Hana", "Honey", "Jamie-Lee", "Karla", "Leia", "Leila", - "Madeline", "Neave", "Orlaith", "Rhea", "Sarah-Jane", "Tara", "Adele", "Alannah", "Alesha", "Annabelle", - "Ayla", "Becca", "Darcie", "Ebony", "Erica", "Georgie", "Hanna", "Julie", "Kadie", "Kelly", "Kiara", - "Lillie", "Mariam", "Mikayla", "Monica", "Roisin", "Savannah", "Sky", "Zahra", "Alanna", "Caoimhe", - "Chanelle", "Elisha", "Emilia", "Iris", "Kacie", "Lia", "Maja", "Mary", "Michelle", "Tyler", "Willow", - "Yasmin", "Becky", "Billie", "Clara", "Claudia", "Cody", "Elena", "Eryn", "Georgina", "Kayley", "Kimberley", - "Kira", "Laila", "Lauryn", "Murron", "Natalia", "Ruth", "Siobhan", "Tiana", "Bethan", "Brodie", "Cameron", - "Cassie", "Harriet", "Helen", "Kathryn", "Kyra", "Mairi", "Mckenzie", "Tilly", "Zuzanna", "April", - "Christina", "Claire", "Darcey", "Fern", "Fiona", "Joanna", "Lucia", "Charli", "Jamie", "Karis", - "Mackenzie", "Marissa", "Rihanna", "Teagan", "Tiegan", "Kaitlin", "Keeley", "Leigh", "Nadia", "Alix", - "Callie", "Carrie", "Eden", "Esme", "Hazel", "Miya", "Nieve", "Sadie", "Sasha", "Sinead", "Stella", - "Ashleigh", "Jade", "Jemma", "Michaela", "Alexis", "Aoife", "Francesca", "Lisa", "Matilda", "Annabel", - "Carmen", "Eleanor", "Faye", "Kaci", "Kasey", "Kerry", "Louisa", "Macy", "Mhairi", "Rebekah", "Teigan", - "Amie", "Brogan", "Catriona", "Scarlett", "Connie", "Katelyn", "Kenzie", "Lexi", "Nicola", "Sienna", "Abbi", - "Angel", "Martha", "Anya", "Toni", "Chantelle", "Gabriella", "Lexie", "Abbey", "Bailey", "Isobel", "Kelsie", - "Maia", "Nina", "Darcy", "Lacey", "Lana", "Sofia", "Stephanie", "Ellen", "Alicia", "Gabrielle", "Heidi", - "Jorja", "Kyla", "Rhiannon", "Tegan", "Maddison", "Madeleine", "Morven", "Rowan", "Lucie", "Milly", "Annie", - "Ashley", "Ellis", "Hope", "Mirren", "Rose", "Alexandra", "Jodie", "Kacey", "Phoebe", "Tia", "Ailsa", - "Alana", "Kirsten", "Charlie", "Katy", "Lilly", "Alyssa", "Maria", "Naomi", "Alisha", "Danielle", "Lola", - "Ciara", "Elle", "Faith", "Natasha", "Katherine", "Lois", "Mollie", "Carla", "Catherine", "Cerys", "Maisie", - "Victoria", "Amelie", "Demi", "Gracie", "Carys", "Isabella", "Leona", "Alex", "Hollie", "Sara", "Caitlyn", - "Kiera", "Lara", "Kate", "Louise", "Libby", "Rhianna", "Rosie", "Alice", "Julia", "Maya", "Natalie", - "Chelsea", "Layla", "Samantha", "Heather", "Kirsty", "Rachael", "Charley", "Imogen", "Elise", "Hayley", - "Kelsey", "Kara", "Orla", "Abi", "Gemma", "Laura", "Mya", "Bethany", "Jasmine", "Melissa", "Poppy", "Casey", - "Elizabeth", "Kaitlyn", "Carly", "Abby", "Neve", "Courtney", "Jennifer", "Sophia", "Shannon", "Georgia", - "Amber", "Robyn", "Beth", "Zara", "Amelia", "Taylor", "Daisy", "Paige", "Kayleigh", "Summer", "Madison", - "Jenna", "Morgan", "Evie", "Nicole", "Ella", "Cara", "Iona", "Eve", "Zoe", "Kayla", "Molly", "Abigail", - "Charlotte", "Millie", "Holly", "Leah", "Keira", "Lily", "Freya", "Caitlin", "Lauren", "Rachel", "Anna", - "Sarah", "Ruby", "Aimee", "Mia", "Skye", "Abbie", "Eva", "Eilidh", "Niamh", "Megan", "Brooke", "Isla", - "Rebecca", "Ava", "Grace", "Jessica", "Hannah", "Olivia", "Chloe", "Emily", "Amy", "Ellie", "Erin", "Katie", - "Lucy", "Emma", "Sophie" }; - } + private static final String[] generateFirstNames() { + return new String[] { + "AARON", + "ABBIE", + "ABBY", + "ABEL", + "ABIGAIL", + "ABRAHAM", + "ADA", + "ADAM", + "ADAN", + "ADDIE", + "ADELA", + "ADELAIDE", + "ADELE", + "ADELINE", + "ADOLFO", + "ADOLPH", + "ADRIAN", + "ADRIANA", + "ADRIENNE", + "AGNES", + "AGUSTIN", + "AIDA", + "AILEEN", + "AIMEE", + "AISHA", + "AL", + "ALAN", + "ALANA", + "ALBA", + "ALBERT", + "ALBERTA", + "ALBERTO", + "ALEJANDRA", + "ALEJANDRO", + "ALEX", + "ALEXANDER", + "ALEXANDRA", + "ALEXANDRIA", + "ALEXIS", + "ALFONSO", + "ALFRED", + "ALFREDA", + "ALFREDO", + "ALI", + "ALICE", + "ALICIA", + "ALINE", + "ALISA", + "ALISHA", + "ALISON", + "ALISSA", + "ALLAN", + "ALLEN", + "ALLENE", + "ALLIE", + "ALLISON", + "ALLYSON", + "ALMA", + "ALONZO", + "ALPHONSO", + "ALTA", + "ALTHEA", + "ALTON", + "ALVARO", + "ALVIN", + "ALYCE", + "ALYSON", + "ALYSSA", + "AMALIA", + "AMANDA", + "AMBER", + "AMELIA", + "AMIE", + "AMOS", + "AMPARO", + "AMY", + "ANA", + "ANASTASIA", + "ANDRE", + "ANDREA", + "ANDRES", + "ANDREW", + "ANDY", + "ANGEL", + "ANGELA", + "ANGELIA", + "ANGELICA", + "ANGELINA", + "ANGELINE", + "ANGELIQUE", + "ANGELITA", + "ANGELO", + "ANGIE", + "ANITA", + "ANN", + "ANNA", + "ANNABELLE", + "ANNE", + "ANNETTE", + "ANNIE", + "ANNMARIE", + "ANTHONY", + "ANTIONETTE", + "ANTOINE", + "ANTOINETTE", + "ANTON", + "ANTONIA", + "ANTONIO", + "ANTONY", + "APRIL", + "ARACELI", + "ARCHIE", + "ARLENE", + "ARLINE", + "ARMAND", + "ARMANDO", + "ARNOLD", + "ARRON", + "ART", + "ARTHUR", + "ARTURO", + "ASHLEE", + "ASHLEIGH", + "ASHLEY", + "AUBREY", + "AUDRA", + "AUDREY", + "AUGUST", + "AUGUSTA", + "AURELIA", + "AURELIO", + "AURORA", + "AUSTIN", + "AUTUMN", + "AVA", + "AVERY", + "AVIS", + "BARBARA", + "BARBRA", + "BARNEY", + "BARRY", + "BART", + "BASIL", + "BEATRICE", + "BEATRIZ", + "BEAU", + "BECKY", + "BELINDA", + "BEN", + "BENITA", + "BENITO", + "BENJAMIN", + "BENNETT", + "BENNIE", + "BENNY", + "BERNADETTE", + "BERNADINE", + "BERNARD", + "BERNARDO", + "BERNICE", + "BERNIE", + "BERT", + "BERTA", + "BERTHA", + "BERTIE", + "BERYL", + "BESSIE", + "BETH", + "BETHANY", + "BETSY", + "BETTE", + "BETTIE", + "BETTY", + "BETTYE", + "BEULAH", + "BEVERLEY", + "BEVERLY", + "BIANCA", + "BILL", + "BILLIE", + "BILLY", + "BLAINE", + "BLAIR", + "BLAKE", + "BLANCA", + "BLANCHE", + "BOB", + "BOBBI", + "BOBBIE", + "BOBBY", + "BONITA", + "BONNIE", + "BOOKER", + "BOYD", + "BRAD", + "BRADFORD", + "BRADLEY", + "BRADY", + "BRAIN", + "BRANDEN", + "BRANDI", + "BRANDIE", + "BRANDON", + "BRANDY", + "BRENDA", + "BRENDAN", + "BRENT", + "BRET", + "BRETT", + "BRIAN", + "BRIANA", + "BRIANNA", + "BRIDGET", + "BRIDGETT", + "BRIDGETTE", + "BRIGITTE", + "BRITNEY", + "BRITTANY", + "BRITTNEY", + "BROCK", + "BROOKE", + "BRUCE", + "BRUNO", + "BRYAN", + "BRYANT", + "BRYCE", + "BRYON", + "BUDDY", + "BUFORD", + "BURTON", + "BYRON", + "CAITLIN", + "CALEB", + "CALLIE", + "CALVIN", + "CAMERON", + "CAMILLA", + "CAMILLE", + "CANDACE", + "CANDICE", + "CANDY", + "CARA", + "CAREY", + "CARISSA", + "CARL", + "CARLA", + "CARLENE", + "CARLO", + "CARLOS", + "CARLTON", + "CARLY", + "CARMELA", + "CARMELLA", + "CARMELO", + "CARMEN", + "CAROL", + "CAROLE", + "CAROLINA", + "CAROLINE", + "CAROLYN", + "CARRIE", + "CARROLL", + "CARSON", + "CARTER", + "CARY", + "CARYN", + "CASANDRA", + "CASEY", + "CASSANDRA", + "CASSIE", + "CATALINA", + "CATHERINE", + "CATHLEEN", + "CATHRYN", + "CATHY", + "CECELIA", + "CECIL", + "CECILE", + "CECILIA", + "CEDRIC", + "CELESTE", + "CELIA", + "CELINA", + "CESAR", + "CHAD", + "CHANDRA", + "CHARITY", + "CHARLENE", + "CHARLES", + "CHARLEY", + "CHARLIE", + "CHARLOTTE", + "CHARMAINE", + "CHASE", + "CHASITY", + "CHELSEA", + "CHELSEY", + "CHERI", + "CHERIE", + "CHERRY", + "CHERYL", + "CHESTER", + "CHRIS", + "CHRISTA", + "CHRISTI", + "CHRISTIAN", + "CHRISTIE", + "CHRISTINA", + "CHRISTINE", + "CHRISTOPHER", + "CHRISTY", + "CHRYSTAL", + "CHUCK", + "CINDY", + "CLAIR", + "CLAIRE", + "CLARA", + "CLARE", + "CLARENCE", + "CLARICE", + "CLARISSA", + "CLARK", + "CLAUDE", + "CLAUDETTE", + "CLAUDIA", + "CLAUDINE", + "CLAY", + "CLAYTON", + "CLEMENT", + "CLEO", + "CLEVELAND", + "CLIFF", + "CLIFFORD", + "CLIFTON", + "CLINT", + "CLINTON", + "CLYDE", + "CODY", + "COLBY", + "COLE", + "COLEEN", + "COLETTE", + "COLIN", + "COLLEEN", + "COLLIN", + "CONCEPCION", + "CONCETTA", + "CONNIE", + "CONRAD", + "CONSTANCE", + "CONSUELO", + "CORA", + "COREY", + "CORINA", + "CORINE", + "CORINNE", + "CORNELIA", + "CORNELIUS", + "CORNELL", + "CORRINE", + "CORTNEY", + "CORY", + "COURTNEY", + "COY", + "CRAIG", + "CRISTINA", + "CRUZ", + "CRYSTAL", + "CURT", + "CURTIS", + "CYNTHIA", + "DAISY", + "DALE", + "DALLAS", + "DALTON", + "DAMIAN", + "DAMIEN", + "DAMON", + "DAN", + "DANA", + "DANE", + "DANIAL", + "DANIEL", + "DANIELLE", + "DANNY", + "DANTE", + "DAPHNE", + "DARCY", + "DAREN", + "DARIN", + "DARIUS", + "DARLA", + "DARLENE", + "DARNELL", + "DARREL", + "DARRELL", + "DARREN", + "DARRIN", + "DARRYL", + "DARWIN", + "DARYL", + "DAVE", + "DAVID", + "DAVIS", + "DAWN", + "DAYNA", + "DEAN", + "DEANA", + "DEANN", + "DEANNA", + "DEANNE", + "DEBBIE", + "DEBORA", + "DEBORAH", + "DEBRA", + "DEE", + "DEENA", + "DEIDRA", + "DEIDRE", + "DEIRDRE", + "DELBERT", + "DELIA", + "DELLA", + "DELMAR", + "DELORES", + "DELORIS", + "DEMETRIUS", + "DENA", + "DENICE", + "DENIS", + "DENISE", + "DENNIS", + "DENNY", + "DENVER", + "DEREK", + "DERICK", + "DERRICK", + "DESIREE", + "DESMOND", + "DESSIE", + "DEVIN", + "DEVON", + "DEWAYNE", + "DEWEY", + "DEXTER", + "DIANA", + "DIANE", + "DIANN", + "DIANNA", + "DIANNE", + "DICK", + "DIEGO", + "DINA", + "DION", + "DIONNE", + "DIRK", + "DIXIE", + "DOLLIE", + "DOLLY", + "DOLORES", + "DOMINGO", + "DOMINIC", + "DOMINICK", + "DOMINIQUE", + "DON", + "DONA", + "DONALD", + "DONNA", + "DONNELL", + "DONNIE", + "DONNY", + "DONOVAN", + "DORA", + "DOREEN", + "DORETHA", + "DORIS", + "DOROTHEA", + "DOROTHY", + "DORTHY", + "DOUG", + "DOUGLAS", + "DOYLE", + "DREW", + "DUANE", + "DUDLEY", + "DUSTIN", + "DWAYNE", + "DWIGHT", + "DYLAN", + "EARL", + "EARLENE", + "EARLINE", + "EARNEST", + "EARNESTINE", + "EBONY", + "ED", + "EDDIE", + "EDDY", + "EDGAR", + "EDITH", + "EDMOND", + "EDMUND", + "EDNA", + "EDUARDO", + "EDWARD", + "EDWARDO", + "EDWIN", + "EDWINA", + "EDYTHE", + "EFFIE", + "EFRAIN", + "EILEEN", + "ELAINE", + "ELBA", + "ELBERT", + "ELDA", + "ELDON", + "ELEANOR", + "ELENA", + "ELI", + "ELIAS", + "ELIJAH", + "ELINOR", + "ELISA", + "ELISABETH", + "ELISE", + "ELISHA", + "ELIZA", + "ELIZABETH", + "ELLA", + "ELLEN", + "ELLIOT", + "ELLIOTT", + "ELLIS", + "ELMA", + "ELMER", + "ELNORA", + "ELOISE", + "ELSA", + "ELSIE", + "ELTON", + "ELVA", + "ELVIA", + "ELVIN", + "ELVIRA", + "ELVIS", + "ELWOOD", + "EMANUEL", + "EMERSON", + "EMERY", + "EMIL", + "EMILIA", + "EMILIE", + "EMILIO", + "EMILY", + "EMMA", + "EMMANUEL", + "EMMETT", + "EMORY", + "ENID", + "ENRIQUE", + "ERIC", + "ERICA", + "ERICK", + "ERICKA", + "ERIK", + "ERIKA", + "ERIN", + "ERMA", + "ERNA", + "ERNEST", + "ERNESTINE", + "ERNESTO", + "ERNIE", + "ERROL", + "ERVIN", + "ERWIN", + "ESMERALDA", + "ESPERANZA", + "ESSIE", + "ESTEBAN", + "ESTELA", + "ESTELLA", + "ESTELLE", + "ESTER", + "ESTHER", + "ETHAN", + "ETHEL", + "ETTA", + "EUGENE", + "EUGENIA", + "EULA", + "EUNICE", + "EVA", + "EVAN", + "EVANGELINA", + "EVANGELINE", + "EVE", + "EVELYN", + "EVERETT", + "FABIAN", + "FAITH", + "FANNIE", + "FANNY", + "FAY", + "FAYE", + "FEDERICO", + "FELECIA", + "FELICIA", + "FELIPE", + "FELIX", + "FERN", + "FERNANDO", + "FIDEL", + "FLETCHER", + "FLORA", + "FLORENCE", + "FLORINE", + "FLOSSIE", + "FLOYD", + "FORREST", + "FRAN", + "FRANCES", + "FRANCESCA", + "FRANCINE", + "FRANCIS", + "FRANCISCA", + "FRANCISCO", + "FRANK", + "FRANKIE", + "FRANKLIN", + "FRED", + "FREDA", + "FREDDIE", + "FREDDY", + "FREDERIC", + "FREDERICK", + "FREDRICK", + "FREIDA", + "FRIEDA", + "GABRIEL", + "GABRIELA", + "GABRIELLE", + "GAIL", + "GALE", + "GALEN", + "GARLAND", + "GARRETT", + "GARRY", + "GARY", + "GAVIN", + "GAY", + "GAYLA", + "GAYLE", + "GENA", + "GENARO", + "GENE", + "GENEVA", + "GENEVIEVE", + "GEOFFREY", + "GEORGE", + "GEORGETTE", + "GEORGIA", + "GEORGINA", + "GERALD", + "GERALDINE", + "GERARD", + "GERARDO", + "GERI", + "GERMAINE", + "GERMAN", + "GERRY", + "GERTRUDE", + "GILBERT", + "GILBERTO", + "GILDA", + "GINA", + "GINGER", + "GLADYS", + "GLEN", + "GLENDA", + "GLENN", + "GLENNA", + "GLORIA", + "GOLDIE", + "GONZALO", + "GORDON", + "GRACE", + "GRACIE", + "GRACIELA", + "GRADY", + "GRAHAM", + "GRANT", + "GREG", + "GREGG", + "GREGORIO", + "GREGORY", + "GRETA", + "GRETCHEN", + "GROVER", + "GUADALUPE", + "GUILLERMO", + "GUS", + "GUSSIE", + "GUSTAVO", + "GUY", + "GWEN", + "GWENDOLYN", + "HAL", + "HALEY", + "HALLIE", + "HANNAH", + "HANS", + "HARLAN", + "HARLEY", + "HAROLD", + "HARRIET", + "HARRIETT", + "HARRIS", + "HARRISON", + "HARRY", + "HARVEY", + "HATTIE", + "HAZEL", + "HEATH", + "HEATHER", + "HECTOR", + "HEIDI", + "HELEN", + "HELENA", + "HELENE", + "HELGA", + "HENRIETTA", + "HENRY", + "HERBERT", + "HERIBERTO", + "HERMAN", + "HERMINIA", + "HESTER", + "HILARY", + "HILDA", + "HILLARY", + "HIRAM", + "HOLLIE", + "HOLLIS", + "HOLLY", + "HOMER", + "HOPE", + "HORACE", + "HOUSTON", + "HOWARD", + "HUBERT", + "HUGH", + "HUGO", + "HUMBERTO", + "HUNG", + "HUNTER", + "IAN", + "IDA", + "IGNACIO", + "ILA", + "ILENE", + "IMELDA", + "IMOGENE", + "INA", + "INES", + "INEZ", + "INGRID", + "IRA", + "IRENE", + "IRIS", + "IRMA", + "IRVIN", + "IRVING", + "IRWIN", + "ISAAC", + "ISABEL", + "ISABELLA", + "ISABELLE", + "ISAIAH", + "ISIDRO", + "ISMAEL", + "ISRAEL", + "ISSAC", + "IVA", + "IVAN", + "IVY", + "JACK", + "JACKIE", + "JACKLYN", + "JACKSON", + "JACLYN", + "JACOB", + "JACQUELINE", + "JACQUELYN", + "JACQUES", + "JADE", + "JAIME", + "JAKE", + "JAMAL", + "JAME", + "JAMES", + "JAMI", + "JAMIE", + "JAN", + "JANA", + "JANE", + "JANELL", + "JANELLE", + "JANET", + "JANETTE", + "JANICE", + "JANIE", + "JANINE", + "JANIS", + "JANNA", + "JANNIE", + "JARED", + "JARROD", + "JARVIS", + "JASMIN", + "JASMINE", + "JASON", + "JASPER", + "JAVIER", + "JAY", + "JAYNE", + "JAYSON", + "JEAN", + "JEANETTE", + "JEANIE", + "JEANINE", + "JEANNE", + "JEANNETTE", + "JEANNIE", + "JEANNINE", + "JEFF", + "JEFFERSON", + "JEFFERY", + "JEFFREY", + "JEFFRY", + "JENIFER", + "JENNA", + "JENNIE", + "JENNIFER", + "JENNY", + "JERALD", + "JEREMIAH", + "JEREMY", + "JERI", + "JERMAINE", + "JEROME", + "JERRI", + "JERRY", + "JESS", + "JESSE", + "JESSICA", + "JESSIE", + "JESUS", + "JEWEL", + "JEWELL", + "JILL", + "JILLIAN", + "JIM", + "JIMMIE", + "JIMMY", + "JO", + "JOAN", + "JOANN", + "JOANNA", + "JOANNE", + "JOAQUIN", + "JOCELYN", + "JODI", + "JODIE", + "JODY", + "JOE", + "JOEL", + "JOESPH", + "JOEY", + "JOHANNA", + "JOHN", + "JOHNATHAN", + "JOHNATHON", + "JOHNNIE", + "JOHNNY", + "JOLENE", + "JON", + "JONATHAN", + "JONATHON", + "JONI", + "JORDAN", + "JORGE", + "JOSE", + "JOSEFA", + "JOSEFINA", + "JOSEPH", + "JOSEPHINE", + "JOSH", + "JOSHUA", + "JOSIE", + "JOSUE", + "JOY", + "JOYCE", + "JUAN", + "JUANA", + "JUANITA", + "JUDI", + "JUDITH", + "JUDY", + "JULIA", + "JULIAN", + "JULIANA", + "JULIANNE", + "JULIE", + "JULIET", + "JULIETTE", + "JULIO", + "JULIUS", + "JUNE", + "JUNIOR", + "JUSTIN", + "JUSTINA", + "JUSTINE", + "KAITLIN", + "KAITLYN", + "KARA", + "KAREN", + "KARI", + "KARIN", + "KARINA", + "KARL", + "KARLA", + "KARYN", + "KASEY", + "KATE", + "KATELYN", + "KATHARINE", + "KATHERINE", + "KATHERYN", + "KATHI", + "KATHIE", + "KATHLEEN", + "KATHRINE", + "KATHRYN", + "KATHY", + "KATIE", + "KATINA", + "KATRINA", + "KATY", + "KAY", + "KAYE", + "KAYLA", + "KEISHA", + "KEITH", + "KELLEY", + "KELLI", + "KELLIE", + "KELLY", + "KELSEY", + "KELVIN", + "KEN", + "KENDALL", + "KENDRA", + "KENDRICK", + "KENNETH", + "KENNY", + "KENT", + "KENYA", + "KERI", + "KERMIT", + "KERRI", + "KERRY", + "KEVIN", + "KIM", + "KIMBERLEE", + "KIMBERLEY", + "KIMBERLY", + "KIRBY", + "KIRK", + "KIRSTEN", + "KITTY", + "KRIS", + "KRISTA", + "KRISTEN", + "KRISTI", + "KRISTIE", + "KRISTIN", + "KRISTINA", + "KRISTINE", + "KRISTOPHER", + "KRISTY", + "KRYSTAL", + "KURT", + "KURTIS", + "KYLE", + "LACEY", + "LACY", + "LADONNA", + "LAKEISHA", + "LAKESHA", + "LAKISHA", + "LAMAR", + "LAMONT", + "LANA", + "LANCE", + "LANDON", + "LANE", + "LARA", + "LARRY", + "LASHONDA", + "LATANYA", + "LATASHA", + "LATISHA", + "LATONYA", + "LATOYA", + "LAURA", + "LAUREL", + "LAUREN", + "LAURENCE", + "LAURI", + "LAURIE", + "LAVERNE", + "LAVONNE", + "LAWANDA", + "LAWRENCE", + "LEA", + "LEAH", + "LEANN", + "LEANNA", + "LEANNE", + "LEE", + "LEEANN", + "LEIGH", + "LEILA", + "LELA", + "LELAND", + "LELIA", + "LENA", + "LENORA", + "LENORE", + "LEO", + "LEOLA", + "LEON", + "LEONA", + "LEONARD", + "LEONARDO", + "LEONEL", + "LEONOR", + "LEROY", + "LESA", + "LESLEY", + "LESLIE", + "LESSIE", + "LESTER", + "LETA", + "LETHA", + "LETICIA", + "LETITIA", + "LEVI", + "LEWIS", + "LIBBY", + "LIDIA", + "LILA", + "LILIA", + "LILIAN", + "LILIANA", + "LILLIAN", + "LILLIE", + "LILLY", + "LILY", + "LINA", + "LINCOLN", + "LINDA", + "LINDSAY", + "LINDSEY", + "LINWOOD", + "LIONEL", + "LISA", + "LIZ", + "LIZA", + "LIZZIE", + "LLOYD", + "LOGAN", + "LOIS", + "LOLA", + "LOLITA", + "LONNIE", + "LORA", + "LORAINE", + "LOREN", + "LORENA", + "LORENE", + "LORENZO", + "LORETTA", + "LORI", + "LORIE", + "LORNA", + "LORRAINE", + "LORRIE", + "LOTTIE", + "LOU", + "LOUELLA", + "LOUIE", + "LOUIS", + "LOUISA", + "LOUISE", + "LOURDES", + "LOWELL", + "LOYD", + "LUANN", + "LUCAS", + "LUCIA", + "LUCILE", + "LUCILLE", + "LUCINDA", + "LUCY", + "LUELLA", + "LUIS", + "LUISA", + "LUKE", + "LULA", + "LUPE", + "LUTHER", + "LUZ", + "LYDIA", + "LYLE", + "LYNDA", + "LYNETTE", + "LYNN", + "LYNNE", + "LYNNETTE", + "MA", + "MABEL", + "MABLE", + "MACK", + "MADELEINE", + "MADELINE", + "MADELYN", + "MADGE", + "MAE", + "MAGDALENA", + "MAGGIE", + "MAI", + "MALCOLM", + "MALINDA", + "MALLORY", + "MAMIE", + "MANDY", + "MANUEL", + "MANUELA", + "MARA", + "MARC", + "MARCEL", + "MARCELINO", + "MARCELLA", + "MARCI", + "MARCIA", + "MARCIE", + "MARCO", + "MARCOS", + "MARCUS", + "MARCY", + "MARGARET", + "MARGARITA", + "MARGERY", + "MARGIE", + "MARGO", + "MARGOT", + "MARGRET", + "MARGUERITE", + "MARI", + "MARIA", + "MARIAN", + "MARIANA", + "MARIANNE", + "MARIANO", + "MARIBEL", + "MARICELA", + "MARIE", + "MARIETTA", + "MARILYN", + "MARINA", + "MARIO", + "MARION", + "MARISA", + "MARISOL", + "MARISSA", + "MARITZA", + "MARJORIE", + "MARK", + "MARLA", + "MARLENE", + "MARLIN", + "MARLON", + "MARQUITA", + "MARSHA", + "MARSHALL", + "MARTA", + "MARTHA", + "MARTIN", + "MARTINA", + "MARTY", + "MARVA", + "MARVIN", + "MARY", + "MARYANN", + "MARYANNE", + "MARYELLEN", + "MARYLOU", + "MASON", + "MATHEW", + "MATILDA", + "MATT", + "MATTHEW", + "MATTIE", + "MAUDE", + "MAURA", + "MAUREEN", + "MAURICE", + "MAURICIO", + "MAVIS", + "MAX", + "MAXINE", + "MAXWELL", + "MAY", + "MAYNARD", + "MAYRA", + "MEAGAN", + "MEGAN", + "MEGHAN", + "MELANIE", + "MELBA", + "MELINDA", + "MELISA", + "MELISSA", + "MELLISA", + "MELODY", + "MELVA", + "MELVIN", + "MERCEDES", + "MEREDITH", + "MERLE", + "MERLIN", + "MERRILL", + "MIA", + "MICAH", + "MICHAEL", + "MICHAELA", + "MICHEAL", + "MICHEL", + "MICHELE", + "MICHELL", + "MICHELLE", + "MICKEY", + "MIGUEL", + "MIKE", + "MILAGROS", + "MILDRED", + "MILES", + "MILLARD", + "MILLICENT", + "MILLIE", + "MILTON", + "MINA", + "MINDY", + "MINERVA", + "MINNIE", + "MIRANDA", + "MIRIAM", + "MISTY", + "MITCHELL", + "MITZI", + "MOHAMMAD", + "MOISES", + "MOLLIE", + "MOLLY", + "MONA", + "MONICA", + "MONIKA", + "MONIQUE", + "MONROE", + "MONTE", + "MONTY", + "MORGAN", + "MORRIS", + "MOSES", + "MURIEL", + "MURRAY", + "MYRA", + "MYRNA", + "MYRON", + "MYRTLE", + "NADIA", + "NADINE", + "NAN", + "NANCY", + "NANETTE", + "NANNIE", + "NAOMI", + "NATALIA", + "NATALIE", + "NATASHA", + "NATHAN", + "NATHANIEL", + "NEAL", + "NED", + "NEIL", + "NELDA", + "NELL", + "NELLIE", + "NELLY", + "NELSON", + "NESTOR", + "NETTIE", + "NEVA", + "NICHOLAS", + "NICHOLE", + "NICK", + "NICKOLAS", + "NICOLAS", + "NICOLE", + "NIKKI", + "NINA", + "NITA", + "NOAH", + "NOE", + "NOEL", + "NOELLE", + "NOEMI", + "NOLA", + "NOLAN", + "NONA", + "NORA", + "NORBERT", + "NOREEN", + "NORMA", + "NORMAN", + "NORRIS", + "NUMBERS", + "OCTAVIA", + "OCTAVIO", + "ODELL", + "ODESSA", + "OFELIA", + "OLA", + "OLGA", + "OLIVE", + "OLIVER", + "OLIVIA", + "OLLIE", + "OMAR", + "OPAL", + "OPHELIA", + "ORA", + "ORLANDO", + "ORVILLE", + "OSCAR", + "OTIS", + "OTTO", + "OWEN", + "PABLO", + "PAIGE", + "PAM", + "PAMALA", + "PAMELA", + "PANSY", + "PASQUALE", + "PAT", + "PATRICA", + "PATRICE", + "PATRICIA", + "PATRICK", + "PATSY", + "PATTI", + "PATTY", + "PAUL", + "PAULA", + "PAULETTE", + "PAULINE", + "PEARL", + "PEARLIE", + "PEDRO", + "PEGGY", + "PENELOPE", + "PENNY", + "PERCY", + "PERRY", + "PETE", + "PETER", + "PETRA", + "PHIL", + "PHILIP", + "PHILLIP", + "PHOEBE", + "PHYLLIS", + "PIERRE", + "POLLY", + "PRESTON", + "PRISCILLA", + "QUEEN", + "QUENTIN", + "QUINCY", + "QUINTON", + "RACHAEL", + "RACHEL", + "RACHELLE", + "RAE", + "RAFAEL", + "RALPH", + "RAMIRO", + "RAMON", + "RAMONA", + "RANDAL", + "RANDALL", + "RANDI", + "RANDOLPH", + "RANDY", + "RAPHAEL", + "RAQUEL", + "RAUL", + "RAY", + "RAYMOND", + "RAYMUNDO", + "REBA", + "REBECCA", + "REBEKAH", + "REED", + "REGGIE", + "REGINA", + "REGINALD", + "RENA", + "RENAE", + "RENE", + "RENEE", + "REUBEN", + "REVA", + "REX", + "REYNA", + "REYNALDO", + "RHEA", + "RHODA", + "RHONDA", + "RICARDO", + "RICHARD", + "RICK", + "RICKEY", + "RICKIE", + "RICKY", + "RIGOBERTO", + "RILEY", + "RITA", + "ROB", + "ROBBIE", + "ROBBY", + "ROBERT", + "ROBERTA", + "ROBERTO", + "ROBIN", + "ROBYN", + "ROCCO", + "ROCHELLE", + "ROCIO", + "ROCKY", + "ROD", + "RODERICK", + "RODGER", + "RODNEY", + "RODOLFO", + "RODRIGO", + "ROGELIO", + "ROGER", + "ROLAND", + "ROLANDO", + "ROMAN", + "ROMEO", + "RON", + "RONALD", + "RONDA", + "RONNIE", + "ROOSEVELT", + "RORY", + "ROSA", + "ROSALIA", + "ROSALIE", + "ROSALIND", + "ROSALINDA", + "ROSALYN", + "ROSANNA", + "ROSANNE", + "ROSARIO", + "ROSCOE", + "ROSE", + "ROSEANN", + "ROSELLA", + "ROSEMARIE", + "ROSEMARY", + "ROSETTA", + "ROSIE", + "ROSLYN", + "ROSS", + "ROWENA", + "ROXANNE", + "ROXIE", + "ROY", + "ROYCE", + "RUBEN", + "RUBY", + "RUDOLPH", + "RUDY", + "RUFUS", + "RUSSEL", + "RUSSELL", + "RUSTY", + "RUTH", + "RUTHIE", + "RYAN", + "SABRINA", + "SADIE", + "SALLIE", + "SALLY", + "SALVADOR", + "SALVATORE", + "SAM", + "SAMANTHA", + "SAMMIE", + "SAMMY", + "SAMUEL", + "SANDRA", + "SANDY", + "SANFORD", + "SANTIAGO", + "SANTOS", + "SARA", + "SARAH", + "SASHA", + "SAUL", + "SAUNDRA", + "SAVANNAH", + "SCOT", + "SCOTT", + "SCOTTY", + "SEAN", + "SEBASTIAN", + "SELENA", + "SELINA", + "SELMA", + "SERENA", + "SERGIO", + "SETH", + "SHANA", + "SHANE", + "SHANNA", + "SHANNON", + "SHARI", + "SHARLENE", + "SHARON", + "SHARRON", + "SHAUN", + "SHAUNA", + "SHAWN", + "SHAWNA", + "SHEENA", + "SHEILA", + "SHELBY", + "SHELDON", + "SHELIA", + "SHELLEY", + "SHELLY", + "SHELTON", + "SHEREE", + "SHERI", + "SHERMAN", + "SHERRI", + "SHERRIE", + "SHERRY", + "SHERYL", + "SHIRLEY", + "SIDNEY", + "SIERRA", + "SILAS", + "SILVIA", + "SIMON", + "SIMONE", + "SOCORRO", + "SOFIA", + "SOLOMON", + "SON", + "SONDRA", + "SONIA", + "SONJA", + "SONNY", + "SONYA", + "SOPHIA", + "SOPHIE", + "SPENCER", + "STACEY", + "STACI", + "STACIE", + "STACY", + "STAN", + "STANLEY", + "STEFAN", + "STEFANIE", + "STELLA", + "STEPHAN", + "STEPHANIE", + "STEPHEN", + "STERLING", + "STEVE", + "STEVEN", + "STEWART", + "STUART", + "SUE", + "SUMMER", + "SUSAN", + "SUSANA", + "SUSANNA", + "SUSANNE", + "SUSIE", + "SUZANNE", + "SUZETTE", + "SYBIL", + "SYDNEY", + "SYLVESTER", + "SYLVIA", + "TABATHA", + "TABITHA", + "TAMARA", + "TAMEKA", + "TAMERA", + "TAMI", + "TAMIKA", + "TAMMI", + "TAMMIE", + "TAMMY", + "TAMRA", + "TANIA", + "TANISHA", + "TANYA", + "TARA", + "TASHA", + "TAYLOR", + "TED", + "TEDDY", + "TERENCE", + "TERESA", + "TERI", + "TERRA", + "TERRANCE", + "TERRELL", + "TERRENCE", + "TERRI", + "TERRIE", + "TERRY", + "TESSA", + "THADDEUS", + "THELMA", + "THEODORE", + "THERESA", + "THERESE", + "THERON", + "THOMAS", + "THURMAN", + "TIA", + "TIFFANY", + "TIM", + "TIMMY", + "TIMOTHY", + "TINA", + "TISHA", + "TOBY", + "TODD", + "TOM", + "TOMAS", + "TOMMIE", + "TOMMY", + "TONI", + "TONIA", + "TONY", + "TONYA", + "TORI", + "TRACEY", + "TRACI", + "TRACIE", + "TRACY", + "TRAVIS", + "TRENT", + "TRENTON", + "TREVOR", + "TRICIA", + "TRINA", + "TRISHA", + "TRISTAN", + "TROY", + "TRUDY", + "TRUMAN", + "TWILA", + "TY", + "TYLER", + "TYRONE", + "TYSON", + "ULYSSES", + "URSULA", + "VALARIE", + "VALERIA", + "VALERIE", + "VAN", + "VANCE", + "VANESSA", + "VAUGHN", + "VELMA", + "VERA", + "VERN", + "VERNA", + "VERNON", + "VERONICA", + "VICENTE", + "VICKI", + "VICKIE", + "VICKY", + "VICTOR", + "VICTORIA", + "VILMA", + "VINCE", + "VINCENT", + "VIOLA", + "VIOLET", + "VIRGIE", + "VIRGIL", + "VIRGINIA", + "VITO", + "VIVIAN", + "VONDA", + "WADE", + "WALLACE", + "WALTER", + "WANDA", + "WARD", + "WARREN", + "WAYNE", + "WELDON", + "WENDELL", + "WENDI", + "WENDY", + "WESLEY", + "WHITNEY", + "WILBERT", + "WILBUR", + "WILDA", + "WILEY", + "WILFORD", + "WILFRED", + "WILFREDO", + "WILL", + "WILLA", + "WILLARD", + "WILLIAM", + "WILLIAMS", + "WILLIE", + "WILLIS", + "WILMA", + "WILMER", + "WILSON", + "WINFRED", + "WINIFRED", + "WINNIE", + "WINSTON", + "WM", + "WOODROW", + "XAVIER", + "YESENIA", + "YOLANDA", + "YOUNG", + "YVETTE", + "YVONNE", + "ZACHARY", + "ZACHERY", + "ZELDA", + "ZELMA" + }; + } - private static final String[] generateFirstNames() { - return new String[] { "AARON", "ABBIE", "ABBY", "ABEL", "ABIGAIL", "ABRAHAM", - "ADA", "ADAM", "ADAN", "ADDIE", "ADELA", "ADELAIDE", "ADELE", "ADELINE", "ADOLFO", "ADOLPH", "ADRIAN", - "ADRIANA", "ADRIENNE", "AGNES", "AGUSTIN", "AIDA", "AILEEN", "AIMEE", "AISHA", "AL", "ALAN", "ALANA", - "ALBA", "ALBERT", "ALBERTA", "ALBERTO", "ALEJANDRA", "ALEJANDRO", "ALEX", "ALEXANDER", "ALEXANDRA", - "ALEXANDRIA", "ALEXIS", "ALFONSO", "ALFRED", "ALFREDA", "ALFREDO", "ALI", "ALICE", "ALICIA", "ALINE", - "ALISA", "ALISHA", "ALISON", "ALISSA", "ALLAN", "ALLEN", "ALLENE", "ALLIE", "ALLISON", "ALLYSON", "ALMA", - "ALONZO", "ALPHONSO", "ALTA", "ALTHEA", "ALTON", "ALVARO", "ALVIN", "ALYCE", "ALYSON", "ALYSSA", "AMALIA", - "AMANDA", "AMBER", "AMELIA", "AMIE", "AMOS", "AMPARO", "AMY", "ANA", "ANASTASIA", "ANDRE", "ANDREA", - "ANDRES", "ANDREW", "ANDY", "ANGEL", "ANGELA", "ANGELIA", "ANGELICA", "ANGELINA", "ANGELINE", "ANGELIQUE", - "ANGELITA", "ANGELO", "ANGIE", "ANITA", "ANN", "ANNA", "ANNABELLE", "ANNE", "ANNETTE", "ANNIE", "ANNMARIE", - "ANTHONY", "ANTIONETTE", "ANTOINE", "ANTOINETTE", "ANTON", "ANTONIA", "ANTONIO", "ANTONY", "APRIL", - "ARACELI", "ARCHIE", "ARLENE", "ARLINE", "ARMAND", "ARMANDO", "ARNOLD", "ARRON", "ART", "ARTHUR", "ARTURO", - "ASHLEE", "ASHLEIGH", "ASHLEY", "AUBREY", "AUDRA", "AUDREY", "AUGUST", "AUGUSTA", "AURELIA", "AURELIO", - "AURORA", "AUSTIN", "AUTUMN", "AVA", "AVERY", "AVIS", "BARBARA", "BARBRA", "BARNEY", "BARRY", "BART", - "BASIL", "BEATRICE", "BEATRIZ", "BEAU", "BECKY", "BELINDA", "BEN", "BENITA", "BENITO", "BENJAMIN", - "BENNETT", "BENNIE", "BENNY", "BERNADETTE", "BERNADINE", "BERNARD", "BERNARDO", "BERNICE", "BERNIE", "BERT", - "BERTA", "BERTHA", "BERTIE", "BERYL", "BESSIE", "BETH", "BETHANY", "BETSY", "BETTE", "BETTIE", "BETTY", - "BETTYE", "BEULAH", "BEVERLEY", "BEVERLY", "BIANCA", "BILL", "BILLIE", "BILLY", "BLAINE", "BLAIR", "BLAKE", - "BLANCA", "BLANCHE", "BOB", "BOBBI", "BOBBIE", "BOBBY", "BONITA", "BONNIE", "BOOKER", "BOYD", "BRAD", - "BRADFORD", "BRADLEY", "BRADY", "BRAIN", "BRANDEN", "BRANDI", "BRANDIE", "BRANDON", "BRANDY", "BRENDA", - "BRENDAN", "BRENT", "BRET", "BRETT", "BRIAN", "BRIANA", "BRIANNA", "BRIDGET", "BRIDGETT", "BRIDGETTE", - "BRIGITTE", "BRITNEY", "BRITTANY", "BRITTNEY", "BROCK", "BROOKE", "BRUCE", "BRUNO", "BRYAN", "BRYANT", - "BRYCE", "BRYON", "BUDDY", "BUFORD", "BURTON", "BYRON", "CAITLIN", "CALEB", "CALLIE", "CALVIN", "CAMERON", - "CAMILLA", "CAMILLE", "CANDACE", "CANDICE", "CANDY", "CARA", "CAREY", "CARISSA", "CARL", "CARLA", "CARLENE", - "CARLO", "CARLOS", "CARLTON", "CARLY", "CARMELA", "CARMELLA", "CARMELO", "CARMEN", "CAROL", "CAROLE", - "CAROLINA", "CAROLINE", "CAROLYN", "CARRIE", "CARROLL", "CARSON", "CARTER", "CARY", "CARYN", "CASANDRA", - "CASEY", "CASSANDRA", "CASSIE", "CATALINA", "CATHERINE", "CATHLEEN", "CATHRYN", "CATHY", "CECELIA", "CECIL", - "CECILE", "CECILIA", "CEDRIC", "CELESTE", "CELIA", "CELINA", "CESAR", "CHAD", "CHANDRA", "CHARITY", - "CHARLENE", "CHARLES", "CHARLEY", "CHARLIE", "CHARLOTTE", "CHARMAINE", "CHASE", "CHASITY", "CHELSEA", - "CHELSEY", "CHERI", "CHERIE", "CHERRY", "CHERYL", "CHESTER", "CHRIS", "CHRISTA", "CHRISTI", "CHRISTIAN", - "CHRISTIE", "CHRISTINA", "CHRISTINE", "CHRISTOPHER", "CHRISTY", "CHRYSTAL", "CHUCK", "CINDY", "CLAIR", - "CLAIRE", "CLARA", "CLARE", "CLARENCE", "CLARICE", "CLARISSA", "CLARK", "CLAUDE", "CLAUDETTE", "CLAUDIA", - "CLAUDINE", "CLAY", "CLAYTON", "CLEMENT", "CLEO", "CLEVELAND", "CLIFF", "CLIFFORD", "CLIFTON", "CLINT", - "CLINTON", "CLYDE", "CODY", "COLBY", "COLE", "COLEEN", "COLETTE", "COLIN", "COLLEEN", "COLLIN", - "CONCEPCION", "CONCETTA", "CONNIE", "CONRAD", "CONSTANCE", "CONSUELO", "CORA", "COREY", "CORINA", "CORINE", - "CORINNE", "CORNELIA", "CORNELIUS", "CORNELL", "CORRINE", "CORTNEY", "CORY", "COURTNEY", "COY", "CRAIG", - "CRISTINA", "CRUZ", "CRYSTAL", "CURT", "CURTIS", "CYNTHIA", "DAISY", "DALE", "DALLAS", "DALTON", "DAMIAN", - "DAMIEN", "DAMON", "DAN", "DANA", "DANE", "DANIAL", "DANIEL", "DANIELLE", "DANNY", "DANTE", "DAPHNE", - "DARCY", "DAREN", "DARIN", "DARIUS", "DARLA", "DARLENE", "DARNELL", "DARREL", "DARRELL", "DARREN", "DARRIN", - "DARRYL", "DARWIN", "DARYL", "DAVE", "DAVID", "DAVIS", "DAWN", "DAYNA", "DEAN", "DEANA", "DEANN", "DEANNA", - "DEANNE", "DEBBIE", "DEBORA", "DEBORAH", "DEBRA", "DEE", "DEENA", "DEIDRA", "DEIDRE", "DEIRDRE", "DELBERT", - "DELIA", "DELLA", "DELMAR", "DELORES", "DELORIS", "DEMETRIUS", "DENA", "DENICE", "DENIS", "DENISE", - "DENNIS", "DENNY", "DENVER", "DEREK", "DERICK", "DERRICK", "DESIREE", "DESMOND", "DESSIE", "DEVIN", "DEVON", - "DEWAYNE", "DEWEY", "DEXTER", "DIANA", "DIANE", "DIANN", "DIANNA", "DIANNE", "DICK", "DIEGO", "DINA", - "DION", "DIONNE", "DIRK", "DIXIE", "DOLLIE", "DOLLY", "DOLORES", "DOMINGO", "DOMINIC", "DOMINICK", - "DOMINIQUE", "DON", "DONA", "DONALD", "DONNA", "DONNELL", "DONNIE", "DONNY", "DONOVAN", "DORA", "DOREEN", - "DORETHA", "DORIS", "DOROTHEA", "DOROTHY", "DORTHY", "DOUG", "DOUGLAS", "DOYLE", "DREW", "DUANE", "DUDLEY", - "DUSTIN", "DWAYNE", "DWIGHT", "DYLAN", "EARL", "EARLENE", "EARLINE", "EARNEST", "EARNESTINE", "EBONY", "ED", - "EDDIE", "EDDY", "EDGAR", "EDITH", "EDMOND", "EDMUND", "EDNA", "EDUARDO", "EDWARD", "EDWARDO", "EDWIN", - "EDWINA", "EDYTHE", "EFFIE", "EFRAIN", "EILEEN", "ELAINE", "ELBA", "ELBERT", "ELDA", "ELDON", "ELEANOR", - "ELENA", "ELI", "ELIAS", "ELIJAH", "ELINOR", "ELISA", "ELISABETH", "ELISE", "ELISHA", "ELIZA", "ELIZABETH", - "ELLA", "ELLEN", "ELLIOT", "ELLIOTT", "ELLIS", "ELMA", "ELMER", "ELNORA", "ELOISE", "ELSA", "ELSIE", - "ELTON", "ELVA", "ELVIA", "ELVIN", "ELVIRA", "ELVIS", "ELWOOD", "EMANUEL", "EMERSON", "EMERY", "EMIL", - "EMILIA", "EMILIE", "EMILIO", "EMILY", "EMMA", "EMMANUEL", "EMMETT", "EMORY", "ENID", "ENRIQUE", "ERIC", - "ERICA", "ERICK", "ERICKA", "ERIK", "ERIKA", "ERIN", "ERMA", "ERNA", "ERNEST", "ERNESTINE", "ERNESTO", - "ERNIE", "ERROL", "ERVIN", "ERWIN", "ESMERALDA", "ESPERANZA", "ESSIE", "ESTEBAN", "ESTELA", "ESTELLA", - "ESTELLE", "ESTER", "ESTHER", "ETHAN", "ETHEL", "ETTA", "EUGENE", "EUGENIA", "EULA", "EUNICE", "EVA", - "EVAN", "EVANGELINA", "EVANGELINE", "EVE", "EVELYN", "EVERETT", "FABIAN", "FAITH", "FANNIE", "FANNY", "FAY", - "FAYE", "FEDERICO", "FELECIA", "FELICIA", "FELIPE", "FELIX", "FERN", "FERNANDO", "FIDEL", "FLETCHER", - "FLORA", "FLORENCE", "FLORINE", "FLOSSIE", "FLOYD", "FORREST", "FRAN", "FRANCES", "FRANCESCA", "FRANCINE", - "FRANCIS", "FRANCISCA", "FRANCISCO", "FRANK", "FRANKIE", "FRANKLIN", "FRED", "FREDA", "FREDDIE", "FREDDY", - "FREDERIC", "FREDERICK", "FREDRICK", "FREIDA", "FRIEDA", "GABRIEL", "GABRIELA", "GABRIELLE", "GAIL", "GALE", - "GALEN", "GARLAND", "GARRETT", "GARRY", "GARY", "GAVIN", "GAY", "GAYLA", "GAYLE", "GENA", "GENARO", "GENE", - "GENEVA", "GENEVIEVE", "GEOFFREY", "GEORGE", "GEORGETTE", "GEORGIA", "GEORGINA", "GERALD", "GERALDINE", - "GERARD", "GERARDO", "GERI", "GERMAINE", "GERMAN", "GERRY", "GERTRUDE", "GILBERT", "GILBERTO", "GILDA", - "GINA", "GINGER", "GLADYS", "GLEN", "GLENDA", "GLENN", "GLENNA", "GLORIA", "GOLDIE", "GONZALO", "GORDON", - "GRACE", "GRACIE", "GRACIELA", "GRADY", "GRAHAM", "GRANT", "GREG", "GREGG", "GREGORIO", "GREGORY", "GRETA", - "GRETCHEN", "GROVER", "GUADALUPE", "GUILLERMO", "GUS", "GUSSIE", "GUSTAVO", "GUY", "GWEN", "GWENDOLYN", - "HAL", "HALEY", "HALLIE", "HANNAH", "HANS", "HARLAN", "HARLEY", "HAROLD", "HARRIET", "HARRIETT", "HARRIS", - "HARRISON", "HARRY", "HARVEY", "HATTIE", "HAZEL", "HEATH", "HEATHER", "HECTOR", "HEIDI", "HELEN", "HELENA", - "HELENE", "HELGA", "HENRIETTA", "HENRY", "HERBERT", "HERIBERTO", "HERMAN", "HERMINIA", "HESTER", "HILARY", - "HILDA", "HILLARY", "HIRAM", "HOLLIE", "HOLLIS", "HOLLY", "HOMER", "HOPE", "HORACE", "HOUSTON", "HOWARD", - "HUBERT", "HUGH", "HUGO", "HUMBERTO", "HUNG", "HUNTER", "IAN", "IDA", "IGNACIO", "ILA", "ILENE", "IMELDA", - "IMOGENE", "INA", "INES", "INEZ", "INGRID", "IRA", "IRENE", "IRIS", "IRMA", "IRVIN", "IRVING", "IRWIN", - "ISAAC", "ISABEL", "ISABELLA", "ISABELLE", "ISAIAH", "ISIDRO", "ISMAEL", "ISRAEL", "ISSAC", "IVA", "IVAN", - "IVY", "JACK", "JACKIE", "JACKLYN", "JACKSON", "JACLYN", "JACOB", "JACQUELINE", "JACQUELYN", "JACQUES", - "JADE", "JAIME", "JAKE", "JAMAL", "JAME", "JAMES", "JAMI", "JAMIE", "JAN", "JANA", "JANE", "JANELL", - "JANELLE", "JANET", "JANETTE", "JANICE", "JANIE", "JANINE", "JANIS", "JANNA", "JANNIE", "JARED", "JARROD", - "JARVIS", "JASMIN", "JASMINE", "JASON", "JASPER", "JAVIER", "JAY", "JAYNE", "JAYSON", "JEAN", "JEANETTE", - "JEANIE", "JEANINE", "JEANNE", "JEANNETTE", "JEANNIE", "JEANNINE", "JEFF", "JEFFERSON", "JEFFERY", - "JEFFREY", "JEFFRY", "JENIFER", "JENNA", "JENNIE", "JENNIFER", "JENNY", "JERALD", "JEREMIAH", "JEREMY", - "JERI", "JERMAINE", "JEROME", "JERRI", "JERRY", "JESS", "JESSE", "JESSICA", "JESSIE", "JESUS", "JEWEL", - "JEWELL", "JILL", "JILLIAN", "JIM", "JIMMIE", "JIMMY", "JO", "JOAN", "JOANN", "JOANNA", "JOANNE", "JOAQUIN", - "JOCELYN", "JODI", "JODIE", "JODY", "JOE", "JOEL", "JOESPH", "JOEY", "JOHANNA", "JOHN", "JOHNATHAN", - "JOHNATHON", "JOHNNIE", "JOHNNY", "JOLENE", "JON", "JONATHAN", "JONATHON", "JONI", "JORDAN", "JORGE", - "JOSE", "JOSEFA", "JOSEFINA", "JOSEPH", "JOSEPHINE", "JOSH", "JOSHUA", "JOSIE", "JOSUE", "JOY", "JOYCE", - "JUAN", "JUANA", "JUANITA", "JUDI", "JUDITH", "JUDY", "JULIA", "JULIAN", "JULIANA", "JULIANNE", "JULIE", - "JULIET", "JULIETTE", "JULIO", "JULIUS", "JUNE", "JUNIOR", "JUSTIN", "JUSTINA", "JUSTINE", "KAITLIN", - "KAITLYN", "KARA", "KAREN", "KARI", "KARIN", "KARINA", "KARL", "KARLA", "KARYN", "KASEY", "KATE", "KATELYN", - "KATHARINE", "KATHERINE", "KATHERYN", "KATHI", "KATHIE", "KATHLEEN", "KATHRINE", "KATHRYN", "KATHY", - "KATIE", "KATINA", "KATRINA", "KATY", "KAY", "KAYE", "KAYLA", "KEISHA", "KEITH", "KELLEY", "KELLI", - "KELLIE", "KELLY", "KELSEY", "KELVIN", "KEN", "KENDALL", "KENDRA", "KENDRICK", "KENNETH", "KENNY", "KENT", - "KENYA", "KERI", "KERMIT", "KERRI", "KERRY", "KEVIN", "KIM", "KIMBERLEE", "KIMBERLEY", "KIMBERLY", "KIRBY", - "KIRK", "KIRSTEN", "KITTY", "KRIS", "KRISTA", "KRISTEN", "KRISTI", "KRISTIE", "KRISTIN", "KRISTINA", - "KRISTINE", "KRISTOPHER", "KRISTY", "KRYSTAL", "KURT", "KURTIS", "KYLE", "LACEY", "LACY", "LADONNA", - "LAKEISHA", "LAKESHA", "LAKISHA", "LAMAR", "LAMONT", "LANA", "LANCE", "LANDON", "LANE", "LARA", "LARRY", - "LASHONDA", "LATANYA", "LATASHA", "LATISHA", "LATONYA", "LATOYA", "LAURA", "LAUREL", "LAUREN", "LAURENCE", - "LAURI", "LAURIE", "LAVERNE", "LAVONNE", "LAWANDA", "LAWRENCE", "LEA", "LEAH", "LEANN", "LEANNA", "LEANNE", - "LEE", "LEEANN", "LEIGH", "LEILA", "LELA", "LELAND", "LELIA", "LENA", "LENORA", "LENORE", "LEO", "LEOLA", - "LEON", "LEONA", "LEONARD", "LEONARDO", "LEONEL", "LEONOR", "LEROY", "LESA", "LESLEY", "LESLIE", "LESSIE", - "LESTER", "LETA", "LETHA", "LETICIA", "LETITIA", "LEVI", "LEWIS", "LIBBY", "LIDIA", "LILA", "LILIA", - "LILIAN", "LILIANA", "LILLIAN", "LILLIE", "LILLY", "LILY", "LINA", "LINCOLN", "LINDA", "LINDSAY", "LINDSEY", - "LINWOOD", "LIONEL", "LISA", "LIZ", "LIZA", "LIZZIE", "LLOYD", "LOGAN", "LOIS", "LOLA", "LOLITA", "LONNIE", - "LORA", "LORAINE", "LOREN", "LORENA", "LORENE", "LORENZO", "LORETTA", "LORI", "LORIE", "LORNA", "LORRAINE", - "LORRIE", "LOTTIE", "LOU", "LOUELLA", "LOUIE", "LOUIS", "LOUISA", "LOUISE", "LOURDES", "LOWELL", "LOYD", - "LUANN", "LUCAS", "LUCIA", "LUCILE", "LUCILLE", "LUCINDA", "LUCY", "LUELLA", "LUIS", "LUISA", "LUKE", - "LULA", "LUPE", "LUTHER", "LUZ", "LYDIA", "LYLE", "LYNDA", "LYNETTE", "LYNN", "LYNNE", "LYNNETTE", "MA", - "MABEL", "MABLE", "MACK", "MADELEINE", "MADELINE", "MADELYN", "MADGE", "MAE", "MAGDALENA", "MAGGIE", "MAI", - "MALCOLM", "MALINDA", "MALLORY", "MAMIE", "MANDY", "MANUEL", "MANUELA", "MARA", "MARC", "MARCEL", - "MARCELINO", "MARCELLA", "MARCI", "MARCIA", "MARCIE", "MARCO", "MARCOS", "MARCUS", "MARCY", "MARGARET", - "MARGARITA", "MARGERY", "MARGIE", "MARGO", "MARGOT", "MARGRET", "MARGUERITE", "MARI", "MARIA", "MARIAN", - "MARIANA", "MARIANNE", "MARIANO", "MARIBEL", "MARICELA", "MARIE", "MARIETTA", "MARILYN", "MARINA", "MARIO", - "MARION", "MARISA", "MARISOL", "MARISSA", "MARITZA", "MARJORIE", "MARK", "MARLA", "MARLENE", "MARLIN", - "MARLON", "MARQUITA", "MARSHA", "MARSHALL", "MARTA", "MARTHA", "MARTIN", "MARTINA", "MARTY", "MARVA", - "MARVIN", "MARY", "MARYANN", "MARYANNE", "MARYELLEN", "MARYLOU", "MASON", "MATHEW", "MATILDA", "MATT", - "MATTHEW", "MATTIE", "MAUDE", "MAURA", "MAUREEN", "MAURICE", "MAURICIO", "MAVIS", "MAX", "MAXINE", - "MAXWELL", "MAY", "MAYNARD", "MAYRA", "MEAGAN", "MEGAN", "MEGHAN", "MELANIE", "MELBA", "MELINDA", "MELISA", - "MELISSA", "MELLISA", "MELODY", "MELVA", "MELVIN", "MERCEDES", "MEREDITH", "MERLE", "MERLIN", "MERRILL", - "MIA", "MICAH", "MICHAEL", "MICHAELA", "MICHEAL", "MICHEL", "MICHELE", "MICHELL", "MICHELLE", "MICKEY", - "MIGUEL", "MIKE", "MILAGROS", "MILDRED", "MILES", "MILLARD", "MILLICENT", "MILLIE", "MILTON", "MINA", - "MINDY", "MINERVA", "MINNIE", "MIRANDA", "MIRIAM", "MISTY", "MITCHELL", "MITZI", "MOHAMMAD", "MOISES", - "MOLLIE", "MOLLY", "MONA", "MONICA", "MONIKA", "MONIQUE", "MONROE", "MONTE", "MONTY", "MORGAN", "MORRIS", - "MOSES", "MURIEL", "MURRAY", "MYRA", "MYRNA", "MYRON", "MYRTLE", "NADIA", "NADINE", "NAN", "NANCY", - "NANETTE", "NANNIE", "NAOMI", "NATALIA", "NATALIE", "NATASHA", "NATHAN", "NATHANIEL", "NEAL", "NED", "NEIL", - "NELDA", "NELL", "NELLIE", "NELLY", "NELSON", "NESTOR", "NETTIE", "NEVA", "NICHOLAS", "NICHOLE", "NICK", - "NICKOLAS", "NICOLAS", "NICOLE", "NIKKI", "NINA", "NITA", "NOAH", "NOE", "NOEL", "NOELLE", "NOEMI", "NOLA", - "NOLAN", "NONA", "NORA", "NORBERT", "NOREEN", "NORMA", "NORMAN", "NORRIS", "NUMBERS", "OCTAVIA", "OCTAVIO", - "ODELL", "ODESSA", "OFELIA", "OLA", "OLGA", "OLIVE", "OLIVER", "OLIVIA", "OLLIE", "OMAR", "OPAL", "OPHELIA", - "ORA", "ORLANDO", "ORVILLE", "OSCAR", "OTIS", "OTTO", "OWEN", "PABLO", "PAIGE", "PAM", "PAMALA", "PAMELA", - "PANSY", "PASQUALE", "PAT", "PATRICA", "PATRICE", "PATRICIA", "PATRICK", "PATSY", "PATTI", "PATTY", "PAUL", - "PAULA", "PAULETTE", "PAULINE", "PEARL", "PEARLIE", "PEDRO", "PEGGY", "PENELOPE", "PENNY", "PERCY", "PERRY", - "PETE", "PETER", "PETRA", "PHIL", "PHILIP", "PHILLIP", "PHOEBE", "PHYLLIS", "PIERRE", "POLLY", "PRESTON", - "PRISCILLA", "QUEEN", "QUENTIN", "QUINCY", "QUINTON", "RACHAEL", "RACHEL", "RACHELLE", "RAE", "RAFAEL", - "RALPH", "RAMIRO", "RAMON", "RAMONA", "RANDAL", "RANDALL", "RANDI", "RANDOLPH", "RANDY", "RAPHAEL", - "RAQUEL", "RAUL", "RAY", "RAYMOND", "RAYMUNDO", "REBA", "REBECCA", "REBEKAH", "REED", "REGGIE", "REGINA", - "REGINALD", "RENA", "RENAE", "RENE", "RENEE", "REUBEN", "REVA", "REX", "REYNA", "REYNALDO", "RHEA", "RHODA", - "RHONDA", "RICARDO", "RICHARD", "RICK", "RICKEY", "RICKIE", "RICKY", "RIGOBERTO", "RILEY", "RITA", "ROB", - "ROBBIE", "ROBBY", "ROBERT", "ROBERTA", "ROBERTO", "ROBIN", "ROBYN", "ROCCO", "ROCHELLE", "ROCIO", "ROCKY", - "ROD", "RODERICK", "RODGER", "RODNEY", "RODOLFO", "RODRIGO", "ROGELIO", "ROGER", "ROLAND", "ROLANDO", - "ROMAN", "ROMEO", "RON", "RONALD", "RONDA", "RONNIE", "ROOSEVELT", "RORY", "ROSA", "ROSALIA", "ROSALIE", - "ROSALIND", "ROSALINDA", "ROSALYN", "ROSANNA", "ROSANNE", "ROSARIO", "ROSCOE", "ROSE", "ROSEANN", "ROSELLA", - "ROSEMARIE", "ROSEMARY", "ROSETTA", "ROSIE", "ROSLYN", "ROSS", "ROWENA", "ROXANNE", "ROXIE", "ROY", "ROYCE", - "RUBEN", "RUBY", "RUDOLPH", "RUDY", "RUFUS", "RUSSEL", "RUSSELL", "RUSTY", "RUTH", "RUTHIE", "RYAN", - "SABRINA", "SADIE", "SALLIE", "SALLY", "SALVADOR", "SALVATORE", "SAM", "SAMANTHA", "SAMMIE", "SAMMY", - "SAMUEL", "SANDRA", "SANDY", "SANFORD", "SANTIAGO", "SANTOS", "SARA", "SARAH", "SASHA", "SAUL", "SAUNDRA", - "SAVANNAH", "SCOT", "SCOTT", "SCOTTY", "SEAN", "SEBASTIAN", "SELENA", "SELINA", "SELMA", "SERENA", "SERGIO", - "SETH", "SHANA", "SHANE", "SHANNA", "SHANNON", "SHARI", "SHARLENE", "SHARON", "SHARRON", "SHAUN", "SHAUNA", - "SHAWN", "SHAWNA", "SHEENA", "SHEILA", "SHELBY", "SHELDON", "SHELIA", "SHELLEY", "SHELLY", "SHELTON", - "SHEREE", "SHERI", "SHERMAN", "SHERRI", "SHERRIE", "SHERRY", "SHERYL", "SHIRLEY", "SIDNEY", "SIERRA", - "SILAS", "SILVIA", "SIMON", "SIMONE", "SOCORRO", "SOFIA", "SOLOMON", "SON", "SONDRA", "SONIA", "SONJA", - "SONNY", "SONYA", "SOPHIA", "SOPHIE", "SPENCER", "STACEY", "STACI", "STACIE", "STACY", "STAN", "STANLEY", - "STEFAN", "STEFANIE", "STELLA", "STEPHAN", "STEPHANIE", "STEPHEN", "STERLING", "STEVE", "STEVEN", "STEWART", - "STUART", "SUE", "SUMMER", "SUSAN", "SUSANA", "SUSANNA", "SUSANNE", "SUSIE", "SUZANNE", "SUZETTE", "SYBIL", - "SYDNEY", "SYLVESTER", "SYLVIA", "TABATHA", "TABITHA", "TAMARA", "TAMEKA", "TAMERA", "TAMI", "TAMIKA", - "TAMMI", "TAMMIE", "TAMMY", "TAMRA", "TANIA", "TANISHA", "TANYA", "TARA", "TASHA", "TAYLOR", "TED", "TEDDY", - "TERENCE", "TERESA", "TERI", "TERRA", "TERRANCE", "TERRELL", "TERRENCE", "TERRI", "TERRIE", "TERRY", - "TESSA", "THADDEUS", "THELMA", "THEODORE", "THERESA", "THERESE", "THERON", "THOMAS", "THURMAN", "TIA", - "TIFFANY", "TIM", "TIMMY", "TIMOTHY", "TINA", "TISHA", "TOBY", "TODD", "TOM", "TOMAS", "TOMMIE", "TOMMY", - "TONI", "TONIA", "TONY", "TONYA", "TORI", "TRACEY", "TRACI", "TRACIE", "TRACY", "TRAVIS", "TRENT", - "TRENTON", "TREVOR", "TRICIA", "TRINA", "TRISHA", "TRISTAN", "TROY", "TRUDY", "TRUMAN", "TWILA", "TY", - "TYLER", "TYRONE", "TYSON", "ULYSSES", "URSULA", "VALARIE", "VALERIA", "VALERIE", "VAN", "VANCE", "VANESSA", - "VAUGHN", "VELMA", "VERA", "VERN", "VERNA", "VERNON", "VERONICA", "VICENTE", "VICKI", "VICKIE", "VICKY", - "VICTOR", "VICTORIA", "VILMA", "VINCE", "VINCENT", "VIOLA", "VIOLET", "VIRGIE", "VIRGIL", "VIRGINIA", - "VITO", "VIVIAN", "VONDA", "WADE", "WALLACE", "WALTER", "WANDA", "WARD", "WARREN", "WAYNE", "WELDON", - "WENDELL", "WENDI", "WENDY", "WESLEY", "WHITNEY", "WILBERT", "WILBUR", "WILDA", "WILEY", "WILFORD", - "WILFRED", "WILFREDO", "WILL", "WILLA", "WILLARD", "WILLIAM", "WILLIAMS", "WILLIE", "WILLIS", "WILMA", - "WILMER", "WILSON", "WINFRED", "WINIFRED", "WINNIE", "WINSTON", "WM", "WOODROW", "XAVIER", "YESENIA", - "YOLANDA", "YOUNG", "YVETTE", "YVONNE", "ZACHARY", "ZACHERY", "ZELDA", "ZELMA" }; - } + private static final String[] generateLastNames() { + return new String[] { + "AARON", + "ABBOTT", + "ABEL", + "ABELL", + "ABERNATHY", + "ABNER", + "ABNEY", + "ABRAHAM", + "ABRAMS", + "ABREU", + "ACEVEDO", + "ACKER", + "ACKERMAN", + "ACKLEY", + "ACOSTA", + "ACUNA", + "ADAIR", + "ADAM", + "ADAME", + "ADAMS", + "ADAMSON", + "ADCOCK", + "ADDISON", + "ADKINS", + "ADLER", + "AGEE", + "AGNEW", + "AGUAYO", + "AGUIAR", + "AGUILAR", + "AGUILERA", + "AGUIRRE", + "AHERN", + "AHMAD", + "AHMED", + "AHRENS", + "AIELLO", + "AIKEN", + "AINSWORTH", + "AKERS", + "AKIN", + "AKINS", + "ALANIZ", + "ALARCON", + "ALBA", + "ALBERS", + "ALBERT", + "ALBERTSON", + "ALBRECHT", + "ALBRIGHT", + "ALCALA", + "ALCORN", + "ALDERMAN", + "ALDRICH", + "ALDRIDGE", + "ALEMAN", + "ALEXANDER", + "ALFARO", + "ALFONSO", + "ALFORD", + "ALFRED", + "ALGER", + "ALI", + "ALICEA", + "ALLAN", + "ALLARD", + "ALLEN", + "ALLEY", + "ALLISON", + "ALLMAN", + "ALLRED", + "ALMANZA", + "ALMEIDA", + "ALMOND", + "ALONSO", + "ALONZO", + "ALSTON", + "ALTMAN", + "ALVARADO", + "ALVAREZ", + "ALVES", + "AMADOR", + "AMARAL", + "AMATO", + "AMAYA", + "AMBROSE", + "AMES", + "AMMONS", + "AMOS", + "AMUNDSON", + "ANAYA", + "ANDERS", + "ANDERSEN", + "ANDERSON", + "ANDRADE", + "ANDRE", + "ANDRES", + "ANDREW", + "ANDREWS", + "ANDRUS", + "ANGEL", + "ANGELO", + "ANGLIN", + "ANGULO", + "ANTHONY", + "ANTOINE", + "ANTONIO", + "APODACA", + "APONTE", + "APPEL", + "APPLE", + "APPLEGATE", + "APPLETON", + "AQUINO", + "ARAGON", + "ARANDA", + "ARAUJO", + "ARCE", + "ARCHER", + "ARCHIBALD", + "ARCHIE", + "ARCHULETA", + "ARELLANO", + "AREVALO", + "ARIAS", + "ARMENTA", + "ARMIJO", + "ARMSTEAD", + "ARMSTRONG", + "ARNDT", + "ARNETT", + "ARNOLD", + "ARREDONDO", + "ARREOLA", + "ARRIAGA", + "ARRINGTON", + "ARROYO", + "ARSENAULT", + "ARTEAGA", + "ARTHUR", + "ARTIS", + "ASBURY", + "ASH", + "ASHBY", + "ASHCRAFT", + "ASHE", + "ASHER", + "ASHFORD", + "ASHLEY", + "ASHMORE", + "ASHTON", + "ASHWORTH", + "ASKEW", + "ATCHISON", + "ATHERTON", + "ATKINS", + "ATKINSON", + "ATWELL", + "ATWOOD", + "AUGUST", + "AUGUSTINE", + "AULT", + "AUSTIN", + "AUTRY", + "AVALOS", + "AVERY", + "AVILA", + "AVILES", + "AYALA", + "AYERS", + "AYRES", + "BABB", + "BABCOCK", + "BABIN", + "BACA", + "BACH", + "BACHMAN", + "BACK", + "BACON", + "BADER", + "BADGER", + "BADILLO", + "BAER", + "BAEZ", + "BAGGETT", + "BAGLEY", + "BAGWELL", + "BAILEY", + "BAIN", + "BAINES", + "BAIR", + "BAIRD", + "BAKER", + "BALDERAS", + "BALDWIN", + "BALES", + "BALL", + "BALLARD", + "BANDA", + "BANDY", + "BANKS", + "BANKSTON", + "BANNISTER", + "BANUELOS", + "BAPTISTE", + "BARAJAS", + "BARBA", + "BARBEE", + "BARBER", + "BARBOSA", + "BARBOUR", + "BARCLAY", + "BARDEN", + "BARELA", + "BARFIELD", + "BARGER", + "BARHAM", + "BARKER", + "BARKLEY", + "BARKSDALE", + "BARLOW", + "BARNARD", + "BARNES", + "BARNETT", + "BARNETTE", + "BARNEY", + "BARNHART", + "BARNHILL", + "BARON", + "BARONE", + "BARR", + "BARRAZA", + "BARRERA", + "BARRETO", + "BARRETT", + "BARRIENTOS", + "BARRIOS", + "BARRON", + "BARROW", + "BARROWS", + "BARRY", + "BARTELS", + "BARTH", + "BARTHOLOMEW", + "BARTLETT", + "BARTLEY", + "BARTON", + "BASHAM", + "BASKIN", + "BASS", + "BASSETT", + "BATCHELOR", + "BATEMAN", + "BATES", + "BATISTA", + "BATISTE", + "BATSON", + "BATTAGLIA", + "BATTEN", + "BATTLE", + "BATTLES", + "BATTS", + "BAUER", + "BAUGH", + "BAUGHMAN", + "BAUM", + "BAUMAN", + "BAUMANN", + "BAUMGARDNER", + "BAUMGARTNER", + "BAUTISTA", + "BAXLEY", + "BAXTER", + "BAYER", + "BAYLOR", + "BAYNE", + "BAYS", + "BEACH", + "BEAL", + "BEALE", + "BEALL", + "BEALS", + "BEAM", + "BEAMON", + "BEAN", + "BEANE", + "BEAR", + "BEARD", + "BEARDEN", + "BEASLEY", + "BEATTIE", + "BEATTY", + "BEATY", + "BEAUCHAMP", + "BEAUDOIN", + "BEAULIEU", + "BEAUREGARD", + "BEAVER", + "BEAVERS", + "BECERRA", + "BECK", + "BECKER", + "BECKETT", + "BECKHAM", + "BECKMAN", + "BECKWITH", + "BECNEL", + "BEDARD", + "BEDFORD", + "BEEBE", + "BEELER", + "BEERS", + "BEESON", + "BEGAY", + "BEGLEY", + "BEHRENS", + "BELANGER", + "BELCHER", + "BELL", + "BELLAMY", + "BELLO", + "BELT", + "BELTON", + "BELTRAN", + "BENAVIDES", + "BENAVIDEZ", + "BENDER", + "BENEDICT", + "BENEFIELD", + "BENITEZ", + "BENJAMIN", + "BENNER", + "BENNETT", + "BENOIT", + "BENSON", + "BENTLEY", + "BENTON", + "BERG", + "BERGER", + "BERGERON", + "BERGMAN", + "BERGSTROM", + "BERLIN", + "BERMAN", + "BERMUDEZ", + "BERNAL", + "BERNARD", + "BERNHARDT", + "BERNIER", + "BERNSTEIN", + "BERRIOS", + "BERRY", + "BERRYMAN", + "BERTRAM", + "BERTRAND", + "BERUBE", + "BESS", + "BEST", + "BETANCOURT", + "BETHEA", + "BETHEL", + "BETTS", + "BETZ", + "BEVERLY", + "BEVINS", + "BEYER", + "BIBLE", + "BICKFORD", + "BIDDLE", + "BIGELOW", + "BIGGS", + "BILLINGS", + "BILLINGSLEY", + "BILLIOT", + "BILLS", + "BILLUPS", + "BILODEAU", + "BINDER", + "BINGHAM", + "BINKLEY", + "BIRCH", + "BIRD", + "BISHOP", + "BISSON", + "BITTNER", + "BIVENS", + "BIVINS", + "BLACK", + "BLACKBURN", + "BLACKMAN", + "BLACKMON", + "BLACKWELL", + "BLACKWOOD", + "BLAINE", + "BLAIR", + "BLAIS", + "BLAKE", + "BLAKELY", + "BLALOCK", + "BLANCHARD", + "BLANCHETTE", + "BLANCO", + "BLAND", + "BLANK", + "BLANKENSHIP", + "BLANTON", + "BLAYLOCK", + "BLEDSOE", + "BLEVINS", + "BLISS", + "BLOCK", + "BLOCKER", + "BLODGETT", + "BLOOM", + "BLOUNT", + "BLUE", + "BLUM", + "BLUNT", + "BLYTHE", + "BOATRIGHT", + "BOATWRIGHT", + "BOBBITT", + "BOBO", + "BOCK", + "BOEHM", + "BOETTCHER", + "BOGAN", + "BOGGS", + "BOHANNON", + "BOHN", + "BOISVERT", + "BOLAND", + "BOLDEN", + "BOLDUC", + "BOLEN", + "BOLES", + "BOLIN", + "BOLING", + "BOLLING", + "BOLLINGER", + "BOLT", + "BOLTON", + "BOND", + "BONDS", + "BONE", + "BONILLA", + "BONNER", + "BOOKER", + "BOONE", + "BOOTH", + "BOOTHE", + "BORDELON", + "BORDEN", + "BORDERS", + "BOREN", + "BORGES", + "BORREGO", + "BOSS", + "BOSTIC", + "BOSTICK", + "BOSTON", + "BOSWELL", + "BOTTOMS", + "BOUCHARD", + "BOUCHER", + "BOUDREAU", + "BOUDREAUX", + "BOUNDS", + "BOURGEOIS", + "BOURNE", + "BOURQUE", + "BOWDEN", + "BOWEN", + "BOWENS", + "BOWER", + "BOWERS", + "BOWIE", + "BOWLES", + "BOWLIN", + "BOWLING", + "BOWMAN", + "BOWSER", + "BOX", + "BOYCE", + "BOYD", + "BOYER", + "BOYKIN", + "BOYLE", + "BOYLES", + "BOYNTON", + "BOZEMAN", + "BRACKEN", + "BRACKETT", + "BRADBURY", + "BRADEN", + "BRADFORD", + "BRADLEY", + "BRADSHAW", + "BRADY", + "BRAGG", + "BRANCH", + "BRAND", + "BRANDENBURG", + "BRANDON", + "BRANDT", + "BRANHAM", + "BRANNON", + "BRANSON", + "BRANT", + "BRANTLEY", + "BRASWELL", + "BRATCHER", + "BRATTON", + "BRAUN", + "BRAVO", + "BRAXTON", + "BRAY", + "BRAZIL", + "BREAUX", + "BREEDEN", + "BREEDLOVE", + "BREEN", + "BRENNAN", + "BRENNER", + "BRENT", + "BREWER", + "BREWSTER", + "BRICE", + "BRIDGES", + "BRIGGS", + "BRIGHT", + "BRILEY", + "BRILL", + "BRIM", + "BRINK", + "BRINKLEY", + "BRINKMAN", + "BRINSON", + "BRIONES", + "BRISCOE", + "BRISENO", + "BRITO", + "BRITT", + "BRITTAIN", + "BRITTON", + "BROADNAX", + "BROADWAY", + "BROCK", + "BROCKMAN", + "BRODERICK", + "BRODY", + "BROGAN", + "BRONSON", + "BROOKINS", + "BROOKS", + "BROOME", + "BROTHERS", + "BROUGHTON", + "BROUSSARD", + "BROWDER", + "BROWER", + "BROWN", + "BROWNE", + "BROWNELL", + "BROWNING", + "BROWNLEE", + "BROYLES", + "BRUBAKER", + "BRUCE", + "BRUMFIELD", + "BRUNER", + "BRUNNER", + "BRUNO", + "BRUNS", + "BRUNSON", + "BRUTON", + "BRYAN", + "BRYANT", + "BRYSON", + "BUCHANAN", + "BUCHER", + "BUCK", + "BUCKINGHAM", + "BUCKLEY", + "BUCKNER", + "BUENO", + "BUFFINGTON", + "BUFORD", + "BUI", + "BULL", + "BULLARD", + "BULLOCK", + "BUMGARNER", + "BUNCH", + "BUNDY", + "BUNKER", + "BUNN", + "BUNNELL", + "BUNTING", + "BURCH", + "BURCHETT", + "BURCHFIELD", + "BURDEN", + "BURDETTE", + "BURDICK", + "BURGE", + "BURGER", + "BURGESS", + "BURGOS", + "BURK", + "BURKE", + "BURKETT", + "BURKHART", + "BURKHOLDER", + "BURKS", + "BURLESON", + "BURLEY", + "BURNETT", + "BURNETTE", + "BURNEY", + "BURNHAM", + "BURNS", + "BURNSIDE", + "BURR", + "BURRELL", + "BURRIS", + "BURROUGHS", + "BURROW", + "BURROWS", + "BURT", + "BURTON", + "BUSBY", + "BUSCH", + "BUSH", + "BUSS", + "BUSSEY", + "BUSTAMANTE", + "BUSTOS", + "BUTCHER", + "BUTLER", + "BUTTERFIELD", + "BUTTON", + "BUTTS", + "BUXTON", + "BYARS", + "BYERS", + "BYNUM", + "BYRD", + "BYRNE", + "BYRNES", + "CABALLERO", + "CABAN", + "CABLE", + "CABRAL", + "CABRERA", + "CADE", + "CADY", + "CAGLE", + "CAHILL", + "CAIN", + "CALABRESE", + "CALDERON", + "CALDWELL", + "CALHOUN", + "CALKINS", + "CALL", + "CALLAGHAN", + "CALLAHAN", + "CALLAWAY", + "CALLENDER", + "CALLOWAY", + "CALVERT", + "CALVIN", + "CAMACHO", + "CAMARILLO", + "CAMBELL", + "CAMERON", + "CAMP", + "CAMPBELL", + "CAMPOS", + "CANADA", + "CANADY", + "CANALES", + "CANDELARIA", + "CANFIELD", + "CANNON", + "CANO", + "CANTRELL", + "CANTU", + "CANTWELL", + "CANTY", + "CAPPS", + "CARABALLO", + "CARAWAY", + "CARBAJAL", + "CARBONE", + "CARD", + "CARDEN", + "CARDENAS", + "CARDER", + "CARDONA", + "CARDOZA", + "CARDWELL", + "CAREY", + "CARL", + "CARLIN", + "CARLISLE", + "CARLOS", + "CARLSON", + "CARLTON", + "CARMAN", + "CARMICHAEL", + "CARMONA", + "CARNAHAN", + "CARNES", + "CARNEY", + "CARO", + "CARON", + "CARPENTER", + "CARR", + "CARRANZA", + "CARRASCO", + "CARRERA", + "CARRICO", + "CARRIER", + "CARRILLO", + "CARRINGTON", + "CARRION", + "CARROLL", + "CARSON", + "CARSWELL", + "CARTER", + "CARTWRIGHT", + "CARUSO", + "CARVALHO", + "CARVER", + "CARY", + "CASAS", + "CASE", + "CASEY", + "CASH", + "CASILLAS", + "CASKEY", + "CASON", + "CASPER", + "CASS", + "CASSELL", + "CASSIDY", + "CASTANEDA", + "CASTEEL", + "CASTELLANO", + "CASTELLANOS", + "CASTILLO", + "CASTLE", + "CASTLEBERRY", + "CASTRO", + "CASWELL", + "CATALANO", + "CATES", + "CATHEY", + "CATO", + "CATRON", + "CAUDILL", + "CAUDLE", + "CAUSEY", + "CAVANAUGH", + "CAVAZOS", + "CAVE", + "CECIL", + "CENTENO", + "CERDA", + "CERVANTES", + "CHACON", + "CHADWICK", + "CHAFFIN", + "CHALMERS", + "CHAMBERLAIN", + "CHAMBERLIN", + "CHAMBERS", + "CHAMBLISS", + "CHAMPAGNE", + "CHAMPION", + "CHAN", + "CHANCE", + "CHANDLER", + "CHANEY", + "CHANG", + "CHAPA", + "CHAPIN", + "CHAPMAN", + "CHAPPELL", + "CHARLES", + "CHARLTON", + "CHASE", + "CHASTAIN", + "CHATMAN", + "CHAU", + "CHAVARRIA", + "CHAVES", + "CHAVEZ", + "CHAVIS", + "CHEATHAM", + "CHEEK", + "CHEN", + "CHENEY", + "CHENG", + "CHERRY", + "CHESSER", + "CHESTER", + "CHESTNUT", + "CHEUNG", + "CHEW", + "CHILD", + "CHILDERS", + "CHILDRESS", + "CHILDS", + "CHILTON", + "CHIN", + "CHISHOLM", + "CHISM", + "CHISOLM", + "CHITWOOD", + "CHO", + "CHOATE", + "CHOI", + "CHONG", + "CHOW", + "CHRISTENSEN", + "CHRISTENSON", + "CHRISTIAN", + "CHRISTIANSEN", + "CHRISTIANSON", + "CHRISTIE", + "CHRISTMAN", + "CHRISTMAS", + "CHRISTOPHER", + "CHRISTY", + "CHU", + "CHUN", + "CHUNG", + "CHURCH", + "CHURCHILL", + "CINTRON", + "CISNEROS", + "CLANCY", + "CLANTON", + "CLAPP", + "CLARK", + "CLARKE", + "CLARKSON", + "CLARY", + "CLAUSEN", + "CLAWSON", + "CLAY", + "CLAYTON", + "CLEARY", + "CLEGG", + "CLEM", + "CLEMENS", + "CLEMENT", + "CLEMENTS", + "CLEMMONS", + "CLEMONS", + "CLEVELAND", + "CLEVENGER", + "CLICK", + "CLIFFORD", + "CLIFTON", + "CLINE", + "CLINTON", + "CLOSE", + "CLOUD", + "CLOUGH", + "CLOUTIER", + "COATES", + "COATS", + "COBB", + "COBBS", + "COBLE", + "COBURN", + "COCHRAN", + "COCHRANE", + "COCKRELL", + "CODY", + "COE", + "COFFEY", + "COFFIN", + "COFFMAN", + "COGGINS", + "COHEN", + "COHN", + "COKER", + "COLBERT", + "COLBURN", + "COLBY", + "COLE", + "COLEMAN", + "COLES", + "COLEY", + "COLLADO", + "COLLAZO", + "COLLEY", + "COLLIER", + "COLLINS", + "COLON", + "COLSON", + "COLVIN", + "COLWELL", + "COMBS", + "COMEAUX", + "COMER", + "COMPTON", + "COMSTOCK", + "CONAWAY", + "CONCEPCION", + "CONDON", + "CONE", + "CONGER", + "CONKLIN", + "CONLEY", + "CONN", + "CONNELL", + "CONNELLY", + "CONNER", + "CONNERS", + "CONNOLLY", + "CONNOR", + "CONNORS", + "CONOVER", + "CONRAD", + "CONROY", + "CONTE", + "CONTI", + "CONTRERAS", + "CONWAY", + "CONYERS", + "COOK", + "COOKE", + "COOKS", + "COOKSEY", + "COOLEY", + "COOMBS", + "COON", + "COONEY", + "COONS", + "COOPER", + "COPE", + "COPELAND", + "COPLEY", + "COPPOLA", + "CORBETT", + "CORBIN", + "CORBITT", + "CORCORAN", + "CORDELL", + "CORDERO", + "CORDOVA", + "COREY", + "CORLEY", + "CORMIER", + "CORNELIUS", + "CORNELL", + "CORNETT", + "CORNISH", + "CORNWELL", + "CORONA", + "CORONADO", + "CORRAL", + "CORREA", + "CORREIA", + "CORRIGAN", + "CORTES", + "CORTEZ", + "CORWIN", + "COSBY", + "COSGROVE", + "COSTA", + "COSTELLO", + "COTA", + "COTE", + "COTHRAN", + "COTTER", + "COTTON", + "COTTRELL", + "COUCH", + "COUGHLIN", + "COULTER", + "COUNCIL", + "COUNTS", + "COURTNEY", + "COUSINS", + "COUTURE", + "COVERT", + "COVEY", + "COVINGTON", + "COWAN", + "COWARD", + "COWART", + "COWELL", + "COWLES", + "COWLEY", + "COX", + "COY", + "COYLE", + "COYNE", + "CRABTREE", + "CRADDOCK", + "CRAFT", + "CRAIG", + "CRAIN", + "CRAMER", + "CRANDALL", + "CRANE", + "CRANFORD", + "CRAVEN", + "CRAWFORD", + "CRAWLEY", + "CRAYTON", + "CREAMER", + "CREECH", + "CREEL", + "CREIGHTON", + "CRENSHAW", + "CRESPO", + "CREWS", + "CRIDER", + "CRISP", + "CRIST", + "CRISWELL", + "CRITTENDEN", + "CROCKER", + "CROCKETT", + "CROFT", + "CROMER", + "CROMWELL", + "CRONIN", + "CROOK", + "CROOKS", + "CROSBY", + "CROSS", + "CROTEAU", + "CROUCH", + "CROUSE", + "CROW", + "CROWDER", + "CROWE", + "CROWELL", + "CROWLEY", + "CRUM", + "CRUMP", + "CRUSE", + "CRUTCHER", + "CRUTCHFIELD", + "CRUZ", + "CUELLAR", + "CUEVAS", + "CULBERTSON", + "CULLEN", + "CULP", + "CULPEPPER", + "CULVER", + "CUMMINGS", + "CUMMINS", + "CUNNINGHAM", + "CUPP", + "CURLEY", + "CURRAN", + "CURRIE", + "CURRIER", + "CURRY", + "CURTIN", + "CURTIS", + "CUSHMAN", + "CUSTER", + "CUTLER", + "CYR", + "DABNEY", + "DAHL", + "DAIGLE", + "DAILEY", + "DAILY", + "DALE", + "DALEY", + "DALLAS", + "DALTON", + "DALY", + "DAMICO", + "DAMON", + "DAMRON", + "DANCY", + "DANG", + "DANGELO", + "DANIEL", + "DANIELS", + "DANIELSON", + "DANNER", + "DARBY", + "DARDEN", + "DARLING", + "DARNELL", + "DASILVA", + "DAUGHERTY", + "DAUGHTRY", + "DAVENPORT", + "DAVID", + "DAVIDSON", + "DAVIES", + "DAVILA", + "DAVIS", + "DAVISON", + "DAWKINS", + "DAWSON", + "DAY", + "DAYTON", + "DEAL", + "DEAN", + "DEATON", + "DEBERRY", + "DECKER", + "DEES", + "DEHART", + "DEJESUS", + "DELACRUZ", + "DELAGARZA", + "DELANEY", + "DELAROSA", + "DELATORRE", + "DELEON", + "DELGADILLO", + "DELGADO", + "DELL", + "DELLINGER", + "DELOACH", + "DELONG", + "DELOSSANTOS", + "DELUCA", + "DELVALLE", + "DEMARCO", + "DEMERS", + "DEMPSEY", + "DENHAM", + "DENNEY", + "DENNING", + "DENNIS", + "DENNISON", + "DENNY", + "DENSON", + "DENT", + "DENTON", + "DEROSA", + "DERR", + "DERRICK", + "DESANTIS", + "DESIMONE", + "DEVINE", + "DEVITO", + "DEVLIN", + "DEVORE", + "DEVRIES", + "DEW", + "DEWEY", + "DEWITT", + "DEXTER", + "DIAL", + "DIAMOND", + "DIAS", + "DIAZ", + "DICK", + "DICKENS", + "DICKERSON", + "DICKEY", + "DICKINSON", + "DICKSON", + "DIEHL", + "DIETRICH", + "DIETZ", + "DIGGS", + "DILL", + "DILLARD", + "DILLON", + "DINKINS", + "DION", + "DIX", + "DIXON", + "DO", + "DOAN", + "DOBBINS", + "DOBBS", + "DOBSON", + "DOCKERY", + "DODD", + "DODDS", + "DODGE", + "DODSON", + "DOE", + "DOHERTY", + "DOLAN", + "DOLL", + "DOLLAR", + "DOMINGO", + "DOMINGUEZ", + "DOMINQUEZ", + "DONAHUE", + "DONALD", + "DONALDSON", + "DONATO", + "DONNELL", + "DONNELLY", + "DONOHUE", + "DONOVAN", + "DOOLEY", + "DOOLITTLE", + "DORAN", + "DORMAN", + "DORN", + "DORRIS", + "DORSEY", + "DORTCH", + "DOSS", + "DOTSON", + "DOTY", + "DOUCETTE", + "DOUGHERTY", + "DOUGHTY", + "DOUGLAS", + "DOUGLASS", + "DOVE", + "DOVER", + "DOW", + "DOWD", + "DOWDY", + "DOWELL", + "DOWLING", + "DOWNEY", + "DOWNING", + "DOWNS", + "DOYLE", + "DOZIER", + "DRAKE", + "DRAPER", + "DRAYTON", + "DREW", + "DRISCOLL", + "DRIVER", + "DRUMMOND", + "DRURY", + "DUARTE", + "DUBE", + "DUBOIS", + "DUBOSE", + "DUCKETT", + "DUCKWORTH", + "DUDLEY", + "DUFF", + "DUFFY", + "DUGAN", + "DUGAS", + "DUGGAN", + "DUGGER", + "DUKE", + "DUKES", + "DUMAS", + "DUMONT", + "DUNAWAY", + "DUNBAR", + "DUNCAN", + "DUNHAM", + "DUNLAP", + "DUNN", + "DUNNE", + "DUNNING", + "DUONG", + "DUPONT", + "DUPRE", + "DUPREE", + "DUPUIS", + "DURAN", + "DURAND", + "DURANT", + "DURBIN", + "DURDEN", + "DURHAM", + "DURKIN", + "DURR", + "DUTTON", + "DUVAL", + "DUVALL", + "DWYER", + "DYE", + "DYER", + "DYKES", + "DYSON", + "EAGLE", + "EARL", + "EARLE", + "EARLEY", + "EARLS", + "EARLY", + "EARNEST", + "EASLEY", + "EASON", + "EAST", + "EASTER", + "EASTERLING", + "EASTMAN", + "EASTON", + "EATON", + "EAVES", + "EBERT", + "ECHEVARRIA", + "ECHOLS", + "ECKERT", + "EDDY", + "EDGAR", + "EDGE", + "EDMOND", + "EDMONDS", + "EDMONDSON", + "EDWARD", + "EDWARDS", + "EGAN", + "EGGLESTON", + "ELAM", + "ELDER", + "ELDRIDGE", + "ELIAS", + "ELIZONDO", + "ELKINS", + "ELLER", + "ELLINGTON", + "ELLIOT", + "ELLIOTT", + "ELLIS", + "ELLISON", + "ELLSWORTH", + "ELMORE", + "ELROD", + "ELSTON", + "ELY", + "EMANUEL", + "EMBRY", + "EMERSON", + "EMERY", + "EMMONS", + "ENG", + "ENGEL", + "ENGLAND", + "ENGLE", + "ENGLISH", + "ENNIS", + "ENOS", + "ENRIGHT", + "ENRIQUEZ", + "EPPERSON", + "EPPS", + "EPSTEIN", + "ERDMANN", + "ERICKSON", + "ERNST", + "ERVIN", + "ERWIN", + "ESCALANTE", + "ESCAMILLA", + "ESCOBAR", + "ESCOBEDO", + "ESPARZA", + "ESPINAL", + "ESPINO", + "ESPINOSA", + "ESPINOZA", + "ESPOSITO", + "ESQUIVEL", + "ESTEP", + "ESTES", + "ESTRADA", + "ESTRELLA", + "ETHERIDGE", + "ETHRIDGE", + "EUBANKS", + "EVANS", + "EVERETT", + "EVERHART", + "EVERS", + "EVERSON", + "EWING", + "EZELL", + "FABER", + "FABIAN", + "FAGAN", + "FAHEY", + "FAIN", + "FAIR", + "FAIRBANKS", + "FAIRCHILD", + "FAIRLEY", + "FAISON", + "FAJARDO", + "FALCON", + "FALK", + "FALLON", + "FALLS", + "FANNING", + "FARIAS", + "FARLEY", + "FARMER", + "FARNSWORTH", + "FARR", + "FARRAR", + "FARRELL", + "FARRINGTON", + "FARRIS", + "FARROW", + "FAULK", + "FAULKNER", + "FAUST", + "FAY", + "FEENEY", + "FELDER", + "FELDMAN", + "FELICIANO", + "FELIX", + "FELLOWS", + "FELTON", + "FELTS", + "FENNELL", + "FENNER", + "FENTON", + "FERGUSON", + "FERNANDES", + "FERNANDEZ", + "FERRARA", + "FERRARI", + "FERRARO", + "FERREIRA", + "FERRELL", + "FERRER", + "FERRIS", + "FERRY", + "FIELD", + "FIELDER", + "FIELDS", + "FIERRO", + "FIFE", + "FIGUEROA", + "FINCH", + "FINCHER", + "FINDLEY", + "FINE", + "FINK", + "FINLEY", + "FINN", + "FINNEGAN", + "FINNEY", + "FIORE", + "FISCHER", + "FISH", + "FISHER", + "FISHMAN", + "FISK", + "FITCH", + "FITE", + "FITTS", + "FITZGERALD", + "FITZPATRICK", + "FITZSIMMONS", + "FLAGG", + "FLAHERTY", + "FLANAGAN", + "FLANDERS", + "FLANIGAN", + "FLANNERY", + "FLECK", + "FLEMING", + "FLEMMING", + "FLETCHER", + "FLINT", + "FLOOD", + "FLORA", + "FLORENCE", + "FLORES", + "FLOREZ", + "FLOURNOY", + "FLOWERS", + "FLOYD", + "FLYNN", + "FOGARTY", + "FOGG", + "FOGLE", + "FOLEY", + "FOLSE", + "FOLSOM", + "FOLTZ", + "FONG", + "FONSECA", + "FONTAINE", + "FONTENOT", + "FOOTE", + "FORBES", + "FORD", + "FOREMAN", + "FOREST", + "FORET", + "FORMAN", + "FORNEY", + "FORREST", + "FORRESTER", + "FORSTER", + "FORSYTH", + "FORSYTHE", + "FORT", + "FORTE", + "FORTENBERRY", + "FORTIER", + "FORTIN", + "FORTNER", + "FORTUNE", + "FOSS", + "FOSTER", + "FOUNTAIN", + "FOURNIER", + "FOUST", + "FOWLER", + "FOX", + "FOY", + "FRALEY", + "FRAME", + "FRANCE", + "FRANCIS", + "FRANCISCO", + "FRANCO", + "FRANCOIS", + "FRANK", + "FRANKLIN", + "FRANKS", + "FRANTZ", + "FRANZ", + "FRASER", + "FRASIER", + "FRAZER", + "FRAZIER", + "FREDERICK", + "FREDERICKS", + "FREDRICK", + "FREDRICKSON", + "FREE", + "FREED", + "FREEDMAN", + "FREEMAN", + "FREESE", + "FREITAS", + "FRENCH", + "FREUND", + "FREY", + "FRIAS", + "FRICK", + "FRIEDMAN", + "FRIEND", + "FRIERSON", + "FRIES", + "FRITZ", + "FRIZZELL", + "FROST", + "FRY", + "FRYE", + "FRYER", + "FUCHS", + "FUENTES", + "FUGATE", + "FULCHER", + "FULLER", + "FULLERTON", + "FULMER", + "FULTON", + "FULTZ", + "FUNDERBURK", + "FUNK", + "FUQUA", + "FURMAN", + "FURR", + "FUSCO", + "GABLE", + "GABRIEL", + "GADDIS", + "GADDY", + "GAFFNEY", + "GAGE", + "GAGNE", + "GAGNON", + "GAINES", + "GAINEY", + "GAITHER", + "GALARZA", + "GALBRAITH", + "GALE", + "GALINDO", + "GALLAGHER", + "GALLANT", + "GALLARDO", + "GALLEGOS", + "GALLO", + "GALLOWAY", + "GALVAN", + "GALVEZ", + "GALVIN", + "GAMBLE", + "GAMBOA", + "GAMEZ", + "GANDY", + "GANN", + "GANNON", + "GANT", + "GANTT", + "GARAY", + "GARBER", + "GARCIA", + "GARDINER", + "GARDNER", + "GARLAND", + "GARMON", + "GARNER", + "GARNETT", + "GARRETT", + "GARRIS", + "GARRISON", + "GARVEY", + "GARVIN", + "GARY", + "GARZA", + "GASKIN", + "GASKINS", + "GASS", + "GASTON", + "GATES", + "GATEWOOD", + "GATLIN", + "GAULT", + "GAUTHIER", + "GAVIN", + "GAY", + "GAYLORD", + "GEARY", + "GEE", + "GEER", + "GEIGER", + "GENTILE", + "GENTRY", + "GEORGE", + "GERALD", + "GERARD", + "GERBER", + "GERMAN", + "GETZ", + "GIBBONS", + "GIBBS", + "GIBSON", + "GIFFORD", + "GIL", + "GILBERT", + "GILBERTSON", + "GILBREATH", + "GILCHRIST", + "GILES", + "GILL", + "GILLEN", + "GILLESPIE", + "GILLETTE", + "GILLEY", + "GILLIAM", + "GILLILAND", + "GILLIS", + "GILMAN", + "GILMER", + "GILMORE", + "GILSON", + "GINN", + "GIORDANO", + "GIPSON", + "GIRARD", + "GIRON", + "GIROUX", + "GIST", + "GIVENS", + "GLADDEN", + "GLADNEY", + "GLASER", + "GLASGOW", + "GLASS", + "GLAZE", + "GLEASON", + "GLENN", + "GLOVER", + "GLYNN", + "GOAD", + "GOBLE", + "GODDARD", + "GODFREY", + "GODINEZ", + "GODWIN", + "GOEBEL", + "GOETZ", + "GOFF", + "GOFORTH", + "GOINS", + "GOLD", + "GOLDBERG", + "GOLDEN", + "GOLDMAN", + "GOLDSMITH", + "GOLDSTEIN", + "GOMES", + "GOMEZ", + "GONSALVES", + "GONZALES", + "GONZALEZ", + "GOOCH", + "GOOD", + "GOODE", + "GOODEN", + "GOODIN", + "GOODING", + "GOODMAN", + "GOODRICH", + "GOODSON", + "GOODWIN", + "GOOLSBY", + "GORDON", + "GORE", + "GORHAM", + "GORMAN", + "GOSS", + "GOSSETT", + "GOUGH", + "GOULD", + "GOULET", + "GRACE", + "GRACIA", + "GRADY", + "GRAF", + "GRAFF", + "GRAGG", + "GRAHAM", + "GRANADOS", + "GRANGER", + "GRANT", + "GRANTHAM", + "GRAVES", + "GRAY", + "GRAYSON", + "GREATHOUSE", + "GRECO", + "GREEN", + "GREENBERG", + "GREENE", + "GREENFIELD", + "GREENLEE", + "GREENWOOD", + "GREER", + "GREGG", + "GREGORY", + "GREINER", + "GRENIER", + "GRESHAM", + "GREY", + "GRICE", + "GRIDER", + "GRIER", + "GRIFFIN", + "GRIFFIS", + "GRIFFITH", + "GRIFFITHS", + "GRIGGS", + "GRIGSBY", + "GRIMES", + "GRIMM", + "GRISHAM", + "GRISSOM", + "GRISWOLD", + "GROCE", + "GROGAN", + "GROOMS", + "GROSS", + "GROSSMAN", + "GROVE", + "GROVER", + "GROVES", + "GRUBB", + "GRUBBS", + "GRUBER", + "GUAJARDO", + "GUENTHER", + "GUERIN", + "GUERRA", + "GUERRERO", + "GUESS", + "GUEST", + "GUEVARA", + "GUFFEY", + "GUIDRY", + "GUILLEN", + "GUILLORY", + "GUINN", + "GULLEY", + "GUNDERSON", + "GUNN", + "GUNTER", + "GUNTHER", + "GURLEY", + "GUSTAFSON", + "GUTHRIE", + "GUTIERREZ", + "GUY", + "GUYTON", + "GUZMAN", + "HA", + "HAAG", + "HAAS", + "HAASE", + "HACKER", + "HACKETT", + "HACKNEY", + "HADDEN", + "HADLEY", + "HAGAN", + "HAGEN", + "HAGER", + "HAGGARD", + "HAGGERTY", + "HAHN", + "HAIGHT", + "HAILEY", + "HAINES", + "HAIR", + "HAIRSTON", + "HALCOMB", + "HALE", + "HALES", + "HALEY", + "HALL", + "HALLER", + "HALLMAN", + "HALSEY", + "HALSTEAD", + "HALVERSON", + "HAM", + "HAMBLIN", + "HAMBY", + "HAMEL", + "HAMER", + "HAMILTON", + "HAMLIN", + "HAMM", + "HAMMER", + "HAMMETT", + "HAMMOND", + "HAMMONDS", + "HAMMONS", + "HAMPTON", + "HAMRICK", + "HAN", + "HANCOCK", + "HAND", + "HANDLEY", + "HANDY", + "HANES", + "HANEY", + "HANKINS", + "HANKS", + "HANLEY", + "HANLON", + "HANNA", + "HANNAH", + "HANNAN", + "HANNON", + "HANSEN", + "HANSON", + "HARBIN", + "HARDAWAY", + "HARDEE", + "HARDEN", + "HARDER", + "HARDESTY", + "HARDIN", + "HARDING", + "HARDISON", + "HARDMAN", + "HARDWICK", + "HARDY", + "HARE", + "HARGIS", + "HARGRAVE", + "HARGROVE", + "HARKINS", + "HARLAN", + "HARLEY", + "HARLOW", + "HARMAN", + "HARMON", + "HARMS", + "HARNESS", + "HARP", + "HARPER", + "HARR", + "HARRELL", + "HARRINGTON", + "HARRIS", + "HARRISON", + "HARRY", + "HART", + "HARTER", + "HARTLEY", + "HARTMAN", + "HARTMANN", + "HARTWELL", + "HARVEY", + "HARWELL", + "HARWOOD", + "HASKELL", + "HASKINS", + "HASS", + "HASSELL", + "HASTINGS", + "HATCH", + "HATCHER", + "HATCHETT", + "HATFIELD", + "HATHAWAY", + "HATLEY", + "HATTON", + "HAUGEN", + "HAUSER", + "HAVENS", + "HAWES", + "HAWK", + "HAWKINS", + "HAWKS", + "HAWLEY", + "HAWTHORNE", + "HAY", + "HAYDEN", + "HAYES", + "HAYNES", + "HAYS", + "HAYWARD", + "HAYWOOD", + "HAZEL", + "HEAD", + "HEADLEY", + "HEADRICK", + "HEALEY", + "HEALY", + "HEARD", + "HEARN", + "HEATH", + "HEATON", + "HEBERT", + "HECK", + "HECKMAN", + "HEDGES", + "HEDRICK", + "HEFFNER", + "HEFLIN", + "HEFNER", + "HEIM", + "HEIN", + "HEINRICH", + "HEINZ", + "HELD", + "HELLER", + "HELM", + "HELMS", + "HELTON", + "HEMBREE", + "HEMPHILL", + "HENDERSON", + "HENDON", + "HENDRICK", + "HENDRICKS", + "HENDRICKSON", + "HENDRIX", + "HENKE", + "HENLEY", + "HENNESSEY", + "HENNING", + "HENRY", + "HENSLEY", + "HENSON", + "HER", + "HERBERT", + "HEREDIA", + "HERMAN", + "HERMANN", + "HERNANDEZ", + "HERNDON", + "HERR", + "HERRERA", + "HERRICK", + "HERRIN", + "HERRING", + "HERRINGTON", + "HERRMANN", + "HERRON", + "HERSHBERGER", + "HERZOG", + "HESS", + "HESTER", + "HEWITT", + "HEYWARD", + "HIATT", + "HIBBARD", + "HICKEY", + "HICKMAN", + "HICKS", + "HICKSON", + "HIDALGO", + "HIGDON", + "HIGGINBOTHAM", + "HIGGINS", + "HIGGS", + "HIGH", + "HIGHTOWER", + "HILDEBRAND", + "HILDRETH", + "HILL", + "HILLARD", + "HILLER", + "HILLIARD", + "HILLMAN", + "HILLS", + "HILTON", + "HIMES", + "HINDMAN", + "HINDS", + "HINES", + "HINKLE", + "HINOJOSA", + "HINSON", + "HINTON", + "HIRSCH", + "HITCHCOCK", + "HITE", + "HITT", + "HO", + "HOANG", + "HOBBS", + "HOBSON", + "HODGE", + "HODGES", + "HODGSON", + "HOFF", + "HOFFMAN", + "HOFFMANN", + "HOGAN", + "HOGG", + "HOGUE", + "HOKE", + "HOLBROOK", + "HOLCOMB", + "HOLCOMBE", + "HOLDEN", + "HOLDER", + "HOLGUIN", + "HOLIDAY", + "HOLLAND", + "HOLLENBECK", + "HOLLEY", + "HOLLIDAY", + "HOLLINGSWORTH", + "HOLLINS", + "HOLLIS", + "HOLLOMAN", + "HOLLOWAY", + "HOLLY", + "HOLM", + "HOLMAN", + "HOLMES", + "HOLT", + "HOLTON", + "HOLTZ", + "HOMAN", + "HOMER", + "HONEYCUTT", + "HONG", + "HOOD", + "HOOK", + "HOOKER", + "HOOKS", + "HOOPER", + "HOOVER", + "HOPE", + "HOPKINS", + "HOPPE", + "HOPPER", + "HOPSON", + "HORAN", + "HORN", + "HORNE", + "HORNER", + "HORNSBY", + "HOROWITZ", + "HORSLEY", + "HORTON", + "HORVATH", + "HOSKINS", + "HOSTETLER", + "HOUCK", + "HOUGH", + "HOUGHTON", + "HOULE", + "HOUSE", + "HOUSER", + "HOUSTON", + "HOWARD", + "HOWE", + "HOWELL", + "HOWERTON", + "HOWES", + "HOWLAND", + "HOY", + "HOYLE", + "HOYT", + "HSU", + "HUANG", + "HUBBARD", + "HUBER", + "HUBERT", + "HUDDLESTON", + "HUDGENS", + "HUDGINS", + "HUDSON", + "HUERTA", + "HUEY", + "HUFF", + "HUFFMAN", + "HUGGINS", + "HUGHES", + "HUGHEY", + "HULL", + "HULSEY", + "HUMES", + "HUMMEL", + "HUMPHREY", + "HUMPHREYS", + "HUMPHRIES", + "HUNDLEY", + "HUNT", + "HUNTER", + "HUNTINGTON", + "HUNTLEY", + "HURD", + "HURLEY", + "HURST", + "HURT", + "HURTADO", + "HUSKEY", + "HUSSEY", + "HUSTON", + "HUTCHENS", + "HUTCHERSON", + "HUTCHESON", + "HUTCHINGS", + "HUTCHINS", + "HUTCHINSON", + "HUTCHISON", + "HUTSON", + "HUTTO", + "HUTTON", + "HUYNH", + "HWANG", + "HYATT", + "HYDE", + "HYLAND", + "HYLTON", + "HYMAN", + "HYNES", + "IBARRA", + "INGLE", + "INGRAHAM", + "INGRAM", + "INMAN", + "IRBY", + "IRELAND", + "IRISH", + "IRIZARRY", + "IRONS", + "IRVIN", + "IRVINE", + "IRVING", + "IRWIN", + "ISAAC", + "ISAACS", + "ISAACSON", + "ISBELL", + "ISOM", + "ISON", + "ISRAEL", + "IVERSON", + "IVES", + "IVEY", + "IVORY", + "IVY", + "JACK", + "JACKMAN", + "JACKS", + "JACKSON", + "JACOB", + "JACOBS", + "JACOBSEN", + "JACOBSON", + "JACOBY", + "JACQUES", + "JAEGER", + "JAMES", + "JAMESON", + "JAMISON", + "JANES", + "JANKOWSKI", + "JANSEN", + "JANSSEN", + "JARAMILLO", + "JARRELL", + "JARRETT", + "JARVIS", + "JASPER", + "JAY", + "JAYNES", + "JEAN", + "JEFFERIES", + "JEFFERS", + "JEFFERSON", + "JEFFERY", + "JEFFREY", + "JEFFRIES", + "JENKINS", + "JENNINGS", + "JENSEN", + "JENSON", + "JERNIGAN", + "JESSUP", + "JETER", + "JETT", + "JEWELL", + "JEWETT", + "JIMENEZ", + "JOBE", + "JOE", + "JOHANSEN", + "JOHN", + "JOHNS", + "JOHNSON", + "JOHNSTON", + "JOINER", + "JOLLEY", + "JOLLY", + "JONES", + "JORDAN", + "JORDON", + "JORGENSEN", + "JORGENSON", + "JOSE", + "JOSEPH", + "JOY", + "JOYCE", + "JOYNER", + "JUAREZ", + "JUDD", + "JUDE", + "JUDGE", + "JUDKINS", + "JULIAN", + "JUNG", + "JUSTICE", + "JUSTUS", + "KAHN", + "KAISER", + "KAMINSKI", + "KANE", + "KANG", + "KAPLAN", + "KARR", + "KASPER", + "KATZ", + "KAUFFMAN", + "KAUFMAN", + "KAY", + "KAYE", + "KEANE", + "KEARNEY", + "KEARNS", + "KEATING", + "KEATON", + "KECK", + "KEE", + "KEEFE", + "KEEFER", + "KEEGAN", + "KEEL", + "KEELER", + "KEELING", + "KEEN", + "KEENAN", + "KEENE", + "KEENER", + "KEENEY", + "KEETON", + "KEITH", + "KELLEHER", + "KELLER", + "KELLEY", + "KELLOGG", + "KELLUM", + "KELLY", + "KELSEY", + "KELSO", + "KEMP", + "KEMPER", + "KENDALL", + "KENDRICK", + "KENNEDY", + "KENNEY", + "KENNY", + "KENT", + "KENYON", + "KERN", + "KERNS", + "KERR", + "KESSLER", + "KETCHUM", + "KEY", + "KEYES", + "KEYS", + "KEYSER", + "KHAN", + "KIDD", + "KIDWELL", + "KIEFER", + "KILGORE", + "KILLIAN", + "KILPATRICK", + "KIM", + "KIMBALL", + "KIMBLE", + "KIMBRELL", + "KIMBROUGH", + "KIMMEL", + "KINARD", + "KINCAID", + "KINDER", + "KING", + "KINGSLEY", + "KINNEY", + "KINSEY", + "KIRBY", + "KIRCHNER", + "KIRK", + "KIRKLAND", + "KIRKPATRICK", + "KIRKWOOD", + "KISER", + "KISH", + "KITCHEN", + "KITCHENS", + "KLEIN", + "KLINE", + "KLINGER", + "KNAPP", + "KNIGHT", + "KNOLL", + "KNOTT", + "KNOTTS", + "KNOWLES", + "KNOWLTON", + "KNOX", + "KNUDSEN", + "KNUDSON", + "KNUTSON", + "KOCH", + "KOEHLER", + "KOENIG", + "KOHL", + "KOHLER", + "KOHN", + "KOLB", + "KONG", + "KOONCE", + "KOONTZ", + "KOPP", + "KOVACH", + "KOWALSKI", + "KOZAK", + "KOZLOWSKI", + "KRAFT", + "KRAMER", + "KRAUS", + "KRAUSE", + "KRAUSS", + "KREBS", + "KRIEGER", + "KROLL", + "KRUEGER", + "KRUG", + "KRUGER", + "KRUSE", + "KUHN", + "KUNKEL", + "KUNTZ", + "KUNZ", + "KURTZ", + "KUYKENDALL", + "KYLE", + "LABBE", + "LABELLE", + "LACEY", + "LACHANCE", + "LACKEY", + "LACROIX", + "LACY", + "LADD", + "LADNER", + "LAFFERTY", + "LAFLAMME", + "LAFLEUR", + "LAI", + "LAIRD", + "LAKE", + "LAM", + "LAMAR", + "LAMB", + "LAMBERT", + "LAMM", + "LANCASTER", + "LANCE", + "LAND", + "LANDERS", + "LANDIS", + "LANDON", + "LANDRUM", + "LANDRY", + "LANE", + "LANEY", + "LANG", + "LANGDON", + "LANGE", + "LANGER", + "LANGFORD", + "LANGLEY", + "LANGLOIS", + "LANGSTON", + "LANHAM", + "LANIER", + "LANKFORD", + "LANNING", + "LANTZ", + "LAPLANTE", + "LAPOINTE", + "LAPORTE", + "LARA", + "LARGE", + "LARKIN", + "LAROCHE", + "LAROSE", + "LARRY", + "LARSEN", + "LARSON", + "LARUE", + "LASH", + "LASHLEY", + "LASSITER", + "LASTER", + "LATHAM", + "LATIMER", + "LATTIMORE", + "LAU", + "LAUER", + "LAUGHLIN", + "LAVENDER", + "LAVIGNE", + "LAVOIE", + "LAW", + "LAWHORN", + "LAWLER", + "LAWLESS", + "LAWRENCE", + "LAWS", + "LAWSON", + "LAWTON", + "LAY", + "LAYMAN", + "LAYNE", + "LAYTON", + "LE", + "LEA", + "LEACH", + "LEAHY", + "LEAK", + "LEAKE", + "LEAL", + "LEAR", + "LEARY", + "LEAVITT", + "LEBLANC", + "LEBRON", + "LECLAIR", + "LEDBETTER", + "LEDESMA", + "LEDFORD", + "LEDOUX", + "LEE", + "LEEPER", + "LEES", + "LEFEBVRE", + "LEGER", + "LEGG", + "LEGGETT", + "LEHMAN", + "LEHMANN", + "LEIGH", + "LEIGHTON", + "LEMASTER", + "LEMAY", + "LEMIEUX", + "LEMKE", + "LEMMON", + "LEMON", + "LEMONS", + "LEMUS", + "LENNON", + "LENTZ", + "LENZ", + "LEON", + "LEONARD", + "LEONE", + "LERMA", + "LERNER", + "LEROY", + "LESLIE", + "LESSARD", + "LESTER", + "LEUNG", + "LEVESQUE", + "LEVI", + "LEVIN", + "LEVINE", + "LEVY", + "LEW", + "LEWANDOWSKI", + "LEWIS", + "LEYVA", + "LI", + "LIBBY", + "LIDDELL", + "LIEBERMAN", + "LIGHT", + "LIGHTFOOT", + "LIGHTNER", + "LIGON", + "LILES", + "LILLEY", + "LILLY", + "LIM", + "LIMA", + "LIMON", + "LIN", + "LINARES", + "LINCOLN", + "LIND", + "LINDBERG", + "LINDER", + "LINDGREN", + "LINDLEY", + "LINDQUIST", + "LINDSAY", + "LINDSEY", + "LINDSTROM", + "LINK", + "LINKOUS", + "LINN", + "LINTON", + "LINVILLE", + "LIPSCOMB", + "LIRA", + "LISTER", + "LITTLE", + "LITTLEFIELD", + "LITTLEJOHN", + "LITTLETON", + "LIU", + "LIVELY", + "LIVINGSTON", + "LLOYD", + "LO", + "LOCKE", + "LOCKETT", + "LOCKHART", + "LOCKLEAR", + "LOCKWOOD", + "LOERA", + "LOFTIN", + "LOFTIS", + "LOFTON", + "LOGAN", + "LOGSDON", + "LOGUE", + "LOMAX", + "LOMBARD", + "LOMBARDI", + "LOMBARDO", + "LONDON", + "LONG", + "LONGO", + "LONGORIA", + "LOOMIS", + "LOONEY", + "LOPER", + "LOPES", + "LOPEZ", + "LORD", + "LORENZ", + "LORENZO", + "LOTT", + "LOUIS", + "LOVE", + "LOVEJOY", + "LOVELACE", + "LOVELESS", + "LOVELL", + "LOVETT", + "LOVING", + "LOW", + "LOWE", + "LOWELL", + "LOWERY", + "LOWMAN", + "LOWRY", + "LOY", + "LOYA", + "LOYD", + "LOZANO", + "LU", + "LUCAS", + "LUCE", + "LUCERO", + "LUCIANO", + "LUCKETT", + "LUDWIG", + "LUGO", + "LUIS", + "LUJAN", + "LUKE", + "LUMPKIN", + "LUNA", + "LUND", + "LUNDBERG", + "LUNDY", + "LUNSFORD", + "LUONG", + "LUSK", + "LUSTER", + "LUTHER", + "LUTTRELL", + "LUTZ", + "LY", + "LYLE", + "LYLES", + "LYMAN", + "LYNCH", + "LYNN", + "LYON", + "LYONS", + "LYTLE", + "MA", + "MAAS", + "MABE", + "MABRY", + "MACDONALD", + "MACE", + "MACHADO", + "MACIAS", + "MACK", + "MACKAY", + "MACKENZIE", + "MACKEY", + "MACKIE", + "MACKLIN", + "MACLEAN", + "MACLEOD", + "MACON", + "MADDEN", + "MADDOX", + "MADERA", + "MADISON", + "MADRID", + "MADRIGAL", + "MADSEN", + "MAES", + "MAESTAS", + "MAGANA", + "MAGEE", + "MAGGARD", + "MAGNUSON", + "MAGUIRE", + "MAHAFFEY", + "MAHAN", + "MAHER", + "MAHON", + "MAHONEY", + "MAIER", + "MAIN", + "MAJOR", + "MAJORS", + "MAKI", + "MALCOLM", + "MALDONADO", + "MALLEY", + "MALLORY", + "MALLOY", + "MALONE", + "MALONEY", + "MANCINI", + "MANCUSO", + "MANESS", + "MANGUM", + "MANLEY", + "MANN", + "MANNING", + "MANNS", + "MANSFIELD", + "MANSON", + "MANUEL", + "MANZO", + "MAPLE", + "MAPLES", + "MARBLE", + "MARCH", + "MARCHAND", + "MARCOTTE", + "MARCUM", + "MARCUS", + "MARES", + "MARIN", + "MARINO", + "MARION", + "MARK", + "MARKHAM", + "MARKLEY", + "MARKS", + "MARLER", + "MARLOW", + "MARLOWE", + "MARQUEZ", + "MARQUIS", + "MARR", + "MARRERO", + "MARROQUIN", + "MARSH", + "MARSHALL", + "MARTEL", + "MARTELL", + "MARTENS", + "MARTIN", + "MARTINDALE", + "MARTINEZ", + "MARTINO", + "MARTINS", + "MARTINSON", + "MARTZ", + "MARVIN", + "MARX", + "MASON", + "MASSEY", + "MASSIE", + "MAST", + "MASTERS", + "MASTERSON", + "MATA", + "MATHENY", + "MATHESON", + "MATHEWS", + "MATHIAS", + "MATHIS", + "MATLOCK", + "MATNEY", + "MATOS", + "MATSON", + "MATTESON", + "MATTHEW", + "MATTHEWS", + "MATTINGLY", + "MATTISON", + "MATTOS", + "MATTOX", + "MATTSON", + "MAULDIN", + "MAUPIN", + "MAURER", + "MAURO", + "MAXEY", + "MAXFIELD", + "MAXWELL", + "MAY", + "MAYBERRY", + "MAYER", + "MAYERS", + "MAYES", + "MAYFIELD", + "MAYHEW", + "MAYNARD", + "MAYO", + "MAYS", + "MAZZA", + "MCADAMS", + "MCAFEE", + "MCALISTER", + "MCALLISTER", + "MCARTHUR", + "MCBEE", + "MCBRIDE", + "MCCABE", + "MCCAFFREY", + "MCCAIN", + "MCCALL", + "MCCALLISTER", + "MCCALLUM", + "MCCANN", + "MCCANTS", + "MCCARTER", + "MCCARTHY", + "MCCARTNEY", + "MCCARTY", + "MCCASKILL", + "MCCAULEY", + "MCCLAIN", + "MCCLANAHAN", + "MCCLARY", + "MCCLEARY", + "MCCLELLAN", + "MCCLELLAND", + "MCCLENDON", + "MCCLINTOCK", + "MCCLINTON", + "MCCLOSKEY", + "MCCLOUD", + "MCCLUNG", + "MCCLURE", + "MCCOLLUM", + "MCCOMBS", + "MCCONNELL", + "MCCOOL", + "MCCORD", + "MCCORKLE", + "MCCORMACK", + "MCCORMICK", + "MCCOY", + "MCCRACKEN", + "MCCRARY", + "MCCRAY", + "MCCREARY", + "MCCUE", + "MCCULLOCH", + "MCCULLOUGH", + "MCCUNE", + "MCCURDY", + "MCCURRY", + "MCCUTCHEON", + "MCDADE", + "MCDANIEL", + "MCDANIELS", + "MCDERMOTT", + "MCDONALD", + "MCDONNELL", + "MCDONOUGH", + "MCDOUGAL", + "MCDOUGALL", + "MCDOWELL", + "MCDUFFIE", + "MCELROY", + "MCEWEN", + "MCFADDEN", + "MCFALL", + "MCFARLAND", + "MCFARLANE", + "MCGEE", + "MCGEHEE", + "MCGHEE", + "MCGILL", + "MCGINNIS", + "MCGOVERN", + "MCGOWAN", + "MCGRATH", + "MCGRAW", + "MCGREGOR", + "MCGREW", + "MCGRIFF", + "MCGUIRE", + "MCHENRY", + "MCHUGH", + "MCINNIS", + "MCINTIRE", + "MCINTOSH", + "MCINTYRE", + "MCKAY", + "MCKEE", + "MCKEEVER", + "MCKENNA", + "MCKENNEY", + "MCKENZIE", + "MCKEON", + "MCKEOWN", + "MCKINLEY", + "MCKINNEY", + "MCKINNON", + "MCKNIGHT", + "MCLAIN", + "MCLAUGHLIN", + "MCLAURIN", + "MCLEAN", + "MCLEMORE", + "MCLENDON", + "MCLEOD", + "MCMAHAN", + "MCMAHON", + "MCMANUS", + "MCMASTER", + "MCMILLAN", + "MCMILLEN", + "MCMILLIAN", + "MCMULLEN", + "MCMURRAY", + "MCNABB", + "MCNAIR", + "MCNALLY", + "MCNAMARA", + "MCNEAL", + "MCNEELY", + "MCNEIL", + "MCNEILL", + "MCNULTY", + "MCNUTT", + "MCPHERSON", + "MCQUEEN", + "MCRAE", + "MCREYNOLDS", + "MCSWAIN", + "MCVAY", + "MCVEY", + "MCWHORTER", + "MCWILLIAMS", + "MEACHAM", + "MEAD", + "MEADE", + "MEADOR", + "MEADOWS", + "MEANS", + "MEARS", + "MEDEIROS", + "MEDINA", + "MEDLEY", + "MEDLIN", + "MEDLOCK", + "MEDRANO", + "MEEHAN", + "MEEK", + "MEEKER", + "MEEKS", + "MEIER", + "MEJIA", + "MELANCON", + "MELENDEZ", + "MELLO", + "MELTON", + "MELVIN", + "MENA", + "MENARD", + "MENDENHALL", + "MENDEZ", + "MENDOZA", + "MENENDEZ", + "MERCADO", + "MERCER", + "MERCHANT", + "MERCIER", + "MEREDITH", + "MERRELL", + "MERRICK", + "MERRILL", + "MERRIMAN", + "MERRITT", + "MESA", + "MESSENGER", + "MESSER", + "MESSINA", + "METCALF", + "METZ", + "METZGER", + "METZLER", + "MEYER", + "MEYERS", + "MEZA", + "MICHAEL", + "MICHAELS", + "MICHAUD", + "MICHEL", + "MICKENS", + "MIDDLETON", + "MILAM", + "MILBURN", + "MILES", + "MILLARD", + "MILLER", + "MILLIGAN", + "MILLIKEN", + "MILLS", + "MILNE", + "MILNER", + "MILTON", + "MIMS", + "MINER", + "MINNICK", + "MINOR", + "MINTER", + "MINTON", + "MINTZ", + "MIRANDA", + "MIRELES", + "MITCHELL", + "MIXON", + "MIZE", + "MOBLEY", + "MOCK", + "MOE", + "MOELLER", + "MOEN", + "MOFFETT", + "MOFFITT", + "MOHR", + "MOJICA", + "MOLINA", + "MOLL", + "MONACO", + "MONAGHAN", + "MONAHAN", + "MONEY", + "MONIZ", + "MONK", + "MONROE", + "MONSON", + "MONTAGUE", + "MONTALVO", + "MONTANEZ", + "MONTANO", + "MONTEMAYOR", + "MONTERO", + "MONTES", + "MONTEZ", + "MONTGOMERY", + "MONTOYA", + "MOODY", + "MOON", + "MOONEY", + "MOORE", + "MOORMAN", + "MORA", + "MORALES", + "MORAN", + "MOREAU", + "MOREHEAD", + "MORELAND", + "MORENO", + "MOREY", + "MORGAN", + "MORIARTY", + "MORIN", + "MORLEY", + "MORRELL", + "MORRILL", + "MORRIS", + "MORRISON", + "MORRISSEY", + "MORROW", + "MORSE", + "MORTENSEN", + "MORTON", + "MOSBY", + "MOSELEY", + "MOSER", + "MOSES", + "MOSHER", + "MOSIER", + "MOSLEY", + "MOSS", + "MOTLEY", + "MOTT", + "MOULTON", + "MOULTRIE", + "MOUNT", + "MOWERY", + "MOYA", + "MOYE", + "MOYER", + "MUELLER", + "MUHAMMAD", + "MUIR", + "MULKEY", + "MULL", + "MULLEN", + "MULLER", + "MULLIGAN", + "MULLIN", + "MULLINS", + "MULLIS", + "MUNCY", + "MUNDY", + "MUNIZ", + "MUNN", + "MUNOZ", + "MUNSON", + "MURDOCK", + "MURILLO", + "MURPHY", + "MURRAY", + "MURRELL", + "MURRY", + "MUSE", + "MUSGROVE", + "MUSSER", + "MYERS", + "MYLES", + "MYRICK", + "NABORS", + "NADEAU", + "NAGEL", + "NAGLE", + "NAGY", + "NAJERA", + "NAKAMURA", + "NALL", + "NANCE", + "NAPIER", + "NAQUIN", + "NARANJO", + "NARVAEZ", + "NASH", + "NATHAN", + "NATION", + "NAVA", + "NAVARRETE", + "NAVARRO", + "NAYLOR", + "NEAL", + "NEALY", + "NEEDHAM", + "NEEL", + "NEELEY", + "NEELY", + "NEFF", + "NEGRETE", + "NEGRON", + "NEIL", + "NEILL", + "NELMS", + "NELSON", + "NESBITT", + "NESMITH", + "NESS", + "NESTOR", + "NETTLES", + "NEUMAN", + "NEUMANN", + "NEVAREZ", + "NEVILLE", + "NEW", + "NEWBERRY", + "NEWBY", + "NEWCOMB", + "NEWELL", + "NEWKIRK", + "NEWMAN", + "NEWSOM", + "NEWSOME", + "NEWTON", + "NG", + "NGO", + "NGUYEN", + "NICHOLAS", + "NICHOLS", + "NICHOLSON", + "NICKEL", + "NICKERSON", + "NIELSEN", + "NIELSON", + "NIETO", + "NIEVES", + "NILES", + "NIX", + "NIXON", + "NOBLE", + "NOBLES", + "NOE", + "NOEL", + "NOLAN", + "NOLAND", + "NOLEN", + "NOLL", + "NOONAN", + "NORFLEET", + "NORIEGA", + "NORMAN", + "NORRIS", + "NORTH", + "NORTON", + "NORWOOD", + "NOVAK", + "NOVOTNY", + "NOWAK", + "NOWLIN", + "NOYES", + "NUGENT", + "NULL", + "NUMBERS", + "NUNES", + "NUNEZ", + "NUNLEY", + "NUNN", + "NUTT", + "NUTTER", + "NYE", + "OAKES", + "OAKLEY", + "OAKS", + "OATES", + "OBRIEN", + "OBRYAN", + "OCAMPO", + "OCASIO", + "OCHOA", + "OCHS", + "OCONNELL", + "OCONNER", + "OCONNOR", + "ODELL", + "ODEN", + "ODOM", + "ODONNELL", + "ODUM", + "OGDEN", + "OGLE", + "OGLESBY", + "OH", + "OHARA", + "OJEDA", + "OKEEFE", + "OLDHAM", + "OLDS", + "OLEARY", + "OLIPHANT", + "OLIVA", + "OLIVARES", + "OLIVAREZ", + "OLIVAS", + "OLIVE", + "OLIVEIRA", + "OLIVER", + "OLIVO", + "OLMSTEAD", + "OLSEN", + "OLSON", + "OLVERA", + "OMALLEY", + "ONEAL", + "ONEIL", + "ONEILL", + "ONTIVEROS", + "ORDONEZ", + "OREILLY", + "ORELLANA", + "ORLANDO", + "ORNELAS", + "OROSCO", + "OROURKE", + "OROZCO", + "ORR", + "ORTA", + "ORTEGA", + "ORTIZ", + "OSBORN", + "OSBORNE", + "OSBURN", + "OSGOOD", + "OSHEA", + "OSORIO", + "OSTEEN", + "OSTRANDER", + "OSULLIVAN", + "OSWALD", + "OSWALT", + "OTERO", + "OTIS", + "OTOOLE", + "OTT", + "OTTO", + "OUELLETTE", + "OUTLAW", + "OVERBY", + "OVERSTREET", + "OVERTON", + "OWEN", + "OWENS", + "PACE", + "PACHECO", + "PACK", + "PACKARD", + "PACKER", + "PADGETT", + "PADILLA", + "PAGAN", + "PAGE", + "PAIGE", + "PAINE", + "PAINTER", + "PAK", + "PALACIOS", + "PALMA", + "PALMER", + "PALUMBO", + "PANNELL", + "PANTOJA", + "PAPE", + "PAPPAS", + "PAQUETTE", + "PARADIS", + "PARDO", + "PAREDES", + "PARENT", + "PARHAM", + "PARIS", + "PARISH", + "PARK", + "PARKER", + "PARKINSON", + "PARKS", + "PARNELL", + "PARR", + "PARRA", + "PARRIS", + "PARRISH", + "PARROTT", + "PARRY", + "PARSON", + "PARSONS", + "PARTIN", + "PARTRIDGE", + "PASSMORE", + "PATE", + "PATEL", + "PATERSON", + "PATINO", + "PATRICK", + "PATTEN", + "PATTERSON", + "PATTON", + "PAUL", + "PAULEY", + "PAULSEN", + "PAULSON", + "PAXTON", + "PAYNE", + "PAYTON", + "PAZ", + "PEACE", + "PEACHEY", + "PEACOCK", + "PEAK", + "PEARCE", + "PEARSON", + "PEASE", + "PECK", + "PEDERSEN", + "PEDERSON", + "PEEBLES", + "PEEK", + "PEEL", + "PEELER", + "PEEPLES", + "PELLETIER", + "PELTIER", + "PEMBERTON", + "PENA", + "PENCE", + "PENDER", + "PENDERGRASS", + "PENDLETON", + "PENN", + "PENNELL", + "PENNINGTON", + "PENNY", + "PEOPLES", + "PEPPER", + "PERALES", + "PERALTA", + "PERDUE", + "PEREA", + "PEREIRA", + "PEREZ", + "PERKINS", + "PERREAULT", + "PERRIN", + "PERRON", + "PERRY", + "PERRYMAN", + "PERSON", + "PETER", + "PETERMAN", + "PETERS", + "PETERSEN", + "PETERSON", + "PETIT", + "PETRIE", + "PETTIGREW", + "PETTIS", + "PETTIT", + "PETTWAY", + "PETTY", + "PEYTON", + "PFEIFER", + "PFEIFFER", + "PHAM", + "PHAN", + "PHELAN", + "PHELPS", + "PHIFER", + "PHILLIPS", + "PHIPPS", + "PICARD", + "PICKARD", + "PICKENS", + "PICKERING", + "PICKETT", + "PIERCE", + "PIERRE", + "PIERSON", + "PIKE", + "PILCHER", + "PIMENTEL", + "PINA", + "PINCKNEY", + "PINEDA", + "PINKERTON", + "PINKSTON", + "PINO", + "PINSON", + "PINTO", + "PIPER", + "PIPKIN", + "PIPPIN", + "PITMAN", + "PITRE", + "PITT", + "PITTMAN", + "PITTS", + "PLACE", + "PLANTE", + "PLATT", + "PLEASANT", + "PLUMMER", + "PLUNKETT", + "POE", + "POGUE", + "POINDEXTER", + "POINTER", + "POIRIER", + "POLANCO", + "POLAND", + "POLING", + "POLK", + "POLLACK", + "POLLARD", + "POLLOCK", + "POMEROY", + "PONCE", + "POND", + "PONDER", + "POOL", + "POOLE", + "POORE", + "POPE", + "POPP", + "PORTER", + "PORTERFIELD", + "PORTILLO", + "POSEY", + "POST", + "POSTON", + "POTTER", + "POTTS", + "POULIN", + "POUNDS", + "POWELL", + "POWER", + "POWERS", + "PRADO", + "PRATER", + "PRATHER", + "PRATT", + "PRENTICE", + "PRESCOTT", + "PRESLEY", + "PRESSLEY", + "PRESTON", + "PREWITT", + "PRICE", + "PRICHARD", + "PRIDE", + "PRIDGEN", + "PRIEST", + "PRIETO", + "PRINCE", + "PRINGLE", + "PRITCHARD", + "PRITCHETT", + "PROCTOR", + "PROFFITT", + "PROSSER", + "PROVOST", + "PRUETT", + "PRUITT", + "PRYOR", + "PUCKETT", + "PUENTE", + "PUGH", + "PULIDO", + "PULLEN", + "PULLEY", + "PULLIAM", + "PURCELL", + "PURDY", + "PURNELL", + "PURVIS", + "PUTMAN", + "PUTNAM", + "PYLE", + "QUALLS", + "QUARLES", + "QUEEN", + "QUEZADA", + "QUICK", + "QUIGLEY", + "QUILLEN", + "QUINLAN", + "QUINN", + "QUINONES", + "QUINONEZ", + "QUINTANA", + "QUINTANILLA", + "QUINTERO", + "QUIROZ", + "RADER", + "RADFORD", + "RAFFERTY", + "RAGAN", + "RAGLAND", + "RAGSDALE", + "RAINES", + "RAINEY", + "RAINS", + "RALEY", + "RALPH", + "RALSTON", + "RAMEY", + "RAMIREZ", + "RAMON", + "RAMOS", + "RAMSAY", + "RAMSEY", + "RAND", + "RANDALL", + "RANDLE", + "RANDOLPH", + "RANEY", + "RANGEL", + "RANKIN", + "RANSOM", + "RAPP", + "RASH", + "RASMUSSEN", + "RATCLIFF", + "RATLIFF", + "RAU", + "RAUCH", + "RAWLINGS", + "RAWLINS", + "RAWLS", + "RAY", + "RAYBURN", + "RAYFORD", + "RAYMOND", + "RAYNOR", + "RAZO", + "REA", + "READ", + "REAGAN", + "REARDON", + "REAVES", + "RECTOR", + "REDD", + "REDDEN", + "REDDICK", + "REDDING", + "REDDY", + "REDMAN", + "REDMON", + "REDMOND", + "REECE", + "REED", + "REEDER", + "REEDY", + "REES", + "REESE", + "REEVES", + "REGALADO", + "REGAN", + "REGISTER", + "REICH", + "REICHERT", + "REID", + "REILLY", + "REINHARDT", + "REINHART", + "REIS", + "REITER", + "RENDON", + "RENFRO", + "RENNER", + "RENO", + "RENTERIA", + "REUTER", + "REY", + "REYES", + "REYNA", + "REYNOLDS", + "REYNOSO", + "RHEA", + "RHOADES", + "RHOADS", + "RHODEN", + "RHODES", + "RICCI", + "RICE", + "RICH", + "RICHARD", + "RICHARDS", + "RICHARDSON", + "RICHEY", + "RICHIE", + "RICHMOND", + "RICHTER", + "RICKARD", + "RICKER", + "RICKETTS", + "RICKMAN", + "RICKS", + "RICO", + "RIDDELL", + "RIDDICK", + "RIDDLE", + "RIDENOUR", + "RIDER", + "RIDGEWAY", + "RIDLEY", + "RIFE", + "RIGBY", + "RIGGINS", + "RIGGS", + "RIGSBY", + "RILEY", + "RINALDI", + "RINEHART", + "RING", + "RIOS", + "RIPLEY", + "RITCHEY", + "RITCHIE", + "RITTER", + "RIVAS", + "RIVERA", + "RIVERS", + "RIZZO", + "ROACH", + "ROARK", + "ROBB", + "ROBBINS", + "ROBERGE", + "ROBERSON", + "ROBERT", + "ROBERTS", + "ROBERTSON", + "ROBEY", + "ROBINETTE", + "ROBINS", + "ROBINSON", + "ROBISON", + "ROBLES", + "ROBSON", + "ROBY", + "ROCHA", + "ROCHE", + "ROCK", + "ROCKWELL", + "RODEN", + "RODERICK", + "RODGERS", + "RODRIGUE", + "RODRIGUES", + "RODRIGUEZ", + "RODRIQUEZ", + "ROE", + "ROGER", + "ROGERS", + "ROHR", + "ROJAS", + "ROLAND", + "ROLDAN", + "ROLLER", + "ROLLINS", + "ROMAN", + "ROMANO", + "ROMEO", + "ROMERO", + "ROMO", + "RONEY", + "ROONEY", + "ROOT", + "ROPER", + "ROQUE", + "ROSA", + "ROSADO", + "ROSALES", + "ROSARIO", + "ROSAS", + "ROSE", + "ROSEN", + "ROSENBAUM", + "ROSENBERG", + "ROSENTHAL", + "ROSS", + "ROSSER", + "ROSSI", + "ROTH", + "ROUNDS", + "ROUNDTREE", + "ROUNTREE", + "ROUSE", + "ROUSH", + "ROUSSEAU", + "ROUSSEL", + "ROWAN", + "ROWE", + "ROWELL", + "ROWLAND", + "ROWLEY", + "ROY", + "ROYAL", + "ROYBAL", + "ROYER", + "ROYSTER", + "RUBIN", + "RUBIO", + "RUBY", + "RUCKER", + "RUDD", + "RUDOLPH", + "RUFF", + "RUFFIN", + "RUIZ", + "RUNYAN", + "RUNYON", + "RUPERT", + "RUPP", + "RUSH", + "RUSHING", + "RUSS", + "RUSSELL", + "RUSSO", + "RUST", + "RUTH", + "RUTHERFORD", + "RUTLEDGE", + "RYAN", + "RYDER", + "SAAVEDRA", + "SABO", + "SACCO", + "SADLER", + "SAENZ", + "SAGE", + "SAGER", + "SALAS", + "SALAZAR", + "SALCEDO", + "SALCIDO", + "SALDANA", + "SALDIVAR", + "SALERNO", + "SALES", + "SALGADO", + "SALINAS", + "SALISBURY", + "SALLEE", + "SALLEY", + "SALMON", + "SALTER", + "SAM", + "SAMMONS", + "SAMPLE", + "SAMPLES", + "SAMPSON", + "SAMS", + "SAMSON", + "SAMUEL", + "SAMUELS", + "SANBORN", + "SANCHES", + "SANCHEZ", + "SANDBERG", + "SANDER", + "SANDERS", + "SANDERSON", + "SANDLIN", + "SANDOVAL", + "SANDS", + "SANFORD", + "SANTANA", + "SANTIAGO", + "SANTOS", + "SAPP", + "SARGENT", + "SASSER", + "SATTERFIELD", + "SAUCEDO", + "SAUCIER", + "SAUER", + "SAULS", + "SAUNDERS", + "SAVAGE", + "SAVOY", + "SAWYER", + "SAWYERS", + "SAXON", + "SAXTON", + "SAYERS", + "SAYLOR", + "SAYRE", + "SCALES", + "SCANLON", + "SCARBOROUGH", + "SCARBROUGH", + "SCHAEFER", + "SCHAEFFER", + "SCHAFER", + "SCHAFFER", + "SCHELL", + "SCHERER", + "SCHILLER", + "SCHILLING", + "SCHINDLER", + "SCHMID", + "SCHMIDT", + "SCHMITT", + "SCHMITZ", + "SCHNEIDER", + "SCHOFIELD", + "SCHOLL", + "SCHOONOVER", + "SCHOTT", + "SCHRADER", + "SCHREIBER", + "SCHREINER", + "SCHROEDER", + "SCHUBERT", + "SCHULER", + "SCHULTE", + "SCHULTZ", + "SCHULZ", + "SCHULZE", + "SCHUMACHER", + "SCHUSTER", + "SCHWAB", + "SCHWARTZ", + "SCHWARZ", + "SCHWEITZER", + "SCOGGINS", + "SCOTT", + "SCRIBNER", + "SCROGGINS", + "SCRUGGS", + "SCULLY", + "SEAL", + "SEALS", + "SEAMAN", + "SEARCY", + "SEARS", + "SEATON", + "SEAY", + "SEE", + "SEELEY", + "SEGURA", + "SEIBERT", + "SEIDEL", + "SEIFERT", + "SEILER", + "SEITZ", + "SELBY", + "SELF", + "SELL", + "SELLERS", + "SELLS", + "SENA", + "SEPULVEDA", + "SERNA", + "SERRANO", + "SESSIONS", + "SETTLE", + "SETTLES", + "SEVERSON", + "SEWARD", + "SEWELL", + "SEXTON", + "SEYMORE", + "SEYMOUR", + "SHACKELFORD", + "SHADE", + "SHAFER", + "SHAFFER", + "SHAH", + "SHANK", + "SHANKS", + "SHANNON", + "SHAPIRO", + "SHARKEY", + "SHARP", + "SHARPE", + "SHAVER", + "SHAW", + "SHAY", + "SHEA", + "SHEARER", + "SHEEHAN", + "SHEETS", + "SHEFFIELD", + "SHELBY", + "SHELDON", + "SHELL", + "SHELLEY", + "SHELLY", + "SHELTON", + "SHEPARD", + "SHEPHARD", + "SHEPHERD", + "SHEPPARD", + "SHERIDAN", + "SHERMAN", + "SHERRILL", + "SHERROD", + "SHERRY", + "SHERWOOD", + "SHIELDS", + "SHIFFLETT", + "SHIN", + "SHINN", + "SHIPLEY", + "SHIPMAN", + "SHIPP", + "SHIRLEY", + "SHIVELY", + "SHIVERS", + "SHOCKLEY", + "SHOEMAKER", + "SHOOK", + "SHORE", + "SHORES", + "SHORT", + "SHORTER", + "SHRADER", + "SHULER", + "SHULL", + "SHULTZ", + "SHUMAKER", + "SHUMAN", + "SHUMATE", + "SIBLEY", + "SIDES", + "SIEGEL", + "SIERRA", + "SIGLER", + "SIKES", + "SILER", + "SILLS", + "SILVA", + "SILVER", + "SILVERMAN", + "SILVERS", + "SILVIA", + "SIMMONS", + "SIMMS", + "SIMON", + "SIMONE", + "SIMONS", + "SIMONSON", + "SIMPKINS", + "SIMPSON", + "SIMS", + "SINCLAIR", + "SINGER", + "SINGH", + "SINGLETARY", + "SINGLETON", + "SIPES", + "SISCO", + "SISK", + "SISSON", + "SIZEMORE", + "SKAGGS", + "SKELTON", + "SKIDMORE", + "SKINNER", + "SKIPPER", + "SLACK", + "SLADE", + "SLAGLE", + "SLATER", + "SLATON", + "SLATTERY", + "SLAUGHTER", + "SLAYTON", + "SLEDGE", + "SLOAN", + "SLOCUM", + "SLONE", + "SMALL", + "SMALLEY", + "SMALLS", + "SMALLWOOD", + "SMART", + "SMILEY", + "SMITH", + "SMITHSON", + "SMOOT", + "SMOTHERS", + "SMYTH", + "SNEAD", + "SNEED", + "SNELL", + "SNIDER", + "SNIPES", + "SNODGRASS", + "SNOW", + "SNOWDEN", + "SNYDER", + "SOARES", + "SOLANO", + "SOLIS", + "SOLIZ", + "SOLOMON", + "SOMERS", + "SOMERVILLE", + "SOMMER", + "SOMMERS", + "SONG", + "SORENSEN", + "SORENSON", + "SORIA", + "SORIANO", + "SORRELL", + "SOSA", + "SOTELO", + "SOTO", + "SOUSA", + "SOUTH", + "SOUTHARD", + "SOUTHERLAND", + "SOUTHERN", + "SOUZA", + "SOWELL", + "SOWERS", + "SPAIN", + "SPALDING", + "SPANGLER", + "SPANN", + "SPARKMAN", + "SPARKS", + "SPARROW", + "SPAULDING", + "SPEAR", + "SPEARMAN", + "SPEARS", + "SPEED", + "SPEER", + "SPEIGHT", + "SPELLMAN", + "SPENCE", + "SPENCER", + "SPERRY", + "SPICER", + "SPILLMAN", + "SPINKS", + "SPIVEY", + "SPOONER", + "SPRADLIN", + "SPRAGUE", + "SPRIGGS", + "SPRING", + "SPRINGER", + "SPROUSE", + "SPRUILL", + "SPURGEON", + "SPURLOCK", + "SQUIRES", + "STACEY", + "STACK", + "STACKHOUSE", + "STACY", + "STAFFORD", + "STAGGS", + "STAHL", + "STALEY", + "STALLINGS", + "STALLWORTH", + "STAMM", + "STAMPER", + "STAMPS", + "STANFIELD", + "STANFORD", + "STANLEY", + "STANTON", + "STAPLES", + "STAPLETON", + "STARK", + "STARKEY", + "STARKS", + "STARLING", + "STARNES", + "STARR", + "STATEN", + "STATON", + "STAUFFER", + "STCLAIR", + "STEADMAN", + "STEARNS", + "STEED", + "STEEL", + "STEELE", + "STEEN", + "STEFFEN", + "STEGALL", + "STEIN", + "STEINBERG", + "STEINER", + "STEPHEN", + "STEPHENS", + "STEPHENSON", + "STEPP", + "STERLING", + "STERN", + "STEVENS", + "STEVENSON", + "STEWARD", + "STEWART", + "STIDHAM", + "STILES", + "STILL", + "STILLMAN", + "STILLWELL", + "STILTNER", + "STINE", + "STINNETT", + "STINSON", + "STITT", + "STJOHN", + "STOCK", + "STOCKTON", + "STODDARD", + "STOKER", + "STOKES", + "STOLL", + "STONE", + "STONER", + "STOREY", + "STORY", + "STOTT", + "STOUT", + "STOVALL", + "STOVER", + "STOWE", + "STPIERRE", + "STRAIN", + "STRAND", + "STRANGE", + "STRATTON", + "STRAUB", + "STRAUSS", + "STREET", + "STREETER", + "STRICKLAND", + "STRINGER", + "STRONG", + "STROTHER", + "STROUD", + "STROUP", + "STRUNK", + "STUART", + "STUBBLEFIELD", + "STUBBS", + "STUCKEY", + "STULL", + "STUMP", + "STURDIVANT", + "STURGEON", + "STURGILL", + "STURGIS", + "STURM", + "STYLES", + "SUAREZ", + "SUGGS", + "SULLIVAN", + "SUMMERLIN", + "SUMMERS", + "SUMNER", + "SUMPTER", + "SUN", + "SUTHERLAND", + "SUTTER", + "SUTTON", + "SWAFFORD", + "SWAIN", + "SWAN", + "SWANK", + "SWANN", + "SWANSON", + "SWARTZ", + "SWEARINGEN", + "SWEAT", + "SWEENEY", + "SWEET", + "SWENSON", + "SWIFT", + "SWISHER", + "SWITZER", + "SWOPE", + "SYKES", + "SYLVESTER", + "TABER", + "TABOR", + "TACKETT", + "TAFT", + "TAGGART", + "TALBERT", + "TALBOT", + "TALBOTT", + "TALLENT", + "TALLEY", + "TAM", + "TAMAYO", + "TAN", + "TANAKA", + "TANG", + "TANNER", + "TAPIA", + "TAPP", + "TARVER", + "TATE", + "TATUM", + "TAVARES", + "TAYLOR", + "TEAGUE", + "TEAL", + "TEEL", + "TEETER", + "TEJADA", + "TEJEDA", + "TELLEZ", + "TEMPLE", + "TEMPLETON", + "TENNANT", + "TENNEY", + "TERRELL", + "TERRILL", + "TERRY", + "THACKER", + "THAMES", + "THAO", + "THARP", + "THATCHER", + "THAYER", + "THERIAULT", + "THERIOT", + "THIBODEAU", + "THIBODEAUX", + "THIEL", + "THIGPEN", + "THOMAS", + "THOMASON", + "THOMPSON", + "THOMSEN", + "THOMSON", + "THORN", + "THORNBURG", + "THORNE", + "THORNHILL", + "THORNTON", + "THORP", + "THORPE", + "THORTON", + "THRASH", + "THRASHER", + "THURMAN", + "THURSTON", + "TIBBETTS", + "TIBBS", + "TICE", + "TIDWELL", + "TIERNEY", + "TIJERINA", + "TILLER", + "TILLERY", + "TILLEY", + "TILLMAN", + "TILTON", + "TIMM", + "TIMMONS", + "TINKER", + "TINSLEY", + "TIPTON", + "TIRADO", + "TISDALE", + "TITUS", + "TOBIAS", + "TOBIN", + "TODD", + "TOLBERT", + "TOLEDO", + "TOLER", + "TOLIVER", + "TOLLIVER", + "TOM", + "TOMLIN", + "TOMLINSON", + "TOMPKINS", + "TONEY", + "TONG", + "TORO", + "TORRENCE", + "TORRES", + "TORREZ", + "TOTH", + "TOTTEN", + "TOVAR", + "TOWNES", + "TOWNS", + "TOWNSEND", + "TRACY", + "TRAHAN", + "TRAMMELL", + "TRAN", + "TRAPP", + "TRASK", + "TRAVERS", + "TRAVIS", + "TRAYLOR", + "TREADWAY", + "TREADWELL", + "TREJO", + "TREMBLAY", + "TRENT", + "TREVINO", + "TRIBBLE", + "TRICE", + "TRIMBLE", + "TRINIDAD", + "TRIPLETT", + "TRIPP", + "TROTTER", + "TROUT", + "TROUTMAN", + "TROY", + "TRUDEAU", + "TRUE", + "TRUITT", + "TRUJILLO", + "TRUONG", + "TUBBS", + "TUCK", + "TUCKER", + "TUGGLE", + "TURK", + "TURLEY", + "TURMAN", + "TURNBULL", + "TURNER", + "TURNEY", + "TURPIN", + "TUTTLE", + "TYLER", + "TYNER", + "TYREE", + "TYSON", + "ULRICH", + "UNDERHILL", + "UNDERWOOD", + "UNGER", + "UPCHURCH", + "UPSHAW", + "UPTON", + "URBAN", + "URBINA", + "URIBE", + "USHER", + "UTLEY", + "VAIL", + "VALADEZ", + "VALDES", + "VALDEZ", + "VALENCIA", + "VALENTI", + "VALENTIN", + "VALENTINE", + "VALENZUELA", + "VALERIO", + "VALLE", + "VALLEJO", + "VALLES", + "VAN", + "VANBUREN", + "VANCE", + "VANDIVER", + "VANDYKE", + "VANG", + "VANHOOSE", + "VANHORN", + "VANMETER", + "VANN", + "VANOVER", + "VANWINKLE", + "VARELA", + "VARGAS", + "VARNER", + "VARNEY", + "VASQUEZ", + "VAUGHAN", + "VAUGHN", + "VAUGHT", + "VAZQUEZ", + "VEAL", + "VEGA", + "VELA", + "VELASCO", + "VELASQUEZ", + "VELAZQUEZ", + "VELEZ", + "VENABLE", + "VENEGAS", + "VENTURA", + "VERA", + "VERDIN", + "VERGARA", + "VERNON", + "VEST", + "VETTER", + "VICK", + "VICKERS", + "VICKERY", + "VICTOR", + "VIDAL", + "VIEIRA", + "VIERA", + "VIGIL", + "VILLA", + "VILLALOBOS", + "VILLANUEVA", + "VILLAREAL", + "VILLARREAL", + "VILLASENOR", + "VILLEGAS", + "VINCENT", + "VINES", + "VINSON", + "VITALE", + "VO", + "VOGEL", + "VOGT", + "VOSS", + "VU", + "VUE", + "WADDELL", + "WADE", + "WADSWORTH", + "WAGGONER", + "WAGNER", + "WAGONER", + "WAHL", + "WAITE", + "WAKEFIELD", + "WALDEN", + "WALDRON", + "WALDROP", + "WALKER", + "WALL", + "WALLACE", + "WALLEN", + "WALLER", + "WALLING", + "WALLIS", + "WALLS", + "WALSH", + "WALSTON", + "WALTER", + "WALTERS", + "WALTON", + "WAMPLER", + "WANG", + "WARD", + "WARDEN", + "WARE", + "WARFIELD", + "WARNER", + "WARREN", + "WASHBURN", + "WASHINGTON", + "WASSON", + "WATERMAN", + "WATERS", + "WATKINS", + "WATSON", + "WATT", + "WATTERS", + "WATTS", + "WAUGH", + "WAY", + "WAYNE", + "WEATHERFORD", + "WEATHERLY", + "WEATHERS", + "WEAVER", + "WEBB", + "WEBBER", + "WEBER", + "WEBSTER", + "WEDDLE", + "WEED", + "WEEKS", + "WEEMS", + "WEINBERG", + "WEINER", + "WEINSTEIN", + "WEIR", + "WEIS", + "WEISS", + "WELCH", + "WELDON", + "WELKER", + "WELLER", + "WELLMAN", + "WELLS", + "WELSH", + "WENDT", + "WENGER", + "WENTWORTH", + "WENTZ", + "WENZEL", + "WERNER", + "WERTZ", + "WESLEY", + "WEST", + "WESTBROOK", + "WESTER", + "WESTFALL", + "WESTMORELAND", + "WESTON", + "WETZEL", + "WHALEN", + "WHALEY", + "WHARTON", + "WHATLEY", + "WHEAT", + "WHEATLEY", + "WHEATON", + "WHEELER", + "WHELAN", + "WHIPPLE", + "WHITAKER", + "WHITCOMB", + "WHITE", + "WHITED", + "WHITEHEAD", + "WHITEHURST", + "WHITEMAN", + "WHITESIDE", + "WHITFIELD", + "WHITING", + "WHITLEY", + "WHITLOCK", + "WHITLOW", + "WHITMAN", + "WHITMIRE", + "WHITMORE", + "WHITNEY", + "WHITSON", + "WHITT", + "WHITTAKER", + "WHITTEN", + "WHITTINGTON", + "WHITTLE", + "WHITWORTH", + "WHYTE", + "WICK", + "WICKER", + "WICKHAM", + "WICKS", + "WIESE", + "WIGGINS", + "WILBANKS", + "WILBER", + "WILBUR", + "WILBURN", + "WILCOX", + "WILD", + "WILDE", + "WILDER", + "WILES", + "WILEY", + "WILHELM", + "WILHITE", + "WILKE", + "WILKERSON", + "WILKES", + "WILKINS", + "WILKINSON", + "WILKS", + "WILL", + "WILLARD", + "WILLETT", + "WILLEY", + "WILLIAM", + "WILLIAMS", + "WILLIAMSON", + "WILLIFORD", + "WILLINGHAM", + "WILLIS", + "WILLOUGHBY", + "WILLS", + "WILLSON", + "WILMOTH", + "WILSON", + "WILT", + "WIMBERLY", + "WINCHESTER", + "WINDHAM", + "WINFIELD", + "WINFREY", + "WING", + "WINGATE", + "WINGFIELD", + "WINKLER", + "WINN", + "WINSLOW", + "WINSTEAD", + "WINSTON", + "WINTER", + "WINTERS", + "WIRTH", + "WISE", + "WISEMAN", + "WISNIEWSKI", + "WITCHER", + "WITHERS", + "WITHERSPOON", + "WITHROW", + "WITT", + "WITTE", + "WOFFORD", + "WOLF", + "WOLFE", + "WOLFF", + "WOLFORD", + "WOMACK", + "WONG", + "WOO", + "WOOD", + "WOODALL", + "WOODARD", + "WOODBURY", + "WOODCOCK", + "WOODEN", + "WOODLEY", + "WOODRUFF", + "WOODS", + "WOODSON", + "WOODWARD", + "WOODWORTH", + "WOODY", + "WOOLDRIDGE", + "WOOLEY", + "WOOTEN", + "WORD", + "WORDEN", + "WORKMAN", + "WORLEY", + "WORRELL", + "WORSHAM", + "WORTH", + "WORTHAM", + "WORTHINGTON", + "WORTHY", + "WRAY", + "WREN", + "WRIGHT", + "WU", + "WYANT", + "WYATT", + "WYLIE", + "WYMAN", + "WYNN", + "WYNNE", + "XIONG", + "YAMAMOTO", + "YANCEY", + "YANEZ", + "YANG", + "YARBROUGH", + "YATES", + "YAZZIE", + "YBARRA", + "YEAGER", + "YEE", + "YI", + "YOCUM", + "YODER", + "YOO", + "YOON", + "YORK", + "YOST", + "YOUNG", + "YOUNGBLOOD", + "YOUNGER", + "YOUNT", + "YU", + "ZAMBRANO", + "ZAMORA", + "ZAPATA", + "ZARAGOZA", + "ZARATE", + "ZAVALA", + "ZEIGLER", + "ZELLER", + "ZEPEDA", + "ZHANG", + "ZIEGLER", + "ZIELINSKI", + "ZIMMER", + "ZIMMERMAN", + "ZINK", + "ZOOK", + "ZUNIGA" + }; + } - private static final String[] generateLastNames() { - return new String[] { "AARON", "ABBOTT", "ABEL", "ABELL", "ABERNATHY", "ABNER", - "ABNEY", "ABRAHAM", "ABRAMS", "ABREU", "ACEVEDO", "ACKER", "ACKERMAN", "ACKLEY", "ACOSTA", "ACUNA", "ADAIR", - "ADAM", "ADAME", "ADAMS", "ADAMSON", "ADCOCK", "ADDISON", "ADKINS", "ADLER", "AGEE", "AGNEW", "AGUAYO", - "AGUIAR", "AGUILAR", "AGUILERA", "AGUIRRE", "AHERN", "AHMAD", "AHMED", "AHRENS", "AIELLO", "AIKEN", - "AINSWORTH", "AKERS", "AKIN", "AKINS", "ALANIZ", "ALARCON", "ALBA", "ALBERS", "ALBERT", "ALBERTSON", - "ALBRECHT", "ALBRIGHT", "ALCALA", "ALCORN", "ALDERMAN", "ALDRICH", "ALDRIDGE", "ALEMAN", "ALEXANDER", - "ALFARO", "ALFONSO", "ALFORD", "ALFRED", "ALGER", "ALI", "ALICEA", "ALLAN", "ALLARD", "ALLEN", "ALLEY", - "ALLISON", "ALLMAN", "ALLRED", "ALMANZA", "ALMEIDA", "ALMOND", "ALONSO", "ALONZO", "ALSTON", "ALTMAN", - "ALVARADO", "ALVAREZ", "ALVES", "AMADOR", "AMARAL", "AMATO", "AMAYA", "AMBROSE", "AMES", "AMMONS", "AMOS", - "AMUNDSON", "ANAYA", "ANDERS", "ANDERSEN", "ANDERSON", "ANDRADE", "ANDRE", "ANDRES", "ANDREW", "ANDREWS", - "ANDRUS", "ANGEL", "ANGELO", "ANGLIN", "ANGULO", "ANTHONY", "ANTOINE", "ANTONIO", "APODACA", "APONTE", - "APPEL", "APPLE", "APPLEGATE", "APPLETON", "AQUINO", "ARAGON", "ARANDA", "ARAUJO", "ARCE", "ARCHER", - "ARCHIBALD", "ARCHIE", "ARCHULETA", "ARELLANO", "AREVALO", "ARIAS", "ARMENTA", "ARMIJO", "ARMSTEAD", - "ARMSTRONG", "ARNDT", "ARNETT", "ARNOLD", "ARREDONDO", "ARREOLA", "ARRIAGA", "ARRINGTON", "ARROYO", - "ARSENAULT", "ARTEAGA", "ARTHUR", "ARTIS", "ASBURY", "ASH", "ASHBY", "ASHCRAFT", "ASHE", "ASHER", "ASHFORD", - "ASHLEY", "ASHMORE", "ASHTON", "ASHWORTH", "ASKEW", "ATCHISON", "ATHERTON", "ATKINS", "ATKINSON", "ATWELL", - "ATWOOD", "AUGUST", "AUGUSTINE", "AULT", "AUSTIN", "AUTRY", "AVALOS", "AVERY", "AVILA", "AVILES", "AYALA", - "AYERS", "AYRES", "BABB", "BABCOCK", "BABIN", "BACA", "BACH", "BACHMAN", "BACK", "BACON", "BADER", "BADGER", - "BADILLO", "BAER", "BAEZ", "BAGGETT", "BAGLEY", "BAGWELL", "BAILEY", "BAIN", "BAINES", "BAIR", "BAIRD", - "BAKER", "BALDERAS", "BALDWIN", "BALES", "BALL", "BALLARD", "BANDA", "BANDY", "BANKS", "BANKSTON", - "BANNISTER", "BANUELOS", "BAPTISTE", "BARAJAS", "BARBA", "BARBEE", "BARBER", "BARBOSA", "BARBOUR", - "BARCLAY", "BARDEN", "BARELA", "BARFIELD", "BARGER", "BARHAM", "BARKER", "BARKLEY", "BARKSDALE", "BARLOW", - "BARNARD", "BARNES", "BARNETT", "BARNETTE", "BARNEY", "BARNHART", "BARNHILL", "BARON", "BARONE", "BARR", - "BARRAZA", "BARRERA", "BARRETO", "BARRETT", "BARRIENTOS", "BARRIOS", "BARRON", "BARROW", "BARROWS", "BARRY", - "BARTELS", "BARTH", "BARTHOLOMEW", "BARTLETT", "BARTLEY", "BARTON", "BASHAM", "BASKIN", "BASS", "BASSETT", - "BATCHELOR", "BATEMAN", "BATES", "BATISTA", "BATISTE", "BATSON", "BATTAGLIA", "BATTEN", "BATTLE", "BATTLES", - "BATTS", "BAUER", "BAUGH", "BAUGHMAN", "BAUM", "BAUMAN", "BAUMANN", "BAUMGARDNER", "BAUMGARTNER", - "BAUTISTA", "BAXLEY", "BAXTER", "BAYER", "BAYLOR", "BAYNE", "BAYS", "BEACH", "BEAL", "BEALE", "BEALL", - "BEALS", "BEAM", "BEAMON", "BEAN", "BEANE", "BEAR", "BEARD", "BEARDEN", "BEASLEY", "BEATTIE", "BEATTY", - "BEATY", "BEAUCHAMP", "BEAUDOIN", "BEAULIEU", "BEAUREGARD", "BEAVER", "BEAVERS", "BECERRA", "BECK", - "BECKER", "BECKETT", "BECKHAM", "BECKMAN", "BECKWITH", "BECNEL", "BEDARD", "BEDFORD", "BEEBE", "BEELER", - "BEERS", "BEESON", "BEGAY", "BEGLEY", "BEHRENS", "BELANGER", "BELCHER", "BELL", "BELLAMY", "BELLO", "BELT", - "BELTON", "BELTRAN", "BENAVIDES", "BENAVIDEZ", "BENDER", "BENEDICT", "BENEFIELD", "BENITEZ", "BENJAMIN", - "BENNER", "BENNETT", "BENOIT", "BENSON", "BENTLEY", "BENTON", "BERG", "BERGER", "BERGERON", "BERGMAN", - "BERGSTROM", "BERLIN", "BERMAN", "BERMUDEZ", "BERNAL", "BERNARD", "BERNHARDT", "BERNIER", "BERNSTEIN", - "BERRIOS", "BERRY", "BERRYMAN", "BERTRAM", "BERTRAND", "BERUBE", "BESS", "BEST", "BETANCOURT", "BETHEA", - "BETHEL", "BETTS", "BETZ", "BEVERLY", "BEVINS", "BEYER", "BIBLE", "BICKFORD", "BIDDLE", "BIGELOW", "BIGGS", - "BILLINGS", "BILLINGSLEY", "BILLIOT", "BILLS", "BILLUPS", "BILODEAU", "BINDER", "BINGHAM", "BINKLEY", - "BIRCH", "BIRD", "BISHOP", "BISSON", "BITTNER", "BIVENS", "BIVINS", "BLACK", "BLACKBURN", "BLACKMAN", - "BLACKMON", "BLACKWELL", "BLACKWOOD", "BLAINE", "BLAIR", "BLAIS", "BLAKE", "BLAKELY", "BLALOCK", - "BLANCHARD", "BLANCHETTE", "BLANCO", "BLAND", "BLANK", "BLANKENSHIP", "BLANTON", "BLAYLOCK", "BLEDSOE", - "BLEVINS", "BLISS", "BLOCK", "BLOCKER", "BLODGETT", "BLOOM", "BLOUNT", "BLUE", "BLUM", "BLUNT", "BLYTHE", - "BOATRIGHT", "BOATWRIGHT", "BOBBITT", "BOBO", "BOCK", "BOEHM", "BOETTCHER", "BOGAN", "BOGGS", "BOHANNON", - "BOHN", "BOISVERT", "BOLAND", "BOLDEN", "BOLDUC", "BOLEN", "BOLES", "BOLIN", "BOLING", "BOLLING", - "BOLLINGER", "BOLT", "BOLTON", "BOND", "BONDS", "BONE", "BONILLA", "BONNER", "BOOKER", "BOONE", "BOOTH", - "BOOTHE", "BORDELON", "BORDEN", "BORDERS", "BOREN", "BORGES", "BORREGO", "BOSS", "BOSTIC", "BOSTICK", - "BOSTON", "BOSWELL", "BOTTOMS", "BOUCHARD", "BOUCHER", "BOUDREAU", "BOUDREAUX", "BOUNDS", "BOURGEOIS", - "BOURNE", "BOURQUE", "BOWDEN", "BOWEN", "BOWENS", "BOWER", "BOWERS", "BOWIE", "BOWLES", "BOWLIN", "BOWLING", - "BOWMAN", "BOWSER", "BOX", "BOYCE", "BOYD", "BOYER", "BOYKIN", "BOYLE", "BOYLES", "BOYNTON", "BOZEMAN", - "BRACKEN", "BRACKETT", "BRADBURY", "BRADEN", "BRADFORD", "BRADLEY", "BRADSHAW", "BRADY", "BRAGG", "BRANCH", - "BRAND", "BRANDENBURG", "BRANDON", "BRANDT", "BRANHAM", "BRANNON", "BRANSON", "BRANT", "BRANTLEY", - "BRASWELL", "BRATCHER", "BRATTON", "BRAUN", "BRAVO", "BRAXTON", "BRAY", "BRAZIL", "BREAUX", "BREEDEN", - "BREEDLOVE", "BREEN", "BRENNAN", "BRENNER", "BRENT", "BREWER", "BREWSTER", "BRICE", "BRIDGES", "BRIGGS", - "BRIGHT", "BRILEY", "BRILL", "BRIM", "BRINK", "BRINKLEY", "BRINKMAN", "BRINSON", "BRIONES", "BRISCOE", - "BRISENO", "BRITO", "BRITT", "BRITTAIN", "BRITTON", "BROADNAX", "BROADWAY", "BROCK", "BROCKMAN", - "BRODERICK", "BRODY", "BROGAN", "BRONSON", "BROOKINS", "BROOKS", "BROOME", "BROTHERS", "BROUGHTON", - "BROUSSARD", "BROWDER", "BROWER", "BROWN", "BROWNE", "BROWNELL", "BROWNING", "BROWNLEE", "BROYLES", - "BRUBAKER", "BRUCE", "BRUMFIELD", "BRUNER", "BRUNNER", "BRUNO", "BRUNS", "BRUNSON", "BRUTON", "BRYAN", - "BRYANT", "BRYSON", "BUCHANAN", "BUCHER", "BUCK", "BUCKINGHAM", "BUCKLEY", "BUCKNER", "BUENO", "BUFFINGTON", - "BUFORD", "BUI", "BULL", "BULLARD", "BULLOCK", "BUMGARNER", "BUNCH", "BUNDY", "BUNKER", "BUNN", "BUNNELL", - "BUNTING", "BURCH", "BURCHETT", "BURCHFIELD", "BURDEN", "BURDETTE", "BURDICK", "BURGE", "BURGER", "BURGESS", - "BURGOS", "BURK", "BURKE", "BURKETT", "BURKHART", "BURKHOLDER", "BURKS", "BURLESON", "BURLEY", "BURNETT", - "BURNETTE", "BURNEY", "BURNHAM", "BURNS", "BURNSIDE", "BURR", "BURRELL", "BURRIS", "BURROUGHS", "BURROW", - "BURROWS", "BURT", "BURTON", "BUSBY", "BUSCH", "BUSH", "BUSS", "BUSSEY", "BUSTAMANTE", "BUSTOS", "BUTCHER", - "BUTLER", "BUTTERFIELD", "BUTTON", "BUTTS", "BUXTON", "BYARS", "BYERS", "BYNUM", "BYRD", "BYRNE", "BYRNES", - "CABALLERO", "CABAN", "CABLE", "CABRAL", "CABRERA", "CADE", "CADY", "CAGLE", "CAHILL", "CAIN", "CALABRESE", - "CALDERON", "CALDWELL", "CALHOUN", "CALKINS", "CALL", "CALLAGHAN", "CALLAHAN", "CALLAWAY", "CALLENDER", - "CALLOWAY", "CALVERT", "CALVIN", "CAMACHO", "CAMARILLO", "CAMBELL", "CAMERON", "CAMP", "CAMPBELL", "CAMPOS", - "CANADA", "CANADY", "CANALES", "CANDELARIA", "CANFIELD", "CANNON", "CANO", "CANTRELL", "CANTU", "CANTWELL", - "CANTY", "CAPPS", "CARABALLO", "CARAWAY", "CARBAJAL", "CARBONE", "CARD", "CARDEN", "CARDENAS", "CARDER", - "CARDONA", "CARDOZA", "CARDWELL", "CAREY", "CARL", "CARLIN", "CARLISLE", "CARLOS", "CARLSON", "CARLTON", - "CARMAN", "CARMICHAEL", "CARMONA", "CARNAHAN", "CARNES", "CARNEY", "CARO", "CARON", "CARPENTER", "CARR", - "CARRANZA", "CARRASCO", "CARRERA", "CARRICO", "CARRIER", "CARRILLO", "CARRINGTON", "CARRION", "CARROLL", - "CARSON", "CARSWELL", "CARTER", "CARTWRIGHT", "CARUSO", "CARVALHO", "CARVER", "CARY", "CASAS", "CASE", - "CASEY", "CASH", "CASILLAS", "CASKEY", "CASON", "CASPER", "CASS", "CASSELL", "CASSIDY", "CASTANEDA", - "CASTEEL", "CASTELLANO", "CASTELLANOS", "CASTILLO", "CASTLE", "CASTLEBERRY", "CASTRO", "CASWELL", - "CATALANO", "CATES", "CATHEY", "CATO", "CATRON", "CAUDILL", "CAUDLE", "CAUSEY", "CAVANAUGH", "CAVAZOS", - "CAVE", "CECIL", "CENTENO", "CERDA", "CERVANTES", "CHACON", "CHADWICK", "CHAFFIN", "CHALMERS", - "CHAMBERLAIN", "CHAMBERLIN", "CHAMBERS", "CHAMBLISS", "CHAMPAGNE", "CHAMPION", "CHAN", "CHANCE", "CHANDLER", - "CHANEY", "CHANG", "CHAPA", "CHAPIN", "CHAPMAN", "CHAPPELL", "CHARLES", "CHARLTON", "CHASE", "CHASTAIN", - "CHATMAN", "CHAU", "CHAVARRIA", "CHAVES", "CHAVEZ", "CHAVIS", "CHEATHAM", "CHEEK", "CHEN", "CHENEY", - "CHENG", "CHERRY", "CHESSER", "CHESTER", "CHESTNUT", "CHEUNG", "CHEW", "CHILD", "CHILDERS", "CHILDRESS", - "CHILDS", "CHILTON", "CHIN", "CHISHOLM", "CHISM", "CHISOLM", "CHITWOOD", "CHO", "CHOATE", "CHOI", "CHONG", - "CHOW", "CHRISTENSEN", "CHRISTENSON", "CHRISTIAN", "CHRISTIANSEN", "CHRISTIANSON", "CHRISTIE", "CHRISTMAN", - "CHRISTMAS", "CHRISTOPHER", "CHRISTY", "CHU", "CHUN", "CHUNG", "CHURCH", "CHURCHILL", "CINTRON", "CISNEROS", - "CLANCY", "CLANTON", "CLAPP", "CLARK", "CLARKE", "CLARKSON", "CLARY", "CLAUSEN", "CLAWSON", "CLAY", - "CLAYTON", "CLEARY", "CLEGG", "CLEM", "CLEMENS", "CLEMENT", "CLEMENTS", "CLEMMONS", "CLEMONS", "CLEVELAND", - "CLEVENGER", "CLICK", "CLIFFORD", "CLIFTON", "CLINE", "CLINTON", "CLOSE", "CLOUD", "CLOUGH", "CLOUTIER", - "COATES", "COATS", "COBB", "COBBS", "COBLE", "COBURN", "COCHRAN", "COCHRANE", "COCKRELL", "CODY", "COE", - "COFFEY", "COFFIN", "COFFMAN", "COGGINS", "COHEN", "COHN", "COKER", "COLBERT", "COLBURN", "COLBY", "COLE", - "COLEMAN", "COLES", "COLEY", "COLLADO", "COLLAZO", "COLLEY", "COLLIER", "COLLINS", "COLON", "COLSON", - "COLVIN", "COLWELL", "COMBS", "COMEAUX", "COMER", "COMPTON", "COMSTOCK", "CONAWAY", "CONCEPCION", "CONDON", - "CONE", "CONGER", "CONKLIN", "CONLEY", "CONN", "CONNELL", "CONNELLY", "CONNER", "CONNERS", "CONNOLLY", - "CONNOR", "CONNORS", "CONOVER", "CONRAD", "CONROY", "CONTE", "CONTI", "CONTRERAS", "CONWAY", "CONYERS", - "COOK", "COOKE", "COOKS", "COOKSEY", "COOLEY", "COOMBS", "COON", "COONEY", "COONS", "COOPER", "COPE", - "COPELAND", "COPLEY", "COPPOLA", "CORBETT", "CORBIN", "CORBITT", "CORCORAN", "CORDELL", "CORDERO", - "CORDOVA", "COREY", "CORLEY", "CORMIER", "CORNELIUS", "CORNELL", "CORNETT", "CORNISH", "CORNWELL", "CORONA", - "CORONADO", "CORRAL", "CORREA", "CORREIA", "CORRIGAN", "CORTES", "CORTEZ", "CORWIN", "COSBY", "COSGROVE", - "COSTA", "COSTELLO", "COTA", "COTE", "COTHRAN", "COTTER", "COTTON", "COTTRELL", "COUCH", "COUGHLIN", - "COULTER", "COUNCIL", "COUNTS", "COURTNEY", "COUSINS", "COUTURE", "COVERT", "COVEY", "COVINGTON", "COWAN", - "COWARD", "COWART", "COWELL", "COWLES", "COWLEY", "COX", "COY", "COYLE", "COYNE", "CRABTREE", "CRADDOCK", - "CRAFT", "CRAIG", "CRAIN", "CRAMER", "CRANDALL", "CRANE", "CRANFORD", "CRAVEN", "CRAWFORD", "CRAWLEY", - "CRAYTON", "CREAMER", "CREECH", "CREEL", "CREIGHTON", "CRENSHAW", "CRESPO", "CREWS", "CRIDER", "CRISP", - "CRIST", "CRISWELL", "CRITTENDEN", "CROCKER", "CROCKETT", "CROFT", "CROMER", "CROMWELL", "CRONIN", "CROOK", - "CROOKS", "CROSBY", "CROSS", "CROTEAU", "CROUCH", "CROUSE", "CROW", "CROWDER", "CROWE", "CROWELL", - "CROWLEY", "CRUM", "CRUMP", "CRUSE", "CRUTCHER", "CRUTCHFIELD", "CRUZ", "CUELLAR", "CUEVAS", "CULBERTSON", - "CULLEN", "CULP", "CULPEPPER", "CULVER", "CUMMINGS", "CUMMINS", "CUNNINGHAM", "CUPP", "CURLEY", "CURRAN", - "CURRIE", "CURRIER", "CURRY", "CURTIN", "CURTIS", "CUSHMAN", "CUSTER", "CUTLER", "CYR", "DABNEY", "DAHL", - "DAIGLE", "DAILEY", "DAILY", "DALE", "DALEY", "DALLAS", "DALTON", "DALY", "DAMICO", "DAMON", "DAMRON", - "DANCY", "DANG", "DANGELO", "DANIEL", "DANIELS", "DANIELSON", "DANNER", "DARBY", "DARDEN", "DARLING", - "DARNELL", "DASILVA", "DAUGHERTY", "DAUGHTRY", "DAVENPORT", "DAVID", "DAVIDSON", "DAVIES", "DAVILA", - "DAVIS", "DAVISON", "DAWKINS", "DAWSON", "DAY", "DAYTON", "DEAL", "DEAN", "DEATON", "DEBERRY", "DECKER", - "DEES", "DEHART", "DEJESUS", "DELACRUZ", "DELAGARZA", "DELANEY", "DELAROSA", "DELATORRE", "DELEON", - "DELGADILLO", "DELGADO", "DELL", "DELLINGER", "DELOACH", "DELONG", "DELOSSANTOS", "DELUCA", "DELVALLE", - "DEMARCO", "DEMERS", "DEMPSEY", "DENHAM", "DENNEY", "DENNING", "DENNIS", "DENNISON", "DENNY", "DENSON", - "DENT", "DENTON", "DEROSA", "DERR", "DERRICK", "DESANTIS", "DESIMONE", "DEVINE", "DEVITO", "DEVLIN", - "DEVORE", "DEVRIES", "DEW", "DEWEY", "DEWITT", "DEXTER", "DIAL", "DIAMOND", "DIAS", "DIAZ", "DICK", - "DICKENS", "DICKERSON", "DICKEY", "DICKINSON", "DICKSON", "DIEHL", "DIETRICH", "DIETZ", "DIGGS", "DILL", - "DILLARD", "DILLON", "DINKINS", "DION", "DIX", "DIXON", "DO", "DOAN", "DOBBINS", "DOBBS", "DOBSON", - "DOCKERY", "DODD", "DODDS", "DODGE", "DODSON", "DOE", "DOHERTY", "DOLAN", "DOLL", "DOLLAR", "DOMINGO", - "DOMINGUEZ", "DOMINQUEZ", "DONAHUE", "DONALD", "DONALDSON", "DONATO", "DONNELL", "DONNELLY", "DONOHUE", - "DONOVAN", "DOOLEY", "DOOLITTLE", "DORAN", "DORMAN", "DORN", "DORRIS", "DORSEY", "DORTCH", "DOSS", "DOTSON", - "DOTY", "DOUCETTE", "DOUGHERTY", "DOUGHTY", "DOUGLAS", "DOUGLASS", "DOVE", "DOVER", "DOW", "DOWD", "DOWDY", - "DOWELL", "DOWLING", "DOWNEY", "DOWNING", "DOWNS", "DOYLE", "DOZIER", "DRAKE", "DRAPER", "DRAYTON", "DREW", - "DRISCOLL", "DRIVER", "DRUMMOND", "DRURY", "DUARTE", "DUBE", "DUBOIS", "DUBOSE", "DUCKETT", "DUCKWORTH", - "DUDLEY", "DUFF", "DUFFY", "DUGAN", "DUGAS", "DUGGAN", "DUGGER", "DUKE", "DUKES", "DUMAS", "DUMONT", - "DUNAWAY", "DUNBAR", "DUNCAN", "DUNHAM", "DUNLAP", "DUNN", "DUNNE", "DUNNING", "DUONG", "DUPONT", "DUPRE", - "DUPREE", "DUPUIS", "DURAN", "DURAND", "DURANT", "DURBIN", "DURDEN", "DURHAM", "DURKIN", "DURR", "DUTTON", - "DUVAL", "DUVALL", "DWYER", "DYE", "DYER", "DYKES", "DYSON", "EAGLE", "EARL", "EARLE", "EARLEY", "EARLS", - "EARLY", "EARNEST", "EASLEY", "EASON", "EAST", "EASTER", "EASTERLING", "EASTMAN", "EASTON", "EATON", - "EAVES", "EBERT", "ECHEVARRIA", "ECHOLS", "ECKERT", "EDDY", "EDGAR", "EDGE", "EDMOND", "EDMONDS", - "EDMONDSON", "EDWARD", "EDWARDS", "EGAN", "EGGLESTON", "ELAM", "ELDER", "ELDRIDGE", "ELIAS", "ELIZONDO", - "ELKINS", "ELLER", "ELLINGTON", "ELLIOT", "ELLIOTT", "ELLIS", "ELLISON", "ELLSWORTH", "ELMORE", "ELROD", - "ELSTON", "ELY", "EMANUEL", "EMBRY", "EMERSON", "EMERY", "EMMONS", "ENG", "ENGEL", "ENGLAND", "ENGLE", - "ENGLISH", "ENNIS", "ENOS", "ENRIGHT", "ENRIQUEZ", "EPPERSON", "EPPS", "EPSTEIN", "ERDMANN", "ERICKSON", - "ERNST", "ERVIN", "ERWIN", "ESCALANTE", "ESCAMILLA", "ESCOBAR", "ESCOBEDO", "ESPARZA", "ESPINAL", "ESPINO", - "ESPINOSA", "ESPINOZA", "ESPOSITO", "ESQUIVEL", "ESTEP", "ESTES", "ESTRADA", "ESTRELLA", "ETHERIDGE", - "ETHRIDGE", "EUBANKS", "EVANS", "EVERETT", "EVERHART", "EVERS", "EVERSON", "EWING", "EZELL", "FABER", - "FABIAN", "FAGAN", "FAHEY", "FAIN", "FAIR", "FAIRBANKS", "FAIRCHILD", "FAIRLEY", "FAISON", "FAJARDO", - "FALCON", "FALK", "FALLON", "FALLS", "FANNING", "FARIAS", "FARLEY", "FARMER", "FARNSWORTH", "FARR", - "FARRAR", "FARRELL", "FARRINGTON", "FARRIS", "FARROW", "FAULK", "FAULKNER", "FAUST", "FAY", "FEENEY", - "FELDER", "FELDMAN", "FELICIANO", "FELIX", "FELLOWS", "FELTON", "FELTS", "FENNELL", "FENNER", "FENTON", - "FERGUSON", "FERNANDES", "FERNANDEZ", "FERRARA", "FERRARI", "FERRARO", "FERREIRA", "FERRELL", "FERRER", - "FERRIS", "FERRY", "FIELD", "FIELDER", "FIELDS", "FIERRO", "FIFE", "FIGUEROA", "FINCH", "FINCHER", - "FINDLEY", "FINE", "FINK", "FINLEY", "FINN", "FINNEGAN", "FINNEY", "FIORE", "FISCHER", "FISH", "FISHER", - "FISHMAN", "FISK", "FITCH", "FITE", "FITTS", "FITZGERALD", "FITZPATRICK", "FITZSIMMONS", "FLAGG", - "FLAHERTY", "FLANAGAN", "FLANDERS", "FLANIGAN", "FLANNERY", "FLECK", "FLEMING", "FLEMMING", "FLETCHER", - "FLINT", "FLOOD", "FLORA", "FLORENCE", "FLORES", "FLOREZ", "FLOURNOY", "FLOWERS", "FLOYD", "FLYNN", - "FOGARTY", "FOGG", "FOGLE", "FOLEY", "FOLSE", "FOLSOM", "FOLTZ", "FONG", "FONSECA", "FONTAINE", "FONTENOT", - "FOOTE", "FORBES", "FORD", "FOREMAN", "FOREST", "FORET", "FORMAN", "FORNEY", "FORREST", "FORRESTER", - "FORSTER", "FORSYTH", "FORSYTHE", "FORT", "FORTE", "FORTENBERRY", "FORTIER", "FORTIN", "FORTNER", "FORTUNE", - "FOSS", "FOSTER", "FOUNTAIN", "FOURNIER", "FOUST", "FOWLER", "FOX", "FOY", "FRALEY", "FRAME", "FRANCE", - "FRANCIS", "FRANCISCO", "FRANCO", "FRANCOIS", "FRANK", "FRANKLIN", "FRANKS", "FRANTZ", "FRANZ", "FRASER", - "FRASIER", "FRAZER", "FRAZIER", "FREDERICK", "FREDERICKS", "FREDRICK", "FREDRICKSON", "FREE", "FREED", - "FREEDMAN", "FREEMAN", "FREESE", "FREITAS", "FRENCH", "FREUND", "FREY", "FRIAS", "FRICK", "FRIEDMAN", - "FRIEND", "FRIERSON", "FRIES", "FRITZ", "FRIZZELL", "FROST", "FRY", "FRYE", "FRYER", "FUCHS", "FUENTES", - "FUGATE", "FULCHER", "FULLER", "FULLERTON", "FULMER", "FULTON", "FULTZ", "FUNDERBURK", "FUNK", "FUQUA", - "FURMAN", "FURR", "FUSCO", "GABLE", "GABRIEL", "GADDIS", "GADDY", "GAFFNEY", "GAGE", "GAGNE", "GAGNON", - "GAINES", "GAINEY", "GAITHER", "GALARZA", "GALBRAITH", "GALE", "GALINDO", "GALLAGHER", "GALLANT", - "GALLARDO", "GALLEGOS", "GALLO", "GALLOWAY", "GALVAN", "GALVEZ", "GALVIN", "GAMBLE", "GAMBOA", "GAMEZ", - "GANDY", "GANN", "GANNON", "GANT", "GANTT", "GARAY", "GARBER", "GARCIA", "GARDINER", "GARDNER", "GARLAND", - "GARMON", "GARNER", "GARNETT", "GARRETT", "GARRIS", "GARRISON", "GARVEY", "GARVIN", "GARY", "GARZA", - "GASKIN", "GASKINS", "GASS", "GASTON", "GATES", "GATEWOOD", "GATLIN", "GAULT", "GAUTHIER", "GAVIN", "GAY", - "GAYLORD", "GEARY", "GEE", "GEER", "GEIGER", "GENTILE", "GENTRY", "GEORGE", "GERALD", "GERARD", "GERBER", - "GERMAN", "GETZ", "GIBBONS", "GIBBS", "GIBSON", "GIFFORD", "GIL", "GILBERT", "GILBERTSON", "GILBREATH", - "GILCHRIST", "GILES", "GILL", "GILLEN", "GILLESPIE", "GILLETTE", "GILLEY", "GILLIAM", "GILLILAND", "GILLIS", - "GILMAN", "GILMER", "GILMORE", "GILSON", "GINN", "GIORDANO", "GIPSON", "GIRARD", "GIRON", "GIROUX", "GIST", - "GIVENS", "GLADDEN", "GLADNEY", "GLASER", "GLASGOW", "GLASS", "GLAZE", "GLEASON", "GLENN", "GLOVER", - "GLYNN", "GOAD", "GOBLE", "GODDARD", "GODFREY", "GODINEZ", "GODWIN", "GOEBEL", "GOETZ", "GOFF", "GOFORTH", - "GOINS", "GOLD", "GOLDBERG", "GOLDEN", "GOLDMAN", "GOLDSMITH", "GOLDSTEIN", "GOMES", "GOMEZ", "GONSALVES", - "GONZALES", "GONZALEZ", "GOOCH", "GOOD", "GOODE", "GOODEN", "GOODIN", "GOODING", "GOODMAN", "GOODRICH", - "GOODSON", "GOODWIN", "GOOLSBY", "GORDON", "GORE", "GORHAM", "GORMAN", "GOSS", "GOSSETT", "GOUGH", "GOULD", - "GOULET", "GRACE", "GRACIA", "GRADY", "GRAF", "GRAFF", "GRAGG", "GRAHAM", "GRANADOS", "GRANGER", "GRANT", - "GRANTHAM", "GRAVES", "GRAY", "GRAYSON", "GREATHOUSE", "GRECO", "GREEN", "GREENBERG", "GREENE", - "GREENFIELD", "GREENLEE", "GREENWOOD", "GREER", "GREGG", "GREGORY", "GREINER", "GRENIER", "GRESHAM", "GREY", - "GRICE", "GRIDER", "GRIER", "GRIFFIN", "GRIFFIS", "GRIFFITH", "GRIFFITHS", "GRIGGS", "GRIGSBY", "GRIMES", - "GRIMM", "GRISHAM", "GRISSOM", "GRISWOLD", "GROCE", "GROGAN", "GROOMS", "GROSS", "GROSSMAN", "GROVE", - "GROVER", "GROVES", "GRUBB", "GRUBBS", "GRUBER", "GUAJARDO", "GUENTHER", "GUERIN", "GUERRA", "GUERRERO", - "GUESS", "GUEST", "GUEVARA", "GUFFEY", "GUIDRY", "GUILLEN", "GUILLORY", "GUINN", "GULLEY", "GUNDERSON", - "GUNN", "GUNTER", "GUNTHER", "GURLEY", "GUSTAFSON", "GUTHRIE", "GUTIERREZ", "GUY", "GUYTON", "GUZMAN", "HA", - "HAAG", "HAAS", "HAASE", "HACKER", "HACKETT", "HACKNEY", "HADDEN", "HADLEY", "HAGAN", "HAGEN", "HAGER", - "HAGGARD", "HAGGERTY", "HAHN", "HAIGHT", "HAILEY", "HAINES", "HAIR", "HAIRSTON", "HALCOMB", "HALE", "HALES", - "HALEY", "HALL", "HALLER", "HALLMAN", "HALSEY", "HALSTEAD", "HALVERSON", "HAM", "HAMBLIN", "HAMBY", "HAMEL", - "HAMER", "HAMILTON", "HAMLIN", "HAMM", "HAMMER", "HAMMETT", "HAMMOND", "HAMMONDS", "HAMMONS", "HAMPTON", - "HAMRICK", "HAN", "HANCOCK", "HAND", "HANDLEY", "HANDY", "HANES", "HANEY", "HANKINS", "HANKS", "HANLEY", - "HANLON", "HANNA", "HANNAH", "HANNAN", "HANNON", "HANSEN", "HANSON", "HARBIN", "HARDAWAY", "HARDEE", - "HARDEN", "HARDER", "HARDESTY", "HARDIN", "HARDING", "HARDISON", "HARDMAN", "HARDWICK", "HARDY", "HARE", - "HARGIS", "HARGRAVE", "HARGROVE", "HARKINS", "HARLAN", "HARLEY", "HARLOW", "HARMAN", "HARMON", "HARMS", - "HARNESS", "HARP", "HARPER", "HARR", "HARRELL", "HARRINGTON", "HARRIS", "HARRISON", "HARRY", "HART", - "HARTER", "HARTLEY", "HARTMAN", "HARTMANN", "HARTWELL", "HARVEY", "HARWELL", "HARWOOD", "HASKELL", - "HASKINS", "HASS", "HASSELL", "HASTINGS", "HATCH", "HATCHER", "HATCHETT", "HATFIELD", "HATHAWAY", "HATLEY", - "HATTON", "HAUGEN", "HAUSER", "HAVENS", "HAWES", "HAWK", "HAWKINS", "HAWKS", "HAWLEY", "HAWTHORNE", "HAY", - "HAYDEN", "HAYES", "HAYNES", "HAYS", "HAYWARD", "HAYWOOD", "HAZEL", "HEAD", "HEADLEY", "HEADRICK", "HEALEY", - "HEALY", "HEARD", "HEARN", "HEATH", "HEATON", "HEBERT", "HECK", "HECKMAN", "HEDGES", "HEDRICK", "HEFFNER", - "HEFLIN", "HEFNER", "HEIM", "HEIN", "HEINRICH", "HEINZ", "HELD", "HELLER", "HELM", "HELMS", "HELTON", - "HEMBREE", "HEMPHILL", "HENDERSON", "HENDON", "HENDRICK", "HENDRICKS", "HENDRICKSON", "HENDRIX", "HENKE", - "HENLEY", "HENNESSEY", "HENNING", "HENRY", "HENSLEY", "HENSON", "HER", "HERBERT", "HEREDIA", "HERMAN", - "HERMANN", "HERNANDEZ", "HERNDON", "HERR", "HERRERA", "HERRICK", "HERRIN", "HERRING", "HERRINGTON", - "HERRMANN", "HERRON", "HERSHBERGER", "HERZOG", "HESS", "HESTER", "HEWITT", "HEYWARD", "HIATT", "HIBBARD", - "HICKEY", "HICKMAN", "HICKS", "HICKSON", "HIDALGO", "HIGDON", "HIGGINBOTHAM", "HIGGINS", "HIGGS", "HIGH", - "HIGHTOWER", "HILDEBRAND", "HILDRETH", "HILL", "HILLARD", "HILLER", "HILLIARD", "HILLMAN", "HILLS", - "HILTON", "HIMES", "HINDMAN", "HINDS", "HINES", "HINKLE", "HINOJOSA", "HINSON", "HINTON", "HIRSCH", - "HITCHCOCK", "HITE", "HITT", "HO", "HOANG", "HOBBS", "HOBSON", "HODGE", "HODGES", "HODGSON", "HOFF", - "HOFFMAN", "HOFFMANN", "HOGAN", "HOGG", "HOGUE", "HOKE", "HOLBROOK", "HOLCOMB", "HOLCOMBE", "HOLDEN", - "HOLDER", "HOLGUIN", "HOLIDAY", "HOLLAND", "HOLLENBECK", "HOLLEY", "HOLLIDAY", "HOLLINGSWORTH", "HOLLINS", - "HOLLIS", "HOLLOMAN", "HOLLOWAY", "HOLLY", "HOLM", "HOLMAN", "HOLMES", "HOLT", "HOLTON", "HOLTZ", "HOMAN", - "HOMER", "HONEYCUTT", "HONG", "HOOD", "HOOK", "HOOKER", "HOOKS", "HOOPER", "HOOVER", "HOPE", "HOPKINS", - "HOPPE", "HOPPER", "HOPSON", "HORAN", "HORN", "HORNE", "HORNER", "HORNSBY", "HOROWITZ", "HORSLEY", "HORTON", - "HORVATH", "HOSKINS", "HOSTETLER", "HOUCK", "HOUGH", "HOUGHTON", "HOULE", "HOUSE", "HOUSER", "HOUSTON", - "HOWARD", "HOWE", "HOWELL", "HOWERTON", "HOWES", "HOWLAND", "HOY", "HOYLE", "HOYT", "HSU", "HUANG", - "HUBBARD", "HUBER", "HUBERT", "HUDDLESTON", "HUDGENS", "HUDGINS", "HUDSON", "HUERTA", "HUEY", "HUFF", - "HUFFMAN", "HUGGINS", "HUGHES", "HUGHEY", "HULL", "HULSEY", "HUMES", "HUMMEL", "HUMPHREY", "HUMPHREYS", - "HUMPHRIES", "HUNDLEY", "HUNT", "HUNTER", "HUNTINGTON", "HUNTLEY", "HURD", "HURLEY", "HURST", "HURT", - "HURTADO", "HUSKEY", "HUSSEY", "HUSTON", "HUTCHENS", "HUTCHERSON", "HUTCHESON", "HUTCHINGS", "HUTCHINS", - "HUTCHINSON", "HUTCHISON", "HUTSON", "HUTTO", "HUTTON", "HUYNH", "HWANG", "HYATT", "HYDE", "HYLAND", - "HYLTON", "HYMAN", "HYNES", "IBARRA", "INGLE", "INGRAHAM", "INGRAM", "INMAN", "IRBY", "IRELAND", "IRISH", - "IRIZARRY", "IRONS", "IRVIN", "IRVINE", "IRVING", "IRWIN", "ISAAC", "ISAACS", "ISAACSON", "ISBELL", "ISOM", - "ISON", "ISRAEL", "IVERSON", "IVES", "IVEY", "IVORY", "IVY", "JACK", "JACKMAN", "JACKS", "JACKSON", "JACOB", - "JACOBS", "JACOBSEN", "JACOBSON", "JACOBY", "JACQUES", "JAEGER", "JAMES", "JAMESON", "JAMISON", "JANES", - "JANKOWSKI", "JANSEN", "JANSSEN", "JARAMILLO", "JARRELL", "JARRETT", "JARVIS", "JASPER", "JAY", "JAYNES", - "JEAN", "JEFFERIES", "JEFFERS", "JEFFERSON", "JEFFERY", "JEFFREY", "JEFFRIES", "JENKINS", "JENNINGS", - "JENSEN", "JENSON", "JERNIGAN", "JESSUP", "JETER", "JETT", "JEWELL", "JEWETT", "JIMENEZ", "JOBE", "JOE", - "JOHANSEN", "JOHN", "JOHNS", "JOHNSON", "JOHNSTON", "JOINER", "JOLLEY", "JOLLY", "JONES", "JORDAN", - "JORDON", "JORGENSEN", "JORGENSON", "JOSE", "JOSEPH", "JOY", "JOYCE", "JOYNER", "JUAREZ", "JUDD", "JUDE", - "JUDGE", "JUDKINS", "JULIAN", "JUNG", "JUSTICE", "JUSTUS", "KAHN", "KAISER", "KAMINSKI", "KANE", "KANG", - "KAPLAN", "KARR", "KASPER", "KATZ", "KAUFFMAN", "KAUFMAN", "KAY", "KAYE", "KEANE", "KEARNEY", "KEARNS", - "KEATING", "KEATON", "KECK", "KEE", "KEEFE", "KEEFER", "KEEGAN", "KEEL", "KEELER", "KEELING", "KEEN", - "KEENAN", "KEENE", "KEENER", "KEENEY", "KEETON", "KEITH", "KELLEHER", "KELLER", "KELLEY", "KELLOGG", - "KELLUM", "KELLY", "KELSEY", "KELSO", "KEMP", "KEMPER", "KENDALL", "KENDRICK", "KENNEDY", "KENNEY", "KENNY", - "KENT", "KENYON", "KERN", "KERNS", "KERR", "KESSLER", "KETCHUM", "KEY", "KEYES", "KEYS", "KEYSER", "KHAN", - "KIDD", "KIDWELL", "KIEFER", "KILGORE", "KILLIAN", "KILPATRICK", "KIM", "KIMBALL", "KIMBLE", "KIMBRELL", - "KIMBROUGH", "KIMMEL", "KINARD", "KINCAID", "KINDER", "KING", "KINGSLEY", "KINNEY", "KINSEY", "KIRBY", - "KIRCHNER", "KIRK", "KIRKLAND", "KIRKPATRICK", "KIRKWOOD", "KISER", "KISH", "KITCHEN", "KITCHENS", "KLEIN", - "KLINE", "KLINGER", "KNAPP", "KNIGHT", "KNOLL", "KNOTT", "KNOTTS", "KNOWLES", "KNOWLTON", "KNOX", "KNUDSEN", - "KNUDSON", "KNUTSON", "KOCH", "KOEHLER", "KOENIG", "KOHL", "KOHLER", "KOHN", "KOLB", "KONG", "KOONCE", - "KOONTZ", "KOPP", "KOVACH", "KOWALSKI", "KOZAK", "KOZLOWSKI", "KRAFT", "KRAMER", "KRAUS", "KRAUSE", - "KRAUSS", "KREBS", "KRIEGER", "KROLL", "KRUEGER", "KRUG", "KRUGER", "KRUSE", "KUHN", "KUNKEL", "KUNTZ", - "KUNZ", "KURTZ", "KUYKENDALL", "KYLE", "LABBE", "LABELLE", "LACEY", "LACHANCE", "LACKEY", "LACROIX", "LACY", - "LADD", "LADNER", "LAFFERTY", "LAFLAMME", "LAFLEUR", "LAI", "LAIRD", "LAKE", "LAM", "LAMAR", "LAMB", - "LAMBERT", "LAMM", "LANCASTER", "LANCE", "LAND", "LANDERS", "LANDIS", "LANDON", "LANDRUM", "LANDRY", "LANE", - "LANEY", "LANG", "LANGDON", "LANGE", "LANGER", "LANGFORD", "LANGLEY", "LANGLOIS", "LANGSTON", "LANHAM", - "LANIER", "LANKFORD", "LANNING", "LANTZ", "LAPLANTE", "LAPOINTE", "LAPORTE", "LARA", "LARGE", "LARKIN", - "LAROCHE", "LAROSE", "LARRY", "LARSEN", "LARSON", "LARUE", "LASH", "LASHLEY", "LASSITER", "LASTER", - "LATHAM", "LATIMER", "LATTIMORE", "LAU", "LAUER", "LAUGHLIN", "LAVENDER", "LAVIGNE", "LAVOIE", "LAW", - "LAWHORN", "LAWLER", "LAWLESS", "LAWRENCE", "LAWS", "LAWSON", "LAWTON", "LAY", "LAYMAN", "LAYNE", "LAYTON", - "LE", "LEA", "LEACH", "LEAHY", "LEAK", "LEAKE", "LEAL", "LEAR", "LEARY", "LEAVITT", "LEBLANC", "LEBRON", - "LECLAIR", "LEDBETTER", "LEDESMA", "LEDFORD", "LEDOUX", "LEE", "LEEPER", "LEES", "LEFEBVRE", "LEGER", - "LEGG", "LEGGETT", "LEHMAN", "LEHMANN", "LEIGH", "LEIGHTON", "LEMASTER", "LEMAY", "LEMIEUX", "LEMKE", - "LEMMON", "LEMON", "LEMONS", "LEMUS", "LENNON", "LENTZ", "LENZ", "LEON", "LEONARD", "LEONE", "LERMA", - "LERNER", "LEROY", "LESLIE", "LESSARD", "LESTER", "LEUNG", "LEVESQUE", "LEVI", "LEVIN", "LEVINE", "LEVY", - "LEW", "LEWANDOWSKI", "LEWIS", "LEYVA", "LI", "LIBBY", "LIDDELL", "LIEBERMAN", "LIGHT", "LIGHTFOOT", - "LIGHTNER", "LIGON", "LILES", "LILLEY", "LILLY", "LIM", "LIMA", "LIMON", "LIN", "LINARES", "LINCOLN", - "LIND", "LINDBERG", "LINDER", "LINDGREN", "LINDLEY", "LINDQUIST", "LINDSAY", "LINDSEY", "LINDSTROM", "LINK", - "LINKOUS", "LINN", "LINTON", "LINVILLE", "LIPSCOMB", "LIRA", "LISTER", "LITTLE", "LITTLEFIELD", - "LITTLEJOHN", "LITTLETON", "LIU", "LIVELY", "LIVINGSTON", "LLOYD", "LO", "LOCKE", "LOCKETT", "LOCKHART", - "LOCKLEAR", "LOCKWOOD", "LOERA", "LOFTIN", "LOFTIS", "LOFTON", "LOGAN", "LOGSDON", "LOGUE", "LOMAX", - "LOMBARD", "LOMBARDI", "LOMBARDO", "LONDON", "LONG", "LONGO", "LONGORIA", "LOOMIS", "LOONEY", "LOPER", - "LOPES", "LOPEZ", "LORD", "LORENZ", "LORENZO", "LOTT", "LOUIS", "LOVE", "LOVEJOY", "LOVELACE", "LOVELESS", - "LOVELL", "LOVETT", "LOVING", "LOW", "LOWE", "LOWELL", "LOWERY", "LOWMAN", "LOWRY", "LOY", "LOYA", "LOYD", - "LOZANO", "LU", "LUCAS", "LUCE", "LUCERO", "LUCIANO", "LUCKETT", "LUDWIG", "LUGO", "LUIS", "LUJAN", "LUKE", - "LUMPKIN", "LUNA", "LUND", "LUNDBERG", "LUNDY", "LUNSFORD", "LUONG", "LUSK", "LUSTER", "LUTHER", "LUTTRELL", - "LUTZ", "LY", "LYLE", "LYLES", "LYMAN", "LYNCH", "LYNN", "LYON", "LYONS", "LYTLE", "MA", "MAAS", "MABE", - "MABRY", "MACDONALD", "MACE", "MACHADO", "MACIAS", "MACK", "MACKAY", "MACKENZIE", "MACKEY", "MACKIE", - "MACKLIN", "MACLEAN", "MACLEOD", "MACON", "MADDEN", "MADDOX", "MADERA", "MADISON", "MADRID", "MADRIGAL", - "MADSEN", "MAES", "MAESTAS", "MAGANA", "MAGEE", "MAGGARD", "MAGNUSON", "MAGUIRE", "MAHAFFEY", "MAHAN", - "MAHER", "MAHON", "MAHONEY", "MAIER", "MAIN", "MAJOR", "MAJORS", "MAKI", "MALCOLM", "MALDONADO", "MALLEY", - "MALLORY", "MALLOY", "MALONE", "MALONEY", "MANCINI", "MANCUSO", "MANESS", "MANGUM", "MANLEY", "MANN", - "MANNING", "MANNS", "MANSFIELD", "MANSON", "MANUEL", "MANZO", "MAPLE", "MAPLES", "MARBLE", "MARCH", - "MARCHAND", "MARCOTTE", "MARCUM", "MARCUS", "MARES", "MARIN", "MARINO", "MARION", "MARK", "MARKHAM", - "MARKLEY", "MARKS", "MARLER", "MARLOW", "MARLOWE", "MARQUEZ", "MARQUIS", "MARR", "MARRERO", "MARROQUIN", - "MARSH", "MARSHALL", "MARTEL", "MARTELL", "MARTENS", "MARTIN", "MARTINDALE", "MARTINEZ", "MARTINO", - "MARTINS", "MARTINSON", "MARTZ", "MARVIN", "MARX", "MASON", "MASSEY", "MASSIE", "MAST", "MASTERS", - "MASTERSON", "MATA", "MATHENY", "MATHESON", "MATHEWS", "MATHIAS", "MATHIS", "MATLOCK", "MATNEY", "MATOS", - "MATSON", "MATTESON", "MATTHEW", "MATTHEWS", "MATTINGLY", "MATTISON", "MATTOS", "MATTOX", "MATTSON", - "MAULDIN", "MAUPIN", "MAURER", "MAURO", "MAXEY", "MAXFIELD", "MAXWELL", "MAY", "MAYBERRY", "MAYER", - "MAYERS", "MAYES", "MAYFIELD", "MAYHEW", "MAYNARD", "MAYO", "MAYS", "MAZZA", "MCADAMS", "MCAFEE", - "MCALISTER", "MCALLISTER", "MCARTHUR", "MCBEE", "MCBRIDE", "MCCABE", "MCCAFFREY", "MCCAIN", "MCCALL", - "MCCALLISTER", "MCCALLUM", "MCCANN", "MCCANTS", "MCCARTER", "MCCARTHY", "MCCARTNEY", "MCCARTY", "MCCASKILL", - "MCCAULEY", "MCCLAIN", "MCCLANAHAN", "MCCLARY", "MCCLEARY", "MCCLELLAN", "MCCLELLAND", "MCCLENDON", - "MCCLINTOCK", "MCCLINTON", "MCCLOSKEY", "MCCLOUD", "MCCLUNG", "MCCLURE", "MCCOLLUM", "MCCOMBS", "MCCONNELL", - "MCCOOL", "MCCORD", "MCCORKLE", "MCCORMACK", "MCCORMICK", "MCCOY", "MCCRACKEN", "MCCRARY", "MCCRAY", - "MCCREARY", "MCCUE", "MCCULLOCH", "MCCULLOUGH", "MCCUNE", "MCCURDY", "MCCURRY", "MCCUTCHEON", "MCDADE", - "MCDANIEL", "MCDANIELS", "MCDERMOTT", "MCDONALD", "MCDONNELL", "MCDONOUGH", "MCDOUGAL", "MCDOUGALL", - "MCDOWELL", "MCDUFFIE", "MCELROY", "MCEWEN", "MCFADDEN", "MCFALL", "MCFARLAND", "MCFARLANE", "MCGEE", - "MCGEHEE", "MCGHEE", "MCGILL", "MCGINNIS", "MCGOVERN", "MCGOWAN", "MCGRATH", "MCGRAW", "MCGREGOR", "MCGREW", - "MCGRIFF", "MCGUIRE", "MCHENRY", "MCHUGH", "MCINNIS", "MCINTIRE", "MCINTOSH", "MCINTYRE", "MCKAY", "MCKEE", - "MCKEEVER", "MCKENNA", "MCKENNEY", "MCKENZIE", "MCKEON", "MCKEOWN", "MCKINLEY", "MCKINNEY", "MCKINNON", - "MCKNIGHT", "MCLAIN", "MCLAUGHLIN", "MCLAURIN", "MCLEAN", "MCLEMORE", "MCLENDON", "MCLEOD", "MCMAHAN", - "MCMAHON", "MCMANUS", "MCMASTER", "MCMILLAN", "MCMILLEN", "MCMILLIAN", "MCMULLEN", "MCMURRAY", "MCNABB", - "MCNAIR", "MCNALLY", "MCNAMARA", "MCNEAL", "MCNEELY", "MCNEIL", "MCNEILL", "MCNULTY", "MCNUTT", "MCPHERSON", - "MCQUEEN", "MCRAE", "MCREYNOLDS", "MCSWAIN", "MCVAY", "MCVEY", "MCWHORTER", "MCWILLIAMS", "MEACHAM", "MEAD", - "MEADE", "MEADOR", "MEADOWS", "MEANS", "MEARS", "MEDEIROS", "MEDINA", "MEDLEY", "MEDLIN", "MEDLOCK", - "MEDRANO", "MEEHAN", "MEEK", "MEEKER", "MEEKS", "MEIER", "MEJIA", "MELANCON", "MELENDEZ", "MELLO", "MELTON", - "MELVIN", "MENA", "MENARD", "MENDENHALL", "MENDEZ", "MENDOZA", "MENENDEZ", "MERCADO", "MERCER", "MERCHANT", - "MERCIER", "MEREDITH", "MERRELL", "MERRICK", "MERRILL", "MERRIMAN", "MERRITT", "MESA", "MESSENGER", - "MESSER", "MESSINA", "METCALF", "METZ", "METZGER", "METZLER", "MEYER", "MEYERS", "MEZA", "MICHAEL", - "MICHAELS", "MICHAUD", "MICHEL", "MICKENS", "MIDDLETON", "MILAM", "MILBURN", "MILES", "MILLARD", "MILLER", - "MILLIGAN", "MILLIKEN", "MILLS", "MILNE", "MILNER", "MILTON", "MIMS", "MINER", "MINNICK", "MINOR", "MINTER", - "MINTON", "MINTZ", "MIRANDA", "MIRELES", "MITCHELL", "MIXON", "MIZE", "MOBLEY", "MOCK", "MOE", "MOELLER", - "MOEN", "MOFFETT", "MOFFITT", "MOHR", "MOJICA", "MOLINA", "MOLL", "MONACO", "MONAGHAN", "MONAHAN", "MONEY", - "MONIZ", "MONK", "MONROE", "MONSON", "MONTAGUE", "MONTALVO", "MONTANEZ", "MONTANO", "MONTEMAYOR", "MONTERO", - "MONTES", "MONTEZ", "MONTGOMERY", "MONTOYA", "MOODY", "MOON", "MOONEY", "MOORE", "MOORMAN", "MORA", - "MORALES", "MORAN", "MOREAU", "MOREHEAD", "MORELAND", "MORENO", "MOREY", "MORGAN", "MORIARTY", "MORIN", - "MORLEY", "MORRELL", "MORRILL", "MORRIS", "MORRISON", "MORRISSEY", "MORROW", "MORSE", "MORTENSEN", "MORTON", - "MOSBY", "MOSELEY", "MOSER", "MOSES", "MOSHER", "MOSIER", "MOSLEY", "MOSS", "MOTLEY", "MOTT", "MOULTON", - "MOULTRIE", "MOUNT", "MOWERY", "MOYA", "MOYE", "MOYER", "MUELLER", "MUHAMMAD", "MUIR", "MULKEY", "MULL", - "MULLEN", "MULLER", "MULLIGAN", "MULLIN", "MULLINS", "MULLIS", "MUNCY", "MUNDY", "MUNIZ", "MUNN", "MUNOZ", - "MUNSON", "MURDOCK", "MURILLO", "MURPHY", "MURRAY", "MURRELL", "MURRY", "MUSE", "MUSGROVE", "MUSSER", - "MYERS", "MYLES", "MYRICK", "NABORS", "NADEAU", "NAGEL", "NAGLE", "NAGY", "NAJERA", "NAKAMURA", "NALL", - "NANCE", "NAPIER", "NAQUIN", "NARANJO", "NARVAEZ", "NASH", "NATHAN", "NATION", "NAVA", "NAVARRETE", - "NAVARRO", "NAYLOR", "NEAL", "NEALY", "NEEDHAM", "NEEL", "NEELEY", "NEELY", "NEFF", "NEGRETE", "NEGRON", - "NEIL", "NEILL", "NELMS", "NELSON", "NESBITT", "NESMITH", "NESS", "NESTOR", "NETTLES", "NEUMAN", "NEUMANN", - "NEVAREZ", "NEVILLE", "NEW", "NEWBERRY", "NEWBY", "NEWCOMB", "NEWELL", "NEWKIRK", "NEWMAN", "NEWSOM", - "NEWSOME", "NEWTON", "NG", "NGO", "NGUYEN", "NICHOLAS", "NICHOLS", "NICHOLSON", "NICKEL", "NICKERSON", - "NIELSEN", "NIELSON", "NIETO", "NIEVES", "NILES", "NIX", "NIXON", "NOBLE", "NOBLES", "NOE", "NOEL", "NOLAN", - "NOLAND", "NOLEN", "NOLL", "NOONAN", "NORFLEET", "NORIEGA", "NORMAN", "NORRIS", "NORTH", "NORTON", - "NORWOOD", "NOVAK", "NOVOTNY", "NOWAK", "NOWLIN", "NOYES", "NUGENT", "NULL", "NUMBERS", "NUNES", "NUNEZ", - "NUNLEY", "NUNN", "NUTT", "NUTTER", "NYE", "OAKES", "OAKLEY", "OAKS", "OATES", "OBRIEN", "OBRYAN", "OCAMPO", - "OCASIO", "OCHOA", "OCHS", "OCONNELL", "OCONNER", "OCONNOR", "ODELL", "ODEN", "ODOM", "ODONNELL", "ODUM", - "OGDEN", "OGLE", "OGLESBY", "OH", "OHARA", "OJEDA", "OKEEFE", "OLDHAM", "OLDS", "OLEARY", "OLIPHANT", - "OLIVA", "OLIVARES", "OLIVAREZ", "OLIVAS", "OLIVE", "OLIVEIRA", "OLIVER", "OLIVO", "OLMSTEAD", "OLSEN", - "OLSON", "OLVERA", "OMALLEY", "ONEAL", "ONEIL", "ONEILL", "ONTIVEROS", "ORDONEZ", "OREILLY", "ORELLANA", - "ORLANDO", "ORNELAS", "OROSCO", "OROURKE", "OROZCO", "ORR", "ORTA", "ORTEGA", "ORTIZ", "OSBORN", "OSBORNE", - "OSBURN", "OSGOOD", "OSHEA", "OSORIO", "OSTEEN", "OSTRANDER", "OSULLIVAN", "OSWALD", "OSWALT", "OTERO", - "OTIS", "OTOOLE", "OTT", "OTTO", "OUELLETTE", "OUTLAW", "OVERBY", "OVERSTREET", "OVERTON", "OWEN", "OWENS", - "PACE", "PACHECO", "PACK", "PACKARD", "PACKER", "PADGETT", "PADILLA", "PAGAN", "PAGE", "PAIGE", "PAINE", - "PAINTER", "PAK", "PALACIOS", "PALMA", "PALMER", "PALUMBO", "PANNELL", "PANTOJA", "PAPE", "PAPPAS", - "PAQUETTE", "PARADIS", "PARDO", "PAREDES", "PARENT", "PARHAM", "PARIS", "PARISH", "PARK", "PARKER", - "PARKINSON", "PARKS", "PARNELL", "PARR", "PARRA", "PARRIS", "PARRISH", "PARROTT", "PARRY", "PARSON", - "PARSONS", "PARTIN", "PARTRIDGE", "PASSMORE", "PATE", "PATEL", "PATERSON", "PATINO", "PATRICK", "PATTEN", - "PATTERSON", "PATTON", "PAUL", "PAULEY", "PAULSEN", "PAULSON", "PAXTON", "PAYNE", "PAYTON", "PAZ", "PEACE", - "PEACHEY", "PEACOCK", "PEAK", "PEARCE", "PEARSON", "PEASE", "PECK", "PEDERSEN", "PEDERSON", "PEEBLES", - "PEEK", "PEEL", "PEELER", "PEEPLES", "PELLETIER", "PELTIER", "PEMBERTON", "PENA", "PENCE", "PENDER", - "PENDERGRASS", "PENDLETON", "PENN", "PENNELL", "PENNINGTON", "PENNY", "PEOPLES", "PEPPER", "PERALES", - "PERALTA", "PERDUE", "PEREA", "PEREIRA", "PEREZ", "PERKINS", "PERREAULT", "PERRIN", "PERRON", "PERRY", - "PERRYMAN", "PERSON", "PETER", "PETERMAN", "PETERS", "PETERSEN", "PETERSON", "PETIT", "PETRIE", "PETTIGREW", - "PETTIS", "PETTIT", "PETTWAY", "PETTY", "PEYTON", "PFEIFER", "PFEIFFER", "PHAM", "PHAN", "PHELAN", "PHELPS", - "PHIFER", "PHILLIPS", "PHIPPS", "PICARD", "PICKARD", "PICKENS", "PICKERING", "PICKETT", "PIERCE", "PIERRE", - "PIERSON", "PIKE", "PILCHER", "PIMENTEL", "PINA", "PINCKNEY", "PINEDA", "PINKERTON", "PINKSTON", "PINO", - "PINSON", "PINTO", "PIPER", "PIPKIN", "PIPPIN", "PITMAN", "PITRE", "PITT", "PITTMAN", "PITTS", "PLACE", - "PLANTE", "PLATT", "PLEASANT", "PLUMMER", "PLUNKETT", "POE", "POGUE", "POINDEXTER", "POINTER", "POIRIER", - "POLANCO", "POLAND", "POLING", "POLK", "POLLACK", "POLLARD", "POLLOCK", "POMEROY", "PONCE", "POND", - "PONDER", "POOL", "POOLE", "POORE", "POPE", "POPP", "PORTER", "PORTERFIELD", "PORTILLO", "POSEY", "POST", - "POSTON", "POTTER", "POTTS", "POULIN", "POUNDS", "POWELL", "POWER", "POWERS", "PRADO", "PRATER", "PRATHER", - "PRATT", "PRENTICE", "PRESCOTT", "PRESLEY", "PRESSLEY", "PRESTON", "PREWITT", "PRICE", "PRICHARD", "PRIDE", - "PRIDGEN", "PRIEST", "PRIETO", "PRINCE", "PRINGLE", "PRITCHARD", "PRITCHETT", "PROCTOR", "PROFFITT", - "PROSSER", "PROVOST", "PRUETT", "PRUITT", "PRYOR", "PUCKETT", "PUENTE", "PUGH", "PULIDO", "PULLEN", - "PULLEY", "PULLIAM", "PURCELL", "PURDY", "PURNELL", "PURVIS", "PUTMAN", "PUTNAM", "PYLE", "QUALLS", - "QUARLES", "QUEEN", "QUEZADA", "QUICK", "QUIGLEY", "QUILLEN", "QUINLAN", "QUINN", "QUINONES", "QUINONEZ", - "QUINTANA", "QUINTANILLA", "QUINTERO", "QUIROZ", "RADER", "RADFORD", "RAFFERTY", "RAGAN", "RAGLAND", - "RAGSDALE", "RAINES", "RAINEY", "RAINS", "RALEY", "RALPH", "RALSTON", "RAMEY", "RAMIREZ", "RAMON", "RAMOS", - "RAMSAY", "RAMSEY", "RAND", "RANDALL", "RANDLE", "RANDOLPH", "RANEY", "RANGEL", "RANKIN", "RANSOM", "RAPP", - "RASH", "RASMUSSEN", "RATCLIFF", "RATLIFF", "RAU", "RAUCH", "RAWLINGS", "RAWLINS", "RAWLS", "RAY", - "RAYBURN", "RAYFORD", "RAYMOND", "RAYNOR", "RAZO", "REA", "READ", "REAGAN", "REARDON", "REAVES", "RECTOR", - "REDD", "REDDEN", "REDDICK", "REDDING", "REDDY", "REDMAN", "REDMON", "REDMOND", "REECE", "REED", "REEDER", - "REEDY", "REES", "REESE", "REEVES", "REGALADO", "REGAN", "REGISTER", "REICH", "REICHERT", "REID", "REILLY", - "REINHARDT", "REINHART", "REIS", "REITER", "RENDON", "RENFRO", "RENNER", "RENO", "RENTERIA", "REUTER", - "REY", "REYES", "REYNA", "REYNOLDS", "REYNOSO", "RHEA", "RHOADES", "RHOADS", "RHODEN", "RHODES", "RICCI", - "RICE", "RICH", "RICHARD", "RICHARDS", "RICHARDSON", "RICHEY", "RICHIE", "RICHMOND", "RICHTER", "RICKARD", - "RICKER", "RICKETTS", "RICKMAN", "RICKS", "RICO", "RIDDELL", "RIDDICK", "RIDDLE", "RIDENOUR", "RIDER", - "RIDGEWAY", "RIDLEY", "RIFE", "RIGBY", "RIGGINS", "RIGGS", "RIGSBY", "RILEY", "RINALDI", "RINEHART", "RING", - "RIOS", "RIPLEY", "RITCHEY", "RITCHIE", "RITTER", "RIVAS", "RIVERA", "RIVERS", "RIZZO", "ROACH", "ROARK", - "ROBB", "ROBBINS", "ROBERGE", "ROBERSON", "ROBERT", "ROBERTS", "ROBERTSON", "ROBEY", "ROBINETTE", "ROBINS", - "ROBINSON", "ROBISON", "ROBLES", "ROBSON", "ROBY", "ROCHA", "ROCHE", "ROCK", "ROCKWELL", "RODEN", - "RODERICK", "RODGERS", "RODRIGUE", "RODRIGUES", "RODRIGUEZ", "RODRIQUEZ", "ROE", "ROGER", "ROGERS", "ROHR", - "ROJAS", "ROLAND", "ROLDAN", "ROLLER", "ROLLINS", "ROMAN", "ROMANO", "ROMEO", "ROMERO", "ROMO", "RONEY", - "ROONEY", "ROOT", "ROPER", "ROQUE", "ROSA", "ROSADO", "ROSALES", "ROSARIO", "ROSAS", "ROSE", "ROSEN", - "ROSENBAUM", "ROSENBERG", "ROSENTHAL", "ROSS", "ROSSER", "ROSSI", "ROTH", "ROUNDS", "ROUNDTREE", "ROUNTREE", - "ROUSE", "ROUSH", "ROUSSEAU", "ROUSSEL", "ROWAN", "ROWE", "ROWELL", "ROWLAND", "ROWLEY", "ROY", "ROYAL", - "ROYBAL", "ROYER", "ROYSTER", "RUBIN", "RUBIO", "RUBY", "RUCKER", "RUDD", "RUDOLPH", "RUFF", "RUFFIN", - "RUIZ", "RUNYAN", "RUNYON", "RUPERT", "RUPP", "RUSH", "RUSHING", "RUSS", "RUSSELL", "RUSSO", "RUST", "RUTH", - "RUTHERFORD", "RUTLEDGE", "RYAN", "RYDER", "SAAVEDRA", "SABO", "SACCO", "SADLER", "SAENZ", "SAGE", "SAGER", - "SALAS", "SALAZAR", "SALCEDO", "SALCIDO", "SALDANA", "SALDIVAR", "SALERNO", "SALES", "SALGADO", "SALINAS", - "SALISBURY", "SALLEE", "SALLEY", "SALMON", "SALTER", "SAM", "SAMMONS", "SAMPLE", "SAMPLES", "SAMPSON", - "SAMS", "SAMSON", "SAMUEL", "SAMUELS", "SANBORN", "SANCHES", "SANCHEZ", "SANDBERG", "SANDER", "SANDERS", - "SANDERSON", "SANDLIN", "SANDOVAL", "SANDS", "SANFORD", "SANTANA", "SANTIAGO", "SANTOS", "SAPP", "SARGENT", - "SASSER", "SATTERFIELD", "SAUCEDO", "SAUCIER", "SAUER", "SAULS", "SAUNDERS", "SAVAGE", "SAVOY", "SAWYER", - "SAWYERS", "SAXON", "SAXTON", "SAYERS", "SAYLOR", "SAYRE", "SCALES", "SCANLON", "SCARBOROUGH", "SCARBROUGH", - "SCHAEFER", "SCHAEFFER", "SCHAFER", "SCHAFFER", "SCHELL", "SCHERER", "SCHILLER", "SCHILLING", "SCHINDLER", - "SCHMID", "SCHMIDT", "SCHMITT", "SCHMITZ", "SCHNEIDER", "SCHOFIELD", "SCHOLL", "SCHOONOVER", "SCHOTT", - "SCHRADER", "SCHREIBER", "SCHREINER", "SCHROEDER", "SCHUBERT", "SCHULER", "SCHULTE", "SCHULTZ", "SCHULZ", - "SCHULZE", "SCHUMACHER", "SCHUSTER", "SCHWAB", "SCHWARTZ", "SCHWARZ", "SCHWEITZER", "SCOGGINS", "SCOTT", - "SCRIBNER", "SCROGGINS", "SCRUGGS", "SCULLY", "SEAL", "SEALS", "SEAMAN", "SEARCY", "SEARS", "SEATON", - "SEAY", "SEE", "SEELEY", "SEGURA", "SEIBERT", "SEIDEL", "SEIFERT", "SEILER", "SEITZ", "SELBY", "SELF", - "SELL", "SELLERS", "SELLS", "SENA", "SEPULVEDA", "SERNA", "SERRANO", "SESSIONS", "SETTLE", "SETTLES", - "SEVERSON", "SEWARD", "SEWELL", "SEXTON", "SEYMORE", "SEYMOUR", "SHACKELFORD", "SHADE", "SHAFER", "SHAFFER", - "SHAH", "SHANK", "SHANKS", "SHANNON", "SHAPIRO", "SHARKEY", "SHARP", "SHARPE", "SHAVER", "SHAW", "SHAY", - "SHEA", "SHEARER", "SHEEHAN", "SHEETS", "SHEFFIELD", "SHELBY", "SHELDON", "SHELL", "SHELLEY", "SHELLY", - "SHELTON", "SHEPARD", "SHEPHARD", "SHEPHERD", "SHEPPARD", "SHERIDAN", "SHERMAN", "SHERRILL", "SHERROD", - "SHERRY", "SHERWOOD", "SHIELDS", "SHIFFLETT", "SHIN", "SHINN", "SHIPLEY", "SHIPMAN", "SHIPP", "SHIRLEY", - "SHIVELY", "SHIVERS", "SHOCKLEY", "SHOEMAKER", "SHOOK", "SHORE", "SHORES", "SHORT", "SHORTER", "SHRADER", - "SHULER", "SHULL", "SHULTZ", "SHUMAKER", "SHUMAN", "SHUMATE", "SIBLEY", "SIDES", "SIEGEL", "SIERRA", - "SIGLER", "SIKES", "SILER", "SILLS", "SILVA", "SILVER", "SILVERMAN", "SILVERS", "SILVIA", "SIMMONS", - "SIMMS", "SIMON", "SIMONE", "SIMONS", "SIMONSON", "SIMPKINS", "SIMPSON", "SIMS", "SINCLAIR", "SINGER", - "SINGH", "SINGLETARY", "SINGLETON", "SIPES", "SISCO", "SISK", "SISSON", "SIZEMORE", "SKAGGS", "SKELTON", - "SKIDMORE", "SKINNER", "SKIPPER", "SLACK", "SLADE", "SLAGLE", "SLATER", "SLATON", "SLATTERY", "SLAUGHTER", - "SLAYTON", "SLEDGE", "SLOAN", "SLOCUM", "SLONE", "SMALL", "SMALLEY", "SMALLS", "SMALLWOOD", "SMART", - "SMILEY", "SMITH", "SMITHSON", "SMOOT", "SMOTHERS", "SMYTH", "SNEAD", "SNEED", "SNELL", "SNIDER", "SNIPES", - "SNODGRASS", "SNOW", "SNOWDEN", "SNYDER", "SOARES", "SOLANO", "SOLIS", "SOLIZ", "SOLOMON", "SOMERS", - "SOMERVILLE", "SOMMER", "SOMMERS", "SONG", "SORENSEN", "SORENSON", "SORIA", "SORIANO", "SORRELL", "SOSA", - "SOTELO", "SOTO", "SOUSA", "SOUTH", "SOUTHARD", "SOUTHERLAND", "SOUTHERN", "SOUZA", "SOWELL", "SOWERS", - "SPAIN", "SPALDING", "SPANGLER", "SPANN", "SPARKMAN", "SPARKS", "SPARROW", "SPAULDING", "SPEAR", "SPEARMAN", - "SPEARS", "SPEED", "SPEER", "SPEIGHT", "SPELLMAN", "SPENCE", "SPENCER", "SPERRY", "SPICER", "SPILLMAN", - "SPINKS", "SPIVEY", "SPOONER", "SPRADLIN", "SPRAGUE", "SPRIGGS", "SPRING", "SPRINGER", "SPROUSE", "SPRUILL", - "SPURGEON", "SPURLOCK", "SQUIRES", "STACEY", "STACK", "STACKHOUSE", "STACY", "STAFFORD", "STAGGS", "STAHL", - "STALEY", "STALLINGS", "STALLWORTH", "STAMM", "STAMPER", "STAMPS", "STANFIELD", "STANFORD", "STANLEY", - "STANTON", "STAPLES", "STAPLETON", "STARK", "STARKEY", "STARKS", "STARLING", "STARNES", "STARR", "STATEN", - "STATON", "STAUFFER", "STCLAIR", "STEADMAN", "STEARNS", "STEED", "STEEL", "STEELE", "STEEN", "STEFFEN", - "STEGALL", "STEIN", "STEINBERG", "STEINER", "STEPHEN", "STEPHENS", "STEPHENSON", "STEPP", "STERLING", - "STERN", "STEVENS", "STEVENSON", "STEWARD", "STEWART", "STIDHAM", "STILES", "STILL", "STILLMAN", - "STILLWELL", "STILTNER", "STINE", "STINNETT", "STINSON", "STITT", "STJOHN", "STOCK", "STOCKTON", "STODDARD", - "STOKER", "STOKES", "STOLL", "STONE", "STONER", "STOREY", "STORY", "STOTT", "STOUT", "STOVALL", "STOVER", - "STOWE", "STPIERRE", "STRAIN", "STRAND", "STRANGE", "STRATTON", "STRAUB", "STRAUSS", "STREET", "STREETER", - "STRICKLAND", "STRINGER", "STRONG", "STROTHER", "STROUD", "STROUP", "STRUNK", "STUART", "STUBBLEFIELD", - "STUBBS", "STUCKEY", "STULL", "STUMP", "STURDIVANT", "STURGEON", "STURGILL", "STURGIS", "STURM", "STYLES", - "SUAREZ", "SUGGS", "SULLIVAN", "SUMMERLIN", "SUMMERS", "SUMNER", "SUMPTER", "SUN", "SUTHERLAND", "SUTTER", - "SUTTON", "SWAFFORD", "SWAIN", "SWAN", "SWANK", "SWANN", "SWANSON", "SWARTZ", "SWEARINGEN", "SWEAT", - "SWEENEY", "SWEET", "SWENSON", "SWIFT", "SWISHER", "SWITZER", "SWOPE", "SYKES", "SYLVESTER", "TABER", - "TABOR", "TACKETT", "TAFT", "TAGGART", "TALBERT", "TALBOT", "TALBOTT", "TALLENT", "TALLEY", "TAM", "TAMAYO", - "TAN", "TANAKA", "TANG", "TANNER", "TAPIA", "TAPP", "TARVER", "TATE", "TATUM", "TAVARES", "TAYLOR", - "TEAGUE", "TEAL", "TEEL", "TEETER", "TEJADA", "TEJEDA", "TELLEZ", "TEMPLE", "TEMPLETON", "TENNANT", - "TENNEY", "TERRELL", "TERRILL", "TERRY", "THACKER", "THAMES", "THAO", "THARP", "THATCHER", "THAYER", - "THERIAULT", "THERIOT", "THIBODEAU", "THIBODEAUX", "THIEL", "THIGPEN", "THOMAS", "THOMASON", "THOMPSON", - "THOMSEN", "THOMSON", "THORN", "THORNBURG", "THORNE", "THORNHILL", "THORNTON", "THORP", "THORPE", "THORTON", - "THRASH", "THRASHER", "THURMAN", "THURSTON", "TIBBETTS", "TIBBS", "TICE", "TIDWELL", "TIERNEY", "TIJERINA", - "TILLER", "TILLERY", "TILLEY", "TILLMAN", "TILTON", "TIMM", "TIMMONS", "TINKER", "TINSLEY", "TIPTON", - "TIRADO", "TISDALE", "TITUS", "TOBIAS", "TOBIN", "TODD", "TOLBERT", "TOLEDO", "TOLER", "TOLIVER", - "TOLLIVER", "TOM", "TOMLIN", "TOMLINSON", "TOMPKINS", "TONEY", "TONG", "TORO", "TORRENCE", "TORRES", - "TORREZ", "TOTH", "TOTTEN", "TOVAR", "TOWNES", "TOWNS", "TOWNSEND", "TRACY", "TRAHAN", "TRAMMELL", "TRAN", - "TRAPP", "TRASK", "TRAVERS", "TRAVIS", "TRAYLOR", "TREADWAY", "TREADWELL", "TREJO", "TREMBLAY", "TRENT", - "TREVINO", "TRIBBLE", "TRICE", "TRIMBLE", "TRINIDAD", "TRIPLETT", "TRIPP", "TROTTER", "TROUT", "TROUTMAN", - "TROY", "TRUDEAU", "TRUE", "TRUITT", "TRUJILLO", "TRUONG", "TUBBS", "TUCK", "TUCKER", "TUGGLE", "TURK", - "TURLEY", "TURMAN", "TURNBULL", "TURNER", "TURNEY", "TURPIN", "TUTTLE", "TYLER", "TYNER", "TYREE", "TYSON", - "ULRICH", "UNDERHILL", "UNDERWOOD", "UNGER", "UPCHURCH", "UPSHAW", "UPTON", "URBAN", "URBINA", "URIBE", - "USHER", "UTLEY", "VAIL", "VALADEZ", "VALDES", "VALDEZ", "VALENCIA", "VALENTI", "VALENTIN", "VALENTINE", - "VALENZUELA", "VALERIO", "VALLE", "VALLEJO", "VALLES", "VAN", "VANBUREN", "VANCE", "VANDIVER", "VANDYKE", - "VANG", "VANHOOSE", "VANHORN", "VANMETER", "VANN", "VANOVER", "VANWINKLE", "VARELA", "VARGAS", "VARNER", - "VARNEY", "VASQUEZ", "VAUGHAN", "VAUGHN", "VAUGHT", "VAZQUEZ", "VEAL", "VEGA", "VELA", "VELASCO", - "VELASQUEZ", "VELAZQUEZ", "VELEZ", "VENABLE", "VENEGAS", "VENTURA", "VERA", "VERDIN", "VERGARA", "VERNON", - "VEST", "VETTER", "VICK", "VICKERS", "VICKERY", "VICTOR", "VIDAL", "VIEIRA", "VIERA", "VIGIL", "VILLA", - "VILLALOBOS", "VILLANUEVA", "VILLAREAL", "VILLARREAL", "VILLASENOR", "VILLEGAS", "VINCENT", "VINES", - "VINSON", "VITALE", "VO", "VOGEL", "VOGT", "VOSS", "VU", "VUE", "WADDELL", "WADE", "WADSWORTH", "WAGGONER", - "WAGNER", "WAGONER", "WAHL", "WAITE", "WAKEFIELD", "WALDEN", "WALDRON", "WALDROP", "WALKER", "WALL", - "WALLACE", "WALLEN", "WALLER", "WALLING", "WALLIS", "WALLS", "WALSH", "WALSTON", "WALTER", "WALTERS", - "WALTON", "WAMPLER", "WANG", "WARD", "WARDEN", "WARE", "WARFIELD", "WARNER", "WARREN", "WASHBURN", - "WASHINGTON", "WASSON", "WATERMAN", "WATERS", "WATKINS", "WATSON", "WATT", "WATTERS", "WATTS", "WAUGH", - "WAY", "WAYNE", "WEATHERFORD", "WEATHERLY", "WEATHERS", "WEAVER", "WEBB", "WEBBER", "WEBER", "WEBSTER", - "WEDDLE", "WEED", "WEEKS", "WEEMS", "WEINBERG", "WEINER", "WEINSTEIN", "WEIR", "WEIS", "WEISS", "WELCH", - "WELDON", "WELKER", "WELLER", "WELLMAN", "WELLS", "WELSH", "WENDT", "WENGER", "WENTWORTH", "WENTZ", - "WENZEL", "WERNER", "WERTZ", "WESLEY", "WEST", "WESTBROOK", "WESTER", "WESTFALL", "WESTMORELAND", "WESTON", - "WETZEL", "WHALEN", "WHALEY", "WHARTON", "WHATLEY", "WHEAT", "WHEATLEY", "WHEATON", "WHEELER", "WHELAN", - "WHIPPLE", "WHITAKER", "WHITCOMB", "WHITE", "WHITED", "WHITEHEAD", "WHITEHURST", "WHITEMAN", "WHITESIDE", - "WHITFIELD", "WHITING", "WHITLEY", "WHITLOCK", "WHITLOW", "WHITMAN", "WHITMIRE", "WHITMORE", "WHITNEY", - "WHITSON", "WHITT", "WHITTAKER", "WHITTEN", "WHITTINGTON", "WHITTLE", "WHITWORTH", "WHYTE", "WICK", - "WICKER", "WICKHAM", "WICKS", "WIESE", "WIGGINS", "WILBANKS", "WILBER", "WILBUR", "WILBURN", "WILCOX", - "WILD", "WILDE", "WILDER", "WILES", "WILEY", "WILHELM", "WILHITE", "WILKE", "WILKERSON", "WILKES", - "WILKINS", "WILKINSON", "WILKS", "WILL", "WILLARD", "WILLETT", "WILLEY", "WILLIAM", "WILLIAMS", - "WILLIAMSON", "WILLIFORD", "WILLINGHAM", "WILLIS", "WILLOUGHBY", "WILLS", "WILLSON", "WILMOTH", "WILSON", - "WILT", "WIMBERLY", "WINCHESTER", "WINDHAM", "WINFIELD", "WINFREY", "WING", "WINGATE", "WINGFIELD", - "WINKLER", "WINN", "WINSLOW", "WINSTEAD", "WINSTON", "WINTER", "WINTERS", "WIRTH", "WISE", "WISEMAN", - "WISNIEWSKI", "WITCHER", "WITHERS", "WITHERSPOON", "WITHROW", "WITT", "WITTE", "WOFFORD", "WOLF", "WOLFE", - "WOLFF", "WOLFORD", "WOMACK", "WONG", "WOO", "WOOD", "WOODALL", "WOODARD", "WOODBURY", "WOODCOCK", "WOODEN", - "WOODLEY", "WOODRUFF", "WOODS", "WOODSON", "WOODWARD", "WOODWORTH", "WOODY", "WOOLDRIDGE", "WOOLEY", - "WOOTEN", "WORD", "WORDEN", "WORKMAN", "WORLEY", "WORRELL", "WORSHAM", "WORTH", "WORTHAM", "WORTHINGTON", - "WORTHY", "WRAY", "WREN", "WRIGHT", "WU", "WYANT", "WYATT", "WYLIE", "WYMAN", "WYNN", "WYNNE", "XIONG", - "YAMAMOTO", "YANCEY", "YANEZ", "YANG", "YARBROUGH", "YATES", "YAZZIE", "YBARRA", "YEAGER", "YEE", "YI", - "YOCUM", "YODER", "YOO", "YOON", "YORK", "YOST", "YOUNG", "YOUNGBLOOD", "YOUNGER", "YOUNT", "YU", - "ZAMBRANO", "ZAMORA", "ZAPATA", "ZARAGOZA", "ZARATE", "ZAVALA", "ZEIGLER", "ZELLER", "ZEPEDA", "ZHANG", - "ZIEGLER", "ZIELINSKI", "ZIMMER", "ZIMMERMAN", "ZINK", "ZOOK", "ZUNIGA" }; - } + public static String generateRandomName() { + String first, last; - public static String generateRandomName() { - String first, last; - - boolean isScottish = (MathUtils.randInt(0, 10) >= 9); - - if (isScottish) { - first = mScottishFirstNames[MathUtils.randInt(0, mScottishFirstNames.length - 1)].toLowerCase(); - } - else { - first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase(); - } - - last = mLastNames[MathUtils.randInt(0, mLastNames.length - 1)].toLowerCase(); - if (first.equalsIgnoreCase(last)) { - while (first.equalsIgnoreCase(last)) - first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase(); - } - first = StringUtils.capitalize(first); - last = StringUtils.capitalize(last); - return first + " " + last; + boolean isScottish = (MathUtils.randInt(0, 10) >= 9); - } + if (isScottish) { + first = mScottishFirstNames[MathUtils.randInt(0, mScottishFirstNames.length - 1)].toLowerCase(); + } else { + first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase(); + } + last = mLastNames[MathUtils.randInt(0, mLastNames.length - 1)].toLowerCase(); + if (first.equalsIgnoreCase(last)) { + while (first.equalsIgnoreCase(last)) + first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase(); + } + first = StringUtils.capitalize(first); + last = StringUtils.capitalize(last); + return first + " " + last; + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java b/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java index b515f0979e..160b384150 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java @@ -2,46 +2,40 @@ package gtPlusPlus.plugin.villagers; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.plugin.villagers.entity.EntityBaseVillager; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.passive.EntityVillager; -import net.minecraft.world.World; import net.minecraftforge.event.entity.EntityJoinWorldEvent; public class VillagerEventHandler { - private final static VillagerEventHandler mInstance; - - static { - mInstance = new VillagerEventHandler(); - Utils.registerEvent(mInstance); - } - - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event){ - - - /*try { - if (event.entity != null && event.entity instanceof EntityLivingBase && event.entity instanceof EntityVillager){ - EntityVillager entity = (EntityVillager) event.entity; - World world = entity.worldObj; - int profession = entity.getProfession(); - if (world != null && (profession >= 7735 && profession <= 7737)){ - EntityBaseVillager mNew = new EntityBaseVillager(world, profession); - mNew.copyLocationAndAnglesFrom(entity); - if (mNew != null) { - world.removeEntity(entity); - world.spawnEntityInWorld(mNew); - } - } - - } - } - catch (Throwable t) { - t.printStackTrace(); - return; - }*/ - - } - + private static final VillagerEventHandler mInstance; + + static { + mInstance = new VillagerEventHandler(); + Utils.registerEvent(mInstance); + } + + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) { + + /*try { + if (event.entity != null && event.entity instanceof EntityLivingBase && event.entity instanceof EntityVillager){ + EntityVillager entity = (EntityVillager) event.entity; + World world = entity.worldObj; + int profession = entity.getProfession(); + if (world != null && (profession >= 7735 && profession <= 7737)){ + EntityBaseVillager mNew = new EntityBaseVillager(world, profession); + mNew.copyLocationAndAnglesFrom(entity); + if (mNew != null) { + world.removeEntity(entity); + world.spawnEntityInWorld(mNew); + } + } + + } + } + catch (Throwable t) { + t.printStackTrace(); + return; + }*/ + + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java b/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java index a5587a1b52..ad49741726 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java @@ -7,34 +7,38 @@ import net.minecraft.util.ResourceLocation; public class VillagerObject { - public final int mID; - public final String mName; - public final IVillageTradeHandler mCustomTrade; - - - public VillagerObject(int aID, String aName, Object aProfession, Object aCareer, Object aSkin, IVillageTradeHandler aCustomTrade) { - - mID = aID; - mName = aName; - mCustomTrade = aCustomTrade; - - //Register Custom Trade to Registry. - if (aCustomTrade != null) { - Core_VillagerAdditions.mVillagerTrades.put(new Pair<Integer, IVillageTradeHandler>(7735+aID, aCustomTrade)); - } - //Register Skin to Registry. - if (aSkin != null) { - - if (aSkin instanceof String) { - String s = (String) aSkin; - aSkin = new ResourceLocation(CORE.MODID+":"+"textures/entity/villager/"+s+".png"); - } - if (aSkin instanceof ResourceLocation) { - Core_VillagerAdditions.mVillagerSkins.put(aID, (ResourceLocation) aSkin); - } - - } - VillagerUtils.registerNewVillager(aID, this); - } - + public final int mID; + public final String mName; + public final IVillageTradeHandler mCustomTrade; + + public VillagerObject( + int aID, + String aName, + Object aProfession, + Object aCareer, + Object aSkin, + IVillageTradeHandler aCustomTrade) { + + mID = aID; + mName = aName; + mCustomTrade = aCustomTrade; + + // Register Custom Trade to Registry. + if (aCustomTrade != null) { + Core_VillagerAdditions.mVillagerTrades.put( + new Pair<Integer, IVillageTradeHandler>(7735 + aID, aCustomTrade)); + } + // Register Skin to Registry. + if (aSkin != null) { + + if (aSkin instanceof String) { + String s = (String) aSkin; + aSkin = new ResourceLocation(CORE.MODID + ":" + "textures/entity/villager/" + s + ".png"); + } + if (aSkin instanceof ResourceLocation) { + Core_VillagerAdditions.mVillagerSkins.put(aID, (ResourceLocation) aSkin); + } + } + VillagerUtils.registerNewVillager(aID, this); + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java b/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java index f252ad068d..abdb16721c 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java @@ -1,23 +1,23 @@ package gtPlusPlus.plugin.villagers; -import java.util.HashMap; - import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; +import java.util.HashMap; public class VillagerUtils { - public static final HashMap<Integer, VillagerObject> mVillagerMap = new HashMap<Integer, VillagerObject>(); - - public static void registerNewVillager(int aID, String aName, Object aProfession, Object aCareer, Object aSkin, IVillageTradeHandler aCustomTrade) { - registerNewVillager(aID, new VillagerObject(aID, aName, aProfession, aCareer, aSkin, aCustomTrade)); - } - - public static void registerNewVillager(int aID, VillagerObject aVillager) { - mVillagerMap.put(aID, aVillager); - } + public static final HashMap<Integer, VillagerObject> mVillagerMap = new HashMap<Integer, VillagerObject>(); + + public static void registerNewVillager( + int aID, + String aName, + Object aProfession, + Object aCareer, + Object aSkin, + IVillageTradeHandler aCustomTrade) { + registerNewVillager(aID, new VillagerObject(aID, aName, aProfession, aCareer, aSkin, aCustomTrade)); + } - - - - + public static void registerNewVillager(int aID, VillagerObject aVillager) { + mVillagerMap.put(aID, aVillager); + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java b/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java index 916f360012..82650fbd70 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java @@ -2,14 +2,13 @@ package gtPlusPlus.plugin.villagers.block; import static gtPlusPlus.core.lib.CORE.RANDOM; -import java.util.List; - import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.core.item.base.itemblock.ItemBlockSpawner; import gtPlusPlus.plugin.villagers.Core_VillagerAdditions; import gtPlusPlus.plugin.villagers.tile.TileEntityGenericSpawner; +import java.util.List; import net.minecraft.block.BlockMobSpawner; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @@ -19,42 +18,38 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockGenericSpawner extends BlockMobSpawner { - - public BlockGenericSpawner() { - this.disableStats(); - this.setHardness(5.0F); - this.setStepSound(soundTypeMetal); - this.setBlockName("blockMobSpawnerEx"); - this.setBlockTextureName("mob_spawner"); - this.setResistance(2000.0F); - GameRegistry.registerBlock(this, ItemBlockSpawner.class, "blockMobSpawnerEx"); - Core_VillagerAdditions.mInstance.log("Registered Custom Spawner Block."); - } - - /** + + public BlockGenericSpawner() { + this.disableStats(); + this.setHardness(5.0F); + this.setStepSound(soundTypeMetal); + this.setBlockName("blockMobSpawnerEx"); + this.setBlockTextureName("mob_spawner"); + this.setResistance(2000.0F); + GameRegistry.registerBlock(this, ItemBlockSpawner.class, "blockMobSpawnerEx"); + Core_VillagerAdditions.mInstance.log("Registered Custom Spawner Block."); + } + + /** * Returns a new instance of a block's tile entity class. Called on placing the block. */ @Override - public TileEntity createNewTileEntity(World world, int meta) - { + public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityGenericSpawner(meta); } - + @Override - public int getExpDrop(IBlockAccess world, int metadata, int fortune){ + public int getExpDrop(IBlockAccess world, int metadata, int fortune) { return 15 + RANDOM.nextInt(15) + RANDOM.nextInt(15); } - + /** * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) */ @SideOnly(Side.CLIENT) - public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_) - { - for (int i = 0; i < Math.max(1,TileEntityGenericSpawner.mSpawners.size()); ++i) - { + public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_) { + for (int i = 0; i < Math.max(1, TileEntityGenericSpawner.mSpawners.size()); ++i) { p_149666_3_.add(new ItemStack(p_149666_1_, 1, i)); } } - } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java index c29aadb16b..655d1c567c 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java @@ -1,15 +1,14 @@ package gtPlusPlus.plugin.villagers.entity; -import java.lang.reflect.Field; -import java.util.Collections; -import java.util.Iterator; -import java.util.Random; - import cpw.mods.fml.common.registry.VillagerRegistry; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.plugin.villagers.NameLists; +import java.lang.reflect.Field; +import java.util.Collections; +import java.util.Iterator; +import java.util.Random; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentData; import net.minecraft.enchantment.EnchantmentHelper; @@ -30,509 +29,541 @@ import net.minecraft.world.World; public class EntityBaseVillager extends EntityVillager { - // public static final VillagerProfession mProfession; - - /* - * - * Your problem is that you are extending EntityVillager, but buyingList and - * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot - * use or override them without Reflection or ASM. - * - * What you can do, however, is override getRecipes to return your own list, but - * because you override EntityVillager, your mob is still using the villager's - * buyingList (which is NULL) when useRecipe or any other villager method is - * called. You either have to override every method from EntityVillager which - * interacts with buyingList and make it use your own list, or you need to not - * extend EntityVillager and just implement IMerchant instead. - */ - - private final int mRoleID; - - public EntityBaseVillager(World aWorld){ - this(aWorld, 0); - } - - public EntityBaseVillager(World aWorld, int aID) { - super(aWorld, aID); - mRoleID = aID; - } - - @Override - public void writeEntityToNBT(NBTTagCompound aNBT) { - if (this.hasCustomNameTag()) { - if (!aNBT.hasKey("aCustomName")) { - aNBT.setString("aCustomName", this.getCommandSenderName()); - } - } - super.writeEntityToNBT(aNBT); - } - - @Override - public void readEntityFromNBT(NBTTagCompound aNBT) { - if (aNBT.hasKey("aCustomName")) { - if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) { - this.setCustomNameTag(aNBT.getString("aCustomName")); - } - } - super.readEntityFromNBT(aNBT); - } - - @Override - public void writeToNBT(NBTTagCompound aNBT) { - // TODO Auto-generated method stub - super.writeToNBT(aNBT); - } - - @Override - public void readFromNBT(NBTTagCompound aNBT) { - // TODO Auto-generated method stub - super.readFromNBT(aNBT); - } - - @Override - protected boolean canDespawn() { - return !this.hasCustomNameTag(); - } - - @Override - public void setProfession(int p_70938_1_) { - super.setProfession(p_70938_1_); - } - - @Override - public int getProfession() { - int prof = super.getProfession(); - //Logger.INFO(""+mRoleID); - return prof < 7735 ? 7738 : prof; - } - - @Override - public void useRecipe(MerchantRecipe p_70933_1_) { - super.useRecipe(p_70933_1_); - } - - @Override - public void setRecipes(MerchantRecipeList p_70930_1_) { - super.setRecipes(p_70930_1_); - } - - public boolean shouldAlwaysSprint() { - return false; - }; - - @Override - public void onLivingUpdate() { - - // Set Custom Name - if (!this.hasCustomNameTag()) { - this.setCustomNameTag(NameLists.generateRandomName()); - } - - super.onLivingUpdate(); - - // Make these guys always sprint - if (shouldAlwaysSprint()) { - if (!this.isSprinting()) { - this.setSprinting(true); - } - } - else { - if (this.isSprinting()) { - this.setSprinting(false); - } - } - - } - - @Override - public Entity getEntityToAttack() { - return super.getEntityToAttack(); - } - - @Override - public boolean getAlwaysRenderNameTag() { - return hasCustomNameTag(); - } - - @Override - public Random getRNG() { - return CORE.RANDOM; - } - - @Override - public void setSprinting(boolean bool) { - super.setSprinting(bool); - } - - /** - * Custom Shit - */ - - protected float getField_82191_bN() { - Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN"); - try { - return v82191 != null ? v82191.getFloat(this) : 0f; - } catch (IllegalArgumentException | IllegalAccessException e) { - return 0f; - } - } - - protected void setField_82191_bN(float f) { - try { - ReflectionUtils.setField(this, "field_82191_bN", f); - } catch (IllegalArgumentException e) { - } - } - - protected boolean getNeedsInitilization() { - Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization"); - try { - return v82191 != null ? v82191.getBoolean(this) : false; - } catch (IllegalArgumentException | IllegalAccessException e) { - return false; - } - } - - protected void setNeedsInitilization(boolean f) { - try { - ReflectionUtils.setField(this, "needsInitilization", f); - } catch (IllegalArgumentException e) { - } - } - - protected MerchantRecipeList getBuyingList() { - Field v82191; - MerchantRecipeList o = null; - v82191 = ReflectionUtils.getField(getClass(), "buyingList"); - try { - if (v82191 != null) - o = (MerchantRecipeList) v82191.get(this); - Logger.WARNING("Is BuyingList Valid? " + (v82191 != null)); - return v82191 != null ? o : null; - } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); - return null; - } - - } - - protected void setBuyingList(MerchantRecipeList f) { - try { - Logger.WARNING("set BuyingList? "+(ReflectionUtils.setField(this, "buyingList", f))); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } - } - - protected Village getVillageObject() { - Field v82191 = ReflectionUtils.getField(getClass(), "villageObj"); - try { - return v82191 != null ? (Village) v82191.get(this) : null; - } catch (IllegalArgumentException | IllegalAccessException e) { - return null; - } - } - - protected String getLastBuyingPlayer() { - Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer"); - try { - return v82191 != null ? (String) v82191.get(this) : ""; - } catch (IllegalArgumentException | IllegalAccessException e) { - return ""; - } - } - - public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) { - if (getBuyingList() == null) { - this.addDefaultEquipmentAndRecipies(1); - } - return getBuyingList(); - } - - /** - * Adjusts the probability of obtaining a given recipe being offered by a - * villager - */ - private float adjustProbability(float p_82188_1_) { - float f1 = p_82188_1_ + getField_82191_bN(); - return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1; - } - - /** - * based on the villagers profession add items, equipment, and recipies adds - * par1 random items to the list of things that the villager wants to buy. (at - * most 1 of each wanted type is added) - */ - private void addDefaultEquipmentAndRecipies(int p_70950_1_) { - if (this.getBuyingList() != null) { - setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F); - } else { - setField_82191_bN(0.0F); - } - - MerchantRecipeList merchantrecipelist; - merchantrecipelist = new MerchantRecipeList(); - VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand); - int k; - label50: - - switch (this.getProfession()) { - case 0: - addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F)); - addPurchaseRecipe(merchantrecipelist, Item.getItemFromBlock(Blocks.wool), this.rand, - this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F)); - addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F)); - addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F)); - - if (this.rand.nextFloat() < this.adjustProbability(0.5F)) { - merchantrecipelist.add(new MerchantRecipe(new ItemStack(Blocks.gravel, 10), - new ItemStack(Items.emerald), new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0))); - } - - break; - case 1: - addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F)); - addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F)); - addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.bookshelf), this.rand, - this.adjustProbability(0.8F)); - addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glass), this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F)); - - if (this.rand.nextFloat() < this.adjustProbability(0.07F)) { - Enchantment enchantment = Enchantment.enchantmentsBookList[this.rand - .nextInt(Enchantment.enchantmentsBookList.length)]; - int i1 = MathHelper.getRandomIntegerInRange(this.rand, enchantment.getMinLevel(), - enchantment.getMaxLevel()); - ItemStack itemstack = Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1)); - k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1; - merchantrecipelist - .add(new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack)); - } - - break; - case 2: - addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F)); - addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glowstone), this.rand, - this.adjustProbability(0.3F)); - Item[] aitem = new Item[] { Items.iron_sword, Items.diamond_sword, Items.iron_chestplate, - Items.diamond_chestplate, Items.iron_axe, Items.diamond_axe, Items.iron_pickaxe, - Items.diamond_pickaxe }; - Item[] aitem1 = aitem; - int j = aitem.length; - k = 0; - - while (true) { - if (k >= j) { - break label50; - } - - Item item = aitem1[k]; - - if (this.rand.nextFloat() < this.adjustProbability(0.05F)) { - merchantrecipelist.add(new MerchantRecipe(new ItemStack(item, 1, 0), - new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0), - EnchantmentHelper.addRandomEnchantment(this.rand, new ItemStack(item, 1, 0), - 5 + this.rand.nextInt(15)))); - } - - ++k; - } - case 3: - addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); - addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F)); - break; - case 4: - addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); - addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F)); - } - - if (merchantrecipelist.isEmpty()) { - addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F); - } - - Collections.shuffle(merchantrecipelist); - - if (this.getBuyingList() == null) { - this.setBuyingList(new MerchantRecipeList()); - } - - for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) { - try { - this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l)); - } - catch (Throwable t) { - Logger.INFO("Villager with ID "+this.entityUniqueID.toString()+" at | X: "+this.posX+" Y: "+this.posY+" Z: "+this.posZ+" may have corrupt trades, it is advised to remove/kill it."); - } - } - - try { - if (this.getBuyingList() != null) { - for (Object g : this.getBuyingList()) { - if (g != null) { - if (g instanceof MerchantRecipe) { - MerchantRecipe m = (MerchantRecipe) g; - ItemStack selling = m.getItemToSell(); - ItemStack[] buying = new ItemStack[] {m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null}; - if (selling == null) { - Logger.WARNING("Villager is Selling an invalid item"); - } - else if (buying[0] == null && buying[1] == null) { - Logger.WARNING("Villager is buying two invalid items"); - } - else { - Logger.WARNING("Villager is Selling x"+selling.stackSize+selling.getDisplayName()+" for x"+buying[0].stackSize+" "+buying[0].getDisplayName()+buying[1] != null ? " and for x"+buying[1].stackSize+" "+buying[1].getDisplayName() : ""); - } - } - else - Logger.WARNING("Found: "+g.getClass().getName()); - } - } - } - else { - - } - } - catch (Throwable t) { - - } - - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - @Override - protected void updateAITick() { - if (!this.isTrading()) { - if (this.getNeedsInitilization()) { - if (this.getBuyingList().size() > 1) { - Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator(); - - while (iterator.hasNext()) { - MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next(); - - if (merchantrecipe.isRecipeDisabled()) { - merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2); - } - } - } - - this.addDefaultEquipmentAndRecipies(1); - this.setNeedsInitilization(false); - - if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) { - this.worldObj.setEntityState(this, (byte) 14); - this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1); - } - } - } - super.updateAITick(); - } - - public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - int i = getLootAmount_BlacksmithSellingList(aItem, aRand); - ItemStack itemstack; - ItemStack itemstack1; - - if (i < 0) { - itemstack = new ItemStack(Items.emerald, 1, 0); - itemstack1 = new ItemStack(aItem, -i, 0); - } else { - itemstack = new ItemStack(Items.emerald, i, 0); - itemstack1 = new ItemStack(aItem, 1, 0); - } - - aRecipeList.add(new MerchantRecipe(itemstack, itemstack1)); - } - } - - public static void addCustomTrade(MerchantRecipeList aRecipeList, ItemStack aItem1, ItemStack aItem2, ItemStack aItem3, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3)); - } - } - - private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) { - Tuple tuple = (Tuple) blacksmithSellingList.get(aItem); - return tuple == null ? 1 - : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() - ? ((Integer) tuple.getFirst()).intValue() - : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt( - ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue())); - } - - public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald)); - } - } - - private static ItemStack getSimpleLootStack(Item aItem, Random aRand) { - return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0); - } - - public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald)); - } - } - - private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) { - return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta); - } - - private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) { - Tuple tuple = (Tuple) villagersSellingList.get(aItem); - return tuple == null ? 1 - : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() - ? ((Integer) tuple.getFirst()).intValue() - : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt( - ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue())); - } - + // public static final VillagerProfession mProfession; + + /* + * + * Your problem is that you are extending EntityVillager, but buyingList and + * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot + * use or override them without Reflection or ASM. + * + * What you can do, however, is override getRecipes to return your own list, but + * because you override EntityVillager, your mob is still using the villager's + * buyingList (which is NULL) when useRecipe or any other villager method is + * called. You either have to override every method from EntityVillager which + * interacts with buyingList and make it use your own list, or you need to not + * extend EntityVillager and just implement IMerchant instead. + */ + + private final int mRoleID; + + public EntityBaseVillager(World aWorld) { + this(aWorld, 0); + } + + public EntityBaseVillager(World aWorld, int aID) { + super(aWorld, aID); + mRoleID = aID; + } + + @Override + public void writeEntityToNBT(NBTTagCompound aNBT) { + if (this.hasCustomNameTag()) { + if (!aNBT.hasKey("aCustomName")) { + aNBT.setString("aCustomName", this.getCommandSenderName()); + } + } + super.writeEntityToNBT(aNBT); + } + + @Override + public void readEntityFromNBT(NBTTagCompound aNBT) { + if (aNBT.hasKey("aCustomName")) { + if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) { + this.setCustomNameTag(aNBT.getString("aCustomName")); + } + } + super.readEntityFromNBT(aNBT); + } + + @Override + public void writeToNBT(NBTTagCompound aNBT) { + // TODO Auto-generated method stub + super.writeToNBT(aNBT); + } + + @Override + public void readFromNBT(NBTTagCompound aNBT) { + // TODO Auto-generated method stub + super.readFromNBT(aNBT); + } + + @Override + protected boolean canDespawn() { + return !this.hasCustomNameTag(); + } + + @Override + public void setProfession(int p_70938_1_) { + super.setProfession(p_70938_1_); + } + + @Override + public int getProfession() { + int prof = super.getProfession(); + // Logger.INFO(""+mRoleID); + return prof < 7735 ? 7738 : prof; + } + + @Override + public void useRecipe(MerchantRecipe p_70933_1_) { + super.useRecipe(p_70933_1_); + } + + @Override + public void setRecipes(MerchantRecipeList p_70930_1_) { + super.setRecipes(p_70930_1_); + } + + public boolean shouldAlwaysSprint() { + return false; + } + ; + + @Override + public void onLivingUpdate() { + + // Set Custom Name + if (!this.hasCustomNameTag()) { + this.setCustomNameTag(NameLists.generateRandomName()); + } + + super.onLivingUpdate(); + + // Make these guys always sprint + if (shouldAlwaysSprint()) { + if (!this.isSprinting()) { + this.setSprinting(true); + } + } else { + if (this.isSprinting()) { + this.setSprinting(false); + } + } + } + + @Override + public Entity getEntityToAttack() { + return super.getEntityToAttack(); + } + + @Override + public boolean getAlwaysRenderNameTag() { + return hasCustomNameTag(); + } + + @Override + public Random getRNG() { + return CORE.RANDOM; + } + + @Override + public void setSprinting(boolean bool) { + super.setSprinting(bool); + } + + /** + * Custom Shit + */ + protected float getField_82191_bN() { + Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN"); + try { + return v82191 != null ? v82191.getFloat(this) : 0f; + } catch (IllegalArgumentException | IllegalAccessException e) { + return 0f; + } + } + + protected void setField_82191_bN(float f) { + try { + ReflectionUtils.setField(this, "field_82191_bN", f); + } catch (IllegalArgumentException e) { + } + } + + protected boolean getNeedsInitilization() { + Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization"); + try { + return v82191 != null ? v82191.getBoolean(this) : false; + } catch (IllegalArgumentException | IllegalAccessException e) { + return false; + } + } + + protected void setNeedsInitilization(boolean f) { + try { + ReflectionUtils.setField(this, "needsInitilization", f); + } catch (IllegalArgumentException e) { + } + } + + protected MerchantRecipeList getBuyingList() { + Field v82191; + MerchantRecipeList o = null; + v82191 = ReflectionUtils.getField(getClass(), "buyingList"); + try { + if (v82191 != null) o = (MerchantRecipeList) v82191.get(this); + Logger.WARNING("Is BuyingList Valid? " + (v82191 != null)); + return v82191 != null ? o : null; + } catch (IllegalArgumentException | IllegalAccessException e) { + e.printStackTrace(); + return null; + } + } + + protected void setBuyingList(MerchantRecipeList f) { + try { + Logger.WARNING("set BuyingList? " + (ReflectionUtils.setField(this, "buyingList", f))); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } + } + + protected Village getVillageObject() { + Field v82191 = ReflectionUtils.getField(getClass(), "villageObj"); + try { + return v82191 != null ? (Village) v82191.get(this) : null; + } catch (IllegalArgumentException | IllegalAccessException e) { + return null; + } + } + + protected String getLastBuyingPlayer() { + Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer"); + try { + return v82191 != null ? (String) v82191.get(this) : ""; + } catch (IllegalArgumentException | IllegalAccessException e) { + return ""; + } + } + + public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) { + if (getBuyingList() == null) { + this.addDefaultEquipmentAndRecipies(1); + } + return getBuyingList(); + } + + /** + * Adjusts the probability of obtaining a given recipe being offered by a + * villager + */ + private float adjustProbability(float p_82188_1_) { + float f1 = p_82188_1_ + getField_82191_bN(); + return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1; + } + + /** + * based on the villagers profession add items, equipment, and recipies adds + * par1 random items to the list of things that the villager wants to buy. (at + * most 1 of each wanted type is added) + */ + private void addDefaultEquipmentAndRecipies(int p_70950_1_) { + if (this.getBuyingList() != null) { + setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F); + } else { + setField_82191_bN(0.0F); + } + + MerchantRecipeList merchantrecipelist; + merchantrecipelist = new MerchantRecipeList(); + VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand); + int k; + label50: + switch (this.getProfession()) { + case 0: + addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F)); + addPurchaseRecipe( + merchantrecipelist, + Item.getItemFromBlock(Blocks.wool), + this.rand, + this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F)); + addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F)); + addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F)); + + if (this.rand.nextFloat() < this.adjustProbability(0.5F)) { + merchantrecipelist.add(new MerchantRecipe( + new ItemStack(Blocks.gravel, 10), + new ItemStack(Items.emerald), + new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0))); + } + + break; + case 1: + addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F)); + addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F)); + addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade( + merchantrecipelist, + Item.getItemFromBlock(Blocks.bookshelf), + this.rand, + this.adjustProbability(0.8F)); + addEmeraldTrade( + merchantrecipelist, + Item.getItemFromBlock(Blocks.glass), + this.rand, + this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F)); + + if (this.rand.nextFloat() < this.adjustProbability(0.07F)) { + Enchantment enchantment = Enchantment.enchantmentsBookList[ + this.rand.nextInt(Enchantment.enchantmentsBookList.length)]; + int i1 = MathHelper.getRandomIntegerInRange( + this.rand, enchantment.getMinLevel(), enchantment.getMaxLevel()); + ItemStack itemstack = + Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1)); + k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1; + merchantrecipelist.add( + new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack)); + } + + break; + case 2: + addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F)); + addEmeraldTrade( + merchantrecipelist, + Item.getItemFromBlock(Blocks.glowstone), + this.rand, + this.adjustProbability(0.3F)); + Item[] aitem = new Item[] { + Items.iron_sword, + Items.diamond_sword, + Items.iron_chestplate, + Items.diamond_chestplate, + Items.iron_axe, + Items.diamond_axe, + Items.iron_pickaxe, + Items.diamond_pickaxe + }; + Item[] aitem1 = aitem; + int j = aitem.length; + k = 0; + + while (true) { + if (k >= j) { + break label50; + } + + Item item = aitem1[k]; + + if (this.rand.nextFloat() < this.adjustProbability(0.05F)) { + merchantrecipelist.add(new MerchantRecipe( + new ItemStack(item, 1, 0), + new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0), + EnchantmentHelper.addRandomEnchantment( + this.rand, new ItemStack(item, 1, 0), 5 + this.rand.nextInt(15)))); + } + + ++k; + } + case 3: + addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); + addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade( + merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F)); + break; + case 4: + addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); + addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F)); + } + + if (merchantrecipelist.isEmpty()) { + addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F); + } + + Collections.shuffle(merchantrecipelist); + + if (this.getBuyingList() == null) { + this.setBuyingList(new MerchantRecipeList()); + } + + for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) { + try { + this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l)); + } catch (Throwable t) { + Logger.INFO("Villager with ID " + this.entityUniqueID.toString() + " at | X: " + this.posX + " Y: " + + this.posY + " Z: " + this.posZ + + " may have corrupt trades, it is advised to remove/kill it."); + } + } + + try { + if (this.getBuyingList() != null) { + for (Object g : this.getBuyingList()) { + if (g != null) { + if (g instanceof MerchantRecipe) { + MerchantRecipe m = (MerchantRecipe) g; + ItemStack selling = m.getItemToSell(); + ItemStack[] buying = new ItemStack[] { + m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null + }; + if (selling == null) { + Logger.WARNING("Villager is Selling an invalid item"); + } else if (buying[0] == null && buying[1] == null) { + Logger.WARNING("Villager is buying two invalid items"); + } else { + Logger.WARNING( + "Villager is Selling x" + selling.stackSize + selling.getDisplayName() + + " for x" + buying[0].stackSize + " " + + buying[0].getDisplayName() + buying[1] + != null + ? " and for x" + buying[1].stackSize + " " + buying[1].getDisplayName() + : ""); + } + } else Logger.WARNING("Found: " + g.getClass().getName()); + } + } + } else { + + } + } catch (Throwable t) { + + } + } + + /** + * main AI tick function, replaces updateEntityActionState + */ + @Override + protected void updateAITick() { + if (!this.isTrading()) { + if (this.getNeedsInitilization()) { + if (this.getBuyingList().size() > 1) { + Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator(); + + while (iterator.hasNext()) { + MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next(); + + if (merchantrecipe.isRecipeDisabled()) { + merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2); + } + } + } + + this.addDefaultEquipmentAndRecipies(1); + this.setNeedsInitilization(false); + + if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) { + this.worldObj.setEntityState(this, (byte) 14); + this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1); + } + } + } + super.updateAITick(); + } + + public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) { + if (aRand.nextFloat() < aChance) { + int i = getLootAmount_BlacksmithSellingList(aItem, aRand); + ItemStack itemstack; + ItemStack itemstack1; + + if (i < 0) { + itemstack = new ItemStack(Items.emerald, 1, 0); + itemstack1 = new ItemStack(aItem, -i, 0); + } else { + itemstack = new ItemStack(Items.emerald, i, 0); + itemstack1 = new ItemStack(aItem, 1, 0); + } + + aRecipeList.add(new MerchantRecipe(itemstack, itemstack1)); + } + } + + public static void addCustomTrade( + MerchantRecipeList aRecipeList, + ItemStack aItem1, + ItemStack aItem2, + ItemStack aItem3, + Random aRand, + float aChance) { + if (aRand.nextFloat() < aChance) { + aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3)); + } + } + + private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) { + Tuple tuple = (Tuple) blacksmithSellingList.get(aItem); + return tuple == null + ? 1 + : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() + ? ((Integer) tuple.getFirst()).intValue() + : ((Integer) tuple.getFirst()).intValue() + + aRand.nextInt(((Integer) tuple.getSecond()).intValue() + - ((Integer) tuple.getFirst()).intValue())); + } + + public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) { + if (aRand.nextFloat() < aChance) { + aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald)); + } + } + + private static ItemStack getSimpleLootStack(Item aItem, Random aRand) { + return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0); + } + + public static void addPurchaseRecipe( + MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) { + if (aRand.nextFloat() < aChance) { + aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald)); + } + } + + private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) { + return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta); + } + + private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) { + Tuple tuple = (Tuple) villagersSellingList.get(aItem); + return tuple == null + ? 1 + : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() + ? ((Integer) tuple.getFirst()).intValue() + : ((Integer) tuple.getFirst()).intValue() + + aRand.nextInt(((Integer) tuple.getSecond()).intValue() + - ((Integer) tuple.getFirst()).intValue())); + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java index 4f9e2954a4..000d98af0d 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java @@ -1,15 +1,13 @@ package gtPlusPlus.plugin.villagers.entity; -import java.lang.reflect.Field; -import java.util.Collections; -import java.util.Iterator; -import java.util.Random; - import cpw.mods.fml.common.registry.VillagerRegistry; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.reflect.ReflectionUtils; -import gtPlusPlus.plugin.villagers.NameLists; +import java.lang.reflect.Field; +import java.util.Collections; +import java.util.Iterator; +import java.util.Random; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentData; import net.minecraft.enchantment.EnchantmentHelper; @@ -32,494 +30,528 @@ import net.minecraft.world.World; public class EntityNativeAustralian extends EntityVillager { - // public static final VillagerProfession mProfession; - - /* - * - * Your problem is that you are extending EntityVillager, but buyingList and - * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot - * use or override them without Reflection or ASM. - * - * What you can do, however, is override getRecipes to return your own list, but - * because you override EntityVillager, your mob is still using the villager's - * buyingList (which is NULL) when useRecipe or any other villager method is - * called. You either have to override every method from EntityVillager which - * interacts with buyingList and make it use your own list, or you need to not - * extend EntityVillager and just implement IMerchant instead. - */ - - private final int mRoleID; - - public EntityNativeAustralian(World aWorld) { - super(aWorld, 7738); - mRoleID = 7738; - } - - public EntityVillager createChild(EntityAgeable p_90011_1_){ - EntityNativeAustralian entityvillager = new EntityNativeAustralian(this.worldObj); - entityvillager.onSpawnWithEgg((IEntityLivingData)null); - return entityvillager; - } - - public boolean allowLeashing() - { - return true; - } - - @Override - public void writeEntityToNBT(NBTTagCompound aNBT) { - if (this.hasCustomNameTag()) { - if (!aNBT.hasKey("aCustomName")) { - aNBT.setString("aCustomName", this.getCommandSenderName()); - } - } - super.writeEntityToNBT(aNBT); - } - - @Override - public void readEntityFromNBT(NBTTagCompound aNBT) { - if (aNBT.hasKey("aCustomName")) { - if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) { - this.setCustomNameTag(aNBT.getString("aCustomName")); - } - } - super.readEntityFromNBT(aNBT); - } - - @Override - public void writeToNBT(NBTTagCompound aNBT) { - // TODO Auto-generated method stub - super.writeToNBT(aNBT); - } - - @Override - public void readFromNBT(NBTTagCompound aNBT) { - // TODO Auto-generated method stub - super.readFromNBT(aNBT); - } - - @Override - protected boolean canDespawn() { - return !false; - } - - @Override - public void setProfession(int p_70938_1_) { - super.setProfession(7738); - } - - @Override - public int getProfession() { - return mRoleID; - } - - @Override - public void useRecipe(MerchantRecipe p_70933_1_) { - super.useRecipe(p_70933_1_); - } - - @Override - public void setRecipes(MerchantRecipeList p_70930_1_) { - super.setRecipes(p_70930_1_); - } - - public boolean shouldAlwaysSprint() { - return false; - }; - - @Override - public void onLivingUpdate() { - super.onLivingUpdate(); - } - - @Override - public Entity getEntityToAttack() { - return super.getEntityToAttack(); - } - - @Override - public boolean getAlwaysRenderNameTag() { - return hasCustomNameTag(); - } - - @Override - public Random getRNG() { - return CORE.RANDOM; - } - - @Override - public void setSprinting(boolean bool) { - super.setSprinting(bool); - } - - /** - * Custom Shit - */ - - protected float getField_82191_bN() { - Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN"); - try { - return v82191 != null ? v82191.getFloat(this) : 0f; - } catch (IllegalArgumentException | IllegalAccessException e) { - return 0f; - } - } - - protected void setField_82191_bN(float f) { - try { - ReflectionUtils.setField(this, "field_82191_bN", f); - } catch (IllegalArgumentException e) { - } - } - - protected boolean getNeedsInitilization() { - Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization"); - try { - return v82191 != null ? v82191.getBoolean(this) : false; - } catch (IllegalArgumentException | IllegalAccessException e) { - return false; - } - } - - protected void setNeedsInitilization(boolean f) { - try { - ReflectionUtils.setField(this, "needsInitilization", f); - } catch (IllegalArgumentException e) { - } - } - - protected MerchantRecipeList getBuyingList() { - Field v82191; - MerchantRecipeList o = null; - v82191 = ReflectionUtils.getField(getClass(), "buyingList"); - try { - if (v82191 != null) - o = (MerchantRecipeList) v82191.get(this); - Logger.WARNING("Is BuyingList Valid? " + (v82191 != null)); - return v82191 != null ? o : null; - } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); - return null; - } - } - - protected void setBuyingList(MerchantRecipeList f) { - try { - Logger.WARNING("set BuyingList? "+(ReflectionUtils.setField(this, "buyingList", f))); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } - } - - protected Village getVillageObject() { - Field v82191 = ReflectionUtils.getField(getClass(), "villageObj"); - try { - return v82191 != null ? (Village) v82191.get(this) : null; - } catch (IllegalArgumentException | IllegalAccessException e) { - return null; - } - } - - protected String getLastBuyingPlayer() { - Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer"); - try { - return v82191 != null ? (String) v82191.get(this) : ""; - } catch (IllegalArgumentException | IllegalAccessException e) { - return ""; - } - } - - public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) { - if (getBuyingList() == null) { - this.addDefaultEquipmentAndRecipies(1); - } - return getBuyingList(); - } - - /** - * Adjusts the probability of obtaining a given recipe being offered by a - * villager - */ - private float adjustProbability(float p_82188_1_) { - float f1 = p_82188_1_ + getField_82191_bN(); - return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1; - } - - /** - * based on the villagers profession add items, equipment, and recipies adds - * par1 random items to the list of things that the villager wants to buy. (at - * most 1 of each wanted type is added) - */ - private void addDefaultEquipmentAndRecipies(int p_70950_1_) { - if (this.getBuyingList() != null) { - setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F); - } else { - setField_82191_bN(0.0F); - } - - MerchantRecipeList merchantrecipelist; - merchantrecipelist = new MerchantRecipeList(); - VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand); - int k; - label50: - - switch (this.getProfession()) { - case 0: - addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F)); - addPurchaseRecipe(merchantrecipelist, Item.getItemFromBlock(Blocks.wool), this.rand, - this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F)); - addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F)); - addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F)); - - if (this.rand.nextFloat() < this.adjustProbability(0.5F)) { - merchantrecipelist.add(new MerchantRecipe(new ItemStack(Blocks.gravel, 10), - new ItemStack(Items.emerald), new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0))); - } - - break; - case 1: - addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F)); - addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F)); - addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.bookshelf), this.rand, - this.adjustProbability(0.8F)); - addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glass), this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F)); - - if (this.rand.nextFloat() < this.adjustProbability(0.07F)) { - Enchantment enchantment = Enchantment.enchantmentsBookList[this.rand - .nextInt(Enchantment.enchantmentsBookList.length)]; - int i1 = MathHelper.getRandomIntegerInRange(this.rand, enchantment.getMinLevel(), - enchantment.getMaxLevel()); - ItemStack itemstack = Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1)); - k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1; - merchantrecipelist - .add(new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack)); - } - - break; - case 2: - addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F)); - addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glowstone), this.rand, - this.adjustProbability(0.3F)); - Item[] aitem = new Item[] { Items.iron_sword, Items.diamond_sword, Items.iron_chestplate, - Items.diamond_chestplate, Items.iron_axe, Items.diamond_axe, Items.iron_pickaxe, - Items.diamond_pickaxe }; - Item[] aitem1 = aitem; - int j = aitem.length; - k = 0; - - while (true) { - if (k >= j) { - break label50; - } - - Item item = aitem1[k]; - - if (this.rand.nextFloat() < this.adjustProbability(0.05F)) { - merchantrecipelist.add(new MerchantRecipe(new ItemStack(item, 1, 0), - new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0), - EnchantmentHelper.addRandomEnchantment(this.rand, new ItemStack(item, 1, 0), - 5 + this.rand.nextInt(15)))); - } - - ++k; - } - case 3: - addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); - addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F)); - break; - case 4: - addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); - addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F)); - addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F)); - addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F)); - addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F)); - addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F)); - } - - if (merchantrecipelist.isEmpty()) { - addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F); - } - - Collections.shuffle(merchantrecipelist); - - if (this.getBuyingList() == null) { - this.setBuyingList(new MerchantRecipeList()); - } - - for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) { - try { - this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l)); - } - catch (Throwable t) { - Logger.INFO("Villager with ID "+this.entityUniqueID.toString()+" at | X: "+this.posX+" Y: "+this.posY+" Z: "+this.posZ+" may have corrupt trades, it is advised to remove/kill it."); - } - } - - try { - if (this.getBuyingList() != null) { - for (Object g : this.getBuyingList()) { - if (g != null) { - if (g instanceof MerchantRecipe) { - MerchantRecipe m = (MerchantRecipe) g; - ItemStack selling = m.getItemToSell(); - ItemStack[] buying = new ItemStack[] {m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null}; - if (selling == null) { - Logger.WARNING("Villager is Selling an invalid item"); - } - else if (buying[0] == null && buying[1] == null) { - Logger.WARNING("Villager is buying two invalid items"); - } - else { - Logger.WARNING("Villager is Selling x"+selling.stackSize+selling.getDisplayName()+" for x"+buying[0].stackSize+" "+buying[0].getDisplayName()+buying[1] != null ? " and for x"+buying[1].stackSize+" "+buying[1].getDisplayName() : ""); - } - } - else - Logger.WARNING("Found: "+g.getClass().getName()); - } - } - } - else { - - } - } - catch (Throwable t) { - - } - - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - @Override - protected void updateAITick() { - if (!this.isTrading()) { - if (this.getNeedsInitilization()) { - if (this.getBuyingList().size() > 1) { - Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator(); - - while (iterator.hasNext()) { - MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next(); - - if (merchantrecipe.isRecipeDisabled()) { - merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2); - } - } - } - - this.addDefaultEquipmentAndRecipies(1); - this.setNeedsInitilization(false); - - if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) { - this.worldObj.setEntityState(this, (byte) 14); - this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1); - } - } - } - super.updateAITick(); - } - - public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - int i = getLootAmount_BlacksmithSellingList(aItem, aRand); - ItemStack itemstack; - ItemStack itemstack1; - - if (i < 0) { - itemstack = new ItemStack(Items.emerald, 1, 0); - itemstack1 = new ItemStack(aItem, -i, 0); - } else { - itemstack = new ItemStack(Items.emerald, i, 0); - itemstack1 = new ItemStack(aItem, 1, 0); - } - - aRecipeList.add(new MerchantRecipe(itemstack, itemstack1)); - } - } - - public static void addCustomTrade(MerchantRecipeList aRecipeList, ItemStack aItem1, ItemStack aItem2, ItemStack aItem3, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3)); - } - } - - private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) { - Tuple tuple = (Tuple) blacksmithSellingList.get(aItem); - return tuple == null ? 1 - : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() - ? ((Integer) tuple.getFirst()).intValue() - : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt( - ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue())); - } - - public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald)); - } - } - - private static ItemStack getSimpleLootStack(Item aItem, Random aRand) { - return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0); - } - - public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) { - if (aRand.nextFloat() < aChance) { - aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald)); - } - } - - private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) { - return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta); - } - - private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) { - Tuple tuple = (Tuple) villagersSellingList.get(aItem); - return tuple == null ? 1 - : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() - ? ((Integer) tuple.getFirst()).intValue() - : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt( - ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue())); - } - + // public static final VillagerProfession mProfession; + + /* + * + * Your problem is that you are extending EntityVillager, but buyingList and + * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot + * use or override them without Reflection or ASM. + * + * What you can do, however, is override getRecipes to return your own list, but + * because you override EntityVillager, your mob is still using the villager's + * buyingList (which is NULL) when useRecipe or any other villager method is + * called. You either have to override every method from EntityVillager which + * interacts with buyingList and make it use your own list, or you need to not + * extend EntityVillager and just implement IMerchant instead. + */ + + private final int mRoleID; + + public EntityNativeAustralian(World aWorld) { + super(aWorld, 7738); + mRoleID = 7738; + } + + public EntityVillager createChild(EntityAgeable p_90011_1_) { + EntityNativeAustralian entityvillager = new EntityNativeAustralian(this.worldObj); + entityvillager.onSpawnWithEgg((IEntityLivingData) null); + return entityvillager; + } + + public boolean allowLeashing() { + return true; + } + + @Override + public void writeEntityToNBT(NBTTagCompound aNBT) { + if (this.hasCustomNameTag()) { + if (!aNBT.hasKey("aCustomName")) { + aNBT.setString("aCustomName", this.getCommandSenderName()); + } + } + super.writeEntityToNBT(aNBT); + } + + @Override + public void readEntityFromNBT(NBTTagCompound aNBT) { + if (aNBT.hasKey("aCustomName")) { + if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) { + this.setCustomNameTag(aNBT.getString("aCustomName")); + } + } + super.readEntityFromNBT(aNBT); + } + + @Override + public void writeToNBT(NBTTagCompound aNBT) { + // TODO Auto-generated method stub + super.writeToNBT(aNBT); + } + + @Override + public void readFromNBT(NBTTagCompound aNBT) { + // TODO Auto-generated method stub + super.readFromNBT(aNBT); + } + + @Override + protected boolean canDespawn() { + return !false; + } + + @Override + public void setProfession(int p_70938_1_) { + super.setProfession(7738); + } + + @Override + public int getProfession() { + return mRoleID; + } + + @Override + public void useRecipe(MerchantRecipe p_70933_1_) { + super.useRecipe(p_70933_1_); + } + + @Override + public void setRecipes(MerchantRecipeList p_70930_1_) { + super.setRecipes(p_70930_1_); + } + + public boolean shouldAlwaysSprint() { + return false; + } + ; + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + } + + @Override + public Entity getEntityToAttack() { + return super.getEntityToAttack(); + } + + @Override + public boolean getAlwaysRenderNameTag() { + return hasCustomNameTag(); + } + + @Override + public Random getRNG() { + return CORE.RANDOM; + } + + @Override + public void setSprinting(boolean bool) { + super.setSprinting(bool); + } + + /** + * Custom Shit + */ + protected float getField_82191_bN() { + Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN"); + try { + return v82191 != null ? v82191.getFloat(this) : 0f; + } catch (IllegalArgumentException | IllegalAccessException e) { + return 0f; + } + } + + protected void setField_82191_bN(float f) { + try { + ReflectionUtils.setField(this, "field_82191_bN", f); + } catch (IllegalArgumentException e) { + } + } + + protected boolean getNeedsInitilization() { + Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization"); + try { + return v82191 != null ? v82191.getBoolean(this) : false; + } catch (IllegalArgumentException | IllegalAccessException e) { + return false; + } + } + + protected void setNeedsInitilization(boolean f) { + try { + ReflectionUtils.setField(this, "needsInitilization", f); + } catch (IllegalArgumentException e) { + } + } + + protected MerchantRecipeList getBuyingList() { + Field v82191; + MerchantRecipeList o = null; + v82191 = ReflectionUtils.getField(getClass(), "buyingList"); + try { + if (v82191 != null) o = (MerchantRecipeList) v82191.get(this); + Logger.WARNING("Is BuyingList Valid? " + (v82191 != null)); + return v82191 != null ? o : null; + } catch (IllegalArgumentException | IllegalAccessException e) { + e.printStackTrace(); + return null; + } + } + + protected void setBuyingList(MerchantRecipeList f) { + try { + Logger.WARNING("set BuyingList? " + (ReflectionUtils.setField(this, "buyingList", f))); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } + } + + protected Village getVillageObject() { + Field v82191 = ReflectionUtils.getField(getClass(), "villageObj"); + try { + return v82191 != null ? (Village) v82191.get(this) : null; + } catch (IllegalArgumentException | IllegalAccessException e) { + return null; + } + } + + protected String getLastBuyingPlayer() { + Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer"); + try { + return v82191 != null ? (String) v82191.get(this) : ""; + } catch (IllegalArgumentException | IllegalAccessException e) { + return ""; + } + } + + public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) { + if (getBuyingList() == null) { + this.addDefaultEquipmentAndRecipies(1); + } + return getBuyingList(); + } + + /** + * Adjusts the probability of obtaining a given recipe being offered by a + * villager + */ + private float adjustProbability(float p_82188_1_) { + float f1 = p_82188_1_ + getField_82191_bN(); + return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1; + } + + /** + * based on the villagers profession add items, equipment, and recipies adds + * par1 random items to the list of things that the villager wants to buy. (at + * most 1 of each wanted type is added) + */ + private void addDefaultEquipmentAndRecipies(int p_70950_1_) { + if (this.getBuyingList() != null) { + setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F); + } else { + setField_82191_bN(0.0F); + } + + MerchantRecipeList merchantrecipelist; + merchantrecipelist = new MerchantRecipeList(); + VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand); + int k; + label50: + switch (this.getProfession()) { + case 0: + addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F)); + addPurchaseRecipe( + merchantrecipelist, + Item.getItemFromBlock(Blocks.wool), + this.rand, + this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F)); + addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F)); + addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F)); + + if (this.rand.nextFloat() < this.adjustProbability(0.5F)) { + merchantrecipelist.add(new MerchantRecipe( + new ItemStack(Blocks.gravel, 10), + new ItemStack(Items.emerald), + new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0))); + } + + break; + case 1: + addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F)); + addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F)); + addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade( + merchantrecipelist, + Item.getItemFromBlock(Blocks.bookshelf), + this.rand, + this.adjustProbability(0.8F)); + addEmeraldTrade( + merchantrecipelist, + Item.getItemFromBlock(Blocks.glass), + this.rand, + this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F)); + + if (this.rand.nextFloat() < this.adjustProbability(0.07F)) { + Enchantment enchantment = Enchantment.enchantmentsBookList[ + this.rand.nextInt(Enchantment.enchantmentsBookList.length)]; + int i1 = MathHelper.getRandomIntegerInRange( + this.rand, enchantment.getMinLevel(), enchantment.getMaxLevel()); + ItemStack itemstack = + Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1)); + k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1; + merchantrecipelist.add( + new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack)); + } + + break; + case 2: + addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F)); + addEmeraldTrade( + merchantrecipelist, + Item.getItemFromBlock(Blocks.glowstone), + this.rand, + this.adjustProbability(0.3F)); + Item[] aitem = new Item[] { + Items.iron_sword, + Items.diamond_sword, + Items.iron_chestplate, + Items.diamond_chestplate, + Items.iron_axe, + Items.diamond_axe, + Items.iron_pickaxe, + Items.diamond_pickaxe + }; + Item[] aitem1 = aitem; + int j = aitem.length; + k = 0; + + while (true) { + if (k >= j) { + break label50; + } + + Item item = aitem1[k]; + + if (this.rand.nextFloat() < this.adjustProbability(0.05F)) { + merchantrecipelist.add(new MerchantRecipe( + new ItemStack(item, 1, 0), + new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0), + EnchantmentHelper.addRandomEnchantment( + this.rand, new ItemStack(item, 1, 0), 5 + this.rand.nextInt(15)))); + } + + ++k; + } + case 3: + addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); + addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F)); + addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade( + merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F)); + break; + case 4: + addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F)); + addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F)); + addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F)); + addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F)); + addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F)); + addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F)); + } + + if (merchantrecipelist.isEmpty()) { + addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F); + } + + Collections.shuffle(merchantrecipelist); + + if (this.getBuyingList() == null) { + this.setBuyingList(new MerchantRecipeList()); + } + + for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) { + try { + this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l)); + } catch (Throwable t) { + Logger.INFO("Villager with ID " + this.entityUniqueID.toString() + " at | X: " + this.posX + " Y: " + + this.posY + " Z: " + this.posZ + + " may have corrupt trades, it is advised to remove/kill it."); + } + } + + try { + if (this.getBuyingList() != null) { + for (Object g : this.getBuyingList()) { + if (g != null) { + if (g instanceof MerchantRecipe) { + MerchantRecipe m = (MerchantRecipe) g; + ItemStack selling = m.getItemToSell(); + ItemStack[] buying = new ItemStack[] { + m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null + }; + if (selling == null) { + Logger.WARNING("Villager is Selling an invalid item"); + } else if (buying[0] == null && buying[1] == null) { + Logger.WARNING("Villager is buying two invalid items"); + } else { + Logger.WARNING( + "Villager is Selling x" + selling.stackSize + selling.getDisplayName() + + " for x" + buying[0].stackSize + " " + + buying[0].getDisplayName() + buying[1] + != null + ? " and for x" + buying[1].stackSize + " " + buying[1].getDisplayName() + : ""); + } + } else Logger.WARNING("Found: " + g.getClass().getName()); + } + } + } else { + + } + } catch (Throwable t) { + + } + } + + /** + * main AI tick function, replaces updateEntityActionState + */ + @Override + protected void updateAITick() { + if (!this.isTrading()) { + if (this.getNeedsInitilization()) { + if (this.getBuyingList().size() > 1) { + Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator(); + + while (iterator.hasNext()) { + MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next(); + + if (merchantrecipe.isRecipeDisabled()) { + merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2); + } + } + } + + this.addDefaultEquipmentAndRecipies(1); + this.setNeedsInitilization(false); + + if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) { + this.worldObj.setEntityState(this, (byte) 14); + this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1); + } + } + } + super.updateAITick(); + } + + public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) { + if (aRand.nextFloat() < aChance) { + int i = getLootAmount_BlacksmithSellingList(aItem, aRand); + ItemStack itemstack; + ItemStack itemstack1; + + if (i < 0) { + itemstack = new ItemStack(Items.emerald, 1, 0); + itemstack1 = new ItemStack(aItem, -i, 0); + } else { + itemstack = new ItemStack(Items.emerald, i, 0); + itemstack1 = new ItemStack(aItem, 1, 0); + } + + aRecipeList.add(new MerchantRecipe(itemstack, itemstack1)); + } + } + + public static void addCustomTrade( + MerchantRecipeList aRecipeList, + ItemStack aItem1, + ItemStack aItem2, + ItemStack aItem3, + Random aRand, + float aChance) { + if (aRand.nextFloat() < aChance) { + aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3)); + } + } + + private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) { + Tuple tuple = (Tuple) blacksmithSellingList.get(aItem); + return tuple == null + ? 1 + : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() + ? ((Integer) tuple.getFirst()).intValue() + : ((Integer) tuple.getFirst()).intValue() + + aRand.nextInt(((Integer) tuple.getSecond()).intValue() + - ((Integer) tuple.getFirst()).intValue())); + } + + public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) { + if (aRand.nextFloat() < aChance) { + aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald)); + } + } + + private static ItemStack getSimpleLootStack(Item aItem, Random aRand) { + return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0); + } + + public static void addPurchaseRecipe( + MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) { + if (aRand.nextFloat() < aChance) { + aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald)); + } + } + + private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) { + return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta); + } + + private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) { + Tuple tuple = (Tuple) villagersSellingList.get(aItem); + return tuple == null + ? 1 + : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue() + ? ((Integer) tuple.getFirst()).intValue() + : ((Integer) tuple.getFirst()).intValue() + + aRand.nextInt(((Integer) tuple.getSecond()).intValue() + - ((Integer) tuple.getFirst()).intValue())); + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java b/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java index 61db98e803..6ff46380b8 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java @@ -1,32 +1,30 @@ package gtPlusPlus.plugin.villagers.entity.trade; -import java.util.Random; - import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; +import java.util.Random; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.village.MerchantRecipeList; public abstract class BaseVillagerTrade implements IVillageTradeHandler { + /* + Recently in my mod I started working on a new villager and after doing so I could not figure out to assign new trades to this villager. + Registering the villager + VillagerRegistry.instance().registerVillageTradeHandler(i, new TradeHandler());} + VillagerRegistry.instance().registerVillagerId(8); + VillagerRegistry.instance().registerVillagerSkin(8, new ResourceLocation("chow", "textures/dealer.png")); + VillagerRegistry.instance().getRegisteredVillagers(); + In my trade handler for vanilla villagers it goes off case 0 for instance being the farmer. I thought that it being case 8 would represent the id 8 for the custom villager but it still doesn't work. Could anyone help me out with this please? + * + * + First, you'll need to make a new class that extends IVillageTradeHandler. + In the constructor, add ItemStacks of the items you want it to trade to an ArrayList, + then in the manipulateTradesForVillager method, have it make sure the villager is yours by using villager.getProfession() + and your villager ID, then in a for loop use recipeList.addToListWithCheck to add new instances of MerchantRecipe to your villager's trade list. + Then, in your mod's main class, register the trade handler with VillageRegistry.instance().registerVillagerTradeHandler(villagerId, instanceOfTradeHandler); + */ - /* - Recently in my mod I started working on a new villager and after doing so I could not figure out to assign new trades to this villager. - Registering the villager - VillagerRegistry.instance().registerVillageTradeHandler(i, new TradeHandler());} - VillagerRegistry.instance().registerVillagerId(8); - VillagerRegistry.instance().registerVillagerSkin(8, new ResourceLocation("chow", "textures/dealer.png")); - VillagerRegistry.instance().getRegisteredVillagers(); - In my trade handler for vanilla villagers it goes off case 0 for instance being the farmer. I thought that it being case 8 would represent the id 8 for the custom villager but it still doesn't work. Could anyone help me out with this please? - * - * - First, you'll need to make a new class that extends IVillageTradeHandler. - In the constructor, add ItemStacks of the items you want it to trade to an ArrayList, - then in the manipulateTradesForVillager method, have it make sure the villager is yours by using villager.getProfession() - and your villager ID, then in a for loop use recipeList.addToListWithCheck to add new instances of MerchantRecipe to your villager's trade list. - Then, in your mod's main class, register the trade handler with VillageRegistry.instance().registerVillagerTradeHandler(villagerId, instanceOfTradeHandler); - */ - - @Override - public abstract void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random); - + @Override + public abstract void manipulateTradesForVillager( + EntityVillager villager, MerchantRecipeList recipeList, Random random); } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java b/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java index 28416793f5..a1ada6c7d5 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java @@ -5,65 +5,65 @@ import cpw.mods.fml.common.registry.EntityRegistry.EntityRegistration; import gtPlusPlus.core.block.ModBlocks; import net.minecraft.entity.Entity; import net.minecraft.tileentity.MobSpawnerBaseLogic; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class MobSpawnerCustomLogic extends MobSpawnerBaseLogic { - private TileEntityGenericSpawner mTile; + private TileEntityGenericSpawner mTile; - public MobSpawnerCustomLogic(TileEntityGenericSpawner tile) { - if (tile != null) { - mTile = tile; - } - - if (TileEntityGenericSpawner.mSpawners.get(mTile.getID()) != null) { - Class<Entity> c = TileEntityGenericSpawner.mSpawners.get(mTile.getID()); - EntityRegistration x = EntityRegistry.instance().lookupModSpawn(c, false); - if (x != null) { - this.setEntityName(x.getEntityName()); - } - } - - } + public MobSpawnerCustomLogic(TileEntityGenericSpawner tile) { + if (tile != null) { + mTile = tile; + } - @Override - public void func_98267_a(int eventID) { - if (mTile != null) mTile.getWorldObj().addBlockEvent(mTile.xCoord, mTile.yCoord, mTile.zCoord, ModBlocks.blockCustomMobSpawner, eventID, 0); - } + if (TileEntityGenericSpawner.mSpawners.get(mTile.getID()) != null) { + Class<Entity> c = TileEntityGenericSpawner.mSpawners.get(mTile.getID()); + EntityRegistration x = EntityRegistry.instance().lookupModSpawn(c, false); + if (x != null) { + this.setEntityName(x.getEntityName()); + } + } + } - @Override - public World getSpawnerWorld() { - if (mTile != null) return mTile.getWorldObj(); - return null; - } + @Override + public void func_98267_a(int eventID) { + if (mTile != null) + mTile.getWorldObj() + .addBlockEvent( + mTile.xCoord, mTile.yCoord, mTile.zCoord, ModBlocks.blockCustomMobSpawner, eventID, 0); + } - @Override - public int getSpawnerX() { - if (mTile != null) return mTile.xCoord; - return 0; - } + @Override + public World getSpawnerWorld() { + if (mTile != null) return mTile.getWorldObj(); + return null; + } - @Override - public int getSpawnerY() { - if (mTile != null) return mTile.yCoord; - return 0; - } + @Override + public int getSpawnerX() { + if (mTile != null) return mTile.xCoord; + return 0; + } - @Override - public int getSpawnerZ() { - if (mTile != null) return mTile.zCoord; - return 0; - } + @Override + public int getSpawnerY() { + if (mTile != null) return mTile.yCoord; + return 0; + } - @Override - public void setRandomEntity(MobSpawnerBaseLogic.WeightedRandomMinecart p_98277_1_) { - super.setRandomEntity(p_98277_1_); - if (mTile != null) { - if (this.getSpawnerWorld() != null) { - this.getSpawnerWorld().markBlockForUpdate(mTile.xCoord, mTile.yCoord, mTile.zCoord); - } - } - } + @Override + public int getSpawnerZ() { + if (mTile != null) return mTile.zCoord; + return 0; + } + @Override + public void setRandomEntity(MobSpawnerBaseLogic.WeightedRandomMinecart p_98277_1_) { + super.setRandomEntity(p_98277_1_); + if (mTile != null) { + if (this.getSpawnerWorld() != null) { + this.getSpawnerWorld().markBlockForUpdate(mTile.xCoord, mTile.yCoord, mTile.zCoord); + } + } + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java b/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java index 45b8c9941b..df4e58124a 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java @@ -1,11 +1,10 @@ package gtPlusPlus.plugin.villagers.tile; -import java.util.HashMap; -import java.util.Map; - import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.reflect.ReflectionUtils; +import java.util.HashMap; +import java.util.Map; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.MobSpawnerBaseLogic; @@ -14,232 +13,233 @@ import net.minecraft.tileentity.TileEntityMobSpawner; public class TileEntityGenericSpawner extends TileEntityMobSpawner { - /* - * Static Variables - */ - - /** A HashMap storing string names of classes mapping to the actual java.lang.Class type. */ - private static Map<?, ?> nameToClassMap_Ex = new HashMap<Object, Object>(); - /** A HashMap storing the classes and mapping to the string names (reverse of nameToClassMap). */ - private static Map<?, ?> classToNameMap_Ex = new HashMap<Object, Object>(); - - /** - * The Mob Spawner Map - */ - public static HashMap<Integer, Class<Entity>> mSpawners = new HashMap<Integer, Class<Entity>>(); - - /** - * Registers a New Mob Spawner Type - * - * @param aID - * - the Spawner type ID - * @param aEntity - * - the Entity which you'd like to spawn - */ - public static boolean registerNewMobSpawner(int aID, Class<Entity> aEntity) { - int registered = mSpawners.size(); - Logger.INFO("Currently "+registered+" spawners are registered."); - if (!mSpawners.containsKey(aID) && !mSpawners.containsValue(aEntity)) { - mSpawners.put(aID, aEntity); - } - return mSpawners.size() > registered; - } - - /* - * Instance Variables - */ - - /** - * The {@link Entity} type which spawns. - */ - protected int mID; - private final Class mSpawnType; - private MobSpawnerCustomLogic spawnerLogic; - - /* - * Constructors - */ - - /** - * Constructs a new Spawner, based on an existing type registered. - * - * @param aID - * - The ID in the {@link mSpawners} map. - */ - public TileEntityGenericSpawner(int aID) { - mID = aID; - if (mSpawners.get(aID) != null) { - mSpawnType = mSpawners.get(aID); - } else { - mSpawnType = null; - } - - // Last thing to Init - generateLogicObject(); - } - - /** - * Constructs a new Spawner, then registers it. - * - * @param aID - * - The ID to be used in the {@link mSpawners} map. - * @param aEntity - * - The {@link Entity} type which will be spawned. - */ - public TileEntityGenericSpawner(int aID, Entity aEntity) { - mID = aID; - if (aEntity != null) { - mSpawnType = aEntity.getClass(); - if (mSpawners.containsKey(aID)) { - registerNewMobSpawner(aID, mSpawnType); - } - } else { - mSpawnType = null; - } - - // Last thing to Init - generateLogicObject(); - } - - public final MobSpawnerCustomLogic getLogic() { - if (spawnerLogic == null || spawnerLogic.getSpawnerWorld() == null) { - generateLogicObject(); - } - return spawnerLogic; - } - - private final void generateLogicObject() { - spawnerLogic = new MobSpawnerCustomLogic(this); - } - - public int getID() { - return this.mID; - } - - @Override - public void readFromNBT(NBTTagCompound p_145839_1_) { - if (hasInternalFieldBeenSet()) { - this.getLogic().readFromNBT(p_145839_1_); - this.xCoord = p_145839_1_.getInteger("x"); - this.yCoord = p_145839_1_.getInteger("y"); - this.zCoord = p_145839_1_.getInteger("z"); - this.mID = p_145839_1_.getInteger("mID"); - } - } - - @Override - public void writeToNBT(NBTTagCompound p_145841_1_) { - if (hasInternalFieldBeenSet()) { - String s = (String) classToNameMap_Ex.get(this.getClass()); - if (s == null){ - for (Object g : classToNameMap_Ex.values()) { - if (g instanceof String) { - Logger.INFO("Found Translation for "+((Class) nameToClassMap_Ex.get(g)).getName()+": "+g); - } - } - - //throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!"); - s = mSpawners.containsKey(this.mID) ? mSpawners.get(this.mID).getSimpleName() : "bad.class.name"; - p_145841_1_.setString("id", s); - Logger.WARNING(this.getClass() + " is missing a mapping! This is a bug! Used key: "+s); - p_145841_1_.setInteger("x", this.xCoord); - p_145841_1_.setInteger("y", this.yCoord); - p_145841_1_.setInteger("z", this.zCoord); - p_145841_1_.setInteger("mID", this.mID); - } - else { - Logger.INFO(this.getClass() + " is not missing a mapping! Used key: "+s); - p_145841_1_.setString("id", s); - p_145841_1_.setInteger("x", this.xCoord); - p_145841_1_.setInteger("y", this.yCoord); - p_145841_1_.setInteger("z", this.zCoord); - p_145841_1_.setInteger("mID", this.mID); - } - this.getLogic().writeToNBT(p_145841_1_); - } - } - - @Override - public void updateEntity() { - if (Utils.isServer()) { - mTicks++; - if (hasInternalFieldBeenSet()) { - this.getLogic().updateSpawner(); - } - } - } - - private boolean isReady = false; - private long mTicks = 0; - - private boolean hasInternalFieldBeenSet() { - if (isReady && mTicks % 200 != 0) { - return true; - } else { - - if (Utils.isServer()) { - try { - Map<?, ?> a1 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "nameToClassMap").get(this); - Map<?, ?> a2 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "classToNameMap").get(this); - if (a1 != null) { - if (nameToClassMap_Ex == null) { - nameToClassMap_Ex = a1; - } - if (nameToClassMap_Ex != null) { - if (nameToClassMap_Ex.size() != a1.size()) { - nameToClassMap_Ex = a1; - } - } - } - if (a2 != null) { - if (classToNameMap_Ex == null) { - classToNameMap_Ex = a2; - } - if (classToNameMap_Ex != null) { - if (classToNameMap_Ex.size() != a2.size()) { - classToNameMap_Ex = a2; - } - } - if (nameToClassMap_Ex != null && classToNameMap_Ex != null) { - //Logger.INFO("nameToClassMap_Ex has a size of "+nameToClassMap_Ex.size()+"."); - //Logger.INFO("a1 has a size of "+a1.size()+"."); - //Logger.INFO("classToNameMap_Ex has a size of "+classToNameMap_Ex.size()+"."); - //Logger.INFO("a2 has a size of "+a2.size()+"."); - isReady = true; - return true; - } - } - - /*Field mInternalLogicField = ReflectionUtils.getField(getClass(), "field_145882_a"); - if (mInternalLogicField != null) { - MobSpawnerBaseLogic a = (MobSpawnerBaseLogic) mInternalLogicField.get(this); - if (a != null) { - ReflectionUtils.setField(this, "field_145882_a", getLogic()); - if (a.equals(getLogic())) { - isReady = true; - return true; - } - } - }*/ - } catch (IllegalArgumentException | IllegalAccessException e) { - } - } - return false; - } - } - - /** - * Called when a client event is received with the event number and argument, - * see World.sendClientEvent - */ - @Override - public boolean receiveClientEvent(int p_145842_1_, int p_145842_2_) { - return this.spawnerLogic.setDelayToMin(p_145842_1_) ? true : super.receiveClientEvent(p_145842_1_, p_145842_2_); - } - - @Override - public MobSpawnerBaseLogic func_145881_a() { - return this.spawnerLogic; - } - + /* + * Static Variables + */ + + /** A HashMap storing string names of classes mapping to the actual java.lang.Class type. */ + private static Map<?, ?> nameToClassMap_Ex = new HashMap<Object, Object>(); + /** A HashMap storing the classes and mapping to the string names (reverse of nameToClassMap). */ + private static Map<?, ?> classToNameMap_Ex = new HashMap<Object, Object>(); + + /** + * The Mob Spawner Map + */ + public static HashMap<Integer, Class<Entity>> mSpawners = new HashMap<Integer, Class<Entity>>(); + + /** + * Registers a New Mob Spawner Type + * + * @param aID + * - the Spawner type ID + * @param aEntity + * - the Entity which you'd like to spawn + */ + public static boolean registerNewMobSpawner(int aID, Class<Entity> aEntity) { + int registered = mSpawners.size(); + Logger.INFO("Currently " + registered + " spawners are registered."); + if (!mSpawners.containsKey(aID) && !mSpawners.containsValue(aEntity)) { + mSpawners.put(aID, aEntity); + } + return mSpawners.size() > registered; + } + + /* + * Instance Variables + */ + + /** + * The {@link Entity} type which spawns. + */ + protected int mID; + + private final Class mSpawnType; + private MobSpawnerCustomLogic spawnerLogic; + + /* + * Constructors + */ + + /** + * Constructs a new Spawner, based on an existing type registered. + * + * @param aID + * - The ID in the {@link mSpawners} map. + */ + public TileEntityGenericSpawner(int aID) { + mID = aID; + if (mSpawners.get(aID) != null) { + mSpawnType = mSpawners.get(aID); + } else { + mSpawnType = null; + } + + // Last thing to Init + generateLogicObject(); + } + + /** + * Constructs a new Spawner, then registers it. + * + * @param aID + * - The ID to be used in the {@link mSpawners} map. + * @param aEntity + * - The {@link Entity} type which will be spawned. + */ + public TileEntityGenericSpawner(int aID, Entity aEntity) { + mID = aID; + if (aEntity != null) { + mSpawnType = aEntity.getClass(); + if (mSpawners.containsKey(aID)) { + registerNewMobSpawner(aID, mSpawnType); + } + } else { + mSpawnType = null; + } + + // Last thing to Init + generateLogicObject(); + } + + public final MobSpawnerCustomLogic getLogic() { + if (spawnerLogic == null || spawnerLogic.getSpawnerWorld() == null) { + generateLogicObject(); + } + return spawnerLogic; + } + + private final void generateLogicObject() { + spawnerLogic = new MobSpawnerCustomLogic(this); + } + + public int getID() { + return this.mID; + } + + @Override + public void readFromNBT(NBTTagCompound p_145839_1_) { + if (hasInternalFieldBeenSet()) { + this.getLogic().readFromNBT(p_145839_1_); + this.xCoord = p_145839_1_.getInteger("x"); + this.yCoord = p_145839_1_.getInteger("y"); + this.zCoord = p_145839_1_.getInteger("z"); + this.mID = p_145839_1_.getInteger("mID"); + } + } + + @Override + public void writeToNBT(NBTTagCompound p_145841_1_) { + if (hasInternalFieldBeenSet()) { + String s = (String) classToNameMap_Ex.get(this.getClass()); + if (s == null) { + for (Object g : classToNameMap_Ex.values()) { + if (g instanceof String) { + Logger.INFO("Found Translation for " + ((Class) nameToClassMap_Ex.get(g)).getName() + ": " + g); + } + } + + // throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!"); + s = mSpawners.containsKey(this.mID) ? mSpawners.get(this.mID).getSimpleName() : "bad.class.name"; + p_145841_1_.setString("id", s); + Logger.WARNING(this.getClass() + " is missing a mapping! This is a bug! Used key: " + s); + p_145841_1_.setInteger("x", this.xCoord); + p_145841_1_.setInteger("y", this.yCoord); + p_145841_1_.setInteger("z", this.zCoord); + p_145841_1_.setInteger("mID", this.mID); + } else { + Logger.INFO(this.getClass() + " is not missing a mapping! Used key: " + s); + p_145841_1_.setString("id", s); + p_145841_1_.setInteger("x", this.xCoord); + p_145841_1_.setInteger("y", this.yCoord); + p_145841_1_.setInteger("z", this.zCoord); + p_145841_1_.setInteger("mID", this.mID); + } + this.getLogic().writeToNBT(p_145841_1_); + } + } + + @Override + public void updateEntity() { + if (Utils.isServer()) { + mTicks++; + if (hasInternalFieldBeenSet()) { + this.getLogic().updateSpawner(); + } + } + } + + private boolean isReady = false; + private long mTicks = 0; + + private boolean hasInternalFieldBeenSet() { + if (isReady && mTicks % 200 != 0) { + return true; + } else { + + if (Utils.isServer()) { + try { + Map<?, ?> a1 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "nameToClassMap") + .get(this); + Map<?, ?> a2 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "classToNameMap") + .get(this); + if (a1 != null) { + if (nameToClassMap_Ex == null) { + nameToClassMap_Ex = a1; + } + if (nameToClassMap_Ex != null) { + if (nameToClassMap_Ex.size() != a1.size()) { + nameToClassMap_Ex = a1; + } + } + } + if (a2 != null) { + if (classToNameMap_Ex == null) { + classToNameMap_Ex = a2; + } + if (classToNameMap_Ex != null) { + if (classToNameMap_Ex.size() != a2.size()) { + classToNameMap_Ex = a2; + } + } + if (nameToClassMap_Ex != null && classToNameMap_Ex != null) { + // Logger.INFO("nameToClassMap_Ex has a size of "+nameToClassMap_Ex.size()+"."); + // Logger.INFO("a1 has a size of "+a1.size()+"."); + // Logger.INFO("classToNameMap_Ex has a size of "+classToNameMap_Ex.size()+"."); + // Logger.INFO("a2 has a size of "+a2.size()+"."); + isReady = true; + return true; + } + } + + /*Field mInternalLogicField = ReflectionUtils.getField(getClass(), "field_145882_a"); + if (mInternalLogicField != null) { + MobSpawnerBaseLogic a = (MobSpawnerBaseLogic) mInternalLogicField.get(this); + if (a != null) { + ReflectionUtils.setField(this, "field_145882_a", getLogic()); + if (a.equals(getLogic())) { + isReady = true; + return true; + } + } + }*/ + } catch (IllegalArgumentException | IllegalAccessException e) { + } + } + return false; + } + } + + /** + * Called when a client event is received with the event number and argument, + * see World.sendClientEvent + */ + @Override + public boolean receiveClientEvent(int p_145842_1_, int p_145842_2_) { + return this.spawnerLogic.setDelayToMin(p_145842_1_) ? true : super.receiveClientEvent(p_145842_1_, p_145842_2_); + } + + @Override + public MobSpawnerBaseLogic func_145881_a() { + return this.spawnerLogic; + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java index 3baca10792..3d087ea053 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java @@ -2,14 +2,11 @@ package gtPlusPlus.plugin.villagers.trade; import static java.util.Collections.shuffle; -import java.util.Collections; -import java.util.Random; - import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; +import java.util.Random; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -19,143 +16,148 @@ import net.minecraft.village.MerchantRecipeList; public class TradeHandlerAboriginal extends TradeHandlerBase { - private final static AutoMap<ItemStack> mInputs = new AutoMap<ItemStack>(); - private final static AutoMap<ItemStack> mOutputs = new AutoMap<ItemStack>(); - private static boolean initialised = false; + private static final AutoMap<ItemStack> mInputs = new AutoMap<ItemStack>(); + private static final AutoMap<ItemStack> mOutputs = new AutoMap<ItemStack>(); + private static boolean initialised = false; - public static void init() { - mOutputs.put(ItemUtils.getSimpleStack(Blocks.anvil, 1)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.cactus, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.dirt, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.cobblestone, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.pumpkin, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.log, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.obsidian, 8)); - mOutputs.put(ItemUtils.getSimpleStack(Items.wheat, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.gravel, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Blocks.sand, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.apple, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.emerald, 1)); - mOutputs.put(ItemUtils.getSimpleStack(Items.diamond, 1)); - mOutputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.beef, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.bone, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.bread, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.carrot, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.potato, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.chicken, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.fish, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.feather, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.egg, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.leather, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0)); - mOutputs.put(ItemUtils.getSimpleStack(Items.reeds, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.wooden_door)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.log)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.log2)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.planks)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.sapling)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.sandstone)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.nether_brick)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.crafting_table)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.gravel)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.cactus)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.quartz_block)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.stone)); - mInputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone)); - mInputs.put(ItemUtils.getSimpleStack(Items.apple, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.emerald, 1)); - mInputs.put(ItemUtils.getSimpleStack(Items.diamond, 1)); - mInputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.beef, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.bone, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.bread, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.carrot, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.potato, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.chicken, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.fish, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.feather, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.egg, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.leather, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0)); - mInputs.put(ItemUtils.getSimpleStack(Items.reeds, 0)); - initialised = true; - } + public static void init() { + mOutputs.put(ItemUtils.getSimpleStack(Blocks.anvil, 1)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.cactus, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.dirt, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.cobblestone, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.pumpkin, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.log, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.obsidian, 8)); + mOutputs.put(ItemUtils.getSimpleStack(Items.wheat, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.gravel, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Blocks.sand, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.apple, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.emerald, 1)); + mOutputs.put(ItemUtils.getSimpleStack(Items.diamond, 1)); + mOutputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.beef, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.bone, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.bread, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.carrot, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.potato, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.chicken, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.fish, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.feather, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.egg, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.leather, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0)); + mOutputs.put(ItemUtils.getSimpleStack(Items.reeds, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.wooden_door)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.log)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.log2)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.planks)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.sapling)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.sandstone)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.nether_brick)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.crafting_table)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.gravel)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.cactus)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.quartz_block)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.stone)); + mInputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone)); + mInputs.put(ItemUtils.getSimpleStack(Items.apple, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.emerald, 1)); + mInputs.put(ItemUtils.getSimpleStack(Items.diamond, 1)); + mInputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.beef, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.bone, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.bread, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.carrot, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.potato, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.chicken, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.fish, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.feather, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.egg, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.leather, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0)); + mInputs.put(ItemUtils.getSimpleStack(Items.reeds, 0)); + initialised = true; + } + public TradeHandlerAboriginal() { + Logger.INFO("Created Trade Manager for 'Trader' villager profession type."); + } - public TradeHandlerAboriginal() { - Logger.INFO("Created Trade Manager for 'Trader' villager profession type."); - } + @SuppressWarnings("unchecked") + @Override + public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { + if (!initialised) { + init(); + } + if (initialised) { + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); + shuffle(recipeList); + } + } - @SuppressWarnings("unchecked") - @Override - public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { - if (!initialised) { - init(); - } - if (initialised) { - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput())); - shuffle(recipeList); - } - } + private ItemStack getInput() { + ItemStack input = mInputs.get(MathUtils.randInt(0, mInputs.size() - 1)); + int outputSize = (input.stackSize == 0 + ? (Math.max(MathUtils.randInt(1, 64), MathUtils.randInt(1, 32))) + : input.stackSize); + return ItemUtils.getSimpleStack(input, outputSize); + } - private ItemStack getInput() { - ItemStack input = mInputs.get(MathUtils.randInt(0, mInputs.size()-1)); - int outputSize = (input.stackSize == 0 ? (Math.max(MathUtils.randInt(1, 64), MathUtils.randInt(1, 32))) : input.stackSize); - return ItemUtils.getSimpleStack(input, outputSize); - } - - final static int MID_BOUND = 24; - private ItemStack getOutput() { - ItemStack output = mOutputs.get(MathUtils.randInt(0, mOutputs.size()-1)); - int outputSize = (output.stackSize == 0 ? (Math.min(MathUtils.randInt(MathUtils.randInt(1, MID_BOUND), MathUtils.randInt(MID_BOUND, 32)), MathUtils.randInt(MathUtils.randInt(12, MID_BOUND), MathUtils.randInt(MID_BOUND, 48)))) : output.stackSize); - return ItemUtils.getSimpleStack(output, outputSize); - } + static final int MID_BOUND = 24; + private ItemStack getOutput() { + ItemStack output = mOutputs.get(MathUtils.randInt(0, mOutputs.size() - 1)); + int outputSize = (output.stackSize == 0 + ? (Math.min( + MathUtils.randInt(MathUtils.randInt(1, MID_BOUND), MathUtils.randInt(MID_BOUND, 32)), + MathUtils.randInt(MathUtils.randInt(12, MID_BOUND), MathUtils.randInt(MID_BOUND, 48)))) + : output.stackSize); + return ItemUtils.getSimpleStack(output, outputSize); + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java index 215dc0683b..c42da6895f 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java @@ -1,27 +1,23 @@ package gtPlusPlus.plugin.villagers.trade; -import java.util.Collections; -import java.util.Random; - import gtPlusPlus.core.recipe.common.CI; +import java.util.Random; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.village.MerchantRecipe; import net.minecraft.village.MerchantRecipeList; public class TradeHandlerBanker extends TradeHandlerBase { - - @SuppressWarnings("unchecked") - @Override - public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { - //if (villager.getProfession() == 7735) { - recipeList.add(new MerchantRecipe(CI.electricMotor_LV, CI.electricPiston_LV, CI.robotArm_LV)); - recipeList.add(new MerchantRecipe(CI.electricMotor_MV, CI.electricPiston_MV, CI.robotArm_MV)); - recipeList.add(new MerchantRecipe(CI.electricMotor_HV, CI.electricPiston_HV, CI.robotArm_HV)); - recipeList.add(new MerchantRecipe(CI.electricMotor_EV, CI.electricPiston_EV, CI.robotArm_EV)); - recipeList.add(new MerchantRecipe(CI.electricMotor_IV, CI.electricPiston_IV, CI.robotArm_IV)); - //Collections.shuffle(recipeList); - //} - } - + @SuppressWarnings("unchecked") + @Override + public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { + // if (villager.getProfession() == 7735) { + recipeList.add(new MerchantRecipe(CI.electricMotor_LV, CI.electricPiston_LV, CI.robotArm_LV)); + recipeList.add(new MerchantRecipe(CI.electricMotor_MV, CI.electricPiston_MV, CI.robotArm_MV)); + recipeList.add(new MerchantRecipe(CI.electricMotor_HV, CI.electricPiston_HV, CI.robotArm_HV)); + recipeList.add(new MerchantRecipe(CI.electricMotor_EV, CI.electricPiston_EV, CI.robotArm_EV)); + recipeList.add(new MerchantRecipe(CI.electricMotor_IV, CI.electricPiston_IV, CI.robotArm_IV)); + // Collections.shuffle(recipeList); + // } + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java index b726ebefff..1e1e326201 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java @@ -10,16 +10,15 @@ ******************************************************************************/ package gtPlusPlus.plugin.villagers.trade; +import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; import java.util.Random; - import net.minecraft.entity.passive.EntityVillager; import net.minecraft.village.MerchantRecipeList; -import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; public abstract class TradeHandlerBase implements IVillageTradeHandler { - @SuppressWarnings("unchecked") - @Override - public abstract void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random); - + @SuppressWarnings("unchecked") + @Override + public abstract void manipulateTradesForVillager( + EntityVillager villager, MerchantRecipeList recipeList, Random random); } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java index 922316b136..bd2acc9bfe 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java @@ -1,27 +1,23 @@ package gtPlusPlus.plugin.villagers.trade; -import java.util.Collections; -import java.util.Random; - import gtPlusPlus.core.recipe.common.CI; +import java.util.Random; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.village.MerchantRecipe; import net.minecraft.village.MerchantRecipeList; public class TradeHandlerTechnician extends TradeHandlerBase { - - @SuppressWarnings("unchecked") - @Override - public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { - //if (villager.getProfession() == 7737) { - recipeList.add(new MerchantRecipe(CI.machineHull_LV, CI.electricMotor_LV, CI.machineHull_LV)); - recipeList.add(new MerchantRecipe(CI.machineHull_MV, CI.electricMotor_MV, CI.machineHull_MV)); - recipeList.add(new MerchantRecipe(CI.machineHull_HV, CI.electricMotor_HV, CI.machineHull_HV)); - recipeList.add(new MerchantRecipe(CI.machineHull_EV, CI.electricMotor_EV, CI.machineHull_EV)); - recipeList.add(new MerchantRecipe(CI.machineHull_IV, CI.electricMotor_IV, CI.machineHull_IV)); - //Collections.shuffle(recipeList); - //} - } - + @SuppressWarnings("unchecked") + @Override + public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { + // if (villager.getProfession() == 7737) { + recipeList.add(new MerchantRecipe(CI.machineHull_LV, CI.electricMotor_LV, CI.machineHull_LV)); + recipeList.add(new MerchantRecipe(CI.machineHull_MV, CI.electricMotor_MV, CI.machineHull_MV)); + recipeList.add(new MerchantRecipe(CI.machineHull_HV, CI.electricMotor_HV, CI.machineHull_HV)); + recipeList.add(new MerchantRecipe(CI.machineHull_EV, CI.electricMotor_EV, CI.machineHull_EV)); + recipeList.add(new MerchantRecipe(CI.machineHull_IV, CI.electricMotor_IV, CI.machineHull_IV)); + // Collections.shuffle(recipeList); + // } + } } diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java index 0025c054bd..f866bd7aa6 100644 --- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java +++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java @@ -1,11 +1,10 @@ package gtPlusPlus.plugin.villagers.trade; -import java.util.Collections; -import java.util.Random; - import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.util.minecraft.ItemUtils; +import java.util.Collections; +import java.util.Random; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -14,32 +13,37 @@ import net.minecraft.village.MerchantRecipeList; public class TradeHandlerTrader extends TradeHandlerBase { - public TradeHandlerTrader() { - Logger.INFO("Created Trade Manager for 'Trader' villager profession type."); - } - - @SuppressWarnings("unchecked") - @Override - public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { - ItemStack Ore1 = null, Ore2 = null; - if (Ore1 == null) { - Ore1 = ELEMENT.getInstance().SILICON.getOre(1); - } - if (Ore2 == null) { - Ore2 = ELEMENT.getInstance().ALUMINIUM.getOre(1); - } - if (Ore1 == null) { - Ore1 = ELEMENT.getInstance().GOLD.getOre(1); - } - if (Ore2 == null) { - Ore2 = ELEMENT.getInstance().LEAD.getOre(1); - } - recipeList.add(new MerchantRecipe(ItemUtils.getItemStackOfAmountFromOreDict("logWood", 32), ELEMENT.getInstance().IRON.getOre(1))); - recipeList.add(new MerchantRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 32), ELEMENT.getInstance().COPPER.getOre(1))); - recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.obsidian, 6), ELEMENT.getInstance().TIN.getOre(1))); - recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.glowstone, 32), Ore1)); - recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.piston, 32), Ore2)); - Collections.shuffle(recipeList); - } + public TradeHandlerTrader() { + Logger.INFO("Created Trade Manager for 'Trader' villager profession type."); + } + @SuppressWarnings("unchecked") + @Override + public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) { + ItemStack Ore1 = null, Ore2 = null; + if (Ore1 == null) { + Ore1 = ELEMENT.getInstance().SILICON.getOre(1); + } + if (Ore2 == null) { + Ore2 = ELEMENT.getInstance().ALUMINIUM.getOre(1); + } + if (Ore1 == null) { + Ore1 = ELEMENT.getInstance().GOLD.getOre(1); + } + if (Ore2 == null) { + Ore2 = ELEMENT.getInstance().LEAD.getOre(1); + } + recipeList.add(new MerchantRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("logWood", 32), + ELEMENT.getInstance().IRON.getOre(1))); + recipeList.add(new MerchantRecipe( + ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 32), + ELEMENT.getInstance().COPPER.getOre(1))); + recipeList.add(new MerchantRecipe( + ItemUtils.getSimpleStack(Blocks.obsidian, 6), + ELEMENT.getInstance().TIN.getOre(1))); + recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.glowstone, 32), Ore1)); + recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.piston, 32), Ore2)); + Collections.shuffle(recipeList); + } } |