aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java50
-rw-r--r--src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java77
-rw-r--r--src/Java/gtPlusPlus/plugin/villagers/NameLists.java708
-rw-r--r--src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java24
-rw-r--r--src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java447
-rw-r--r--src/Java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java32
6 files changed, 1314 insertions, 24 deletions
diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
index 510913d794..ae33c8428d 100644
--- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
+++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
@@ -66,12 +66,14 @@ public class ReflectionUtils {
public static boolean setField(final Object object, final String fieldName, final Object fieldValue) {
Class<?> clazz = object.getClass();
- while (clazz != null) {
+ if (clazz != null) {
try {
- final Field field = clazz.getDeclaredField(fieldName);
- makeAccessible(field);
- field.set(object, fieldValue);
- return true;
+ final Field field = getField(clazz, fieldName);
+ if (field != null) {
+ makeAccessible(field);
+ field.set(object, fieldValue);
+ return true;
+ }
} catch (final NoSuchFieldException e) {
Logger.REFLECTION("setField("+object.toString()+", "+fieldName+") failed.");
clazz = clazz.getSuperclass();
@@ -175,7 +177,7 @@ public class ReflectionUtils {
fieldA.setByte(clazz, newValue);*/
}
-
+
public static boolean invoke(Object objectInstance, String methodName, Class[] parameters, Object[] values){
if (objectInstance == null || methodName == null || parameters == null || values == null){
//Logger.REFLECTION("Null value when trying to Dynamically invoke "+methodName+" on an object of type: "+objectInstance.getClass().getName());
@@ -206,7 +208,7 @@ public class ReflectionUtils {
Logger.REFLECTION("Invoke failed or did something wrong.");
return false;
}
-
+
public static boolean invokeVoid(Object objectInstance, String methodName, Class[] parameters, Object[] values){
if (objectInstance == null || methodName == null || parameters == null || values == null){
return false;
@@ -218,8 +220,8 @@ public class ReflectionUtils {
if (mInvokingMethod != null){
Logger.REFLECTION(methodName+" was not null.");
mInvokingMethod.invoke(objectInstance, values);
- Logger.REFLECTION("Successfully invoked "+methodName+".");
- return true;
+ Logger.REFLECTION("Successfully invoked "+methodName+".");
+ return true;
}
else {
Logger.REFLECTION(methodName+" is null.");
@@ -232,7 +234,7 @@ public class ReflectionUtils {
Logger.REFLECTION("Invoke failed or did something wrong.");
return false;
}
-
+
public static Object invokeNonBool(Object objectInstance, String methodName, Class[] parameters, Object[] values){
if (objectInstance == null || methodName == null || parameters == null || values == null){
return false;
@@ -337,23 +339,23 @@ public class ReflectionUtils {
}
return null;
}
-
+
public static boolean dynamicallyLoadClassesInPackage(String aPackageName) {
ClassLoader classLoader = GTplusplus.class.getClassLoader();
int loaded = 0;
- try {
- ClassPath path = ClassPath.from(classLoader);
- for (ClassPath.ClassInfo info : path.getTopLevelClassesRecursive(aPackageName)) {
- Class<?> clazz = Class.forName(info.getName(), true, classLoader);
- if (clazz != null) {
- loaded++;
- Logger.INFO("Found "+clazz.getCanonicalName()+". ["+loaded+"]");
- }
- }
- } catch (ClassNotFoundException | IOException e) {
-
- }
-
+ try {
+ ClassPath path = ClassPath.from(classLoader);
+ for (ClassPath.ClassInfo info : path.getTopLevelClassesRecursive(aPackageName)) {
+ Class<?> clazz = Class.forName(info.getName(), true, classLoader);
+ if (clazz != null) {
+ loaded++;
+ Logger.INFO("Found "+clazz.getCanonicalName()+". ["+loaded+"]");
+ }
+ }
+ } catch (ClassNotFoundException | IOException e) {
+
+ }
+
return loaded > 0;
}
diff --git a/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java b/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java
new file mode 100644
index 0000000000..fa3e8ccbd8
--- /dev/null
+++ b/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java
@@ -0,0 +1,77 @@
+package gtPlusPlus.plugin.villagers;
+
+import java.util.HashMap;
+
+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.lib.CORE;
+import gtPlusPlus.plugin.manager.Core_Manager;
+import net.minecraft.util.ResourceLocation;
+
+public class Core_VillagerAdditions implements IPlugin {
+
+ final static 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>>();
+
+ 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 all Villager ID's and their Custom Trades.
+ for (Pair<Integer, IVillageTradeHandler> g : mVillagerTrades) {
+ if (g != null && g.getKey() != null) {
+ VillagerRegistry.instance().registerVillagerId(g.getKey());
+ if (g.getValue() != null) {
+ VillagerRegistry.instance().registerVillageTradeHandler(g.getKey(), g.getValue());
+ }
+ if (mVillagerSkins.get(g.getKey()) != null) {
+ VillagerRegistry.instance().registerVillagerSkin(g.getKey(), mVillagerSkins.get(g.getKey()));
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean init() {
+ if (shouldLoad)
+ return true;
+ return false;
+ }
+
+ @Override
+ public boolean postInit() {
+ if (shouldLoad) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public String getPluginName() {
+ return "GT++ Enhanced Villagers";
+ }
+
+ @Override
+ public String getPluginAbbreviation() {
+ return "Bank";
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/plugin/villagers/NameLists.java b/src/Java/gtPlusPlus/plugin/villagers/NameLists.java
new file mode 100644
index 0000000000..e11c45bf1b
--- /dev/null
+++ b/src/Java/gtPlusPlus/plugin/villagers/NameLists.java
@@ -0,0 +1,708 @@
+package gtPlusPlus.plugin.villagers;
+
+import gtPlusPlus.core.util.math.MathUtils;
+
+public class NameLists {
+
+ public static final String[] mFirstNames = 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" };
+
+ public static final String[] mLastNames = 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;
+ 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.substring(0, 1).toUpperCase();
+ last.substring(0, 1).toUpperCase();
+ return first+" "+last;
+
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java b/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java
new file mode 100644
index 0000000000..eb3200c21d
--- /dev/null
+++ b/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java
@@ -0,0 +1,24 @@
+package gtPlusPlus.plugin.villagers;
+
+import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
+import gtPlusPlus.api.objects.data.Pair;
+import net.minecraft.util.ResourceLocation;
+
+public class VillagerUtils {
+
+
+ public static void registerNewVillager(int aID, String aName, Object aProfession, Object aCareer, ResourceLocation aSkin, IVillageTradeHandler aCustomTrade) {
+
+ //Register Custom Trade to Registry.
+ if (aCustomTrade != null) {
+ Core_VillagerAdditions.mVillagerTrades.put(new Pair<Integer, IVillageTradeHandler>(aID, aCustomTrade));
+ }
+ //Register Skin to Registry.
+ if (aSkin != null) {
+ Core_VillagerAdditions.mVillagerSkins.put(aID, aSkin);
+ }
+
+ }
+
+
+}
diff --git a/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java b/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java
new file mode 100644
index 0000000000..2d6e0bf62a
--- /dev/null
+++ b/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java
@@ -0,0 +1,447 @@
+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.core.lib.CORE;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.plugin.villagers.NameLists;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.enchantment.EnchantmentData;
+import net.minecraft.enchantment.EnchantmentHelper;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.passive.EntityVillager;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.ChunkCoordinates;
+import net.minecraft.util.MathHelper;
+import net.minecraft.village.MerchantRecipe;
+import net.minecraft.village.MerchantRecipeList;
+import net.minecraft.village.Village;
+import net.minecraft.world.World;
+
+public abstract 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.
+ */
+
+ public EntityBaseVillager(World aWorld, int aID) {
+ super(aWorld, 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() != 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() {
+ return super.getProfession();
+ }
+
+ @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 abstract boolean shouldAlwaysSprint();
+
+ @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);
+ }
+ }
+
+ }
+
+ @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;
+ try {
+ v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN");
+ try {
+ return v82191 != null ? v82191.getFloat(this) : 0f;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return 0f;
+ }
+ } catch (NoSuchFieldException e1) {
+ 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;
+ try {
+ v82191 = ReflectionUtils.getField(getClass(), "needsInitilization");
+ try {
+ return v82191 != null ? v82191.getBoolean(this) : false;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return false;
+ }
+ } catch (NoSuchFieldException e1) {
+ return false;
+ }
+ }
+
+ protected void setNeedsInitilization(boolean f) {
+ try {
+ ReflectionUtils.setField(this, "needsInitilization", f);
+ } catch (IllegalArgumentException e) {}
+ }
+
+ protected MerchantRecipeList getBuyingList() {
+ Field v82191;
+ MerchantRecipeList o;
+ try {
+ v82191 = ReflectionUtils.getField(getClass(), "buyingList");
+ try {
+ o = (MerchantRecipeList) v82191.get(this);
+ return v82191 != null ? o : null;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return null;
+ }
+ } catch (NoSuchFieldException e1) {
+ return null;
+ }
+ }
+
+ protected void setBuyingList(MerchantRecipeList f) {
+ try {
+ ReflectionUtils.setField(this, "buyingList", f);
+ } catch (IllegalArgumentException e) {}
+ }
+
+ protected Village getVillageObject() {
+ Field v82191;
+ try {
+ v82191 = ReflectionUtils.getField(getClass(), "villageObj");
+ try {
+ return v82191 != null ? (Village) v82191.get(this) : null;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return null;
+ }
+ } catch (NoSuchFieldException e1) {
+ return null;
+ }
+ }
+
+ protected String getLastBuyingPlayer() {
+ Field v82191;
+ try {
+ v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer");
+ try {
+ return v82191 != null ? (String) v82191.get(this) : "";
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return "";
+ }
+ } catch (NoSuchFieldException e1) {
+ 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:
+ func_146091_a(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F));
+ func_146091_a(merchantrecipelist, Item.getItemFromBlock(Blocks.wool), this.rand, this.adjustProbability(0.5F));
+ func_146091_a(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F));
+ func_146091_a(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F));
+ func_146089_b(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F));
+ func_146089_b(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(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:
+ func_146091_a(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F));
+ func_146091_a(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F));
+ func_146091_a(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Item.getItemFromBlock(Blocks.bookshelf), this.rand, this.adjustProbability(0.8F));
+ func_146089_b(merchantrecipelist, Item.getItemFromBlock(Blocks.glass), this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(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:
+ func_146089_b(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F));
+ func_146089_b(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:
+ func_146091_a(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
+ func_146091_a(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F));
+ func_146091_a(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F));
+ func_146091_a(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F));
+ func_146089_b(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F));
+ func_146089_b(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F));
+ func_146089_b(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F));
+ func_146089_b(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F));
+ func_146089_b(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F));
+ func_146089_b(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F));
+ func_146089_b(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F));
+ func_146089_b(merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F));
+ func_146089_b(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F));
+ break;
+ case 4:
+ func_146091_a(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
+ func_146091_a(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F));
+ func_146091_a(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F));
+ func_146089_b(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F));
+ func_146089_b(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F));
+ func_146089_b(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F));
+ }
+
+ if (merchantrecipelist.isEmpty())
+ {
+ func_146091_a(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)
+ {
+ this.getBuyingList().addToListWithCheck((MerchantRecipe)merchantrecipelist.get(l));
+ }
+ }
+
+ /**
+ * 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();
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java b/src/Java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java
new file mode 100644
index 0000000000..61db98e803
--- /dev/null
+++ b/src/Java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java
@@ -0,0 +1,32 @@
+package gtPlusPlus.plugin.villagers.entity.trade;
+
+import java.util.Random;
+
+import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
+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);
+ */
+
+ @Override
+ public abstract void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random);
+
+}