text: /*
   * Author:          Mark Wright (markscottwright@gmail.com)
   * Creation Date:   2017-02-04
   */
  
  #ifndef __FAKER_H___
  #define __FAKER_H___
  
  #include <iostream>
  #include <memory>
  #include <string>
  #include <vector>
  #include <map>
  #include <ctime>
  #include <sstream>
  #include <cstdlib>
  #include <random>
  #include <chrono>
  
  namespace faker {
  using namespace std;
  
  class fakerbase {
  public:
      virtual void write(ostream& o) = 0;
  };
  using fakerp = shared_ptr<fakerbase>;
  
  ostream& operator<<(ostream& o, const fakerp& p) {
      p->write(o);
      return o;
  }
  
  
  class digitfaker : public fakerbase {
  public:
      virtual void write(ostream& o) {
          o << (rand() % 10);
      }
  };
  
  
  class digitsfaker : public fakerbase {
      int n;
  public:
      digitsfaker(int n) : n(n) {}
      virtual void write(ostream& o) {
          for (int i=0; i < n; ++i)
              o << (rand() % 10);
      }
  };
  
  class posdigitsfaker : public fakerbase {
      int n;
  public:
      posdigitsfaker(int n) : n(n) {}
      virtual void write(ostream& o) {
          o << ((rand() % 9) + 1);
          for (int i=1; i < n; ++i)
              o << (rand() % 10);
      }
  };
  
  class maxdigitsfaker : public fakerbase {
      int n;
  public:
      maxdigitsfaker(int n) : n(n) {}
      virtual void write(ostream& o) {
          bool digitwritten = false;
          while (!digitwritten) {
              for (int i=0; i < n; ++i) {
                  int d = (rand() % 10);
  
                  // dont write preceeding 0s
                  if (d == 0 && !digitwritten)
                      ;
                  else {
                      o << d;
                      digitwritten = true;
                  }
              }
          }
          
      }
  };
  
  class templatefaker : public fakerbase {
      string templ;
  
  public:
      templatefaker(string templ) : templ(templ) {}
      virtual void write(ostream& o) {
          int i=0;
          while (i < templ.size()) {
              if (templ[i] == '\\') {
                  i += 1;
                  o << templ[i];
              }
              else if (templ[i] == '#') {
                  o << (rand() % 10);
              }
              else {
                  o << templ[i];
              }
              ++i;
          }
      }
  };
  
  
  class strfaker : public fakerbase {
      string s;
  public:
      strfaker(string s) : s(s) {}
      virtual void write(ostream& o) {
          o << s;
      }
  };
  
  
  class combinefaker : public fakerbase {
      vector<fakerp> elems;
      string delimiter;
  public:
      combinefaker(string delimiter, vector<fakerp> elems)
              : delimiter(delimiter), elems(elems) {}
      combinefaker(vector<fakerp> elems)
              : elems(elems) {}
      virtual void write(ostream& o) {
          bool first = true;
          for (auto const& e : elems) {
              if (first)
                  first = false;
              else
                  o << delimiter;
              o << e;
          }
      }
  };
  
  
  class oneofcharfaker : public fakerbase {
      string elems;
  public:
      oneofcharfaker(string elems) : elems(elems) {}
      virtual void write(ostream& o) {
          int i = rand() % elems.size();
          o << (char) elems[i];
      }
  };
  
  class oneofcharpfaker : public fakerbase {
      const char** elems;
      size_t n;
  public:
      oneofcharpfaker(const char** elems, size_t n) : elems(elems), n(n) {}
      virtual void write(ostream& o) {
          int i = rand() % n;
          o << elems[i];
      }
  };
  
  class oneofstrfaker : public fakerbase {
      vector<string> elems;
  public:
      oneofstrfaker(vector<string> elems) : elems(elems) {}
      virtual void write(ostream& o) {
          int i = rand() % elems.size();
          o << elems[i];
      }
  };
  
  class oneoffaker : public fakerbase {
      vector<fakerp> elems;
  public:
      oneoffaker(vector<fakerp> elems) : elems(elems) {}
      virtual void write(ostream& o) {
          int i = rand() % elems.size();
          o << elems[i];
      }
  };
  
  class usernamefaker : public fakerbase {
      fakerp firstname;
      fakerp lastname;
  public:
      usernamefaker(fakerp firstname, fakerp lastname)
          : firstname(firstname), lastname(lastname) {}
      virtual void write(ostream& o) {
          ostringstream firststr, laststr;
          firstname->write(firststr);
          lastname->write(laststr);
          o << (char) tolower(firststr.str()[0]);
          int maxn=7, i=0;
          for (auto c : laststr.str()) {
              if (isalpha(c)) {
                  o << (char) tolower(c);
                  if (i++ > maxn)
                      break;
              }
          }
      }
  };
  
  class domainnamefaker : public fakerbase {
      fakerp company;
  public:
      domainnamefaker(fakerp company) : company(company) {}
      virtual void write(ostream& o) {
          ostringstream companystr;
          company->write(companystr);
          char lastc = '-';
          for (auto c : companystr.str()) {
              if (isalnum(c)) {
                  o << (char) tolower(c);
              }
              else if (isalnum(lastc)) {
                  o << "-";
              }
              lastc = c;
          }
      }
  };
  
  class unixtimefaker : public fakerbase {
  public:
      virtual void write(ostream& o) {
          time_t randtime = rand() % time(NULL);
          o << (int) randtime;
      }
  };
  
  class datefaker : public fakerbase {
  public:
      virtual void write(ostream& o) {
          time_t randtime = rand() % time(NULL);
          char buffer[20];
          strftime(buffer, 20, "%F", localtime(&randtime));
          o << buffer;
      }
  };
  
  
  class faker {
  protected:
      map<string,fakerp> fakers;
  
  public:
      faker() {
          // use C++ high resolution clock so we can call this more than once per
          // second and still get different results.
          using namespace std::chrono;
          srand(duration_cast<milliseconds>(
             system_clock::now().time_since_epoch()).count());
          #define reg(x) fakers[#x] = x()
          reg(unixtime);
      }
      virtual fakerp operator[](string n) {
          auto it = fakers.find(n);
          if (it == fakers.end())
              return str("");
          return it->second;
      }
  
  
      fakerp digit() {return make_shared<digitfaker>();}
      fakerp digits(int n) {return make_shared<digitsfaker>(n);}
      fakerp posdigits(int n) {return make_shared<posdigitsfaker>(n);}
      fakerp maxdigits(int n) {return make_shared<digitsfaker>(n);}
      fakerp str(string s) {return make_shared<strfaker>(s);}
      fakerp combine(vector<fakerp> elems) {
          return make_shared<combinefaker>(elems);
      }
      fakerp combine(fakerp e1) {
          auto elems = {e1};
          return make_shared<combinefaker>(elems);
      }
      fakerp combine(fakerp e1, fakerp e2) {
          auto elems = {e1, e2};
          return make_shared<combinefaker>(elems);
      }
      fakerp combine(fakerp e1, fakerp e2, fakerp e3) {
          auto elems = {e1, e2, e3};
          return make_shared<combinefaker>(elems);
      }
      fakerp combine(fakerp e1, fakerp e2, fakerp e3, fakerp e4) {
          auto elems = {e1, e2, e3, e4};
          return make_shared<combinefaker>(elems);
      }
      fakerp combine(fakerp e1, fakerp e2, fakerp e3, fakerp e4, fakerp e5) {
          auto elems = {e1, e2, e3, e4, e5};
          return make_shared<combinefaker>(elems);
      }
  
      fakerp combine(string delimiter, vector<fakerp> elems) {
          return make_shared<combinefaker>(delimiter, elems);
      }
      fakerp combine(string delimiter, fakerp e1) {
          auto elems = {e1};
          return make_shared<combinefaker>(delimiter, elems);
      }
      fakerp combine(string delimiter, fakerp e1, fakerp e2) {
          auto elems = {e1, e2};
          return make_shared<combinefaker>(delimiter, elems);
      }
      fakerp combine(string delimiter, fakerp e1, fakerp e2, fakerp e3) {
          auto elems = {e1, e2, e3};
          return make_shared<combinefaker>(delimiter, elems);
      }
      fakerp combine(string delimiter, fakerp e1, fakerp e2, fakerp e3, fakerp e4) {
          auto elems = {e1, e2, e3, e4};
          return make_shared<combinefaker>(delimiter, elems);
      }
  
      fakerp oneof(vector<string> elems) {
          return make_shared<oneofstrfaker>(elems);
      }
      fakerp oneof(vector<fakerp> elems) {
          return make_shared<oneoffaker>(elems);
      }
      fakerp oneof(fakerp e1) {
          auto elems = {e1};
          return make_shared<oneoffaker>(elems);
      }
      fakerp oneof(fakerp e1, fakerp e2) {
          auto elems = {e1, e2};
          return make_shared<oneoffaker>(elems);
      }
      fakerp oneof(fakerp e1, fakerp e2, fakerp e3) {
          auto elems = {e1, e2, e3};
          return make_shared<oneoffaker>(elems);
      }
      fakerp oneof(fakerp e1, fakerp e2, fakerp e3, fakerp e4) {
          auto elems = {e1, e2, e3, e4};
          return make_shared<oneoffaker>(elems);
      }
      fakerp oneof(fakerp e1, fakerp e2, fakerp e3, fakerp e4, fakerp e5) {
          auto elems = {e1, e2, e3, e4, e5};
          return make_shared<oneoffaker>(elems);
      }
      fakerp oneofchar(string elems) {
          return make_shared<oneofcharfaker>(elems);
      }
      fakerp templ(string templ) {
          return make_shared<templatefaker>(templ);
      }
      fakerp unixtime() {
          return make_shared<unixtimefaker>();
      }
  };
  
  class usafaker : public faker {
  
  public:
      usafaker() {
          #define reg(x) fakers[#x] = x()
          
          reg(ssn);
          reg(state);
          reg(zipcode);
          reg(city);
          reg(date);
          reg(first_name);
          reg(last_name);
          reg(state_abbr);
          reg(secondary_unit_number);
          reg(secondary_unit_designator);
          reg(name);
          reg(street_address);
          reg(phone_number);
          reg(email);
      }
  
      fakerp ssn() {
          return combine("-", digits(3), digits(2), digits(4));
      }
      fakerp zipcode() {
          return oneof(
                  digits(5),
                  combine(digits(5), str("-"), digits(4)));
      }
      fakerp state() {
          static const char* elems[] = {
              "Alabama", "Alaska", "Arizona", "Arkansas", "California",
              "Colorado", "Connecticut", "Delaware", "Florida", "Georgia",
              "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas",
              "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts",
              "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana",
              "Nebraska", "Nevada", "Ohio", "Oklahoma", "Oregon", "Pennsylvania",
              "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Wisconsin",
              "Wyoming", "Washington", "New Hampshire", "New Jersey",
              "New Mexico", "New York", "North Carolina", "North Dakota",
              "Rhode Island", "South Carolina", "South Dakota", "West Virginia"
          };
  
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
      fakerp city() {
          static const char* elems[] = {
  	    "Agoura Hills",
              "Akron",
              "Alameda",
              "Alhambra",
              "Aliso Viejo",
              "Anaheim",
              "Anchorage",
              "Apple Valley",
              "Arcadia",
              "Artesia",
              "Ashland",
              "Athens",
              "Atwater",
              "Auburn",
              "Avalon",
              "Azusa",
              "Bakersfield",
              "Baldwin Park",
              "Barrow",
              "Bell Gardens",
              "Bell",
              "Bellflower",
              "Bentonville",
              "Berkeley",
              "Bessemer",
              "Beverly Hills",
              "Birmingham",
              "Bloomington",
              "Blythe",
              "Bowling Green",
              "Bradbury",
              "Brea",
              "Buena Park",
              "Burbank",
              "Burlingame",
              "Calabasas",
              "Canton",
              "Carson",
              "Cerritos",
              "Chandler",
              "Chico",
              "Chino Hills",
              "Chino",
              "Chula Vista",
              "Cincinnati",
              "Citrus Heights",
              "City of Industry",
              "Claremont",
              "Cleveland",
              "Columbus",
              "Commerce",
              "Compton",
              "Concord",
              "Corona",
              "Costa Mesa",
              "Covina",
              "Covington",
              "Crown Point",
              "Cudahy",
              "Culver City",
              "Cypress",
              "Daly City",
              "Dana Point",
              "Danville",
              "Dayton",
              "Decatur",
              "Delta Junction",
              "Demopolis",
              "Diamond Bar",
              "Dothan",
              "Downey",
              "Duarte",
              "El Cerrito",
              "El Monte",
              "El Segundo",
              "Elkhart",
              "Escondido",
              "Eufaula",
              "Eureka",
              "Evansville",
              "Fairbanks",
              "Fairfield",
              "Fayetteville",
              "Flagstaff",
              "Florence",
              "Florence",
              "Fontana",
              "Forrest City",
              "Fort Smith",
              "Fort Wayne",
              "Fountain Valley",
              "Frankfort",
              "Fremont",
              "Fresno",
              "Fullerton",
              "Gadsden",
              "Garden Grove",
              "Gardena",
              "Gary",
              "Gilbert",
              "Glendale",
              "Glendale",
              "Glendora",
              "Gulf Shores",
              "Half Moon Bay",
              "Hamilton",
              "Hammond",
              "Hawaiian Gardens",
              "Hawthorne",
              "Hayward",
              "Hermosa Beach",
              "Hidden Hills",
              "Hollister",
              "Hollywood",
              "Homer",
              "Hoover",
              "Hope",
              "Hopkinsville",
              "Hot Springs",
              "Huntington Beach",
              "Huntington Park",
              "Huntsville",
              "Indianapolis",
              "Indio",
              "Inglewood",
              "Irvine",
              "Irwindale",
              "Jasper",
              "Jeffersontown",
              "Jonesboro",
              "Juneau",
              "Kent",
              "Ketchikan",
              "Kettering",
              "Kokomo",
              "La Cañada Flintridge",
              "La Habra Heights",
              "La Habra",
              "La Jolla",
              "La Mirada",
              "La Palma",
              "La Puente",
              "La Verne",
              "Lafayette",
              "Laguna Beach",
              "Laguna Hills",
              "Laguna Niguel",
              "Laguna Woods",
              "Lake Forest",
              "Lakewood",
              "Lakewood",
              "Lancaster",
              "Lawndale",
              "Lexington",
              "Lima",
              "Little Rock",
              "Lodi",
              "Lomita",
              "Long Beach",
              "Los Alamitos",
              "Los Angeles",
              "Louisville",
              "Lynwood",
              "Malibu",
              "Manhattan Beach",
              "Marana",
              "Maywood",
              "Mentor",
              "Mentor-on-the-Lake",
              "Merced",
              "Mesa",
              "Michigan City",
              "Middletown",
              "Mission Viejo",
              "Mobile",
              "Modesto",
              "Monrovia",
              "Montebello",
              "Monterey Park",
              "Monterey",
              "Montgomery",
              "Moraga",
              "Moreno Valley",
              "Muncie",
              "Murray",
              "Murrieta",
              "Nenana",
              "Newport Beach",
              "Nogales",
              "Nome",
              "North Little Rock",
              "North Pole",
              "Norwalk",
              "Oakland",
              "Ontario",
              "Orange",
              "Oro Valley",
              "Owensboro",
              "Oxford",
              "Oxnard",
              "Paducah",
              "Palm Springs",
              "Palmdale",
              "Palo Alto",
              "Palos Verdes Estates",
              "Paramount",
              "Parma",
              "Pasadena",
              "Peoria",
              "Phenix City",
              "Phoenix",
              "Pico Rivera",
              "Pine Bluff",
              "Placentia",
              "Pomona",
              "Prescott",
              "Rancho Cordova",
              "Rancho Cucamonga",
              "Rancho Palos Verdes",
              "Rancho Santa Margarita",
              "Redding",
              "Redlands",
              "Redondo Beach",
              "Rialto",
              "Richmond",
              "Riverside",
              "Rohnert Park",
              "Rolling Hills Estates",
              "Rolling Hills",
              "Rosemead",
              "Roseville",
              "Sacramento",
              "Sahuarita",
              "Salinas",
              "San Bernardino",
              "San Clemente",
              "San Diego",
              "San Dimas",
              "San Fernando",
              "San Francisco",
              "San Gabriel",
              "San Jose",
              "San Juan Capistrano",
              "San Luis Obispo",
              "San Marino",
              "San Mateo",
              "San Rafael",
              "Santa Ana",
              "Santa Barbara",
              "Santa Clara",
              "Santa Clarita",
              "Santa Cruz",
              "Santa Fe Springs",
              "Santa Monica",
              "Santa Rosa",
              "Scottsdale",
              "Seal Beach",
              "Selma",
              "Seward",
              "Sierra Madre",
              "Sierra Vista",
              "Signal Hill",
              "Simi Valley",
              "Sitka",
              "Sonoma",
              "South Bend",
              "South El Monte",
              "South Gate",
              "South Pasadena",
              "Springdale",
              "Springfield",
              "Stanton",
              "Steubenville",
              "Stockton",
              "Sunnyvale",
              "Sutter Creek",
              "Temecula",
              "Tempe",
              "Temple City",
              "Terre Haute",
              "Texarkana",
              "Thousand Oaks",
              "Tok",
              "Toledo",
              "Torrance",
              "Troy",
              "Tucson",
              "Tuscaloosa",
              "Tuskegee",
              "Tustin",
              "Two Rivers",
              "Union City",
              "Valdez",
              "Valencia",
              "Vallejo",
              "Valparaiso",
              "Ventura",
              "Vernon",
              "Villa Park",
              "Vincennes",
              "Visalia",
              "Walnut",
              "West Covina",
              "West Hollywood",
              "West Lafayette",
              "West Memphis",
              "Westlake Village",
              "Westminster",
              "Whittier",
              "Wynne",
              "Yorba Linda",
              "Youngstown",
              "Yuma",
              "Zanesville",
          };
  
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
      fakerp state_abbr() {
          static const char* elems[] = {
              "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FM",
              "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA",
              "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV",
              "NH", "NJ", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW",
              "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VI", "VA",
              "WA", "WV", "WI", "WY", "AE", "AA", "AP",
          };
  
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
      fakerp street_suffix() {
          static const char* elems[] = {
              "Alley", "Avenue", "Branch", "Bridge", "Brook", "Brooks", "Burg",
              "Burgs", "Bypass", "Camp", "Canyon", "Cape", "Causeway", "Center",
              "Centers", "Circle", "Circles", "Cliff", "Cliffs", "Club", "Common",
              "Corner", "Corners", "Course", "Court", "Courts", "Cove", "Coves",
              "Creek", "Crescent", "Crest", "Crossing", "Crossroad", "Curve",
              "Dale", "Dam", "Divide", "Drive", "Drive", "Drives", "Estate",
              "Estates", "Expressway", "Extension", "Extensions", "Fall", "Falls",
              "Ferry", "Field", "Fields", "Flat", "Flats", "Ford", "Fords",
              "Forest", "Forge", "Forges", "Fork", "Forks", "Fort", "Freeway",
              "Garden", "Gardens", "Gateway", "Glen", "Glens", "Green", "Greens",
              "Grove", "Groves", "Harbor", "Harbors", "Haven", "Heights",
              "Highway", "Hill", "Hills", "Hollow", "Inlet", "Inlet", "Island",
              "Island", "Islands", "Islands", "Isle", "Isle", "Junction",
              "Junctions", "Key", "Keys", "Knoll", "Knolls", "Lake", "Lakes",
              "Land", "Landing", "Lane", "Light", "Lights", "Loaf", "Lock",
              "Locks", "Locks", "Lodge", "Lodge", "Loop", "Mall", "Manor",
              "Manors", "Meadow", "Meadows", "Mews", "Mill", "Mills", "Mission",
              "Mission", "Motorway", "Mount", "Mountain", "Mountain", "Mountains",
              "Mountains", "Neck", "Orchard", "Oval", "Overpass", "Park", "Parks",
              "Parkway", "Parkways", "Pass", "Passage", "Path", "Pike", "Pine",
              "Pines", "Place", "Plain", "Plains", "Plains", "Plaza", "Plaza",
              "Point", "Points", "Port", "Port", "Ports", "Ports", "Prairie",
              "Prairie", "Radial", "Ramp", "Ranch", "Rapid", "Rapids", "Rest",
              "Ridge", "Ridges", "River", "Road", "Road", "Roads", "Roads",
              "Route", "Row", "Rue", "Run", "Shoal", "Shoals", "Shore", "Shores",
              "Skyway", "Spring", "Springs", "Springs", "Spur", "Spurs", "Square",
              "Square", "Squares", "Squares", "Station", "Station", "Stravenue",
              "Stravenue", "Stream", "Stream", "Street", "Street", "Streets",
              "Summit", "Summit", "Terrace", "Throughway", "Trace", "Track",
              "Trafficway", "Trail", "Trail", "Tunnel", "Tunnel", "Turnpike",
              "Turnpike", "Underpass", "Union", "Unions", "Valley", "Valleys",
              "Via", "Viaduct", "View", "Views", "Village", "Village", "Villages",
              "Ville", "Vista", "Vista", "Walk", "Walks", "Wall", "Way", "Ways",
              "Well", "Wells",
          };
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
      fakerp last_name() {
          static const char* elems[] = {
              "Abbott", "Abernathy", "Abshire", "Adams", "Altenwerth", "Anderson",
              "Ankunding", "Armstrong", "Auer", "Aufderhar", "Bahringer",
              "Bailey", "Balistreri", "Barrows", "Bartell", "Bartoletti",
              "Barton", "Bashirian", "Batz", "Bauch", "Baumbach", "Bayer",
              "Beahan", "Beatty", "Bechtelar", "Becker", "Bednar", "Beer",
              "Beier", "Berge", "Bergnaum", "Bergstrom", "Bernhard", "Bernier",
              "Bins", "Blanda", "Blick", "Block", "Bode", "Boehm", "Bogan",
              "Bogisich", "Borer", "Bosco", "Botsford", "Boyer", "Boyle",
              "Bradtke", "Brakus", "Braun", "Breitenberg", "Brekke", "Brown",
              "Bruen", "Buckridge", "Carroll", "Carter", "Cartwright", "Casper",
              "Cassin", "Champlin", "Christiansen", "Cole", "Collier", "Collins",
              "Conn", "Connelly", "Conroy", "Considine", "Corkery", "Cormier",
              "Corwin", "Cremin", "Crist", "Crona", "Cronin", "Crooks",
              "Cruickshank", "Cummerata", "Cummings", "Dach", "D'Amore",
              "Daniel", "Dare", "Daugherty", "Davis", "Deckow", "Denesik",
              "Dibbert", "Dickens", "Dicki", "Dickinson", "Dietrich", "Donnelly",
              "Dooley", "Douglas", "Doyle", "DuBuque", "Durgan", "Ebert",
              "Effertz", "Eichmann", "Emard", "Emmerich", "Erdman", "Ernser",
              "Fadel", "Fahey", "Farrell", "Fay", "Feeney", "Feest", "Feil",
              "Ferry", "Fisher", "Flatley", "Frami", "Franecki", "Friesen",
              "Fritsch", "Funk", "Gaylord", "Gerhold", "Gerlach", "Gibson",
              "Gislason", "Gleason", "Gleichner", "Glover", "Goldner", "Goodwin",
              "Gorczany", "Gottlieb", "Goyette", "Grady", "Graham", "Grant",
              "Green", "Greenfelder", "Greenholt", "Grimes", "Gulgowski",
              "Gusikowski", "Gutkowski", "Gutmann", "Haag", "Hackett", "Hagenes",
              "Hahn", "Haley", "Halvorson", "Hamill", "Hammes", "Hand", "Hane",
              "Hansen", "Harber", "Harris", "Hartmann", "Harvey", "Hauck",
              "Hayes", "Heaney", "Heathcote", "Hegmann", "Heidenreich", "Heller",
              "Herman", "Hermann", "Hermiston", "Herzog", "Hessel", "Hettinger",
              "Hickle", "Hilll", "Hills", "Hilpert", "Hintz", "Hirthe",
              "Hodkiewicz", "Hoeger", "Homenick", "Hoppe", "Howe", "Howell",
              "Hudson", "Huel", "Huels", "Hyatt", "Jacobi", "Jacobs", "Jacobson",
              "Jakubowski", "Jaskolski", "Jast", "Jenkins", "Jerde", "Jewess",
              "Johns", "Johnson", "Johnston", "Jones", "Kassulke", "Kautzer",
              "Keebler", "Keeling", "Kemmer", "Kerluke", "Kertzmann", "Kessler",
              "Kiehn", "Kihn", "Kilback", "King", "Kirlin", "Klein", "Kling",
              "Klocko", "Koch", "Koelpin", "Koepp", "Kohler", "Konopelski",
              "Koss", "Kovacek", "Kozey", "Krajcik", "Kreiger", "Kris",
              "Kshlerin", "Kub", "Kuhic", "Kuhlman", "Kuhn", "Kulas", "Kunde",
              "Kunze", "Kuphal", "Kutch", "Kuvalis", "Labadie", "Lakin", "Lang",
              "Langosh", "Langworth", "Larkin", "Larson", "Leannon", "Lebsack",
              "Ledner", "Leffler", "Legros", "Lehner", "Lemke", "Lesch",
              "Leuschke", "Lind", "Lindgren", "Littel", "Little", "Lockman",
              "Lowe", "Lubowitz", "Lueilwitz", "Luettgen", "Lynch", "Macejkovic",
              "Maggio", "Mann", "Mante", "Marks", "Marquardt", "Marvin", "Mayer",
              "Mayert", "McClure", "McCullough", "McDermott", "McGlynn",
              "McKenzie", "McLaughlin", "Medhurst", "Mertz", "Metz", "Miller",
              "Mills", "Mitchell", "Moen", "Mohr", "Monahan", "Moore", "Morar",
              "Morissette", "Mosciski", "Mraz", "Mueller", "Muller", "Murazik",
              "Murphy", "Murray", "Nader", "Nicolas", "Nienow", "Nikolaus",
              "Nitzsche", "Nolan", "Oberbrunner", "O'Connell", "O'Conner",
              "O'Hara", "O'Keefe", "O'Kon", "Okuneva", "Olson",
              "Ondricka", "O'Reilly", "Orn", "Ortiz", "Osinski", "Pacocha",
              "Padberg", "Pagac", "Parisian", "Parker", "Paucek", "Pfannerstill",
              "Pfeffer", "Pollich", "Pouros", "Powlowski", "Predovic", "Price",
              "Prohaska", "Prosacco", "Purdy", "Quigley", "Quitzon", "Rath",
              "Ratke", "Rau", "Raynor", "Reichel", "Reichert", "Reilly",
              "Reinger", "Rempel", "Renner", "Reynolds", "Rice", "Rippin",
              "Ritchie", "Robel", "Roberts", "Rodriguez", "Rogahn", "Rohan",
              "Rolfson", "Romaguera", "Roob", "Rosenbaum", "Rowe", "Ruecker",
              "Runolfsdottir", "Runolfsson", "Runte", "Russel", "Rutherford",
              "Ryan", "Sanford", "Satterfield", "Sauer", "Sawayn", "Schaden",
              "Schaefer", "Schamberger", "Schiller", "Schimmel", "Schinner",
              "Schmeler", "Schmidt", "Schmitt", "Schneider", "Schoen",
              "Schowalter", "Schroeder", "Schulist", "Schultz", "Schumm",
              "Schuppe", "Schuster", "Senger", "Shanahan", "Shields", "Simonis",
              "Sipes", "Skiles", "Smith", "Smitham", "Spencer", "Spinka",
              "Sporer", "Stamm", "Stanton", "Stark", "Stehr", "Steuber",
              "Stiedemann", "Stokes", "Stoltenberg", "Stracke", "Streich",
              "Stroman", "Strosin", "Swaniawski", "Swift", "Terry", "Thiel",
              "Thompson", "Tillman", "Torp", "Torphy", "Towne", "Toy", "Trantow",
              "Tremblay", "Treutel", "Tromp", "Turcotte", "Turner", "Ullrich",
              "Upton", "Vandervort", "Veum", "Volkman", "Von", "VonRueden",
              "Waelchi", "Walker", "Walsh", "Walter", "Ward", "Waters", "Watsica",
              "Weber", "Wehner", "Weimann", "Weissnat", "Welch", "West", "White",
              "Wiegand", "Wilderman", "Wilkinson", "Will", "Williamson", "Willms",
              "Windler", "Wintheiser", "Wisoky", "Wisozk", "Witting", "Wiza",
              "Wolf", "Wolff", "Wuckert", "Wunsch", "Wyman", "Yost", "Yundt",
              "Zboncak", "Zemlak", "Ziemann", "Zieme", "Zulauf",
          };
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
  
      fakerp first_name() {
          static const char* elems[] = {
  	    "Aaliyah", "Aaron", "Abagail", "Abbey", "Abbie", "Abbigail", "Abby", "Abdiel",
  	    "Abdul", "Abdullah", "Abe", "Abel", "Abelardo", "Abigail", "Abigale",
  	    "Abigayle", "Abner", "Abraham", "Ada", "Adah", "Adalberto", "Adaline", "Adam",
  	    "Adan", "Addie", "Addison", "Adela", "Adelbert", "Adele", "Adelia", "Adeline",
  	    "Adell", "Adella", "Adelle", "Aditya", "Adolf", "Adolfo", "Adolph", "Adolphus",
  	    "Adonis", "Adrain", "Adrian", "Adriana", "Adrianna", "Adriel", "Adrien",
  	    "Adrienne", "Afton", "Aglae", "Agnes", "Agustin", "Agustina", "Ahmad", "Ahmed",
  	    "Aida", "Aidan", "Aiden", "Aileen", "Aimee", "Aisha", "Aiyana", "Akeem", "Al",
  	    "Alaina", "Alan", "Alana", "Alanis", "Alanna", "Alayna", "Alba", "Albert",
  	    "Alberta", "Albertha", "Alberto", "Albin", "Albina", "Alda", "Alden", "Alec",
  	    "Aleen", "Alejandra", "Alejandrin", "Alek", "Alena", "Alene", "Alessandra",
  	    "Alessandro", "Alessia", "Aletha", "Alex", "Alexa", "Alexander", "Alexandra",
  	    "Alexandre", "Alexandrea", "Alexandria", "Alexandrine", "Alexandro", "Alexane",
  	    "Alexanne", "Alexie", "Alexis", "Alexys", "Alexzander", "Alf", "Alfonso",
  	    "Alfonzo", "Alford", "Alfred", "Alfreda", "Alfredo", "Ali", "Alia", "Alice",
  	    "Alicia", "Alisa", "Alisha", "Alison", "Alivia", "Aliya", "Aliyah", "Aliza",
  	    "Alize", "Allan", "Allen", "Allene", "Allie", "Allison", "Ally", "Alphonso",
  	    "Alta", "Althea", "Alva", "Alvah", "Alvena", "Alvera", "Alverta", "Alvina",
  	    "Alvis", "Alyce", "Alycia", "Alysa", "Alysha", "Alyson", "Alysson", "Amalia",
  	    "Amanda", "Amani", "Amara", "Amari", "Amaya", "Amber", "Ambrose", "Amelia",
  	    "Amelie", "Amely", "America", "Americo", "Amie", "Amina", "Amir", "Amira",
  	    "Amiya", "Amos", "Amparo", "Amy", "Amya", "Ana", "Anabel", "Anabelle", "Anahi",
  	    "Anais", "Anastacio", "Anastasia", "Anderson", "Andre", "Andreane",
  	    "Andreanne", "Andres", "Andrew", "Andy", "Angel", "Angela", "Angelica",
  	    "Angelina", "Angeline", "Angelita", "Angelo", "Angie", "Angus", "Anibal",
  	    "Anika", "Anissa", "Anita", "Aniya", "Aniyah", "Anjali", "Anna", "Annabel",
  	    "Annabell", "Annabelle", "Annalise", "Annamae", "Annamarie", "Anne", "Annetta",
  	    "Annette", "Annie", "Ansel", "Ansley", "Anthony", "Antoinette", "Antone",
  	    "Antonetta", "Antonette", "Antonia", "Antonietta", "Antonina", "Antonio",
  	    "Antwan", "Antwon", "Anya", "April", "Ara", "Araceli", "Aracely", "Arch",
  	    "Archibald", "Ardella", "Arden", "Ardith", "Arely", "Ari", "Ariane", "Arianna",
  	    "Aric", "Ariel", "Arielle", "Arjun", "Arlene", "Arlie", "Arlo", "Armand",
  	    "Armando", "Armani", "Arnaldo", "Arne", "Arno", "Arnold", "Arnoldo", "Arnulfo",
  	    "Aron", "Art", "Arthur", "Arturo", "Arvel", "Arvid", "Arvilla", "Aryanna",
  	    "Asa", "Asha", "Ashlee", "Ashleigh", "Ashley", "Ashly", "Ashlynn", "Ashton",
  	    "Ashtyn", "Asia", "Assunta", "Astrid", "Athena", "Aubree", "Aubrey", "Audie",
  	    "Audra", "Audreanne", "Audrey", "August", "Augusta", "Augustine", "Augustus",
  	    "Aurelia", "Aurelie", "Aurelio", "Aurore", "Austen", "Austin", "Austyn",
  	    "Autumn", "Ava", "Avery", "Avis", "Axel", "Ayana", "Ayden", "Ayla", "Aylin",
  	    "Baby", "Bailee", "Bailey", "Barbara", "Barney", "Baron", "Barrett", "Barry",
  	    "Bart", "Bartholome", "Barton", "Baylee", "Beatrice", "Beau", "Beaulah",
  	    "Bell", "Bella", "Belle", "Ben", "Benedict", "Benjamin", "Bennett", "Bennie",
  	    "Benny", "Benton", "Berenice", "Bernadette", "Bernadine", "Bernard",
  	    "Bernardo", "Berneice", "Bernhard", "Bernice", "Bernie", "Berniece", "Bernita",
  	    "Berry", "Bert", "Berta", "Bertha", "Bertram", "Bertrand", "Beryl", "Bessie",
  	    "Beth", "Bethany", "Bethel", "Betsy", "Bette", "Bettie", "Betty", "Bettye",
  	    "Beulah", "Beverly", "Bianka", "Bill", "Billie", "Billy", "Birdie", "Blair",
  	    "Blaise", "Blake", "Blanca", "Blanche", "Blaze", "Bo", "Bobbie", "Bobby",
  	    "Bonita", "Bonnie", "Boris", "Boyd", "Brad", "Braden", "Bradford", "Bradley",
  	    "Bradly", "Brady", "Braeden", "Brain", "Brandi", "Brando", "Brandon", "Brandt",
  	    "Brandy", "Brandyn", "Brannon", "Branson", "Brant", "Braulio", "Braxton",
  	    "Brayan", "Breana", "Breanna", "Breanne", "Brenda", "Brendan", "Brenden",
  	    "Brendon", "Brenna", "Brennan", "Brennon", "Brent", "Bret", "Brett", "Bria",
  	    "Brian", "Briana", "Brianne", "Brice", "Bridget", "Bridgette", "Bridie",
  	    "Brielle", "Brigitte", "Brionna", "Brisa", "Britney", "Brittany", "Brock",
  	    "Broderick", "Brody", "Brook", "Brooke", "Brooklyn", "Brooks", "Brown",
  	    "Bruce", "Bryana", "Bryce", "Brycen", "Bryon", "Buck", "Bud", "Buddy",
  	    "Buford", "Bulah", "Burdette", "Burley", "Burnice", "Buster", "Cade", "Caden",
  	    "Caesar", "Caitlyn", "Cale", "Caleb", "Caleigh", "Cali", "Calista", "Callie",
  	    "Camden", "Cameron", "Camila", "Camilla", "Camille", "Camren", "Camron",
  	    "Camryn", "Camylle", "Candace", "Candelario", "Candice", "Candida", "Candido",
  	    "Cara", "Carey", "Carissa", "Carlee", "Carleton", "Carley", "Carli", "Carlie",
  	    "Carlo", "Carlos", "Carlotta", "Carmel", "Carmela", "Carmella", "Carmelo",
  	    "Carmen", "Carmine", "Carol", "Carolanne", "Carole", "Carolina", "Caroline",
  	    "Carolyn", "Carolyne", "Carrie", "Carroll", "Carson", "Carter", "Cary",
  	    "Casandra", "Casey", "Casimer", "Casimir", "Casper", "Cassandra", "Cassandre",
  	    "Cassidy", "Cassie", "Catalina", "Caterina", "Catharine", "Catherine",
  	    "Cathrine", "Cathryn", "Cathy", "Cayla", "Ceasar", "Cecelia", "Cecil",
  	    "Cecile", "Cecilia", "Cedrick", "Celestine", "Celestino", "Celia", "Celine",
  	    "Cesar", "Chad", "Chadd", "Chadrick", "Chaim", "Chance", "Chandler", "Chanel",
  	    "Chanelle", "Charity", "Charlene", "Charles", "Charley", "Charlie",
  	    "Charlotte", "Chase", "Chasity", "Chauncey", "Chaya", "Chaz", "Chelsea",
  	    "Chelsey", "Chelsie", "Chesley", "Chester", "Chet", "Cheyanne", "Cheyenne",
  	    "Chloe", "Chris", "Christ", "Christa", "Christelle", "Christian", "Christiana",
  	    "Christina", "Christine", "Christop", "Christophe", "Christopher", "Christy",
  	    "Chyna", "Ciara", "Cicero", "Cielo", "Cierra", "Cindy", "Citlalli", "Clair",
  	    "Claire", "Clara", "Clarabelle", "Clare", "Clarissa", "Clark", "Claud",
  	    "Claude", "Claudia", "Claudie", "Claudine", "Clay", "Clemens", "Clement",
  	    "Clementina", "Clementine", "Clemmie", "Cleo", "Cleora", "Cleta", "Cletus",
  	    "Cleve", "Cleveland", "Clifford", "Clifton", "Clint", "Clinton", "Clotilde",
  	    "Clovis", "Cloyd", "Clyde", "Coby", "Cody", "Colby", "Cole", "Coleman",
  	    "Colin", "Colleen", "Collin", "Colt", "Colten", "Colton", "Columbus",
  	    "Concepcion", "Conner", "Connie", "Connor", "Conor", "Conrad", "Constance",
  	    "Constantin", "Consuelo", "Cooper", "Cora", "Coralie", "Corbin", "Cordelia",
  	    "Cordell", "Cordia", "Cordie", "Corene", "Corine", "Cornelius", "Cornell",
  	    "Corrine", "Cortez", "Cortney", "Cory", "Coty", "Courtney", "Coy", "Craig",
  	    "Crawford", "Creola", "Cristal", "Cristian", "Cristina", "Cristobal",
  	    "Cristopher", "Cruz", "Crystal", "Crystel", "Cullen", "Curt", "Curtis",
  	    "Cydney", "Cynthia", "Cyril", "Cyrus", "Dagmar", "Dahlia", "Daija", "Daisha",
  	    "Daisy", "Dakota", "Dale", "Dallas", "Dallin", "Dalton", "Damaris", "Dameon",
  	    "Damian", "Damien", "Damion", "Damon", "Dan", "Dana", "Dandre", "Dane",
  	    "D'angelo", "Dangelo", "Danial", "Daniela", "Daniella", "Danielle",
  	    "Danika", "Dannie", "Danny", "Dante", "Danyka", "Daphne", "Daphnee", "Daphney",
  	    "Darby", "Daren", "Darian", "Dariana", "Darien", "Dario", "Darion", "Darius",
  	    "Darlene", "Daron", "Darrel", "Darrell", "Darren", "Darrick", "Darrin",
  	    "Darrion", "Darron", "Darryl", "Darwin", "Daryl", "Dashawn", "Dasia", "Dave",
  	    "David", "Davin", "Davion", "Davon", "Davonte", "Dawn", "Dawson", "Dax",
  	    "Dayana", "Dayna", "Dayne", "Dayton", "Dean", "Deangelo", "Deanna", "Deborah",
  	    "Declan", "Dedric", "Dedrick", "Dee", "Deion", "Deja", "Dejah", "Dejon",
  	    "Dejuan", "Delaney", "Delbert", "Delfina", "Delia", "Delilah", "Dell", "Della",
  	    "Delmer", "Delores", "Delpha", "Delphia", "Delphine", "Delta", "Demarco",
  	    "Demarcus", "Demario", "Demetris", "Demetrius", "Demond", "Dena", "Denis",
  	    "Dennis", "Deon", "Deondre", "Deontae", "Deonte", "Dereck", "Derek", "Derick",
  	    "Deron", "Derrick", "Deshaun", "Deshawn", "Desiree", "Desmond", "Dessie",
  	    "Destany", "Destin", "Destinee", "Destiney", "Destini", "Destiny", "Devan",
  	    "Devante", "Deven", "Devin", "Devon", "Devonte", "Devyn", "Dewayne", "Dewitt",
  	    "Dexter", "Diamond", "Diana", "Dianna", "Diego", "Dillan", "Dillon", "Dimitri",
  	    "Dina", "Dino", "Dion", "Dixie", "Dock", "Dolly", "Dolores", "Domenic",
  	    "Domenica", "Domenick", "Domenico", "Domingo", "Dominic", "Dominique", "Don",
  	    "Donald", "Donato", "Donavon", "Donna", "Donnell", "Donnie", "Donny", "Dora",
  	    "Dorcas", "Dorian", "Doris", "Dorothea", "Dorothy", "Dorris", "Dortha",
  	    "Dorthy", "Doug", "Douglas", "Dovie", "Doyle", "Drake", "Drew", "Duane",
  	    "Dudley", "Dulce", "Duncan", "Durward", "Dustin", "Dusty", "Dwight", "Dylan",
  	    "Earl", "Earlene", "Earline", "Earnest", "Earnestine", "Easter", "Easton",
  	    "Ebba", "Ebony", "Ed", "Eda", "Edd", "Eddie", "Eden", "Edgar", "Edgardo",
  	    "Edison", "Edmond", "Edmund", "Edna", "Eduardo", "Edward", "Edwardo", "Edwin",
  	    "Edwina", "Edyth", "Edythe", "Effie", "Efrain", "Efren", "Eileen", "Einar",
  	    "Eino", "Eladio", "Elaina", "Elbert", "Elda", "Eldon", "Eldora", "Eldred",
  	    "Eldridge", "Eleanora", "Eleanore", "Eleazar", "Electa", "Elena", "Elenor",
  	    "Elenora", "Eleonore", "Elfrieda", "Eli", "Elian", "Eliane", "Elias",
  	    "Eliezer", "Elijah", "Elinor", "Elinore", "Elisa", "Elisabeth", "Elise",
  	    "Eliseo", "Elisha", "Elissa", "Eliza", "Elizabeth", "Ella", "Ellen", "Ellie",
  	    "Elliot", "Elliott", "Ellis", "Ellsworth", "Elmer", "Elmira", "Elmo", "Elmore",
  	    "Elna", "Elnora", "Elody", "Eloisa", "Eloise", "Elouise", "Eloy", "Elroy",
  	    "Elsa", "Else", "Elsie", "Elta", "Elton", "Elva", "Elvera", "Elvie", "Elvis",
  	    "Elwin", "Elwyn", "Elyse", "Elyssa", "Elza", "Emanuel", "Emelia", "Emelie",
  	    "Emely", "Emerald", "Emerson", "Emery", "Emie", "Emil", "Emile", "Emilia",
  	    "Emiliano", "Emilie", "Emilio", "Emily", "Emma", "Emmalee", "Emmanuel",
  	    "Emmanuelle", "Emmet", "Emmett", "Emmie", "Emmitt", "Emmy", "Emory", "Ena",
  	    "Enid", "Enoch", "Enola", "Enos", "Enrico", "Enrique", "Ephraim", "Era",
  	    "Eriberto", "Eric", "Erica", "Erich", "Erick", "Ericka", "Erik", "Erika",
  	    "Erin", "Erling", "Erna", "Ernest", "Ernestina", "Ernestine", "Ernesto",
  	    "Ernie", "Ervin", "Erwin", "Eryn", "Esmeralda", "Esperanza", "Esta", "Esteban",
  	    "Estefania", "Estel", "Estell", "Estella", "Estelle", "Estevan", "Esther",
  	    "Estrella", "Etha", "Ethan", "Ethel", "Ethelyn", "Ethyl", "Ettie", "Eudora",
  	    "Eugene", "Eugenia", "Eula", "Eulah", "Eulalia", "Euna", "Eunice", "Eusebio",
  	    "Eva", "Evalyn", "Evan", "Evangeline", "Evans", "Eve", "Eveline", "Evelyn",
  	    "Everardo", "Everett", "Everette", "Evert", "Evie", "Ewald", "Ewell",
  	    "Ezekiel", "Ezequiel", "Ezra", "Fabian", "Fabiola", "Fae", "Fannie", "Fanny",
  	    "Fatima", "Faustino", "Fausto", "Favian", "Fay", "Faye", "Federico", "Felicia",
  	    "Felicita", "Felicity", "Felipa", "Felipe", "Felix", "Felton", "Fermin",
  	    "Fern", "Fernando", "Ferne", "Fidel", "Filiberto", "Filomena", "Finn", "Fiona",
  	    "Flavie", "Flavio", "Fleta", "Fletcher", "Flo", "Florence", "Florencio",
  	    "Florian", "Florida", "Florine", "Flossie", "Floy", "Floyd", "Ford", "Forest",
  	    "Forrest", "Foster", "Frances", "Francesca", "Francesco", "Francis",
  	    "Francisca", "Francisco", "Franco", "Frank", "Frankie", "Franz", "Fred",
  	    "Freda", "Freddie", "Freddy", "Frederic", "Frederick", "Frederik",
  	    "Frederique", "Fredrick", "Fredy", "Freeda", "Freeman", "Freida", "Frida",
  	    "Frieda", "Friedrich", "Fritz", "Furman", "Gabe", "Gabriel", "Gabriella",
  	    "Gabrielle", "Gaetano", "Gage", "Gail", "Gardner", "Garett", "Garfield",
  	    "Garland", "Garnet", "Garnett", "Garret", "Garrett", "Garrick", "Garrison",
  	    "Garry", "Garth", "Gaston", "Gavin", "Gay", "Gayle", "Gaylord", "Gene",
  	    "General", "Genesis", "Genevieve", "Gennaro", "Genoveva", "Geo", "Geoffrey",
  	    "George", "Georgette", "Georgiana", "Georgianna", "Geovanni", "Geovanny",
  	    "Geovany", "Gerald", "Geraldine", "Gerard", "Gerardo", "Gerda", "Gerhard",
  	    "Germaine", "German", "Gerry", "Gerson", "Gertrude", "Gia", "Gianni", "Gideon",
  	    "Gilbert", "Gilberto", "Gilda", "Giles", "Gillian", "Gina", "Gino", "Giovani",
  	    "Giovanna", "Giovanni", "Giovanny", "Gisselle", "Giuseppe", "Gladyce",
  	    "Gladys", "Glen", "Glenda", "Glenna", "Glennie", "Gloria", "Godfrey", "Golda",
  	    "Golden", "Gonzalo", "Gordon", "Grace", "Gracie", "Graciela", "Grady",
  	    "Graham", "Grant", "Granville", "Grayce", "Grayson", "Green", "Greg", "Gregg",
  	    "Gregoria", "Gregorio", "Gregory", "Greta", "Gretchen", "Greyson", "Griffin",
  	    "Grover", "Guadalupe", "Gudrun", "Guido", "Guillermo", "Guiseppe", "Gunnar",
  	    "Gunner", "Gus", "Gussie", "Gust", "Gustave", "Guy", "Gwen", "Gwendolyn",
  	    "Hadley", "Hailee", "Hailey", "Hailie", "Hal", "Haleigh", "Haley", "Halie",
  	    "Halle", "Hallie", "Hank", "Hanna", "Hannah", "Hans", "Hardy", "Harley",
  	    "Harmon", "Harmony", "Harold", "Harrison", "Harry", "Harvey", "Haskell",
  	    "Hassan", "Hassie", "Hattie", "Haven", "Hayden", "Haylee", "Hayley", "Haylie",
  	    "Hazel", "Hazle", "Heath", "Heather", "Heaven", "Heber", "Hector", "Heidi",
  	    "Helen", "Helena", "Helene", "Helga", "Hellen", "Helmer", "Heloise",
  	    "Henderson", "Henri", "Henriette", "Henry", "Herbert", "Herman", "Hermann",
  	    "Hermina", "Herminia", "Herminio", "Hershel", "Herta", "Hertha", "Hester",
  	    "Hettie", "Hilario", "Hilbert", "Hilda", "Hildegard", "Hillard", "Hillary",
  	    "Hilma", "Hilton", "Hipolito", "Hiram", "Hobart", "Holden", "Hollie", "Hollis",
  	    "Holly", "Hope", "Horace", "Horacio", "Hortense", "Hosea", "Houston", "Howard",
  	    "Howell", "Hoyt", "Hubert", "Hudson", "Hugh", "Hulda", "Humberto", "Hunter",
  	    "Hyman", "Ian", "Ibrahim", "Icie", "Ida", "Idell", "Idella", "Ignacio",
  	    "Ignatius", "Ike", "Ila", "Ilene", "Iliana", "Ima", "Imani", "Imelda",
  	    "Immanuel", "Imogene", "Ines", "Irma", "Irving", "Irwin", "Isaac", "Isabel",
  	    "Isabell", "Isabella", "Isabelle", "Isac", "Isadore", "Isai", "Isaiah",
  	    "Isaias", "Isidro", "Ismael", "Isobel", "Isom", "Israel", "Issac", "Itzel",
  	    "Iva", "Ivah", "Ivory", "Ivy", "Izabella", "Izaiah", "Jabari", "Jace", "Jacey",
  	    "Jacinthe", "Jacinto", "Jack", "Jackeline", "Jackie", "Jacklyn", "Jackson",
  	    "Jacky", "Jaclyn", "Jacquelyn", "Jacques", "Jacynthe", "Jada", "Jade", "Jaden",
  	    "Jadon", "Jadyn", "Jaeden", "Jaida", "Jaiden", "Jailyn", "Jaime", "Jairo",
  	    "Jakayla", "Jake", "Jakob", "Jaleel", "Jalen", "Jalon", "Jalyn", "Jamaal",
  	    "Jamal", "Jamar", "Jamarcus", "Jamel", "Jameson", "Jamey", "Jamie", "Jamil",
  	    "Jamir", "Jamison", "Jammie", "Jan", "Jana", "Janae", "Jane", "Janelle",
  	    "Janessa", "Janet", "Janice", "Janick", "Janie", "Janis", "Janiya", "Jannie",
  	    "Jany", "Jaquan", "Jaquelin", "Jaqueline", "Jared", "Jaren", "Jarod", "Jaron",
  	    "Jarred", "Jarrell", "Jarret", "Jarrett", "Jarrod", "Jarvis", "Jasen",
  	    "Jasmin", "Jason", "Jasper", "Jaunita", "Javier", "Javon", "Javonte", "Jay",
  	    "Jayce", "Jaycee", "Jayda", "Jayde", "Jayden", "Jaydon", "Jaylan", "Jaylen",
  	    "Jaylin", "Jaylon", "Jayme", "Jayne", "Jayson", "Jazlyn", "Jazmin", "Jazmyn",
  	    "Jazmyne", "Jean", "Jeanette", "Jeanie", "Jeanne", "Jed", "Jedediah",
  	    "Jedidiah", "Jeff", "Jefferey", "Jeffery", "Jeffrey", "Jeffry", "Jena",
  	    "Jenifer", "Jennie", "Jennifer", "Jennings", "Jennyfer", "Jensen", "Jerad",
  	    "Jerald", "Jeramie", "Jeramy", "Jerel", "Jeremie", "Jeremy", "Jermain",
  	    "Jermaine", "Jermey", "Jerod", "Jerome", "Jeromy", "Jerrell", "Jerrod",
  	    "Jerrold", "Jerry", "Jess", "Jesse", "Jessica", "Jessie", "Jessika", "Jessy",
  	    "Jessyca", "Jesus", "Jett", "Jettie", "Jevon", "Jewel", "Jewell", "Jillian",
  	    "Jimmie", "Jimmy", "Jo", "Joan", "Joana", "Joanie", "Joanne", "Joannie",
  	    "Joanny", "Joany", "Joaquin", "Jocelyn", "Jodie", "Jody", "Joe", "Joel",
  	    "Joelle", "Joesph", "Joey", "Johan", "Johann", "Johanna", "Johathan", "John",
  	    "Johnathan", "Johnathon", "Johnnie", "Johnny", "Johnpaul", "Johnson", "Jolie",
  	    "Jon", "Jonas", "Jonatan", "Jonathan", "Jonathon", "Jordan", "Jordane",
  	    "Jordi", "Jordon", "Jordy", "Jordyn", "Jorge", "Jose", "Josefa", "Josefina",
  	    "Joseph", "Josephine", "Josh", "Joshua", "Joshuah", "Josiah", "Josiane",
  	    "Josianne", "Josie", "Josue", "Jovan", "Jovani", "Jovanny", "Jovany", "Joy",
  	    "Joyce", "Juana", "Juanita", "Judah", "Judd", "Jude", "Judge", "Judson",
  	    "Judy", "Jules", "Julia", "Julian", "Juliana", "Julianne", "Julie", "Julien",
  	    "Juliet", "Julio", "Julius", "June", "Junior", "Junius", "Justen", "Justice",
  	    "Justina", "Justine", "Juston", "Justus", "Justyn", "Juvenal", "Juwan",
  	    "Kacey", "Kaci", "Kacie", "Kade", "Kaden", "Kadin", "Kaela", "Kaelyn", "Kaia",
  	    "Kailee", "Kailey", "Kailyn", "Kaitlin", "Kaitlyn", "Kale", "Kaleb", "Kaleigh",
  	    "Kaley", "Kali", "Kallie", "Kameron", "Kamille", "Kamren", "Kamron", "Kamryn",
  	    "Kane", "Kara", "Kareem", "Karelle", "Karen", "Kari", "Kariane", "Karianne",
  	    "Karina", "Karine", "Karl", "Karlee", "Karley", "Karli", "Karlie", "Karolann",
  	    "Karson", "Kasandra", "Kasey", "Kassandra", "Katarina", "Katelin", "Katelyn",
  	    "Katelynn", "Katharina", "Katherine", "Katheryn", "Kathleen", "Kathlyn",
  	    "Kathryn", "Kathryne", "Katlyn", "Katlynn", "Katrina", "Katrine", "Kattie",
  	    "Kavon", "Kay", "Kaya", "Kaycee", "Kayden", "Kayla", "Kaylah", "Kaylee",
  	    "Kayleigh", "Kayley", "Kayli", "Kaylie", "Kaylin", "Keagan", "Keanu", "Keara",
  	    "Keaton", "Keegan", "Keeley", "Keely", "Keenan", "Keira", "Keith", "Kellen",
  	    "Kelley", "Kelli", "Kellie", "Kelly", "Kelsi", "Kelsie", "Kelton", "Kelvin",
  	    "Ken", "Kendall", "Kendra", "Kendrick", "Kenna", "Kennedi", "Kennedy",
  	    "Kenneth", "Kennith", "Kenny", "Kenton", "Kenya", "Kenyatta", "Kenyon", "Keon",
  	    "Keshaun", "Keshawn", "Keven", "Kevin", "Kevon", "Keyon", "Keyshawn", "Khalid",
  	    "Khalil", "Kian", "Kiana", "Kianna", "Kiara", "Kiarra", "Kiel", "Kiera",
  	    "Kieran", "Kiley", "Kim", "Kimberly", "King", "Kip", "Kira", "Kirk", "Kirsten",
  	    "Kirstin", "Kitty", "Kobe", "Koby", "Kody", "Kolby", "Kole", "Korbin", "Korey",
  	    "Kory", "Kraig", "Kris", "Krista", "Kristian", "Kristin", "Kristina",
  	    "Kristofer", "Kristoffer", "Kristopher", "Kristy", "Krystal", "Krystel",
  	    "Krystina", "Kurt", "Kurtis", "Kyla", "Kyle", "Kylee", "Kyleigh", "Kyler",
  	    "Kylie", "Kyra", "Lacey", "Lacy", "Ladarius", "Lafayette", "Laila", "Laisha",
  	    "Lamar", "Lambert", "Lamont", "Lance", "Landen", "Lane", "Laney", "Larissa",
  	    "Laron", "Larry", "Larue", "Laura", "Laurel", "Lauren", "Laurence", "Lauretta",
  	    "Lauriane", "Laurianne", "Laurie", "Laurine", "Laury", "Lauryn", "Lavada",
  	    "Lavern", "Laverna", "Laverne", "Lavina", "Lavinia", "Lavon", "Lavonne",
  	    "Lawrence", "Lawson", "Layla", "Layne", "Lazaro", "Lea", "Leann", "Leanna",
  	    "Leanne", "Leatha", "Leda", "Lee", "Leif", "Leila", "Leilani", "Lela", "Lelah",
  	    "Leland", "Lelia", "Lempi", "Lemuel", "Lenna", "Lennie", "Lenny", "Lenora",
  	    "Lenore", "Leo", "Leola", "Leon", "Leonard", "Leonardo", "Leone", "Leonel",
  	    "Leonie", "Leonor", "Leonora", "Leopold", "Leopoldo", "Leora", "Lera",
  	    "Lesley", "Leslie", "Lesly", "Lessie", "Lester", "Leta", "Letha", "Letitia",
  	    "Levi", "Lew", "Lewis", "Lexi", "Lexie", "Lexus", "Lia", "Liam", "Liana",
  	    "Libbie", "Libby", "Lila", "Lilian", "Liliana", "Liliane", "Lilla", "Lillian",
  	    "Lilliana", "Lillie", "Lilly", "Lily", "Lilyan", "Lina", "Lincoln", "Linda",
  	    "Lindsay", "Lindsey", "Linnea", "Linnie", "Linwood", "Lionel", "Lisa",
  	    "Lisandro", "Lisette", "Litzy", "Liza", "Lizeth", "Lizzie", "Llewellyn",
  	    "Lloyd", "Logan", "Lois", "Lola", "Lolita", "Loma", "Lon", "London", "Lonie",
  	    "Lonnie", "Lonny", "Lonzo", "Lora", "Loraine", "Loren", "Lorena", "Lorenz",
  	    "Lorenza", "Lorenzo", "Lori", "Lorine", "Lorna", "Lottie", "Lou", "Louie",
  	    "Louisa", "Lourdes", "Louvenia", "Lowell", "Loy", "Loyal", "Loyce", "Lucas",
  	    "Luciano", "Lucie", "Lucienne", "Lucile", "Lucinda", "Lucio", "Lucious",
  	    "Lucius", "Lucy", "Ludie", "Ludwig", "Lue", "Luella", "Luigi", "Luis", "Luisa",
  	    "Lukas", "Lula", "Lulu", "Luna", "Lupe", "Lura", "Lurline", "Luther", "Luz",
  	    "Lyda", "Lydia", "Lyla", "Lynn", "Lyric", "Lysanne", "Mabel", "Mabelle",
  	    "Mable", "Mac", "Macey", "Maci", "Macie", "Mack", "Mackenzie", "Macy",
  	    "Madaline", "Madalyn", "Maddison", "Madeline", "Madelyn", "Madelynn", "Madge",
  	    "Madie", "Madilyn", "Madisen", "Madison", "Madisyn", "Madonna", "Madyson",
  	    "Mae", "Maegan", "Maeve", "Mafalda", "Magali", "Magdalen", "Magdalena",
  	    "Maggie", "Magnolia", "Magnus", "Maia", "Maida", "Maiya", "Major", "Makayla",
  	    "Makenna", "Makenzie", "Malachi", "Malcolm", "Malika", "Malinda", "Mallie",
  	    "Mallory", "Malvina", "Mandy", "Manley", "Manuel", "Manuela", "Mara", "Marc",
  	    "Marcel", "Marcelina", "Marcelino", "Marcella", "Marcelle", "Marcellus",
  	    "Marcelo", "Marcia", "Marco", "Marcos", "Marcus", "Margaret", "Margarete",
  	    "Margarett", "Margaretta", "Margarette", "Margarita", "Marge", "Margie",
  	    "Margot", "Margret", "Marguerite", "Maria", "Mariah", "Mariam", "Marian",
  	    "Mariana", "Mariane", "Marianna", "Marianne", "Mariano", "Maribel", "Marie",
  	    "Mariela", "Marielle", "Marietta", "Marilie", "Marilou", "Marilyne", "Marina",
  	    "Mario", "Marion", "Marisa", "Marisol", "Maritza", "Marjolaine", "Marjorie",
  	    "Marjory", "Mark", "Markus", "Marlee", "Marlen", "Marlene", "Marley", "Marlin",
  	    "Marlon", "Marques", "Marquis", "Marquise", "Marshall", "Marta", "Martin",
  	    "Martina", "Martine", "Marty", "Marvin", "Mary", "Maryam", "Maryjane",
  	    "Maryse", "Mason", "Mateo", "Mathew", "Mathias", "Mathilde", "Matilda",
  	    "Matilde", "Matt", "Matteo", "Mattie", "Maud", "Maude", "Maudie", "Maureen",
  	    "Maurice", "Mauricio", "Maurine", "Maverick", "Mavis", "Max", "Maxie",
  	    "Maxime", "Maximilian", "Maximillia", "Maximillian", "Maximo", "Maximus",
  	    "Maxine", "Maxwell", "May", "Maya", "Maybell", "Maybelle", "Maye", "Maymie",
  	    "Maynard", "Mayra", "Mazie", "Mckayla", "Mckenna", "Mckenzie", "Meagan",
  	    "Meaghan", "Meda", "Megane", "Meggie", "Meghan", "Mekhi", "Melany", "Melba",
  	    "Melisa", "Melissa", "Mellie", "Melody", "Melvin", "Melvina", "Melyna",
  	    "Melyssa", "Mercedes", "Meredith", "Merl", "Merle", "Merlin", "Merritt",
  	    "Mertie", "Mervin", "Meta", "Mia", "Micaela", "Micah", "Michael", "Michaela",
  	    "Michale", "Micheal", "Michel", "Michele", "Michelle", "Miguel", "Mikayla",
  	    "Mike", "Mikel", "Milan", "Miles", "Milford", "Miller", "Millie", "Milo",
  	    "Milton", "Mina", "Minerva", "Minnie", "Miracle", "Mireille", "Mireya",
  	    "Misael", "Missouri", "Misty", "Mitchel", "Mitchell", "Mittie", "Modesta",
  	    "Modesto", "Mohamed", "Mohammad", "Mohammed", "Moises", "Mollie", "Molly",
  	    "Mona", "Monica", "Monique", "Monroe", "Monserrat", "Monserrate", "Montana",
  	    "Monte", "Monty", "Morgan", "Moriah", "Morris", "Mortimer", "Morton", "Mose",
  	    "Moses", "Moshe", "Mossie", "Mozell", "Mozelle", "Muhammad", "Muriel", "Murl",
  	    "Murphy", "Murray", "Mustafa", "Mya", "Myah", "Mylene", "Myles", "Myra",
  	    "Myriam", "Myrl", "Myrna", "Myron", "Myrtice", "Myrtie", "Myrtis", "Myrtle",
  	    "Nadia", "Nakia", "Name", "Nannie", "Naomi", "Naomie", "Napoleon", "Narciso",
  	    "Nash", "Nasir", "Nat", "Natalia", "Natalie", "Natasha", "Nathan", "Nathanael",
  	    "Nathanial", "Nathaniel", "Nathen", "Nayeli", "Neal", "Ned", "Nedra", "Neha",
  	    "Neil", "Nelda", "Nella", "Nelle", "Nellie", "Nels", "Nelson", "Neoma",
  	    "Nestor", "Nettie", "Neva", "Newell", "Newton", "Nia", "Nicholas", "Nicholaus",
  	    "Nichole", "Nick", "Nicklaus", "Nickolas", "Nico", "Nicola", "Nicolas",
  	    "Nicole", "Nicolette", "Nigel", "Nikita", "Nikki", "Nikko", "Niko", "Nikolas",
  	    "Nils", "Nina", "Noah", "Noble", "Noe", "Noel", "Noelia", "Noemi", "Noemie",
  	    "Noemy", "Nola", "Nolan", "Nona", "Nora", "Norbert", "Norberto", "Norene",
  	    "Norma", "Norris", "Norval", "Norwood", "Nova", "Novella", "Nya", "Nyah",
  	    "Nyasia", "Obie", "Oceane", "Ocie", "Octavia", "Oda", "Odell", "Odessa",
  	    "Odie", "Ofelia", "Okey", "Ola", "Olaf", "Ole", "Olen", "Oleta", "Olga",
  	    "Olin", "Oliver", "Ollie", "Oma", "Omari", "Omer", "Ona", "Onie", "Opal",
  	    "Ophelia", "Ora", "Oral", "Oran", "Oren", "Orie", "Orin", "Orion", "Orland",
  	    "Orlando", "Orlo", "Orpha", "Orrin", "Orval", "Orville", "Osbaldo", "Osborne",
  	    "Oscar", "Osvaldo", "Oswald", "Oswaldo", "Otha", "Otho", "Otilia", "Otis",
  	    "Ottilie", "Ottis", "Otto", "Ova", "Owen", "Ozella", "Pablo", "Paige", "Palma",
  	    "Pamela", "Pansy", "Paolo", "Paris", "Parker", "Pascale", "Pasquale", "Pat",
  	    "Patience", "Patricia", "Patrick", "Patsy", "Pattie", "Paul", "Paula",
  	    "Pauline", "Paxton", "Payton", "Pearl", "Pearlie", "Pearline", "Pedro",
  	    "Peggie", "Penelope", "Percival", "Percy", "Perry", "Pete", "Peter", "Petra",
  	    "Peyton", "Philip", "Phoebe", "Phyllis", "Pierce", "Pierre", "Pietro", "Pink",
  	    "Pinkie", "Piper", "Polly", "Porter", "Precious", "Presley", "Preston",
  	    "Price", "Prince", "Princess", "Priscilla", "Providenci", "Prudence", "Queen",
  	    "Queenie", "Quentin", "Quincy", "Quinn", "Quinten", "Quinton", "Rachael",
  	    "Rachel", "Rachelle", "Rae", "Raegan", "Rafael", "Rafaela", "Raheem",
  	    "Rahsaan", "Rahul", "Raina", "Raleigh", "Ralph", "Ramiro", "Ramon", "Ramona",
  	    "Randal", "Randall", "Randi", "Randy", "Ransom", "Raoul", "Raphael",
  	    "Raphaelle", "Raquel", "Rashad", "Rashawn", "Rasheed", "Raul", "Raven", "Ray",
  	    "Raymond", "Raymundo", "Reagan", "Reanna", "Reba", "Rebeca", "Rebecca",
  	    "Rebeka", "Rebekah", "Reece", "Reed", "Reese", "Regan", "Reggie", "Reginald",
  	    "Reid", "Reilly", "Reina", "Reinhold", "Remington", "Rene", "Renee", "Ressie",
  	    "Reta", "Retha", "Retta", "Reuben", "Reva", "Rex", "Rey", "Reyes", "Reymundo",
  	    "Reyna", "Reynold", "Rhea", "Rhett", "Rhianna", "Rhiannon", "Rhoda", "Ricardo",
  	    "Richard", "Richie", "Richmond", "Rick", "Rickey", "Rickie", "Ricky", "Rico",
  	    "Rigoberto", "Riley", "Rita", "River", "Robb", "Robbie", "Robert", "Roberta",
  	    "Roberto", "Robin", "Robyn", "Rocio", "Rocky", "Rod", "Roderick", "Rodger",
  	    "Rodolfo", "Rodrick", "Rodrigo", "Roel", "Rogelio", "Roger", "Rogers",
  	    "Rolando", "Rollin", "Roma", "Romaine", "Roman", "Ron", "Ronaldo", "Ronny",
  	    "Roosevelt", "Rory", "Rosa", "Rosalee", "Rosalia", "Rosalind", "Rosalinda",
  	    "Rosalyn", "Rosamond", "Rosanna", "Rosario", "Roscoe", "Rose", "Rosella",
  	    "Roselyn", "Rosemarie", "Rosemary", "Rosendo", "Rosetta", "Rosie", "Rosina",
  	    "Roslyn", "Ross", "Rossie", "Rowan", "Rowena", "Rowland", "Roxane", "Roxanne",
  	    "Roy", "Royal", "Royce", "Rozella", "Ruben", "Rubie", "Ruby", "Rubye",
  	    "Rudolph", "Rudy", "Rupert", "Russ", "Russel", "Russell", "Rusty", "Ruth",
  	    "Ruthe", "Ruthie", "Ryan", "Ryann", "Ryder", "Rylan", "Rylee", "Ryleigh",
  	    "Ryley", "Sabina", "Sabrina", "Sabryna", "Sadie", "Sadye", "Sage", "Saige",
  	    "Sallie", "Sally", "Salma", "Salvador", "Salvatore", "Sam", "Samanta",
  	    "Samantha", "Samara", "Samir", "Sammie", "Sammy", "Samson", "Sandra",
  	    "Sandrine", "Sandy", "Sanford", "Santa", "Santiago", "Santina", "Santino",
  	    "Santos", "Sarah", "Sarai", "Sarina", "Sasha", "Saul", "Savanah", "Savanna",
  	    "Savannah", "Savion", "Scarlett", "Schuyler", "Scot", "Scottie", "Scotty",
  	    "Seamus", "Sean", "Sebastian", "Sedrick", "Selena", "Selina", "Selmer",
  	    "Serena", "Serenity", "Seth", "Shad", "Shaina", "Shakira", "Shana", "Shane",
  	    "Shanel", "Shanelle", "Shania", "Shanie", "Shaniya", "Shanna", "Shannon",
  	    "Shanny", "Shanon", "Shany", "Sharon", "Shaun", "Shawn", "Shawna", "Shaylee",
  	    "Shayna", "Shayne", "Shea", "Sheila", "Sheldon", "Shemar", "Sheridan",
  	    "Sherman", "Sherwood", "Shirley", "Shyann", "Shyanne", "Sibyl", "Sid",
  	    "Sidney", "Sienna", "Sierra", "Sigmund", "Sigrid", "Sigurd", "Silas", "Sim",
  	    "Simeon", "Simone", "Sincere", "Sister", "Skye", "Skyla", "Skylar", "Sofia",
  	    "Soledad", "Solon", "Sonia", "Sonny", "Sonya", "Sophia", "Sophie", "Spencer",
  	    "Stacey", "Stacy", "Stan", "Stanford", "Stanley", "Stanton", "Stefan",
  	    "Stefanie", "Stella", "Stephan", "Stephania", "Stephanie", "Stephany",
  	    "Stephen", "Stephon", "Sterling", "Steve", "Stevie", "Stewart", "Stone",
  	    "Stuart", "Summer", "Sunny", "Susan", "Susana", "Susanna", "Susie", "Suzanne",
  	    "Sven", "Syble", "Sydnee", "Sydney", "Sydni", "Sydnie", "Sylvan", "Sylvester",
  	    "Sylvia", "Tabitha", "Tad", "Talia", "Talon", "Tamara", "Tamia", "Tania",
  	    "Tanner", "Tanya", "Tara", "Taryn", "Tate", "Tatum", "Tatyana", "Taurean",
  	    "Tavares", "Taya", "Taylor", "Teagan", "Ted", "Telly", "Terence", "Teresa",
  	    "Terrance", "Terrell", "Terrence", "Terrill", "Terry", "Tess", "Tessie",
  	    "Tevin", "Thad", "Thaddeus", "Thalia", "Thea", "Thelma", "Theo", "Theodora",
  	    "Theodore", "Theresa", "Therese", "Theresia", "Theron", "Thomas", "Thora",
  	    "Thurman", "Tia", "Tiana", "Tianna", "Tiara", "Tierra", "Tiffany", "Tillman",
  	    "Timmothy", "Timmy", "Timothy", "Tina", "Tito", "Titus", "Tobin", "Toby",
  	    "Tod", "Tom", "Tomas", "Tomasa", "Tommie", "Toney", "Toni", "Tony", "Torey",
  	    "Torrance", "Torrey", "Toy", "Trace", "Tracey", "Tracy", "Travis", "Travon",
  	    "Tre", "Tremaine", "Tremayne", "Trent", "Trenton", "Tressa", "Tressie",
  	    "Treva", "Trever", "Trevion", "Trevor", "Trey", "Trinity", "Trisha",
  	    "Tristian", "Tristin", "Triston", "Troy", "Trudie", "Trycia", "Trystan",
  	    "Turner", "Twila", "Tyler", "Tyra", "Tyree", "Tyreek", "Tyrel", "Tyrell",
  	    "Tyrese", "Tyrique", "Tyshawn", "Tyson", "Ubaldo", "Ulices", "Ulises", "Una",
  	    "Unique", "Urban", "Uriah", "Uriel", "Ursula", "Vada", "Valentin", "Valentina",
  	    "Valentine", "Valerie", "Vallie", "Van", "Vance", "Vanessa", "Vaughn", "Veda",
  	    "Velda", "Vella", "Velma", "Velva", "Vena", "Verda", "Verdie", "Vergie",
  	    "Verla", "Verlie", "Vern", "Verna", "Verner", "Vernice", "Vernie", "Vernon",
  	    "Verona", "Veronica", "Vesta", "Vicenta", "Vicente", "Vickie", "Vicky",
  	    "Victor", "Victoria", "Vida", "Vidal", "Vilma", "Vince", "Vincent", "Vincenza",
  	    "Vincenzo", "Vinnie", "Viola", "Violet", "Violette", "Virgie", "Virgil",
  	    "Virginia", "Virginie", "Vita", "Vito", "Viva", "Vivian", "Viviane",
  	    "Vivianne", "Vivien", "Vivienne", "Vladimir", "Wade", "Waino", "Waldo",
  	    "Walker", "Wallace", "Walter", "Walton", "Wanda", "Ward", "Warren", "Watson",
  	    "Wava", "Waylon", "Wayne", "Webster", "Weldon", "Wellington", "Wendell",
  	    "Wendy", "Werner", "Westley", "Weston", "Whitney", "Wilber", "Wilbert",
  	    "Wilburn", "Wiley", "Wilford", "Wilfred", "Wilfredo", "Wilfrid", "Wilhelm",
  	    "Wilhelmine", "Will", "Willa", "Willard", "William", "Willie", "Willis",
  	    "Willow", "Willy", "Wilma", "Wilmer", "Wilson", "Wilton", "Winfield",
  	    "Winifred", "Winnifred", "Winona", "Winston", "Woodrow", "Wyatt", "Wyman",
  	    "Xander", "Xavier", "Xzavier", "Yadira", "Yasmeen", "Yasmin", "Yasmine",
  	    "Yazmin", "Yesenia", "Yessenia", "Yolanda", "Yoshiko", "Yvette", "Yvonne",
  	    "Zachariah", "Zachary", "Zachery", "Zack", "Zackary", "Zackery", "Zakary",
  	    "Zander", "Zane", "Zaria", "Zechariah", "Zelda", "Zella", "Zelma", "Zena",
  	    "Zetta", "Zion", "Zita", "Zoe", "Zoey", "Zoie", "Zoila", "Zola", "Zora",
  	    "Zula", 
          };
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
  
      fakerp name_suffix() {
          vector<string> choices = {
              "Jr.", "Sr.", "I", "II", "III", "IV", "V", "MD", "DDS", "PhD", "DMV",
          };
          return oneof(choices);
      }
  
      fakerp name_prefix() {
          vector<string> choices = {
              "Mr.", "Ms.", "Mrs.", "Miss", "Dr.",
          };
          return oneof(choices);
      }
  
      fakerp name() {
          vector<fakerp> choices = {
              combine(" ", name_prefix(), first_name(), last_name()),
              combine(" ", first_name(), last_name(), name_suffix()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
              combine(" ", first_name(), last_name()),
          };
          return oneof(choices);
      }
      
      fakerp secondary_unit_number() {
          vector<fakerp> choices = {
                  oneofchar("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),
                  posdigits(3),
                  posdigits(2),
                  posdigits(1),
                  combine(str("#"), posdigits(3)),
                  combine(str("#"), posdigits(2)),
                  combine(str("#"), posdigits(1)),
                  combine(str("#"), posdigits(1)),
                  combine(str("#"), posdigits(1), str("-"), oneofchar("ABCDEFGHIJ")),
                  combine(posdigits(1), str("-"), oneofchar("ABCDEFGHIJ")),
          };
          return oneof(choices);
      }
  
      fakerp secondary_unit_designator() {
          vector<fakerp> choices = {
              combine(str("Apartment "), secondary_unit_number()),
              combine(str("Building "), secondary_unit_number()),
              combine(str("Department "), secondary_unit_number()),
              combine(str("Floor "), posdigits(1)),
              combine(str("Floor "), posdigits(2)),
              combine(str("Floor "), posdigits(3)),
              combine(str("Floor #"), posdigits(1)),
              combine(str("Floor #"), posdigits(2)),
              combine(str("Floor #"), posdigits(3)),
              combine(str("Hangar "), secondary_unit_number()),
              combine(str("Lot "), secondary_unit_number()),
              combine(str("Pier "), secondary_unit_number()),
              combine(str("Room "), secondary_unit_number()),
              combine(str("Slip "), secondary_unit_number()),
              combine(str("Space "), secondary_unit_number()),
              combine(str("Stop "), secondary_unit_number()),
              combine(str("Suite "), secondary_unit_number()),
              combine(str("Trailer "), secondary_unit_number()),
              combine(str("Unit "), secondary_unit_number()),
              str("Basement"),
              str("Front"),
              str("Lobby"),
              str("Lower"),
              str("Office"),
              str("Penthouse"),
              str("Rear"),
              str("Side"),
              str("Upper"),
          };
          return oneof(choices);
      }
  
      fakerp street_name() {
          return oneof(
                  combine(" ", last_name(), street_suffix()),
                  combine(" ", first_name(), street_suffix()));
      }
  
      fakerp street_address() {
          vector<fakerp> choices = {
                  combine(" ", maxdigits(5), street_name()),
                  combine(" ", maxdigits(5), street_name()),
                  combine(" ", maxdigits(5), street_name()),
                  combine(" ", maxdigits(5), street_name()),
                  combine(" ", maxdigits(5), street_name(), str("Apt."), maxdigits(3)),
                  combine(" ", maxdigits(5), street_name(), str("Suite"), maxdigits(3)),
                  combine(maxdigits(5), str(" "), street_name(), str(" #"), maxdigits(3)),
                  combine(" ", maxdigits(5), secondary_unit_number()),
          };
          return oneof(choices);
      }
  
      fakerp company_suffix() {
          vector<string> choices = {
              "Inc", "And Sons", "LLC", "Group"
          };
          return oneof(choices);
      };
  
      fakerp company() {
          return oneof(
                  combine(" ", last_name(), company_suffix()),
                  combine("-", last_name(), last_name()),
                  combine(last_name(), str(", "), last_name(), str(" and "), last_name()));
      }
  
      fakerp domain_suffix() {
          static const char* elems[] = {
              "ac", "ac.uk", "ad", "ae", "af", "ag", "ai", "al", "am", "an", "ao",
              "aq", "ar", "as", "at", "au", "aw", "az", "ba", "bb", "bd", "be",
              "bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", "bs", "bt",
              "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci",
              "ck", "cl", "cm", "cn", "co", "co.uk", "com", "cr", "cs", "cu",
              "cv", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec",
              "edu", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm",
              "fo", "fr", "ga", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm",
              "gn", "gov", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk",
              "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "int",
              "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg",
              "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb",
              "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc",
              "md", "mg", "mh", "mil", "mk", "ml", "mm", "mn", "mo", "mp", "mq",
              "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc",
              "ne", "net", "nf", "ng", "ni", "nl", "no", "np", "nr", "nt", "nu",
              "nz", "om", "org", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm",
              "pn", "pr", "ps", "pt", "pw", "py", "qa", "re", "ro", "ru", "rw",
              "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl",
              "sm", "sn", "so", "sr", "sv", "st", "sy", "sz", "tc", "td", "tf",
              "tg", "th", "tj", "tk", "tm", "tn", "to", "tp", "tr", "tt", "tv",
              "tw", "tz", "ua", "ug", "uk", "um", "us", "uy", "uz", "va", "vc",
              "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "yu", "za",
              "zm", "zw", "aero", "biz", "coop", "info", "museum", "name", "pro",
              "al.us", "ak.us", "az.us", "ar.us", "ca.us", "co.us", "ct.us",
              "de.us", "dc.us", "fl.us", "ga.us", "hi.us", "id.us", "il.us",
              "in.us", "ia.us", "ks.us", "ky.us", "la.us", "me.us", "md.us",
              "ma.us", "mi.us", "mn.us", "ms.us", "mo.us", "mt.us", "ne.us",
              "nv.us", "nh.us", "nj.us", "nm.us", "ny.us", "nc.us", "nd.us",
              "oh.us", "ok.us", "or.us", "pa.us", "ri.us", "sc.us", "sd.us",
              "tn.us", "tx.us", "ut.us", "vt.us", "va.us", "wa.us", "wv.us",
              "wi.us", "wy.us",
          };
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
  
      fakerp job_title() {
          static const char* elems[] = {
  	     "Abstract Clerk",
  	     "Abstract Writer",
  	     "Abstractor",
  	     "Account Analyst",
  	     "Account Executive Advertising",
  	     "Account Information Clerk",
  	     "Account Manager Sales",
  	     "Account Specialist",
  	     "Account Supervisor",
  	     "Accountant",
  	     "Accountant Assistant",
  	     "Accountant Budget",
  	     "Accountant Cost",
  	     "Accountant Financial Analyst",
  	     "Accountant Plant",
  	     "Accountant Public",
  	     "Accountant Tax",
  	     "Accounting Clerk",
  	     "Accounting Data Technician",
  	     "Accounting Director",
  	     "Accounting Manager",
  	     "Accounting Supervisor (General)",
  	     "Accounting Supervisor (Professional)",
  	     "Accounting Technician",
  	     "Accounts Payable & Receivable Clerk",
  	     "Accounts Payable & Receivable Manager",
  	     "Accounts Payable Clerk",
  	     "Accounts Payable Manager",
  	     "Accounts Payable Supervisor",
  	     "Accounts Receivable Clerk",
  	     "Accounts Receivable Manager",
  	     "Accounts Receivable Supervisor",
  	     "Acquisitions Librarian",
  	     "Actor",
  	     "Actuary (Associate)",
  	     "Actuary (Enrolled)",
  	     "Actuary (Fellow)",
  	     "Acupressurist",
  	     "Administration Branch Manager Banking",
  	     "Administrative Assistant",
  	     "Administrative Assistant, CEO",
  	     "Administrative Engineering Director",
  	     "Administrative Engineering Manager",
  	     "Administrative Engineering Supervisor",
  	     "Administrative Secretary",
  	     "Administrative Services Manager",
  	     "Administrative Vice President",
  	     "Administrator Benefits",
  	     "Administrator College",
  	     "Administrator Contract",
  	     "Administrator Historic Sites",
  	     "Administrator Hospital",
  	     "Administrator School (Primary/High School)",
  	     "Administrator Systems",
  	     "Administrator TQM",
  	     "Administrator Web",
  	     "Admissions Clerk",
  	     "Admissions Director",
  	     "Admissions Evaluator",
  	     "Admitting Head Hospital",
  	     "Admitting Specialist",
  	     "Admitting Supervisor Hospital",
  	     "Adult Education Teacher",
  	     "Advance Agent",
  	     "Advertising Account Executive",
  	     "Advertising Agent",
  	     "Advertising Clerk",
  	     "Advertising Director",
  	     "Advertising Manager",
  	     "Advertising Production Supervisor",
  	     "Advertising Sales Representative",
  	     "Advertising Supervisor",
  	     "Advertising Top Officer",
  	     "Advisor Personnel",
  	     "Aerial Navigator",
  	     "Aerodynamicist",
  	     "Aerodynamics Engineer",
  	     "Aeronautical Drafter",
  	     "Aeronautical Engineer",
  	     "Aeronautical Sales Engineer",
  	     "Affirmative Action Specialist",
  	     "Agent Advance",
  	     "Agent Bonding",
  	     "Agent Booking",
  	     "Agent Business",
  	     "Agent Claims General",
  	     "Agent Import/Export",
  	     "Agent Patent",
  	     "Agent Real Estate Supervisor",
  	     "Agent Reservations",
  	     "Agent Right-Of-Way",
  	     "Agent Special Insurance",
  	     "Agent Special Insurance Group",
  	     "Agent Tariff Publishing",
  	     "Agent Ticket",
  	     "Agent Traffic Sales",
  	     "Agent Travel",
  	     "Agricultural Engineer",
  	     "Agronomist",
  	     "Aide Biological",
  	     "Aide Community Program",
  	     "Aide Dietary",
  	     "Aide Geological",
  	     "Aide Home Care",
  	     "Aide Housekeeping",
  	     "Aide Laboratory",
  	     "Aide Legal",
  	     "Aide Mental Retardation",
  	     "Aide Nurse",
  	     "Aide Occupational Therapy",
  	     "Aide Operating Room",
  	     "Aide Physical Therapy",
  	     "Aide Psychiatric",
  	     "Aide Recreation",
  	     "Aide Security",
  	     "Aide Social Services",
  	     "Aide Teacher",
  	     "Aide Technical Test Data",
  	     "Air Analyst",
  	     "Air Conditioning Installer (Commercial)",
  	     "Air Conditioning Installer (Residential)",
  	     "Air Conditioning Servicer (Commercial)",
  	     "Air Conditioning Servicer (Residential)",
  	     "Air Conditioning Technician",
  	     "Air Tester",
  	     "Air Traffic Controller",
  	     "Air-Freight Agent",
  	     "Aircraft Body Repairer",
  	     "Aircraft Engine Mechanic",
  	     "Aircraft Flight Attendant",
  	     "Aircraft Flight Engineer",
  	     "Aircraft Inspector",
  	     "Aircraft Jet Copilot",
  	     "Aircraft Maintenance Person",
  	     "Aircraft Mechanic",
  	     "Aircraft Mechanic For Props",
  	     "Aircraft Mechanic Jet",
  	     "Aircraft Navigator",
  	     "Aircraft Pilot Jet",
  	     "Aircraft Pilot Non-Jet",
  	     "Aircraft Sales",
  	     "Airline Security Representative",
  	     "Airplane Cabin Attendant",
  	     "Airplane Flight Attendant",
  	     "Airplane Inspector",
  	     "Airport Engineer",
  	     "Airport Manager",
  	     "Airport Service Agent",
  	     "Alarm Investigator",
  	     "Alarm Signal Monitor",
  	     "Alcohol Abuse Counselor",
  	     "Allergist-Immunologist",
  	     "Allergy Specialist",
  	     "Alteration Tailor",
  	     "Ambulance Driver",
  	     "Ambulatory Services Director",
  	     "Amusement Park Attendant",
  	     "Amusement-Equipment Operator",
  	     "Analyst Air",
  	     "Analyst Benefits",
  	     "Analyst Budget",
  	     "Analyst Business",
  	     "Analyst Business E-Commerce",
  	     "Analyst Business Systems",
  	     "Analyst Cephalometric",
  	     "Analyst Classification",
  	     "Analyst Communications",
  	     "Analyst Compensation",
  	     "Analyst Computer Network",
  	     "Analyst Computer Systems Hardware",
  	     "Analyst Credit",
  	     "Analyst Crime Lab",
  	     "Analyst Data Security",
  	     "Analyst Database",
  	     "Analyst Economic",
  	     "Analyst Financial",
  	     "Analyst Financial Accountant",
  	     "Analyst HRIS",
  	     "Analyst Human Resources Information Systems",
  	     "Analyst Insurance Research",
  	     "Analyst Internet Traffic",
  	     "Analyst Inventory",
  	     "Analyst Investment",
  	     "Analyst Job",
  	     "Analyst Lead Systems",
  	     "Analyst Loan Review",
  	     "Analyst Logistics",
  	     "Analyst Market Research",
  	     "Analyst Methods & Procedures",
  	     "Analyst Occupational",
  	     "Analyst Operations Research",
  	     "Analyst Organization",
  	     "Analyst Personal Computer",
  	     "Analyst Personnel",
  	     "Analyst Planning",
  	     "Analyst Product Design",
  	     "Analyst Programmer",
  	     "Analyst Quality Assurance",
  	     "Analyst Rate",
  	     "Analyst Risk Management",
  	     "Analyst Sales",
  	     "Analyst Securities",
  	     "Analyst Senior Economic",
  	     "Analyst Spectrographic",
  	     "Analyst Standards",
  	     "Analyst Stress",
  	     "Analyst Systems",
  	     "Analyst Traffic Rate",
  	     "Analyst User Support",
  	     "Analyst Wage & Salary",
  	     "Analyst Website Traffic",
  	     "Anchor Person",
  	     "Ancillary Executive Medical/Top Support",
  	     "Ancillary/Support Top Executive Medical",
  	     "Anesthesia Technician",
  	     "Anesthesiologist",
  	     "Anesthesiology Nurse",
  	     "Animal Hospital Clerk",
  	     "Animal Scientist",
  	     "Animal Trainer",
  	     "Animal Warden",
  	     "Announcer",
  	     "Annuities Representative",
  	     "Anthropologist",
  	     "Apparel Spreader",
  	     "Apparel Trimming Machine Operator",
  	     "Appliance Service Representative",
  	     "Applications & Programming Supervisor",
  	     "Applications Programmer",
  	     "Applications Programming Manager",
  	     "Appraiser",
  	     "Appraiser Art",
  	     "Appraiser Automobile Damage",
  	     "Appraiser Commercial",
  	     "Appraiser Equipment",
  	     "Appraiser Insurance Automobile Damage",
  	     "Appraiser Residential",
  	     "Aquatic Biologist",
  	     "Arboriculturist",
  	     "Arborist",
  	     "Arc Cutter",
  	     "Arc-Air Operator",
  	     "Arcade Attendant",
  	     "Archaeologist",
  	     "Architect",
  	     "Architect Data",
  	     "Architect Database",
  	     "Architect Landscape",
  	     "Architect Marine",
  	     "Architectural Drafter",
  	     "Archivist",
  	     "Area Manager Retail",
  	     "Armored Car Guard & Driver",
  	     "Armored Car Messenger",
  	     "Art Appraiser",
  	     "Art Director",
  	     "Art Manager",
  	     "Art Supervisor",
  	     "Artifacts Conservator",
  	     "Artificial Breeding Distributor",
  	     "Artificial-Marble Worker",
  	     "Artist Fashion",
  	     "Artist Paste-Up",
  	     "Artist Scientific",
  	     "Arts (Fine) Packer",
  	     "Asphalt Paving Machine Operator",
  	     "Assayer",
  	     "Assembler Bicycle",
  	     "Assembler Electromechanical",
  	     "Assembler Electronics (General)",
  	     "Assembler Electronics (Precision)",
  	     "Assembler Fabricator",
  	     "Assembler Metal Fabricator",
  	     "Assembler Musical Instruments",
  	     "Assembler Office Machines",
  	     "Assembler Plastic Hospital",
  	     "Assembler Product (Bench)",
  	     "Assembler Product (Machine)",
  	     "Assembler Special Machines",
  	     "Assembler Structural",
  	     "Assembler Transformer",
  	     "Assembler/Checker Photo",
  	     "Assembly Line Foreman",
  	     "Assembly Supervisor",
  	     "Assistant Accountant",
  	     "Assistant Administrative",
  	     "Assistant Auditor",
  	     "Assistant Buyer",
  	     "Assistant Certified Nurse",
  	     "Assistant Chef",
  	     "Assistant Clerk",
  	     "Assistant Construction Superintendent",
  	     "Assistant Controller",
  	     "Assistant Estimator",
  	     "Assistant Foreman",
  	     "Assistant Kitchen",
  	     "Assistant Manager Banking Branch (Major Branch)",
  	     "Assistant Manager Banking Branch (Minor Branch)",
  	     "Assistant Manager Retail Store (Experience)",
  	     "Assistant Manager Retail Store (Revenue)",
  	     "Assistant Nurse",
  	     "Assistant Plant Manager",
  	     "Assistant Porcelain Buildup",
  	     "Assistant Press Operator",
  	     "Assistant Production Supervisor",
  	     "Assistant Professor",
  	     "Assistant Sales",
  	     "Assistant Supervisor Teller",
  	     "Assistant Treasurer Corporate",
  	     "Assistant Undertaker",
  	     "Associate Professor",
  	     "Astronomer",
  	     "Athletic Coach",
  	     "Athletic Trainer",
  	     "ATM Manager",
  	     "Atmospheric Scientist",
  	     "Attendance Officer",
  	     "Attendant Amusement Park",
  	     "Attendant Checkroom",
  	     "Attendant Coin-Operated Laundry",
  	     "Attendant Dining Room",
  	     "Attendant Door",
  	     "Attendant Flight",
  	     "Attendant Fuel",
  	     "Attendant Funeral",
  	     "Attendant Gas Station",
  	     "Attendant Linen Room",
  	     "Attendant Machine Rolling",
  	     "Attendant Morgue",
  	     "Attendant Nursery School",
  	     "Attendant Parking",
  	     "Attendant Parking Station",
  	     "Attendant Personal",
  	     "Attendant Photographic-Process",
  	     "Attendant Physical Therapy",
  	     "Attendant Sewage Plant",
  	     "Attendant Tool Crib",
  	     "Attendant Vending Machine",
  	     "Attendant Washroom",
  	     "Attorney Corporate",
  	     "Attorney Director Legal",
  	     "Attorney Legal Manager",
  	     "Attorney Legal Supervisor",
  	     "Attorney Patent",
  	     "Attorney Practicing",
  	     "Attorney Staff",
  	     "Attorney Tax",
  	     "Auctioneer",
  	     "Audiologist",
  	     "Audiometrist",
  	     "Audiovisual Equipment Operator",
  	     "Audiovisual Librarian",
  	     "Audiovisual Repairer",
  	     "Audiovisual Specialist",
  	     "Audit Clerk",
  	     "Audit EDP Director",
  	     "Audit EDP Manager",
  	     "Audit EDP Supervisor",
  	     "Auditing Manager Internal",
  	     "Auditing Supervisor Internal",
  	     "Auditor Assistant",
  	     "Auditor Information Systems",
  	     "Auditor Internal",
  	     "Auditor Top",
  	     "Author Web",
  	     "Automobile Accessories Installer",
  	     "Automobile Accessory Salesperson",
  	     "Automobile Body Repairer",
  	     "Automobile Damage Appraiser",
  	     "Automobile Detailer",
  	     "Automobile Estimator",
  	     "Automobile Manufacturing Service Representative",
  	     "Automobile Mechanic",
  	     "Automobile Rental Clerk",
  	     "Automobile Service Station Manager",
  	     "Automobile Service Writer",
  	     "Automobile Upholsterer",
  	     "Automotive Engineer",
  	     "Automotive Leasing Sales Representative",
  	     "Automotive Lubrication Technician",
  	     "Automotive Maintenance Repairer",
  	     "Automotive Mechanic",
  	     "Automotive Service Station Attendant",
  	     "Automotive Service Technician",
  	     "Automotive Servicer",
  	     "Avionics & Radar Technician",
  	     "Avionics Mechanic",
  	     "Avionics Technician",
  	     "Bacteriologist",
  	     "Baggage Porter Head",
  	     "Bail Bonding Agent",
  	     "Baker",
  	     "Baker Helper",
  	     "Bakery Manager",
  	     "Bank Foreign-Exchange Dealer",
  	     "Bank Teller",
  	     "Banker Personal",
  	     "Banking & Cashiering Manager",
  	     "Banking Assistant Branch Manager (Major Branch)",
  	     "Banking Assistant Branch Manager (Minor Branch)",
  	     "Banking Branch Administration Manager",
  	     "Banking Branch Manager (Major Branch)",
  	     "Banking Branch Manager (Minor Branch)",
  	     "Banking Code & Test Clerk",
  	     "Banking Collection Clerk",
  	     "Banking Credit Analyst",
  	     "Banking Credit Card Control Clerk",
  	     "Banking Credit Representative Clerk",
  	     "Banking Currency Counter",
  	     "Banking Customer Service Representative",
  	     "Banking Disbursement Clerk",
  	     "Banking Electronic Transfer Coordinator",
  	     "Banking Finance Sales Representative",
  	     "Banking Foreign Exchange Clerk",
  	     "Banking Head Of Lending",
  	     "Banking Head Of Operations",
  	     "Banking Head Of Retail Banking",
  	     "Banking Head Of Trust",
  	     "Banking Installment Loan Clerk",
  	     "Banking Investment Analyst",
  	     "Banking Investment Manager",
  	     "Banking Letter Of Credit Examiner",
  	     "Banking Loan Clerk",
  	     "Banking Loan Closer",
  	     "Banking Loan Collector",
  	     "Banking Loan Collector Commercial",
  	     "Banking Loan Interviewer",
  	     "Banking Loan Manager Commercial",
  	     "Banking Loan Manager Consumer",
  	     "Banking Loan Manager Mortgage",
  	     "Banking Loan Officer Commercial",
  	     "Banking Loan Officer Consumer",
  	     "Banking Loan Officer General",
  	     "Banking Loan Officer Mortgage",
  	     "Banking Loan Processor",
  	     "Banking Loan Review Analyst",
  	     "Banking Loan Underwriter Mortgage",
  	     "Banking Mortgage Clerk",
  	     "Banking New Accounts Representative",
  	     "Banking Proof Machine Operator",
  	     "Banking Reserves Clerk",
  	     "Banking Safe Deposit Clerk",
  	     "Banking Savings Teller",
  	     "Banking Skip Tracer",
  	     "Banking Statement Clerk",
  	     "Banking Supervisor Check Processing",
  	     "Banking Supervisor Lending Activities",
  	     "Banking Teller",
  	     "Banking Teller Foreign Banknotes",
  	     "Banking Teller Head",
  	     "Banking Teller Loan",
  	     "Banking Teller Receiving",
  	     "Banking Teller Supervisor",
  	     "Banking Teller Vault",
  	     "Banking Trust Officer",
  	     "Banking Trust Operations Assistant",
  	     "Banking Wire Transfer Clerk",
  	     "Barber",
  	     "Barber Or Beauty Shop Manager",
  	     "Barkeeper",
  	     "Bartender",
  	     "Beautician",
  	     "Beautician Mortuary",
  	     "Beauty Operator",
  	     "Bench Assembler",
  	     "Bench Worker Optical",
  	     "Bending Machine Operator",
  	     "Benefits & Compensation Supervisor",
  	     "Benefits Administrator",
  	     "Benefits Analyst",
  	     "Benefits Claim File Clerk",
  	     "Benefits Claims Examiner",
  	     "Benefits Clerk",
  	     "Benefits Director",
  	     "Benefits Manager",
  	     "Benefits Services Representative",
  	     "Benefits Specialist",
  	     "Benefits Supervisor",
  	     "Bicycle Assembler",
  	     "Bicycle Messenger",
  	     "Bicycle Repairer",
  	     "Bilingual Secretary",
  	     "Billing Clerk",
  	     "Billing Clerk Medical",
  	     "Bindery Foreman",
  	     "Bindery Helper",
  	     "Bindery Operator",
  	     "Biochemist",
  	     "Bioinformatics Programmer Analyst",
  	     "Biologist",
  	     "Biologist Aquatic",
  	     "Biology Aide",
  	     "Biomedical Engineer",
  	     "Biomedical Engineering Director",
  	     "Biomedical Engineering Head",
  	     "Biomedical Engineering Technician",
  	     "Biomedical Equipment Head",
  	     "Biomedical Equipment Technician",
  	     "Biomedical Photographer",
  	     "Biophysicist",
  	     "Biostatistician",
  	     "Blacksmith",
  	     "Blaster",
  	     "Blood Donor Unit Assistant",
  	     "Blueprint Machine Operator",
  	     "Board Chair (Outside Member)",
  	     "Board Member (Outside)",
  	     "Board Operator",
  	     "Board Vice Chair (Outside Member)",
  	     "Boat & Barge Operator",
  	     "Boat Builder Wood",
  	     "Boatswain",
  	     "Bodyguard",
  	     "Boiler Operator",
  	     "Boilermaker",
  	     "Bond Department Manager",
  	     "Bond Sales Trader",
  	     "Bonding Agent",
  	     "Booking Agent",
  	     "Booking Manager",
  	     "Bookkeeper",
  	     "Bookkeeper Head",
  	     "Bookkeeping Clerk",
  	     "Bookkeeping Manager",
  	     "Bookkeeping Supervisor",
  	     "Bookmobile Librarian",
  	     "Boring Machine Operator",
  	     "Botanist",
  	     "Bouncer",
  	     "Bowling Alley Manager",
  	     "Braille Library Clerk",
  	     "Braille Operator",
  	     "Braille Proofreader",
  	     "Brake/Switch Railroad Operator",
  	     "Branch Administration Manager Banking",
  	     "Branch Assistant Manager Banking (Major Branch)",
  	     "Branch Assistant Manager Banking (Minor Branch)",
  	     "Branch Manager Banking (Major Branch)",
  	     "Branch Manager Banking (Minor Branch)",
  	     "Branch Office Manager",
  	     "Branch Office Supervisor",
  	     "Branch Store Manager",
  	     "Branch Store Supervisor",
  	     "Brand Or Product Sales Manager",
  	     "Brazer Induction",
  	     "Breeder Plant",
  	     "Brewing Manager",
  	     "Brewing Superintendent",
  	     "Brick Mason",
  	     "Brick Mason Helper",
  	     "Bricklayer",
  	     "Bricklayer Helper",
  	     "Broker Floor Representative",
  	     "Brokerage Clerk",
  	     "Brush Painter",
  	     "Budget Accountant",
  	     "Budget Analyst",
  	     "Budget Director",
  	     "Budget Manager",
  	     "Budget Supervisor",
  	     "Buffer",
  	     "Buffing Machine Tender",
  	     "Builder Museums Exhibit",
  	     "Building & Facilities Manager",
  	     "Building & Facilities Supervisor",
  	     "Building & Grounds Supervisor",
  	     "Building Cleaner",
  	     "Building Maintenance Supervisor Mechanical",
  	     "Building Maintenance Worker",
  	     "Building Materials Salesperson",
  	     "Building Repairer",
  	     "Building Superintendent",
  	     "Building Supervisor",
  	     "Bulldozer Operator",
  	     "Burglar Alarm Installer",
  	     "Burglar Alarm Servicer",
  	     "Bus Driver",
  	     "Bus Person",
  	     "Bus Transportation Manager",
  	     "Busboy/Girl",
  	     "Business Administration Manager",
  	     "Business Agent",
  	     "Business Analyst",
  	     "Business Analyst E-Commerce",
  	     "Business Broker",
  	     "Business Development Analyst",
  	     "Business Development Director",
  	     "Business Development Manager",
  	     "Business Development Representative",
  	     "Business Development Supervisor",
  	     "Business Education Instructor",
  	     "Business Manager",
  	     "Business Manager College/University",
  	     "Business Office Manager",
  	     "Business Office Supervisor",
  	     "Business Systems Analysis Manager",
  	     "Business Systems Analyst",
  	     "Business Systems Project Manager",
  	     "Business Systems Software Analyst",
  	     "Butcher",
  	     "Butler",
  	     "Buttermaker",
  	     "Buyer",
  	     "Buyer Assistant",
  	     "Buyer Grocery",
  	     "Buyer/Purchasing Agent",
  	     "Buzz Saw Operator",
  	     "Cab Driver",
  	     "Cabinetmaker",
  	     "Cable Engineer Outside Plant",
  	     "Cable Puller",
  	     "Cable Splicer",
  	     "Cable Supervisor",
  	     "Cable Television Installer",
  	     "Cable Tester",
  	     "Cable Wirer",
  	     "CAD-Aided Design Technician",
  	     "CAD/CAM Design Drafter",
  	     "CAD/CAM/CAE Technician",
  	     "Cafeteria Cashier",
  	     "Cafeteria Counter Attendant",
  	     "Cafeteria Manager",
  	     "Calibration Laboratory Technician",
  	     "Calibration Technician",
  	     "Calibrator",
  	     "Call Center Manager",
  	     "Call Center Nurse RN",
  	     "Call Center Registered Nurse",
  	     "Call Center Representative (Complex Calls)",
  	     "Call Center Representative (General Calls)",
  	     "Call Center Representative (Specialized Calls)",
  	     "Call Center Sales Representative",
  	     "Call Center Supervisor",
  	     "CAM Machinist",
  	     "Camera Control Operator",
  	     "Camera Operator",
  	     "Camera Operator Head",
  	     "Camera Operator Optical Effects",
  	     "Camera Repairer",
  	     "Camera Technician",
  	     "Cancellation Clerk",
  	     "Caner",
  	     "Capacitor Ceramic Processor",
  	     "Capacity Planner",
  	     "Captain Ship",
  	     "Captioner",
  	     "Captionist",
  	     "Car Checker",
  	     "Car Rental Clerk",
  	     "Car-Dumper Operator",
  	     "Cardiac Catheterization Technologist",
  	     "Cardiac Monitor Technician",
  	     "Cardiac Technician",
  	     "Cardio-Pulmonary Perfusionist",
  	     "Cardiologist (Invasive)",
  	     "Cardiologist (Non-Invasive)",
  	     "Cardiopulmonary Technologist",
  	     "Cardiovascular Technologist",
  	     "Career Guidance Technician",
  	     "Caretaker Grounds",
  	     "Cargo Agent",
  	     "Cargo Services Supervisor",
  	     "Carpenter (Gen/Maint)",
  	     "Carpenter Hand Nailer",
  	     "Carpenter Helper",
  	     "Carpenter Repairer",
  	     "Carpenter Rough",
  	     "Carpenter Ship",
  	     "Carpenter Supervisor",
  	     "Carpet Layer",
  	     "Cartographer",
  	     "Cartographic Drafter",
  	     "Cartographic Technician",
  	     "Case Aide",
  	     "Case Management Head",
  	     "Case Manager",
  	     "Cash Clerk",
  	     "Cash Register Repairer",
  	     "Cash Register Servicer",
  	     "Cashier",
  	     "Cashier Accounting Clerk",
  	     "Cashier Associate",
  	     "Cashier Cafeteria",
  	     "Cashier Checker",
  	     "Cashier Fast Food Restaurant",
  	     "Cashier General",
  	     "Cashier Office",
  	     "Cashier Retail",
  	     "Cashier Supervisor",
  	     "Cashiering Director",
  	     "Cashiering Manager",
  	     "Casting Machine Operator",
  	     "Casualty Underwriter",
  	     "Cat Scan Technologist",
  	     "Catalog Librarian",
  	     "Catheterization Cardiac Technologist",
  	     "CCU Nurse",
  	     "Cement Mason",
  	     "Cementer",
  	     "Central Office Equipment Engineer",
  	     "Central Office Operator",
  	     "Central Supply Assistant",
  	     "Central Supply Worker",
  	     "Central-Service Technician",
  	     "Centrifugal Casting Operator",
  	     "Centrifugal-Extractor Operator",
  	     "CEO",
  	     "Cephalometric Analyst",
  	     "Ceramic Capacitor Processor",
  	     "Ceramic Engineer",
  	     "Ceramics Technician",
  	     "Certified Medication Technician",
  	     "Certified Nurse Assistant",
  	     "CFO",
  	     "Chairman Of Board (Outside Member)",
  	     "Chairman Of The Board & CEO",
  	     "Chaplain",
  	     "Charge Nurse",
  	     "Chauffeur",
  	     "Chauffeur Motorbus",
  	     "Check Processing Supervisor",
  	     "Checker Engineering Drawings",
  	     "Checker Retail",
  	     "Checker Shipping",
  	     "Checker Tool Drawing",
  	     "Checker/Assembler Photo",
  	     "Checkroom Attendant",
  	     "Cheesemaker",
  	     "Chef",
  	     "Chef Assistant",
  	     "Chef Cold Meat",
  	     "Chef Head (Fine Dining)",
  	     "Chef Head (Hotel & Restaurant)",
  	     "Chef Pastry",
  	     "Chemical Dependency Counselor",
  	     "Chemical Engineer",
  	     "Chemical Engineer Supervisor",
  	     "Chemical Engineering Technician",
  	     "Chemical Laboratory Technician",
  	     "Chemical Operator",
  	     "Chemical Plant Maintenance Worker",
  	     "Chemical Plant Manager",
  	     "Chemical Plant Operator",
  	     "Chemical Plant Supervisor",
  	     "Chemical Process Helper",
  	     "Chemical Processing Laborer",
  	     "Chemical Supervisor",
  	     "Chemical Technician",
  	     "Chemical Test Engineer",
  	     "Chemical-Radiation Technician",
  	     "Chemist",
  	     "Chemist Biological",
  	     "Chemist Clinical",
  	     "Chemist Food",
  	     "Chief Administrative Officer",
  	     "Chief Advertising Officer",
  	     "Chief Computer Programmer",
  	     "Chief Construction Officer",
  	     "Chief Customer Service Officer",
  	     "Chief E-Commerce Executive",
  	     "Chief Engineering Officer",
  	     "Chief Environmental Officer",
  	     "Chief Estimating Officer",
  	     "Chief Executive Officer",
  	     "Chief Financial Officer",
  	     "Chief Government Affairs Officer",
  	     "Chief Hospital Engineer",
  	     "Chief Human Resources Officer",
  	     "Chief Information Officer",
  	     "Chief Labor Relations Officer",
  	     "Chief Legal Officer",
  	     "Chief Librarian",
  	     "Chief Lobbyist",
  	     "Chief Manufacturing Officer",
  	     "Chief Marketing & Sales Officer",
  	     "Chief Medical Officer",
  	     "Chief Medical Technologist",
  	     "Chief Merchandising Officer",
  	     "Chief Of Staff",
  	     "Chief Operating Officer",
  	     "Chief Product Development Officer",
  	     "Chief Public Relations Officer",
  	     "Chief Purchasing Officer",
  	     "Chief Radiologic Technologist",
  	     "Chief Research & Development Executive",
  	     "Chief Research Officer",
  	     "Chief Sales & Marketing Officer",
  	     "Chief Sales Officer",
  	     "Chief Surveyor",
  	     "Child Care Leader",
  	     "Child Care Worker",
  	     "Child Development Specialist",
  	     "Chipper",
  	     "Chiropractor",
  	     "Choreographer",
  	     "CIO",
  	     "Circulation Manager",
  	     "Circulation Officer Top",
  	     "Circulation Supervisor",
  	     "City-Planning Engineer",
  	     "Civil Engineer",
  	     "Civil Engineering Technician",
  	     "Claims Adjuster Insurance",
  	     "Claims Administrator",
  	     "Claims Analyst",
  	     "Claims Clerk Insurance",
  	     "Claims Examiner",
  	     "Claims Supervisor",
  	     "Classification Analyst",
  	     "Clay Modeler",
  	     "Cleaner Building",
  	     "Cleaner Hospital",
  	     "Cleaner Housekeeping",
  	     "Cleaner Laboratory Equipment",
  	     "Cleaner Photo Mask",
  	     "Cleaner Transportation Vehicles",
  	     "Clergy Member",
  	     "Clergy Member Head",
  	     "Clerical Assistant",
  	     "Clerical Supervisor Generic",
  	     "Clerk Account Information",
  	     "Clerk Accounting",
  	     "Clerk Accounts Payable",
  	     "Clerk Accounts Receivable",
  	     "Clerk Advertising",
  	     "Clerk Animal Hospital",
  	     "Clerk Audit",
  	     "Clerk Bank Disbursement",
  	     "Clerk Benefits",
  	     "Clerk Billing",
  	     "Clerk Brokerage",
  	     "Clerk Cancellation",
  	     "Clerk Car Rental",
  	     "Clerk Claims Insurance",
  	     "Clerk Collection Banking",
  	     "Clerk Correspondence",
  	     "Clerk Cost Accounting",
  	     "Clerk Credit",
  	     "Clerk Credit & Collection",
  	     "Clerk Credit Card Control",
  	     "Clerk Credit Information",
  	     "Clerk Customer Order",
  	     "Clerk Data Control",
  	     "Clerk Data Examination",
  	     "Clerk Diet",
  	     "Clerk Distribution",
  	     "Clerk Documentation",
  	     "Clerk Employment",
  	     "Clerk File",
  	     "Clerk File Benefit Claims",
  	     "Clerk File Drawings/Maps",
  	     "Clerk Foreign Exchange Banking",
  	     "Clerk Funds Transfer",
  	     "Clerk General",
  	     "Clerk Health Unit",
  	     "Clerk Hotel",
  	     "Clerk Human Resources",
  	     "Clerk Import/Export",
  	     "Clerk Information",
  	     "Clerk Installment Loan",
  	     "Clerk Insurance",
  	     "Clerk Insurance Billing",
  	     "Clerk Insurance Claims",
  	     "Clerk Insurance Policy Change",
  	     "Clerk Insurance Premiums",
  	     "Clerk Insurance Review",
  	     "Clerk Interviewing Generic",
  	     "Clerk Inventory",
  	     "Clerk Inventory Control",
  	     "Clerk Invoice",
  	     "Clerk Job Order",
  	     "Clerk Laboratory",
  	     "Clerk Lease Records",
  	     "Clerk Library Braille",
  	     "Clerk Loan Banking",
  	     "Clerk Mail",
  	     "Clerk Margin",
  	     "Clerk Marking",
  	     "Clerk Materials Control",
  	     "Clerk Materials Scheduling",
  	     "Clerk Medical Records",
  	     "Clerk Microfilm",
  	     "Clerk Mortgage",
  	     "Clerk Optical Prescription",
  	     "Clerk Outpatient Admitting",
  	     "Clerk Payroll",
  	     "Clerk Personnel",
  	     "Clerk Photo Counter",
  	     "Clerk Photo Shop",
  	     "Clerk Policyholders",
  	     "Clerk Procurement",
  	     "Clerk Production Control",
  	     "Clerk Purchasing",
  	     "Clerk Real Estate",
  	     "Clerk Receiving",
  	     "Clerk Rehabilitation",
  	     "Clerk Reinsurance",
  	     "Clerk Rental Facility",
  	     "Clerk Repair Orders",
  	     "Clerk Reserves Banking",
  	     "Clerk Retail Sales",
  	     "Clerk Risk Management",
  	     "Clerk Room Service",
  	     "Clerk Routing",
  	     "Clerk Safe Deposit",
  	     "Clerk Securities",
  	     "Clerk Service Order",
  	     "Clerk Shipping",
  	     "Clerk Shipping & Receiving",
  	     "Clerk Statement",
  	     "Clerk Statistical",
  	     "Clerk Stock Retail",
  	     "Clerk Stock Transfer",
  	     "Clerk Supply",
  	     "Clerk Time Card",
  	     "Clerk Title",
  	     "Clerk Traffic",
  	     "Clerk Travel Reservations",
  	     "Clerk Typist",
  	     "Clerk Underwriting",
  	     "Clerk Utility Locator",
  	     "Clerk Wire Transfer",
  	     "Clinical Dietitian Chief",
  	     "Clinical Nurse Specialist",
  	     "Clinical Psychologist",
  	     "Clinical Research Coordinator",
  	     "Clinical Research Manager",
  	     "Clinical Research Scientist",
  	     "Clinical Therapist",
  	     "Clockmaker",
  	     "Closer",
  	     "Closer Real Estate",
  	     "Cloth Finisher Supervisor",
  	     "CNA",
  	     "Coach Athletic",
  	     "Coach Operator",
  	     "Coater Optical Element",
  	     "Coder Health Care",
  	     "Coffee Shop Manager",
  	     "Coil Winder",
  	     "Coin Machine Service Repairer",
  	     "Cold Meat Chef",
  	     "Cold Mill Operator",
  	     "Collator Operator",
  	     "Collection & Credit Supervisor",
  	     "Collection Clerk Banking",
  	     "Collection Manager",
  	     "Collection Supervisor",
  	     "Collector Loan",
  	     "College Administrator",
  	     "College Teacher",
  	     "College/University Business Manager",
  	     "Color Printer Operator",
  	     "Color Stripper",
  	     "Comedy Writer",
  	     "Commercial Appraiser",
  	     "Commercial Artist",
  	     "Commercial Broadcast Engineer",
  	     "Commercial Designer",
  	     "Commercial Laundry Worker",
  	     "Commercial Loan Collector",
  	     "Commercial Loan Manager",
  	     "Commercial Loan Officer",
  	     "Communications Analyst",
  	     "Communications Engineer",
  	     "Communications Manager",
  	     "Communications Technician",
  	     "Community Affairs Manager",
  	     "Community Development Manager",
  	     "Community Health Nurse",
  	     "Community Program Aide",
  	     "Companion",
  	     "Company Doctor",
  	     "Comparison Shopper",
  	     "Compensation & Benefits Director",
  	     "Compensation & Benefits Manager",
  	     "Compensation & Benefits Supervisor",
  	     "Compensation Analyst",
  	     "Compensation Director",
  	     "Compensation Manager",
  	     "Compensation Supervisor",
  	     "Compliance Officer",
  	     "Compliance Specialist",
  	     "Composer",
  	     "Compositor",
  	     "Compressed Gas Plant Worker",
  	     "Compression Molding Operator",
  	     "Comptroller",
  	     "Computer Applications & Programming Supervisor",
  	     "Computer Applications Manager",
  	     "Computer Clerk Data Control",
  	     "Computer Control Operator",
  	     "Computer Data Control Supervisor",
  	     "Computer Data Entry Operator",
  	     "Computer Data Entry Supervisor",
  	     "Computer Database Administrator",
  	     "Computer Database Analyst",
  	     "Computer Database Design Analyst",
  	     "Computer Desktop Publisher",
  	     "Computer Disaster Planner",
  	     "Computer Equipment Repairer",
  	     "Computer Hardware Engineer",
  	     "Computer Help Desk Representative",
  	     "Computer Help Desk Supervisor",
  	     "Computer Information Scientist",
  	     "Computer LAN/WAN Administrator",
  	     "Computer Lead Data Entry",
  	     "Computer Lead Systems Analyst",
  	     "Computer Manager Network Planning",
  	     "Computer Methods Engineer",
  	     "Computer Network Administrator",
  	     "Computer Network Analyst",
  	     "Computer Network Control Technician",
  	     "Computer Network Manager",
  	     "Computer Network Supervisor",
  	     "Computer Operations Director",
  	     "Computer Operations Manager",
  	     "Computer Operations Supervisor",
  	     "Computer Operator",
  	     "Computer Peripheral Equipment Operator",
  	     "Computer Processing Scheduler",
  	     "Computer Programmer",
  	     "Computer Programmer Analyst",
  	     "Computer Programmer Engineer",
  	     "Computer Programmer Lead",
  	     "Computer Programmer Numerical Control",
  	     "Computer Programmer Operations Supervisor",
  	     "Computer Programmer Quality Assurance",
  	     "Computer Programming Director",
  	     "Computer Programming Manager",
  	     "Computer Programming Supervisor",
  	     "Computer Sales Representative",
  	     "Computer Security Coordinator",
  	     "Computer Security Specialist",
  	     "Computer Service Representative",
  	     "Computer Services Manager",
  	     "Computer Software Design Manager",
  	     "Computer Software Design Supervisor",
  	     "Computer Software Developer",
  	     "Computer Software Director",
  	     "Computer Software Engineer",
  	     "Computer Supervisor Quality Assurance",
  	     "Computer Supervisor User Support",
  	     "Computer Support Specialist",
  	     "Computer System Hardware Analyst",
  	     "Computer Systems & Program Director",
  	     "Computer Systems & Programming Manager",
  	     "Computer Systems Administrator",
  	     "Computer Systems Analysis Director",
  	     "Computer Systems Analysis Manager",
  	     "Computer Systems Analysis Supervisor",
  	     "Computer Systems Analyst",
  	     "Computer Systems Engineer",
  	     "Computer Systems Manager",
  	     "Computer Systems Programmer",
  	     "Computer Systems Project Manager",
  	     "Computer Tape Librarian",
  	     "Computer Technical Support Specialist",
  	     "Computer Top EDP Officer",
  	     "Computer User Support Analyst",
  	     "Computer Verifying Clerk",
  	     "Computer Web Administrator",
  	     "Computer Web Content Administrator",
  	     "Computer Web Developer",
  	     "Computer Webmaster",
  	     "Computer-Aided Designer",
  	     "Concrete Finisher",
  	     "Concrete Mixing Plant Laborer",
  	     "Concrete Mixing Truck Driver",
  	     "Condominium Manager",
  	     "Conservation Technician",
  	     "Conservation Technician Soil",
  	     "Conservationist Soil",
  	     "Conservator Artifacts",
  	     "Construction Assistant Superintendent",
  	     "Construction Contractor",
  	     "Construction Engineer",
  	     "Construction Engineering Director",
  	     "Construction Engineering Manager",
  	     "Construction Engineering Supervisor",
  	     "Construction Equipment Mechanic",
  	     "Construction Equipment Operator",
  	     "Construction Estimator",
  	     "Construction Foreman",
  	     "Construction Helper",
  	     "Construction Inspector",
  	     "Construction Manager Railroad",
  	     "Construction Office Engineer",
  	     "Construction Superintendent",
  	     "Construction Top Officer",
  	     "Construction Worker",
  	     "Constructor Elevator",
  	     "Consultant",
  	     "Consultant Education",
  	     "Consultant Engineering",
  	     "Consultant IT",
  	     "Consultant Wedding",
  	     "Consulting Nurse",
  	     "Consumer Loan Manager",
  	     "Consumer Loan Officer",
  	     "Consumer Services Consultant",
  	     "Contact Lens Flashing Puncher",
  	     "Contact Lens Molder",
  	     "Content Administrator Web",
  	     "Contract Administration Director",
  	     "Contract Administration Manager",
  	     "Contract Administration Supervisor",
  	     "Contract Administrator",
  	     "Contract Coordinator",
  	     "Contract Specialist",
  	     "Contract Technician",
  	     "Contractor",
  	     "Contractor Landscape",
  	     "Contracts Manager",
  	     "Contributions Coordinator",
  	     "Control Room Operator Power Plant",
  	     "Controller",
  	     "Controller Assistant",
  	     "Controller Division",
  	     "Controller Plant",
  	     "Controller, Top Corporate",
  	     "Controls Designer",
  	     "Controls Project Engineer",
  	     "Conveyor Console Operator",
  	     "Conveyor Feeder Offbearer",
  	     "Conveyor System Operator",
  	     "COO",
  	     "Cook",
  	     "Cook Fast Food",
  	     "Cook Helper",
  	     "Cook Short Order",
  	     "Cook Specialty",
  	     "Cooling System Operator",
  	     "Coordinator Contract",
  	     "Coordinator Data Security",
  	     "Coordinator Disaster Recovery",
  	     "Coordinator Educational Resource",
  	     "Coordinator Grant",
  	     "Coordinator Help Desk",
  	     "Coordinator Home Care Aide",
  	     "Coordinator Hospital Quality",
  	     "Coordinator Logistics",
  	     "Coordinator Medical DRG",
  	     "Coordinator Of Rehabilitation Services",
  	     "Coordinator Preventive Maintenance",
  	     "Coordinator Production",
  	     "Coordinator Program Planning",
  	     "Coordinator Public Relations",
  	     "Coordinator Technical Training",
  	     "Coordinator Transplant",
  	     "Coordinator Website",
  	     "Coordinator Work Study",
  	     "Copier Technician",
  	     "Copilot Jet",
  	     "Copilot Non-Jet",
  	     "Copy Editor",
  	     "Copy Machine Operator",
  	     "Copy Machine Servicer",
  	     "Copy Machine Technician",
  	     "Copy Writer",
  	     "Copywriter",
  	     "Core Drill Operator",
  	     "Core Driller",
  	     "Corporate Attorney",
  	     "Corporate Director (Outside Member)",
  	     "Corporate Secretary",
  	     "Corporate Services Head",
  	     "Corporate Tax Accountant",
  	     "Corporate Tax Top Officer",
  	     "Corporate Treasurer",
  	     "Correspondence Clerk",
  	     "Correspondent",
  	     "Correspondent Credit",
  	     "Correspondent News",
  	     "Correspondent Sales",
  	     "Corrosion Engineer",
  	     "Cosmetologist",
  	     "Cost Accountant",
  	     "Cost Accounting Clerk",
  	     "Cost Accounting Director",
  	     "Cost Accounting Manager",
  	     "Cost Accounting Supervisor",
  	     "Cost Clerk",
  	     "Cost Development Engineer",
  	     "Cost Engineer Estimator",
  	     "Cost Estimating Manager",
  	     "Cost Estimating Supervisor",
  	     "Cost Estimator",
  	     "Cost Estimator Assistant",
  	     "Counselor",
  	     "Counselor Credit",
  	     "Counselor Dormitory",
  	     "Counselor Educational",
  	     "Counselor Financial Aid",
  	     "Counselor Guidance",
  	     "Counselor Substance Abuse",
  	     "Counter Attendant",
  	     "Counter Attendant Cafeteria",
  	     "Counter Clerk Parts",
  	     "Counter Clerk Photo Finishing",
  	     "Counter Supply Worker",
  	     "Court Abstractor",
  	     "Court Reporter",
  	     "Crane Operator",
  	     "Crane Operator Overhead",
  	     "Crane Operator Traveling",
  	     "Crane Tower Operator",
  	     "Crater/Packer",
  	     "Creative Director Art",
  	     "Credit & Collection Clerk",
  	     "Credit & Collection Manager",
  	     "Credit & Collection Supervisor",
  	     "Credit Analyst",
  	     "Credit Authorizer",
  	     "Credit Card Control Clerk",
  	     "Credit Clerk",
  	     "Credit Correspondent",
  	     "Credit Counselor",
  	     "Credit Information Clerk",
  	     "Credit Investigator",
  	     "Credit Manager",
  	     "Credit Representative",
  	     "Credit Representative Bank",
  	     "Credit Supervisor",
  	     "Credit Top Officer",
  	     "Cremator",
  	     "Crime Laboratory Analyst",
  	     "Criminalist",
  	     "Critical Care Unit Nurse",
  	     "Crop Farm Worker",
  	     "Crop Farmer",
  	     "Crop-Research Scientist",
  	     "Crude Oil Tester",
  	     "Crusher Tender",
  	     "CT Technologist",
  	     "Curator",
  	     "Currency Machine Operator",
  	     "Custodial Supervisor",
  	     "Custodian",
  	     "Custom Tailor",
  	     "Customer Account Clerk",
  	     "Customer Center Representative (Complex Calls)",
  	     "Customer Center Representative (General Calls)",
  	     "Customer Center Representative (Specialized Calls)",
  	     "Customer Sales Clerk",
  	     "Customer Service Director",
  	     "Customer Service Manager",
  	     "Customer Service Representative (General Calls)",
  	     "Customer Service Representative (Specialized Calls)",
  	     "Customer Service Representative Financial",
  	     "Customer Service Representative Insurance (Commercial)",
  	     "Customer Service Representative Insurance (Personal)",
  	     "Customer Service Supervisor",
  	     "Customer Service Top Officer",
  	     "Customer Services Coordinator Printing",
  	     "Customs Analyst",
  	     "Cutter Glass",
  	     "Cutter Hand",
  	     "Cutter Operator",
  	     "Cutter Optical Lens",
  	     "Cytogenetic Technologist",
  	     "Cytotechnologist",
  	     "Dairy Processing Operator",
  	     "Dance Director",
  	     "Data Acquisition Technician",
  	     "Data Analyst",
  	     "Data Architect",
  	     "Data Communications Analyst",
  	     "Data Control Clerk",
  	     "Data Control Supervisor",
  	     "Data Entry Operator",
  	     "Data Entry Operator Lead",
  	     "Data Entry Supervisor",
  	     "Data Examination Clerk",
  	     "Data Librarian",
  	     "Data Processing Auditor",
  	     "Data Processing Equipment Repairer",
  	     "Data Recovery Planner",
  	     "Data Security Analyst",
  	     "Data Security Coordinator",
  	     "Database Administrator",
  	     "Database Analyst",
  	     "Database Architect",
  	     "Database Design Analyst",
  	     "Day Care Worker",
  	     "Deaf Interpreter",
  	     "Dealer Compliance Representative",
  	     "Dealer Gambling",
  	     "Dean Of Students",
  	     "Deck Hand",
  	     "Deckhand Fishing Vessel",
  	     "Decorator Set",
  	     "Decorator Store",
  	     "Delinquent Account Clerk",
  	     "Deliverer",
  	     "Delivery-Route Truck Driver",
  	     "Dental Appliance Sales Representative",
  	     "Dental Assistant",
  	     "Dental Ceramist",
  	     "Dental Ceramist Assistant",
  	     "Dental Hygienist",
  	     "Dental Laboratory Technician",
  	     "Dental Orthodontic Assistant",
  	     "Dentist",
  	     "Denture Finisher",
  	     "Denture Model Maker",
  	     "Denture Packer",
  	     "Denture Waxer",
  	     "Department Editor",
  	     "Department Head",
  	     "Department Secretary",
  	     "Department Supervisor",
  	     "Dermatologist",
  	     "Derrick Helper",
  	     "Derrick Operator",
  	     "Design Checker Tool",
  	     "Design Drafter",
  	     "Design Drafter CAD/CAM",
  	     "Design Engineer",
  	     "Design Engineer Product",
  	     "Design Engineer Tool",
  	     "Design Engineering Manager",
  	     "Design Engineering Supervisor",
  	     "Design Manager",
  	     "Design Package Director",
  	     "Design Package Manager",
  	     "Design Supervisor Software",
  	     "Design Technician Computer-Aided",
  	     "Designer Commercial",
  	     "Designer Computer-Aided",
  	     "Designer Controls",
  	     "Designer Display",
  	     "Designer Fashion",
  	     "Designer Graphic",
  	     "Designer Industrial",
  	     "Designer Integrated Circuit",
  	     "Designer Interior",
  	     "Designer Museum Exhibit",
  	     "Designer Package",
  	     "Designer Printed Circuit",
  	     "Designer Product",
  	     "Designer Set",
  	     "Designer Solar Energy Systems",
  	     "Designer Tool",
  	     "Desktop Analyst",
  	     "Desktop Publisher",
  	     "Detailer Automobile",
  	     "Detailer Pharmaceuticals",
  	     "Detective",
  	     "Developer Film",
  	     "Development Disability Specialist",
  	     "Development Engineer",
  	     "Diagnosis Related Group Coordinator",
  	     "Diagnostic Medical Sonographer",
  	     "Dialysis Technician",
  	     "Dialysis Unit Head",
  	     "Dictating Machine Transcriber",
  	     "Die Casting Machine Operator",
  	     "Die Cutter",
  	     "Die-Press Operator",
  	     "Die-Stamping-Press Operator",
  	     "Diener",
  	     "Diesel Mechanic",
  	     "Diet Clerk",
  	     "Dietary Aide",
  	     "Dietary Technician",
  	     "Dietetics & Food Services Head",
  	     "Dietician",
  	     "Dietician Head",
  	     "Dietitian",
  	     "Dining Room Attendant",
  	     "Dining Room Supervisor",
  	     "Director Accounting",
  	     "Director Administrative Engineering",
  	     "Director Admissions",
  	     "Director Advertising",
  	     "Director Ambulatory Services",
  	     "Director Art",
  	     "Director Benefits",
  	     "Director Budget",
  	     "Director Cashiering",
  	     "Director Compensation",
  	     "Director Compensation & Benefits",
  	     "Director Computer Operations",
  	     "Director Construction Engineering",
  	     "Director Contract Administration",
  	     "Director Corporate (Outside Member)",
  	     "Director Cost Accounting",
  	     "Director Customer Service",
  	     "Director Dance",
  	     "Director Dietetics Department",
  	     "Director Distribution",
  	     "Director Economic Analysis",
  	     "Director EDP Audit",
  	     "Director EEO",
  	     "Director Employee Benefits",
  	     "Director Employee Services",
  	     "Director Employee Training",
  	     "Director Employment",
  	     "Director Engineering",
  	     "Director Environmental",
  	     "Director Fast Food Operations",
  	     "Director Financial Analysis",
  	     "Director Fleet",
  	     "Director Food Services",
  	     "Director Fundraising",
  	     "Director Government Affairs",
  	     "Director Hardware Design",
  	     "Director Health Information Services",
  	     "Director Hospice",
  	     "Director Housekeeping",
  	     "Director Human Resources",
  	     "Director Insurance",
  	     "Director Labor Relations",
  	     "Director Legal",
  	     "Director Library",
  	     "Director Long-Range Planning",
  	     "Director Management Development",
  	     "Director Manufacturing Engineering",
  	     "Director Marketing (Experience)",
  	     "Director Marketing (Revenue)",
  	     "Director Marketing Media",
  	     "Director Marketing Research",
  	     "Director Materials",
  	     "Director Materials Management",
  	     "Director Media Marketing",
  	     "Director Medical",
  	     "Director Nursing",
  	     "Director Nursing Home",
  	     "Director Occupational Therapy",
  	     "Director Of Biomedical Engineering",
  	     "Director Of Home Care",
  	     "Director Office Management",
  	     "Director Operations",
  	     "Director Operations Research",
  	     "Director Outpatient Department",
  	     "Director Package Design",
  	     "Director Packaging",
  	     "Director Pastoral Services",
  	     "Director Personnel",
  	     "Director Pharmacy",
  	     "Director Plant Personnel",
  	     "Director Product Development",
  	     "Director Production Planning",
  	     "Director Programming",
  	     "Director Property Management",
  	     "Director Public Relations",
  	     "Director Purchasing",
  	     "Director Quality Assurance",
  	     "Director Quality Assurance Hospital",
  	     "Director Rehabilitation Services",
  	     "Director Research & Development",
  	     "Director Safety",
  	     "Director Sales Training",
  	     "Director Security",
  	     "Director Social Services",
  	     "Director Software Design",
  	     "Director Student Services",
  	     "Director Systems & Programming",
  	     "Director Systems Analysis",
  	     "Director Tax Compliance",
  	     "Director Tax Research",
  	     "Director Telecommunications",
  	     "Director Test Engineering",
  	     "Director Trade Relations",
  	     "Director Traffic",
  	     "Director Volunteer Services",
  	     "Director Warehouse",
  	     "Disaster Recovery Coordinator",
  	     "Disaster Recovery Planner",
  	     "Disbursement Clerk",
  	     "Disc Jockey",
  	     "Dishwasher",
  	     "Dispatcher Generic",
  	     "Dispatcher Motor Vehicle",
  	     "Dispatcher Vehicle Maintenance",
  	     "Display & Banner Designer",
  	     "Display Designer",
  	     "Display Maker",
  	     "Distributing Clerk",
  	     "Distribution Director",
  	     "Distribution Manager",
  	     "Distribution Supervisor",
  	     "District Manager Fast Food",
  	     "District Manager Retail",
  	     "District Sales Manager",
  	     "Diver",
  	     "Division Controller",
  	     "Dock Worker",
  	     "Doctor Chiropractic",
  	     "Document Preparer Microfilming",
  	     "Documentation Clerk",
  	     "Documentation Engineer",
  	     "Dog Groomer",
  	     "Door Attendant",
  	     "Doorkeeper",
  	     "Dormitory Supervisor",
  	     "Dosimetrist",
  	     "Drafter",
  	     "Drafter (Complex)",
  	     "Drafter (Moderate)",
  	     "Drafter (Simple)",
  	     "Drafter Aeronautical",
  	     "Drafter Apprentice",
  	     "Drafter Architectural",
  	     "Drafter CAD/CAM Design",
  	     "Drafter Cartographic",
  	     "Drafter Civil",
  	     "Drafter Civil Engineering",
  	     "Drafter Design",
  	     "Drafter Design CAD/CAM",
  	     "Drafter Electrical",
  	     "Drafter Electronics",
  	     "Drafter Geological",
  	     "Drafter Geophysical",
  	     "Drafter Landscape",
  	     "Drafter Mechanical",
  	     "Drafter Structural",
  	     "Drafter Utilities",
  	     "Drafting Supervisor",
  	     "Dragline Operator",
  	     "Drapery Hanger",
  	     "Drawings Checker Engineering",
  	     "Dressmaker",
  	     "DRG Coordinator",
  	     "Drill Press Operator",
  	     "Drill Press Setup Operator",
  	     "Drill Press Tender",
  	     "Driller",
  	     "Driller Earth",
  	     "Driller Well",
  	     "Driver Ambulance",
  	     "Driver Bus",
  	     "Driver Chauffeur",
  	     "Driver Newspaper Delivery",
  	     "Driver Sales Route",
  	     "Driver Taxi",
  	     "Driver Tow Truck",
  	     "Driver Van",
  	     "Driving Instructor",
  	     "Drug Abuse Counselor",
  	     "Druggist",
  	     "Dry Cleaning/Laundry Manager",
  	     "Dry-Wall Finisher",
  	     "Drywall Installer",
  	     "Dump Operator",
  	     "Dump Truck Driver",
  	     "Duplicating Machine Operator",
  	     "E-Commerce Business Analyst",
  	     "E-Commerce Chief Executive",
  	     "E-Commerce Marketing Manager",
  	     "E-Commerce Programmer",
  	     "E-Commerce Sales Manager",
  	     "E-Commerce Top Officer",
  	     "E-Commerce Vice President",
  	     "Ear, Nose & Throat Specialist",
  	     "Earth Driller",
  	     "ECG Technician",
  	     "Echocardiograph Technician",
  	     "Ecologist Forest",
  	     "Economic Analysis Director",
  	     "Economic Analysis Manager",
  	     "Economic Analysis Supervisor",
  	     "Economic Analyst",
  	     "Economic Analyst Senior",
  	     "Economist",
  	     "Economist Corporate",
  	     "EDI Administrator",
  	     "EDI Manager",
  	     "EDI Specialist",
  	     "Editor Copy",
  	     "Editor Maps",
  	     "Editor Newspaper",
  	     "Editor-In-Chief Newspaper",
  	     "Editorial Fact Checker",
  	     "Editorial Officer Top",
  	     "Editorial Writer",
  	     "EDP Audit Director",
  	     "EDP Audit Manager",
  	     "EDP Audit Supervisor",
  	     "EDP Auditor",
  	     "Education Admissions Evaluator",
  	     "Education Consultant",
  	     "Education Manager",
  	     "Educational Counselor",
  	     "Educational Resource Coordinator",
  	     "Educational Specialist",
  	     "EEG Technologist",
  	     "EEO Director",
  	     "EEO Manager",
  	     "EEO Specialist",
  	     "EEO Supervisor",
  	     "EKG Technician",
  	     "Electric Meter Installer",
  	     "Electric Meter Repair Helper",
  	     "Electric Meter Repairer",
  	     "Electric Meter Tester",
  	     "Electric Tool Repairer",
  	     "Electric Utility Drafter",
  	     "Electrical Appliance Servicer",
  	     "Electrical Drafter",
  	     "Electrical Engineer",
  	     "Electrical Engineering Technician",
  	     "Electrical Inspector",
  	     "Electrical Instrument Repairer",
  	     "Electrical Power Repairer",
  	     "Electrical Repairer",
  	     "Electrical Test Engineer",
  	     "Electrical Transmission Engineer",
  	     "Electrician - Certified",
  	     "Electrician Elevator Maintenance",
  	     "Electrician Helper",
  	     "Electrician Journeyman",
  	     "Electrician Maintenance",
  	     "Electrician Powerhouse",
  	     "Electrician Telephone",
  	     "Electro-Optical Engineer",
  	     "Electrocardiograph Technologist",
  	     "Electroencephalographic Technologist",
  	     "Electrolysis Engineer",
  	     "Electromechanical Technician",
  	     "Electromedical Equipment Repairer",
  	     "Electromedical Service Engineer",
  	     "Electromyographic Technician",
  	     "Electronic Coil Winder",
  	     "Electronic Data Interchange Administrator",
  	     "Electronic Data Interchange Manager",
  	     "Electronic Data Interchange Specialist",
  	     "Electronic Equipment Repairer",
  	     "Electronic Masking Operator",
  	     "Electronic Plotting System Operator",
  	     "Electronic Transfer Coordinator",
  	     "Electronics Assembler",
  	     "Electronics Assembler (General)",
  	     "Electronics Assembler (Precision)",
  	     "Electronics Drafter",
  	     "Electronics Engineer",
  	     "Electronics Inspector",
  	     "Electronics Mechanic",
  	     "Electronics Sales Engineer",
  	     "Electronics Technician",
  	     "Electronics Technician Biomedical",
  	     "Electronics Tester",
  	     "Electronics Worker",
  	     "Electroplater",
  	     "Elementary School Teacher",
  	     "Elevator Constructor",
  	     "Elevator Examiner",
  	     "Elevator Inspector",
  	     "Elevator Mechanic",
  	     "Elevator Repairer",
  	     "Embalmer",
  	     "Embalmer Assistant",
  	     "Emergency Medical Technician",
  	     "Emergency Physician",
  	     "Emergency Room Nurse",
  	     "Emergency Room Physician",
  	     "Emergency Services Head",
  	     "EMG Technician",
  	     "Employee Benefits Administrator",
  	     "Employee Benefits Director",
  	     "Employee Benefits Manager",
  	     "Employee Communications Manager",
  	     "Employee Relations Head",
  	     "Employee Relations Manager",
  	     "Employee Relations Representative",
  	     "Employee Relations Specialist",
  	     "Employee Relations Supervisor",
  	     "Employee Services Director",
  	     "Employee Services Manager",
  	     "Employee Services Supervisor",
  	     "Employee Training Director",
  	     "Employee Training Manager",
  	     "Employee Training Specialist",
  	     "Employee Training Supervisor",
  	     "Employment Agency Manager",
  	     "Employment Assistant",
  	     "Employment Clerk",
  	     "Employment Director",
  	     "Employment Interviewer",
  	     "Employment Manager",
  	     "Employment Recruiter",
  	     "Employment Recruiter Professional",
  	     "Employment Representative",
  	     "Employment Supervisor",
  	     "EMT",
  	     "Encoding Machine Operator",
  	     "Endocrinologist (Metabolic)",
  	     "Endodontist",
  	     "Engine Lathe Setup Operator",
  	     "Engine Test Evaluator",
  	     "Engineer Aerodynamics",
  	     "Engineer Aeronautical",
  	     "Engineer Agricultural",
  	     "Engineer Airport",
  	     "Engineer Automotive",
  	     "Engineer Biomedical",
  	     "Engineer Biomedical Head",
  	     "Engineer Cable Outside Plant",
  	     "Engineer Central Office Equipment",
  	     "Engineer Ceramic",
  	     "Engineer Chemical",
  	     "Engineer Chemical Test",
  	     "Engineer Chief Hospital",
  	     "Engineer Civil",
  	     "Engineer Commercial Broadcast",
  	     "Engineer Computer Hardware",
  	     "Engineer Computer Methods",
  	     "Engineer Computer Software",
  	     "Engineer Construction Office",
  	     "Engineer Corrosion",
  	     "Engineer Design",
  	     "Engineer Documentation",
  	     "Engineer Electrical",
  	     "Engineer Electrical Test",
  	     "Engineer Electrolysis",
  	     "Engineer Electromedical Service",
  	     "Engineer Electronic Sales",
  	     "Engineer Electronics",
  	     "Engineer Environmental",
  	     "Engineer Facilities",
  	     "Engineer Facilities Layout",
  	     "Engineer Field Radio/TV",
  	     "Engineer Field Service",
  	     "Engineer Fire Protection",
  	     "Engineer Flight",
  	     "Engineer Health & Safety",
  	     "Engineer Hoisting",
  	     "Engineer Hydraulic",
  	     "Engineer Illuminating",
  	     "Engineer Industrial",
  	     "Engineer Industrial Health",
  	     "Engineer Locomotive",
  	     "Engineer Logistics",
  	     "Engineer Manufacturing",
  	     "Engineer Marine",
  	     "Engineer Materials Generic",
  	     "Engineer Mechanical",
  	     "Engineer Mine Safety",
  	     "Engineer Mining",
  	     "Engineer Nuclear",
  	     "Engineer Nuclear Equipment Test",
  	     "Engineer Nuclear Fuel Research",
  	     "Engineer Nuclear Fuels Reclamation",
  	     "Engineer Nuclear Safety",
  	     "Engineer Nuclear Waste",
  	     "Engineer Operating",
  	     "Engineer Optical",
  	     "Engineer Outside Plant",
  	     "Engineer Packaging",
  	     "Engineer Petroleum",
  	     "Engineer Photogrammetric",
  	     "Engineer Physical Metallurgist",
  	     "Engineer Plant",
  	     "Engineer Pollution Control",
  	     "Engineer Power Distribution",
  	     "Engineer Power Systems",
  	     "Engineer Power Transmission",
  	     "Engineer Product Development",
  	     "Engineer Product Safety",
  	     "Engineer Production",
  	     "Engineer Programmer",
  	     "Engineer Project",
  	     "Engineer Quality Control",
  	     "Engineer Radiation-Protection",
  	     "Engineer Refrigeration",
  	     "Engineer Reliability",
  	     "Engineer Research",
  	     "Engineer Resource Recovery",
  	     "Engineer Safety",
  	     "Engineer Sales",
  	     "Engineer Sales Aeronautical",
  	     "Engineer Sanitary",
  	     "Engineer Soils",
  	     "Engineer Standards",
  	     "Engineer Stationary",
  	     "Engineer Structural",
  	     "Engineer Telecommunications",
  	     "Engineer Telephone Equipment",
  	     "Engineer Test",
  	     "Engineer Tool Design",
  	     "Engineer Traffic",
  	     "Engineer Transportation",
  	     "Engineer Value",
  	     "Engineer Waste Management",
  	     "Engineer Water Transportation",
  	     "Engineer Welding",
  	     "Engineer X-Ray Service",
  	     "Engineering Administrative Manager",
  	     "Engineering Assistant",
  	     "Engineering Assistant Mechanical",
  	     "Engineering Consultant",
  	     "Engineering Cost Estimator",
  	     "Engineering Design Manager",
  	     "Engineering Director",
  	     "Engineering Director Test",
  	     "Engineering Drafter Civil",
  	     "Engineering Drawings Checker",
  	     "Engineering Environmental Manager",
  	     "Engineering Laboratory Technician",
  	     "Engineering Librarian",
  	     "Engineering Manager",
  	     "Engineering Manager Construction",
  	     "Engineering Manager Manufacturing",
  	     "Engineering Manufacturing Director",
  	     "Engineering Specialist",
  	     "Engineering Specifications Technician",
  	     "Engineering Supervisor Administrative",
  	     "Engineering Supervisor Chemical",
  	     "Engineering Supervisor Construction",
  	     "Engineering Supervisor Design",
  	     "Engineering Supervisor Generic",
  	     "Engineering Supervisor Manufacturing",
  	     "Engineering Supervisor Test",
  	     "Engineering Technician",
  	     "Engineering Technician Chemical",
  	     "Engineering Technician Civil",
  	     "Engineering Technician Field",
  	     "Engineering Technician Mechanical",
  	     "Engineering Test Manager",
  	     "Engineering Top Officer",
  	     "Engraver Machine",
  	     "Engraver Of Metals",
  	     "Engraving Press Operator",
  	     "Enrollment Clerk",
  	     "Environmental Director",
  	     "Environmental Engineer",
  	     "Environmental Engineering Manager",
  	     "Environmental Manager Engineering",
  	     "Environmental Research Manager",
  	     "Environmental Scientist",
  	     "Environmental Supervisor",
  	     "Environmental Technician",
  	     "Environmental Top Officer",
  	     "Epidemiologist",
  	     "Equal Employment Opportunity Specialist",
  	     "Equal Employment Opportunity Supervisor",
  	     "Equipment Appraiser",
  	     "Equipment Operator Construction",
  	     "Equipment Operator Heavy",
  	     "Equipment Washer",
  	     "Erector Fence",
  	     "Erector Line",
  	     "Erector Machinery",
  	     "ERP Programmer",
  	     "ERP Project Manager",
  	     "Estate Planner",
  	     "Estimating Engineer",
  	     "Estimating Manager",
  	     "Estimating Supervisor",
  	     "Estimating Top Officer",
  	     "Estimator Assistant",
  	     "Estimator Automobile Damage",
  	     "Estimator Automobile Service",
  	     "Estimator Cost",
  	     "Estimator Engineering Cost",
  	     "Estimator Printing",
  	     "Estimator Sales",
  	     "Etched Circuit Processor",
  	     "Evaluator Admissions",
  	     "Evaluator Special Needs",
  	     "Evaluator Test Engine",
  	     "Evaporative Cooler Installer",
  	     "EVP",
  	     "Examiner Title",
  	     "Executive Assistant",
  	     "Executive Chef (Fine Dining)",
  	     "Executive Chef (Hotel & Restaurant)",
  	     "Executive Fifth Highest Paid",
  	     "Executive Fourth Highest Paid",
  	     "Executive Highest Paid",
  	     "Executive Second Highest Paid",
  	     "Executive Secretary",
  	     "Executive Secretary, CEO",
  	     "Executive Secretary, VP",
  	     "Executive Third Highest Paid",
  	     "Executive Vice President",
  	     "Exercise Physiologist",
  	     "Exercise Physiology Technologist",
  	     "Exerciser Horse",
  	     "Exhibit Builder Museums",
  	     "Exhibit Designer Museum",
  	     "Expediter",
  	     "Expediter Materials",
  	     "Expediter Production",
  	     "Experimental Psychologist",
  	     "Experimental Welder",
  	     "Explosive Worker",
  	     "Export Sales Manager",
  	     "Export/Import Agent",
  	     "Export/Import Analyst",
  	     "Export/Import Clerk",
  	     "Export/Import Supervisor",
  	     "Extension Work Instructor",
  	     "Exterminator Pest",
  	     "Extractive Metallurgist",
  	     "Extractive Supervisor",
  	     "Extractor",
  	     "Extractor Operator",
  	     "Extruder Operator Helper",
  	     "Extruder Operator Plastic",
  	     "Eye Specialist",
  	     "Eyeglass Lens Cutter",
  	     "Fabric Inspector",
  	     "Fabricator Assembler",
  	     "Fabricator Assembler Metal",
  	     "Fabricator Integrated Circuit",
  	     "Fabricator Metal",
  	     "Facilities & Building Manager",
  	     "Facilities & Building Supervisor",
  	     "Facilities Engineer",
  	     "Facilities Head",
  	     "Facilities Planner",
  	     "Facilities Supervisor",
  	     "Factor",
  	     "Factory Engineer",
  	     "Factory Manager",
  	     "Family Physician",
  	     "Family Practice Physician",
  	     "Family Practitioner",
  	     "Farm Equipment Mechanic",
  	     "Farm Machinery Operator",
  	     "Farm Manager",
  	     "Farm Worker Supervisor",
  	     "Farm Worker/Crop Field",
  	     "Farmer Field Crop",
  	     "Farmer Horticultural",
  	     "Farrier",
  	     "Fashion Artist",
  	     "Fashion Designer",
  	     "Fashion Illustrator",
  	     "Fast Food Assistant Manager",
  	     "Fast Food Cook",
  	     "Fast Food Manager (Multiple Locations)",
  	     "Fast Food Manager (Network)",
  	     "Fast Food Manager (Single Location)",
  	     "Fast Food Worker",
  	     "Fence Erector",
  	     "Fiction Writer",
  	     "Field Engineer Radio/TV",
  	     "Field Engineer Technician",
  	     "Field Representative Computers",
  	     "Field Sales Supervisor",
  	     "Field Service Engineer",
  	     "Field Service Representative",
  	     "Field Service Technician",
  	     "Field Services Supervisor",
  	     "Fifth Highest Paid Executive",
  	     "File Clerk",
  	     "File Clerk Benefit Claims",
  	     "File Drawings/Map Clerk",
  	     "File Room Supervisor",
  	     "Filling Station Attendant",
  	     "Filling/Packaging Operator",
  	     "Film Developer",
  	     "Film Laboratory Technician",
  	     "Film Or Tape Librarian",
  	     "Film Processing Utility Worker",
  	     "Final Assembler",
  	     "Final Inspector",
  	     "Financial Aid Counselor",
  	     "Financial Analysis Director",
  	     "Financial Analysis Manager",
  	     "Financial Analysis Supervisor",
  	     "Financial Analyst",
  	     "Financial Analyst Accountant",
  	     "Financial Sales Representative",
  	     "Financial Top Officer",
  	     "Financial Transactions General Clerk",
  	     "Fine Arts Packer",
  	     "Finished Metal Repairer",
  	     "Finisher Concrete",
  	     "Finisher Denture",
  	     "Finisher Dry-Wall",
  	     "Finisher Glass",
  	     "Finisher Porcelain",
  	     "Finisher Terrazzo",
  	     "Finisher Tile",
  	     "Fire Protection Engineer",
  	     "First Aid Attendant",
  	     "Fishing & Hunting Guide",
  	     "Fishing Vessel Deckhand",
  	     "Fitness & Health Supervisor",
  	     "Fleet Director",
  	     "Fleet Manager",
  	     "Fleet Supervisor",
  	     "Flight Attendant",
  	     "Flight Engineer",
  	     "Flight Mechanic",
  	     "Flight Security Specialist",
  	     "Flight Service Manager",
  	     "Floor Broker",
  	     "Floor Layer",
  	     "Floor-Covering-Tile Layer",
  	     "Florist",
  	     "Fluid Power Mechanic",
  	     "Fluorescent Lamp Replacer",
  	     "Flying Instructor (Ground)",
  	     "Flying Instructor (In-Flight)",
  	     "Folder Inspector",
  	     "Folding Machine Operator",
  	     "Food Checker",
  	     "Food Chemist",
  	     "Food Counter Attendant",
  	     "Food Counter Worker",
  	     "Food Dining Room Attendant",
  	     "Food Fast Food Cook",
  	     "Food Sales Clerk",
  	     "Food Science Technician",
  	     "Food Scientist",
  	     "Food Service Worker",
  	     "Food Services & Dietetics Head",
  	     "Food Services Director",
  	     "Food Services Manager (Full Menu)",
  	     "Food Services Manager (Mid-Size Location)",
  	     "Food Services Manager (Small Location)",
  	     "Food Services Supervisor",
  	     "Food Short Order Cook",
  	     "Food Technologist",
  	     "Food Tester",
  	     "Food Worker Fast",
  	     "Forecaster Weather",
  	     "Foreign Clerk",
  	     "Foreign-Exchange Dealer",
  	     "Foreign-Exchange Trader",
  	     "Foreman",
  	     "Foreman Assembly Line",
  	     "Foreman Assistant",
  	     "Foreman Bindery",
  	     "Foreman Construction",
  	     "Foreman Grounds Maintenance",
  	     "Foreman Mechanic",
  	     "Foreman Mine",
  	     "Foreman Print Shop",
  	     "Foreman Production",
  	     "Foreman Yard",
  	     "Forensic Science Technician",
  	     "Forest Ecologist",
  	     "Forest Worker",
  	     "Forester",
  	     "Forging Machine Operator",
  	     "Forklift Operator",
  	     "Forms Analysis Manager",
  	     "Foundry Metallurgist",
  	     "Foundry Molder",
  	     "Foundry Technician",
  	     "Foundry Worker",
  	     "Fourth Highest Paid Executive",
  	     "Fraud Investigator",
  	     "Fretted Instrument Maker",
  	     "Fretted Instrument Repairer",
  	     "Front Desk Receptionist",
  	     "Front End Loader Operator",
  	     "Front Office Manager",
  	     "Fuel Attendant",
  	     "Fuel Injection Servicer",
  	     "Fumigator",
  	     "Fundraiser",
  	     "Fundraising Director",
  	     "Fundraising Manager",
  	     "Funds Electronic Transfer Clerk",
  	     "Funeral Attendant",
  	     "Funeral Manager",
  	     "Funeral-Home Attendant",
  	     "Furnace Installer & Repairer",
  	     "Furnace Operator",
  	     "Furniture Repairer",
  	     "Furniture Restorer",
  	     "Furniture Upholsterer",
  	     "Gambling Dealer",
  	     "Game Warden",
  	     "Garage Mechanic",
  	     "Garage Servicer",
  	     "Garage Supervisor",
  	     "Garbage Truck Driver",
  	     "Garde Manger",
  	     "Gardener",
  	     "Garment Sewer",
  	     "Gas Compressor Operator",
  	     "Gas Inspector",
  	     "Gas Plant Operator",
  	     "Gas Plant Worker Compressed",
  	     "Gas Station Attendant",
  	     "Gastroenterologist",
  	     "Gate Guard",
  	     "Gem And Diamond Cutter",
  	     "Gemologist",
  	     "Genealogist",
  	     "General Claims Agent",
  	     "General Clerk",
  	     "General Clerk Financial Transactions",
  	     "General Clerk News",
  	     "General Clerk Sales",
  	     "General Duty Nurse",
  	     "General Helper",
  	     "General Maintenance Carpenter",
  	     "General Maintenance Supervisor",
  	     "General Maintenance Worker",
  	     "General Manager Farm",
  	     "General Manager Hotel",
  	     "General Practitioner",
  	     "General Production Worker",
  	     "General Teller",
  	     "General/Institution Cook",
  	     "Generic Clerical Supervisor",
  	     "Generic Clerk Interviewing",
  	     "Generic Dispatcher",
  	     "Generic Engineer Materials",
  	     "Generic Engineering Supervisor",
  	     "Geographer",
  	     "Geological Aide",
  	     "Geological Drafter",
  	     "Geologist",
  	     "Geologist Petroleum",
  	     "Geology Technician",
  	     "Geophysical Drafter",
  	     "Geophysical Surveyor",
  	     "Geophysicist",
  	     "Geriatric Nurse",
  	     "Gerontologist",
  	     "Gerontology Nurse",
  	     "Glass Blower",
  	     "Glass Cutter",
  	     "Glass Finisher",
  	     "Glass Setter",
  	     "Glass Technician",
  	     "Glassblower Scientific",
  	     "Glazier",
  	     "Glazier Plate Glass",
  	     "Gluer",
  	     "GMM/Head Of Merchandise Buying",
  	     "Golf Club Manager",
  	     "Governess",
  	     "Government Affairs Director",
  	     "Government Affairs Manager",
  	     "Government Affairs Representative",
  	     "Government Affairs Supervisor",
  	     "Government Affairs Top Officer",
  	     "Government Sales Manager",
  	     "Government Sales Supervisor",
  	     "Grader Meat",
  	     "Grader Operator",
  	     "Grant Coordinator",
  	     "Grant Writer",
  	     "Graphic Artist",
  	     "Graphic Design Supervisor",
  	     "Graphic Designer",
  	     "Graphic Specialist/Photosetter",
  	     "Graphic Supervisor",
  	     "Graphologist",
  	     "Greenskeeper",
  	     "Grinder Operator Cement",
  	     "Grinder Precision",
  	     "Grinder Rough",
  	     "Grinding Mill Operator",
  	     "Grinding Operator",
  	     "Grocery Buyer",
  	     "Groomer Dog",
  	     "Grounds Maintenance Foreman",
  	     "Groundskeeper",
  	     "Group Social Worker",
  	     "Group Vice President",
  	     "Guard & Driver Armored Car",
  	     "Guard Gate",
  	     "Guard School-Crossing",
  	     "Guard Security",
  	     "Guidance Counselor",
  	     "Guide Hunting & Fishing",
  	     "Guide Tour",
  	     "Gunsmith",
  	     "Gutter Installer/Repairer",
  	     "Gynecologist",
  	     "Hair Cutter",
  	     "Hairdresser",
  	     "Hand Cutter",
  	     "Hand Packager",
  	     "Hand Sewer",
  	     "Handler Materials",
  	     "Handyman",
  	     "Hanger Drapery",
  	     "Hardware Analyst Computer Systems",
  	     "Hardware Design Director",
  	     "Hardware Design Manager",
  	     "Hardware Design Supervisor",
  	     "Hardware Director Design",
  	     "Hardware Engineer Computer",
  	     "Hazardous Materials Removal Worker",
  	     "Head Bookkeeper",
  	     "Head Camera Operator",
  	     "Head Chef (Fine Dining)",
  	     "Head Chef (Hotel & Restaurant)",
  	     "Head Engineer Biomedical",
  	     "Head Mechanic",
  	     "Head Minister",
  	     "Head Nurse",
  	     "Head Of Admitting",
  	     "Head Of Case Management",
  	     "Head Of Corporate Services",
  	     "Head Of Dialysis Unit",
  	     "Head Of Dietary & Food Services",
  	     "Head Of Emergency Services",
  	     "Head Of Facilities",
  	     "Head Of Home Health",
  	     "Head Of Housekeeping",
  	     "Head Of Lending Banking",
  	     "Head Of Manufacturing",
  	     "Head Of Medical Contracting",
  	     "Head Of Medical Laboratory",
  	     "Head Of Medical Records",
  	     "Head Of Merchandise Buying/GMM",
  	     "Head Of Merchandise Planning & Allocation",
  	     "Head Of Occupational Therapy",
  	     "Head Of Operating Room Services",
  	     "Head Of Operations Banking",
  	     "Head Of Pharmacy",
  	     "Head Of Quality Assurance Medical",
  	     "Head Of Radiation Therapy",
  	     "Head Of Radiology",
  	     "Head Of Rehabilitative Services",
  	     "Head Of Reimbursement",
  	     "Head Of Research & Development",
  	     "Head Of Respiratory Therapy",
  	     "Head Of Retail Banking",
  	     "Head Of Support Services",
  	     "Head Of Surgical Services",
  	     "Head Of Trust",
  	     "Head Of Volunteers",
  	     "Head Pastoral Care",
  	     "Head Teller",
  	     "Headmaster Principal",
  	     "Health & Fitness Supervisor",
  	     "Health & Safety Engineer",
  	     "Health & Safety Officer",
  	     "Health Educator",
  	     "Health Equipment Servicer",
  	     "Health Information Services Director",
  	     "Health Mental Manager",
  	     "Health Physicist",
  	     "Health Unit Clerk",
  	     "Health-Physics Technician",
  	     "Hearing Aid Specialist",
  	     "Hearing Impaired Teacher",
  	     "Hearing Test Technician",
  	     "Hearing Therapist",
  	     "Heart Specialist",
  	     "Heat Treater",
  	     "Heating/Air Conditioning Servicer",
  	     "Heavy Equipment Mechanic",
  	     "Heavy Equipment Operator",
  	     "Heavy Truck Driver",
  	     "Heavy-Duty Press Operator",
  	     "Help Desk Analyst",
  	     "Help Desk Coordinator",
  	     "Help Desk Manager",
  	     "Help Desk Representative",
  	     "Help Desk Supervisor",
  	     "Helper Baker",
  	     "Helper Bindery",
  	     "Helper Brick Mason",
  	     "Helper Carpenter",
  	     "Helper Chemical Process",
  	     "Helper Construction",
  	     "Helper Derrick",
  	     "Helper Electric Meter Repair",
  	     "Helper Electrician",
  	     "Helper Extruder Operator",
  	     "Helper General",
  	     "Helper Kitchen",
  	     "Helper Machine Operator",
  	     "Helper Office",
  	     "Helper Pipefitter",
  	     "Helper Production",
  	     "Helper Spray Paint",
  	     "Helper Surveyor",
  	     "Helper Tile Setter",
  	     "Hematologist",
  	     "Hemodialysis Technician",
  	     "Hemotherapist",
  	     "Herbarium Worker",
  	     "High Risk Pregnancy Specialist",
  	     "High School Teacher",
  	     "Highest Paid Executive",
  	     "Histology Technician",
  	     "Histopathologist",
  	     "Historian",
  	     "Historic Sites Administrator",
  	     "Histotechnologist",
  	     "Hoist & Winch Operator",
  	     "Hoisting Engineer",
  	     "Hoisting Engineer Pile Driving",
  	     "Hoisting Machine Operator",
  	     "Home Care Aide",
  	     "Home Care Aide Coordinator",
  	     "Home Care Aide Supervisor",
  	     "Home Care Director",
  	     "Home Care LPN",
  	     "Home Care Nurse",
  	     "Home Economist",
  	     "Home Health Aide",
  	     "Home Health Aide Coordinator",
  	     "Home Health Aide Supervisor",
  	     "Home Health Head",
  	     "Home Therapy Teacher",
  	     "Horizontal Boring Operator",
  	     "Horizontal Earth Boring Machine Operator",
  	     "Horse Exerciser",
  	     "Horseshoer",
  	     "Horticultural Specialty Grower",
  	     "Horticulturist",
  	     "Hospice Director",
  	     "Hospital Administrator",
  	     "Hospital Admitting Clerk",
  	     "Hospital Admitting Director",
  	     "Hospital Admitting Supervisor",
  	     "Hospital Cleaner",
  	     "Hospital Diet Clerk",
  	     "Hospital Director Food Services",
  	     "Hospital Insurance Representative",
  	     "Hospital Laundry Manager",
  	     "Hospital Legal Services Head",
  	     "Hospital Plastic Assembler",
  	     "Hospital Quality Coordinator",
  	     "Hospital Top Professional Services Executive",
  	     "Hospital Top Support/Ancillary Executive",
  	     "Host/Hostess Restaurant",
  	     "Host/Hostess Show",
  	     "Hot Cell Technician",
  	     "Hotel Attendant",
  	     "Hotel Chef",
  	     "Hotel Clerk",
  	     "Hotel Facilities Manager",
  	     "Hotel Food Counter Worker",
  	     "Hotel Front Office Manager",
  	     "Hotel General Manager",
  	     "Hotel Hostess Restaurant",
  	     "Hotel Housekeeping Attendant",
  	     "Hotel Laundry Worker",
  	     "Hotel Linen Room Attendant",
  	     "Hotel Manager Front Office",
  	     "Hotel Pastry Chef",
  	     "Hotel Reservation & Front Office Clerk",
  	     "Hotel Reservation Clerk",
  	     "Hotel Restaurant Manager (Large)",
  	     "Hotel Room Service Clerk",
  	     "Hotel Sales Representative",
  	     "Hotel Supervisor Baggage",
  	     "Hotel Waiter/Waitress",
  	     "Hotel Wine Steward/Stewardess",
  	     "Housecleaner",
  	     "Housekeeper Hospital",
  	     "Housekeeping Aide",
  	     "Housekeeping Attendant",
  	     "Housekeeping Director",
  	     "Housekeeping Head",
  	     "Housekeeping Supervisor",
  	     "HRIS Analyst",
  	     "HRIS Manager",
  	     "HRIS Supervisor",
  	     "Human Resources Advisor",
  	     "Human Resources Analyst",
  	     "Human Resources Assistant",
  	     "Human Resources Clerk",
  	     "Human Resources Communications Manager",
  	     "Human Resources Development Manager",
  	     "Human Resources Director",
  	     "Human Resources Generalist",
  	     "Human Resources Information Systems Analyst",
  	     "Human Resources Information Systems Supervisor",
  	     "Human Resources Manager",
  	     "Human Resources Manager EEO",
  	     "Human Resources Manager Employee Relations",
  	     "Human Resources Plant Manager",
  	     "Human Resources Plant Supervisor",
  	     "Human Resources Scheduler",
  	     "Human Resources Sprvr Employee Relations",
  	     "Human Resources Supervisor",
  	     "Human Resources Technician",
  	     "Human Resources Top Officer",
  	     "Human Resources Training Manager",
  	     "Humorist",
  	     "Hunting & Fishing Guide",
  	     "HVAC Mechanic",
  	     "Hydraulic Engineer",
  	     "Hydro Pneumatic Tester",
  	     "Hydroelectric Station Operator",
  	     "Hydrographer",
  	     "Hydrologist",
  	     "Hygienist Dental",
  	     "Hygienist Industrial",
          };
  
          return make_shared<oneofcharpfaker>(elems, sizeof(elems)/sizeof(elems[0]));
      }
  
      fakerp username() {
          return make_shared<usernamefaker>(first_name(), last_name());
      }
  
      fakerp date() {
          return make_shared<datefaker>();
      }
  
      fakerp domain_name() {
          return combine(make_shared<domainnamefaker>(company()),
                  str("."), domain_suffix());
      }
  
      fakerp email() {
          return combine(username(), str("@"), domain_name());
      }
  
      fakerp phone_number() {
          vector<fakerp> choices = {
              templ("###-###-####"),
              templ("(###)###-####"),
              templ("1-###-###-####"),
              templ("###.###.####"),
              templ("###-###-####"),
              templ("(###)###-####"),
              templ("1-###-###-####"),
              templ("###.###.####"),
              templ("###-###-#### x###"),
              templ("(###)###-#### x###"),
              templ("1-###-###-#### x###"),
              templ("###.###.#### x###"),
              templ("###-###-#### x####"),
              templ("(###)###-#### x####"),
              templ("1-###-###-#### x####"),
              templ("###.###.#### x####"),
              templ("###-###-#### x#####"),
              templ("(###)###-#### x#####"),
              templ("1-###-###-#### x#####"),
              templ("###.###.#### x#####"),
          };
          return oneof(choices);
      }
  
  };
  
  };
  #endif
  
  
  