var provider = {

  phone_formats: ['+33 # ## ## ## ##', '0# ## ## ## ##'],

  prefix: ['M.', 'Mme', 'Mlle'],

  first_names: ['Abel', 'Achille', 'Adam', 'Adel', 'Adrien', 'Agathe',
  'Ahmed', 'Alain', 'Albert', 'Alexandre', 'Alexia', 'Alexis', 'Alice',
  'Alicia', 'Alix', 'Alphonse', 'Amandine', 'Amaury', 'Ambre',
  'Ambroise', 'Amine', 'Anaelle', 'Anais', 'Anatole', 'Anaïs', 'André',
  'Ange', 'Angélique', 'Anna', 'Anne', 'Anouk', 'Anthony', 'Antoine',
  'Antonin', 'Apolline', 'Armand', 'Arnaud', 'Arthur', 'Aubin',
  'Auguste', 'Augustin', 'Aurélien', 'Axel', 'Axelle', 'Aymeric',
  'Baptiste', 'Basile', 'Bastien', 'Benjamin', 'Bernard', 'Bilal',
  'Brian', 'Camille', 'Candice', 'Capucine', 'Caroline', 'Celia',
  'Charles', 'Charlie', 'Charline', 'Charlotte', 'Chloé', 'Christian',
  'Clara', 'Clarisse', 'Claude', 'Clémence', 'Clément', 'Colin',
  'Coline', 'Come', 'Constance', 'Corentin', 'Cyprien', 'Cyril',
  'Célia', 'Damien', 'Daniel', 'David', 'Denis', 'Dimitri', 'Dorian',
  'Dylan', 'Eden', 'Edgar', 'Edouard', 'Eliane', 'Elie', 'Elisa',
  'Elise', 'Eloise', 'Elsa', 'Emile', 'Emilie', 'Emilien', 'Emma',
  'Emmanuel', 'Enola', 'Enora', 'Enzo', 'Erwann', 'Esteban', 'Ethan',
  'Etienne', 'Eva', 'Fabien', 'Fabrice', 'Fanny', 'Faustine', 'Felix',
  'Florence', 'Florent', 'Florian', 'François', 'François-Xavier',
  'Félix', 'Gabriel', 'Gabrielle', 'Garance', 'Gaspard', 'Gauthier',
  'Gaël', 'Gaëtan', 'Georges', 'Gregory', 'Grégoire', 'Guilhem',
  'Guillaume', 'Hector', 'Henri', 'Henriette', 'Hippolyte', 'Hortense',
  'Hugo', 'Hugues', 'Héloïse', 'Hélène', 'Ibrahim', 'Ines', 'Iris',
  'Ismaël', 'Jade', 'Jean', 'Jean-Baptiste', 'Jean-Philippe', 'Jean-Yves',
  'Jeanine', 'Jeanne', 'Jeremy', 'Joachim', 'Joan', 'Johan',
  'Jonathan', 'Jordan', 'Joris', 'Joseph', 'Joshua', 'Jules', 'Julia',
  'Julie', 'Julien', 'Juliette', 'Justin', 'Justine', 'Jérémie',
  'Karim', 'Kenza', 'Kevin', 'Lana', 'Laura', 'Laurent', 'Leon',
  'Leonie', 'Liam', 'Lili', 'Lilia', 'Lilian', 'Lily', 'Lise', 'Lison',
  'Loic', 'Lola', 'Lou', 'Louis', 'Louise', 'Luc', 'Lucas', 'Lucie',
  'Lucien', 'Lucile', 'Luna', 'Lylou', 'Léa', 'Léandre', 'Léane', 'Léo',
  'Léon', 'Léonard', 'Léonie', 'Léopold', 'Mae', 'Mael', 'Maelle',
  'Maeva', 'Mahé', 'Manon', 'Marc', 'Margaux', 'Margot', 'Marianne',
  'Marie', 'Marie-Caroline', 'Marie-Hélène', 'Marine', 'Marion',
  'Marius', 'Martin', 'Mathias', 'Mathieu', 'Mathilde', 'Matthieu',
  'Max', 'Maxence', 'Maxime', 'Maya', 'Maël', 'Maëlys', 'Mehdi',
  'Meline', 'Mickael', 'Miguel', 'Mireille', 'Mohammed', 'Morgan',
  'Morgane', 'Muriel', 'Myriam', 'Mélissa', 'Nathan', 'Nicolas',
  'Nicole', 'Nina', 'Ninon', 'Noemie', 'Noémie', 'Oceane', 'Océane',
  'Olivia', 'Olivier', 'Omar', 'Oscar', 'Paul', 'Paulette', 'Pauline',
  'Phillipe', 'Pierre', 'Pierre-Olivier', 'Pierre-Yves', 'Quentin',
  'Rachel', 'Raphaël', 'Raymond', 'Renaud', 'René', 'Richard', 'Robert',
  'Robin', 'Romain', 'Romane', 'Roméo', 'Rose', 'Roxane', 'Rémi',
  'Salomé', 'Samuel', 'Sandra', 'Sarah', 'Sasha', 'Selma', 'Shana',
  'Simon', 'Stella', 'Thibaud', 'Thomas', 'Théo', 'Théodore',
  'Théophile', 'Timothée', 'Tristan', 'Ursule', 'Valentin', 'Valentine',
  'Victoire', 'Victor', 'Victoria', 'Vincent', 'Violette', 'Xavier',
  'Yanis', 'Yann', 'Yasmine', 'Yoann', 'Yves', 'Zoé', 'Élodie',
  'Éléonore', 'Émilie'],

  last_names: ['Adam', 'Albert', 'Alexandre', 'Allain', 'Allard',
  'Alves', 'Andre', 'Antoine', 'Arnaud', 'Aubert', 'Aubry', 'Auger',
  'Bailly', 'Barbe', 'Barbier', 'Baron', 'Barre', 'Barthelemy',
  'Bataille', 'Baudry', 'Bayle', 'Bazin', 'Benard', 'Benoit', 'Berger',
  'Bernard', 'Berthelot', 'Berthier', 'Bertin', 'Bertrand', 'Besnard',
  'Besse', 'Besson', 'Bigot', 'Blanc', 'Blanchard', 'Blanchet', 'Blin',
  'Blondel', 'Blot', 'Bodin', 'Bonhomme', 'Bonneau', 'Bonnet',
  'Bouchard', 'Boucher', 'Bouchet', 'Boulanger', 'Boulay', 'Bouquet',
  'Bourdon', 'Bourgeois', 'Bousquet', 'Boutin', 'Bouvet', 'Bouvier',
  'Boyer', 'Brault', 'Breton', 'Briand', 'Brun', 'Bruneau', 'Brunel',
  'Brunet', 'Buisson', 'Camus', 'Cardinal', 'Carlier', 'Caron',
  'Carpentier', 'Carre', 'Chapuis', 'Charbonnier', 'Charles',
  'Charpentier', 'Charrier', 'Chartier', 'Chauveau', 'Chauvet',
  'Chauvin', 'Chevalier', 'Chevallier', 'Chretien', 'Claude', 'Clement',
  'Clerc', 'Cohen', 'Colas', 'Colin', 'Collet', 'Collin', 'Cordier',
  'Cornu', 'Costa', 'Coste', 'Coulon', 'Courtois', 'Cousin',
  'Couturier', 'Da Costa', 'Da Silva', 'Daniel', 'David', 'Delage',
  'Delahaye', 'Delannoy', 'Delattre', 'Delaunay', 'Delhors', 'Delmas',
  'Delorme', 'Denis', 'Descamps', 'Deschamps', 'Devaux', 'Didier',
  'Dos Santos', 'Doucet', 'Dubois', 'Dubreuil', 'Duchêne', 'Dufour',
  'Duhamel', 'Dumas', 'Dumont', 'Dupond', 'Dupont', 'Dupré', 'Dupuis',
  'Dupuy', 'Durand', 'Durant', 'Duval', 'Etienne', 'Evrard', 'Fabre',
  'Faivre', 'Faure', 'Favre', 'Fernandes', 'Fernandez', 'Ferrand',
  'Ferreira', 'Ferry', 'Fischer', 'Flament', 'Fleury', 'Florent',
  'Fontaine', 'Foucher', 'Fouquet', 'Fournier', 'Francois', 'François',
  'Gaillard', 'Gallet', 'Garcia', 'Garnier', 'Gaudin', 'Gauthier',
  'Gautier', 'Gay', 'Geoffroy', 'Georges', 'Gerard', 'Germain',
  'Gervais', 'Gilbert', 'Gilles', 'Gillet', 'Girard', 'Giraud',
  'Girault', 'Godard', 'Gomes', 'Gomez', 'Gonzalez', 'Gonçalves',
  'Grandjean', 'Gras', 'Gregoire', 'Grenier', 'Gros', 'Gueguen',
  'Guerin', 'Guibert', 'Guichard', 'Guilbert', 'Guillaume', 'Guillet',
  'Guillon', 'Guillot', 'Guillou', 'Guyon', 'Guyot', 'Guéant', 'Hamel',
  'Hamon', 'Hardy', 'Hebert', 'Henry', 'Hernandez', 'Herve', 'Hubert',
  'Huet', 'Humbert', 'Imbert', 'Jacob', 'Jacques', 'Jacquet', 'Jacquot',
  'Jean', 'Joly', 'Joubert', 'Jourdan', 'Julien', 'Klein', 'Labbe',
  'Laborde', 'Lacombe', 'Lacoste', 'Lacroix', 'Lagarde', 'Laine',
  'Lambert', 'Lamy', 'Langlois', 'Laporte', 'Laroche', 'Launay',
  'Laurent', 'Le Corre', 'Le Ferrand', 'Le Gall', 'Le Goff', 'Le Roux',
  'Leblanc', 'Leblond', 'Lebreton', 'Lebrun', 'Leclerc', 'Leclercq',
  'Lecomte', 'Leconte', 'Lecoq', 'Leduc', 'Lefebvre', 'Lefevre',
  'Lefort', 'Legendre', 'Léger', 'Legrand', 'Legros', 'Lejeune',
  'Lelievre', 'Lelong', 'Lemaire', 'Lemaitre', 'Lemoine', 'Lemonnier',
  'Lenoir', 'Leonard', 'Leroux', 'Leroy', 'Lesage', 'Leveque', 'Levy',
  'Loiseau', 'Lombard', 'Lopes', 'Lopez', 'Louis', 'Lucas', 'Mace',
  'Mahe', 'Maillard', 'Maillet', 'Mallet', 'Marc', 'Marchal',
  'Marchand', 'Marechal', 'Marie', 'Marin', 'Marion', 'Marques',
  'Martel', 'Martin', 'Martineau', 'Martinez', 'Martins', 'Marty',
  'Mary', 'Mas', 'Masse', 'Masson', 'Mathieu', 'Maurice', 'Maurin',
  'Maury', 'Menard', 'Mercier', 'Merle', 'Merlin', 'Meunier', 'Meyer',
  'Michaud', 'Michel', 'Millet', 'Monnier', 'Moreau', 'Morel', 'Morin',
  'Morvan', 'Moulin', 'Mouton', 'Müller', 'Navarro', 'Nguyen',
  'Nicolas', 'Noel', 'Normand', 'Olivier', 'Ollivier', 'Pages',
  'Parent', 'Paris', 'Parmentier', 'Pascal', 'Pasquier', 'Paul',
  'Pelletier', 'Peltier', 'Pereira', 'Perez', 'Peron', 'Perret',
  'Perrier', 'Perrin', 'Perrot', 'Petit', 'Petitjean', 'Philippe',
  'Picard', 'Pichon', 'Picot', 'Pierre', 'Pineau', 'Poirier', 'Poisson',
  'Pons', 'Potier', 'Pottier', 'Poulain', 'Prevost', 'Prevot',
  'Prigent', 'Pruvost', 'Pujol', 'Raymond', 'Raynaud', 'Regnier',
  'Remy', 'Renard', 'Renaud', 'Renault', 'Rey', 'Reynaud', 'Ribeiro',
  'Richard', 'Riou', 'Riviere', 'Robert', 'Robin', 'Roche', 'Rodrigues',
  'Rodriguez', 'Roger', 'Rolland', 'Rossi', 'Rossignol', 'Rousseau',
  'Roussel', 'Roux', 'Roy', 'Royer', 'Ruiz', 'Salaun', 'Salmon',
  'Sanchez', 'Sauvage', 'Schmitt', 'Schneider', 'Seguin', 'Serre',
  'Simon', 'Tanguy', 'Tessier', 'Texier', 'Thibault', 'Thierry',
  'Thiery', 'Thomas', 'Torres', 'Tournier', 'Toussaint', 'Tran',
  'Vaillant', 'Valentin', 'Valette', 'Vallee', 'Vallet', 'Vasseur',
  'Verdier', 'Vial', 'Vidal', 'Villard', 'Vincent', 'Voisin', 'Wagner',
  'Weber'],

  username_formats: [
    'X{{last_name}}',
    '{{first_name}}.{{last_name}}',
    '{{first_name}}{{last_name}}',
    '{{last_name}}_{{first_name}}',
  ],

  username: function() {
    return this.letterify(
      this.populate_one_of(this.username_formats)
    ).toLowerCase();
  },

  username: function() {
    return this.letterify(
      this.populate_one_of(this.username_formats)
    // removing diacritics, special characters and lowercasing
    ).normalize('NFD').replace(/\W/g, "").toLowerCase();
  },
};

module.exports = provider;
