1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
//! This small library just generates random names.
//!
//! Its purpose is to create identifiers that do not have to be
//! strictly unique like names for server nodes etc.
//!
//! The names are only usable for better reading where identifiers appear such as log files etc.
//!
//! This library is not meant to create fake data for testing.
extern crate rand;

use std::fmt::{Display, Formatter, Result};
use std::convert::Into;
use std::ops::Deref;
use rand::{Rng, OsRng};


/// A `RandomName` is just a container for a `String`.
#[derive(Debug, Clone, PartialEq)]
pub struct RandomName {
    pub name: String,
}

impl RandomName {
    /// Creates a new `RandomName` that contains a random name.
    ///
    /// This function just calls `create_name` with a freshly generated random number generator.
    ///
    /// Internally this function tries to create an `OsRng` which can fail. Then the random name is not
    /// random anymore but "EDWIN ERROR".
    pub fn new() -> RandomName {
        let mut rng = match OsRng::new() {
            Ok(rng) => rng,
            Err(_) => return RandomName { name: "EDWIN ERROR".to_owned() },
        };
        RandomName { name: create_name(&mut rng) }
    }
}

impl Display for RandomName {
    fn fmt(&self, f: &mut Formatter) -> Result {
        write!(f, "{}", self.name)
    }
}

impl Deref for RandomName {
    type Target = str;
    fn deref(&self) -> &Self::Target {
        self.name.as_ref()
    }
}

impl Into<String> for RandomName {
    fn into(self) -> String {
        self.name
    }
}

/// Creates a new `RandomName` given a random number generator.
pub fn create_name<T: Rng>(rng: &mut T) -> String {
    let name: &str = rng.choose(NAMES).map(|x| *x).unwrap_or(NO_NAMES_NAME);
    let surname: &str = rng.choose(SURNAMES).map(|x| *x).unwrap_or(NO_NAMES_SURNAME);
    format!("{} {}", name, surname)
}

const NO_NAMES_NAME: &'static str = "JOHN";
const NO_NAMES_SURNAME: &'static str = "DOE";

const NAMES: &'static [&'static str] = &["Lyric",
                                         "Bryce",
                                         "Cole",
                                         "Cristofer",
                                         "Kyan",
                                         "Enrique",
                                         "Reid",
                                         "Gage",
                                         "Baron",
                                         "Armando",
                                         "Davin",
                                         "Nash",
                                         "Jaiden",
                                         "Erick",
                                         "Jase",
                                         "Kamari",
                                         "Jamarion",
                                         "Adrian",
                                         "Arjun",
                                         "Donavan",
                                         "Julius",
                                         "Carson",
                                         "Abram",
                                         "Lewis",
                                         "Oscar",
                                         "Julien",
                                         "Ellis",
                                         "Enzo",
                                         "Fletcher",
                                         "Jamar",
                                         "Tyrone",
                                         "Aden",
                                         "Zaiden",
                                         "Chance",
                                         "Jerimiah",
                                         "Joey",
                                         "Bo",
                                         "Joel",
                                         "Humberto",
                                         "Zack",
                                         "Kael",
                                         "Jermaine",
                                         "Adam",
                                         "Clark",
                                         "Rylan",
                                         "Ross",
                                         "Kieran",
                                         "Brodie",
                                         "Sidney",
                                         "Sean",
                                         "Arthur",
                                         "Weston",
                                         "Trenton",
                                         "Conrad",
                                         "Dangelo",
                                         "Ian",
                                         "Isaias",
                                         "Soren",
                                         "Kyle",
                                         "Darien",
                                         "Larry",
                                         "Sage",
                                         "Matteo",
                                         "Jabari",
                                         "Kash",
                                         "Austin",
                                         "Curtis",
                                         "Jonathon",
                                         "Israel",
                                         "Octavio",
                                         "Everett",
                                         "Johnny",
                                         "Gustavo",
                                         "Brayden",
                                         "Hassan",
                                         "Dustin",
                                         "Moses",
                                         "Zayne",
                                         "Kadyn",
                                         "Albert",
                                         "David",
                                         "Zackary",
                                         "Gilbert",
                                         "Darrell",
                                         "Efrain",
                                         "Jon",
                                         "Carmelo",
                                         "Quinten",
                                         "Donald",
                                         "Keith",
                                         "Dominique",
                                         "Timothy",
                                         "Broderick",
                                         "Tyrell",
                                         "Zachery",
                                         "Wayne",
                                         "Marvin",
                                         "Cory",
                                         "Kaeden",
                                         "Gunnar",
                                         "Waylon",
                                         "Keyon",
                                         "Angel",
                                         "Abdiel",
                                         "Dylan",
                                         "Edward",
                                         "Roy",
                                         "Brock",
                                         "Alfredo",
                                         "Camren",
                                         "Rhys",
                                         "Jayce",
                                         "Elliott",
                                         "Felipe",
                                         "Randy",
                                         "Elijah",
                                         "Slade",
                                         "Wilson",
                                         "Randall",
                                         "Remington",
                                         "Lennon",
                                         "Richard",
                                         "Nasir",
                                         "Kellen",
                                         "Carl",
                                         "Kingston",
                                         "Kymani",
                                         "Ruben",
                                         "Gianni",
                                         "Ethan",
                                         "Misael",
                                         "Bradley",
                                         "Paxton",
                                         "Sebastian",
                                         "Boston",
                                         "Devan",
                                         "Case",
                                         "Conner",
                                         "Antonio",
                                         "Lukas",
                                         "Nick",
                                         "Alfonso",
                                         "Lane",
                                         "Andre",
                                         "Thomas",
                                         "Tanner",
                                         "Leland",
                                         "Kylan",
                                         "Barrett",
                                         "Jaden",
                                         "Logan",
                                         "Colton",
                                         "Axel",
                                         "Giovani",
                                         "Royce",
                                         "Caden",
                                         "Titus",
                                         "Vicente",
                                         "Leonel",
                                         "Jason",
                                         "Silas",
                                         "Damian",
                                         "Rocco",
                                         "Antony",
                                         "Kameron",
                                         "Chad",
                                         "Kane",
                                         "Beckett",
                                         "Cedric",
                                         "Shane",
                                         "Mathias",
                                         "Aaron",
                                         "Kade",
                                         "Luca",
                                         "Reece",
                                         "Seth",
                                         "Noe",
                                         "Ezequiel",
                                         "Grady",
                                         "Uriah",
                                         "Russell",
                                         "Emmanuel",
                                         "Rene",
                                         "Teagan",
                                         "Gavyn",
                                         "Jaxson",
                                         "Antwan",
                                         "Maurice",
                                         "Maxwell",
                                         "Brendon",
                                         "Justice",
                                         "Dax",
                                         "Kenny",
                                         "Damon",
                                         "Drake",
                                         "Tony",
                                         "Pedro",
                                         "Mathew",
                                         "Dennis",
                                         "Jorge",
                                         "Ashlyn",
                                         "Meadow",
                                         "Ava",
                                         "Ryan",
                                         "Makayla",
                                         "Livia",
                                         "Giada",
                                         "Vanessa",
                                         "Trinity",
                                         "Pamela",
                                         "Kianna",
                                         "Cristal",
                                         "Natasha",
                                         "Nadia",
                                         "Skylar",
                                         "Chloe",
                                         "Crystal",
                                         "Cherish",
                                         "Victoria",
                                         "Marisol",
                                         "Britney",
                                         "Micah",
                                         "Isabela",
                                         "Grace",
                                         "Ryleigh",
                                         "Jacquelyn",
                                         "Alejandra",
                                         "Kayley",
                                         "Alexia",
                                         "Cindy",
                                         "Sophia",
                                         "Renee",
                                         "Nia",
                                         "Neveah",
                                         "Sherlyn",
                                         "Josie",
                                         "Mareli",
                                         "Addisyn",
                                         "Amaris",
                                         "Madalynn",
                                         "Valery",
                                         "Olive",
                                         "Kinley",
                                         "Kyleigh",
                                         "Paloma",
                                         "Alice",
                                         "Adriana",
                                         "Emilee",
                                         "Jaden",
                                         "Isabella",
                                         "Ximena",
                                         "Chanel",
                                         "Reina",
                                         "Mattie",
                                         "Melina",
                                         "Jayla",
                                         "Audrey",
                                         "Maryjane",
                                         "Maritza",
                                         "Helen",
                                         "Patricia",
                                         "Sasha",
                                         "Paityn",
                                         "Alina",
                                         "Charlize",
                                         "Megan",
                                         "Marlee",
                                         "Jillian",
                                         "Evie",
                                         "Lily",
                                         "Camila",
                                         "Erika",
                                         "Paige",
                                         "Lina",
                                         "Lucille",
                                         "Alexus",
                                         "Natalya",
                                         "Jaylene",
                                         "Isabelle",
                                         "Elsa",
                                         "Jaida",
                                         "Lucia",
                                         "Fatima",
                                         "Elliana",
                                         "Lucy",
                                         "Kenley",
                                         "Nevaeh",
                                         "Jaiden",
                                         "Deja",
                                         "Justine",
                                         "Lola",
                                         "Angelina",
                                         "Tanya",
                                         "Princess",
                                         "Celeste",
                                         "Genesis",
                                         "Carley",
                                         "Emmalee",
                                         "Tess",
                                         "Hanna",
                                         "Alyson",
                                         "Karsyn",
                                         "Virginia",
                                         "Destiny",
                                         "Mireya",
                                         "Aniya",
                                         "Kimberly",
                                         "Ella",
                                         "Sage",
                                         "Cora",
                                         "Kayla",
                                         "Wendy",
                                         "Jolie",
                                         "Lila",
                                         "Samantha",
                                         "Riya",
                                         "Aryanna",
                                         "Krystal",
                                         "Rosemary",
                                         "Isabel",
                                         "Damaris",
                                         "Susan",
                                         "Kara",
                                         "Raelynn",
                                         "Cassidy",
                                         "Monica",
                                         "Alexandra",
                                         "Destiney",
                                         "Alison",
                                         "Johanna",
                                         "Anya",
                                         "Janessa",
                                         "Baylee",
                                         "Caitlyn",
                                         "Sierra",
                                         "Maribel",
                                         "Angeline",
                                         "Ashtyn",
                                         "Anahi",
                                         "Jaylynn",
                                         "Cailyn",
                                         "Giuliana",
                                         "Cristina",
                                         "Tania",
                                         "Karli",
                                         "Hailey",
                                         "Emerson",
                                         "Ellen",
                                         "Teagan",
                                         "Aaliyah",
                                         "Jamiya",
                                         "Giana",
                                         "Maliyah",
                                         "Emely",
                                         "Valerie",
                                         "Rachael",
                                         "Jadyn",
                                         "Kaia",
                                         "June",
                                         "Jenny",
                                         "Hadley",
                                         "Kennedi",
                                         "Selena",
                                         "Josephine",
                                         "Jazmyn",
                                         "Zoie",
                                         "Logan",
                                         "Lainey",
                                         "Mallory",
                                         "Maren",
                                         "Andrea",
                                         "Naima",
                                         "Clarissa",
                                         "Kaya",
                                         "Dalia",
                                         "Kailey",
                                         "Braelyn",
                                         "Faith",
                                         "Daniela",
                                         "Phoebe",
                                         "Diamond",
                                         "Deborah",
                                         "Genevieve",
                                         "Rayne",
                                         "Jade",
                                         "Reagan",
                                         "Brenna",
                                         "Michelle",
                                         "Jaelyn",
                                         "Jaqueline",
                                         "Regina",
                                         "Kylee",
                                         "Evelyn",
                                         "Valeria",
                                         "Kenna",
                                         "Amiyah",
                                         "Zaria",
                                         "Camilla",
                                         "Kate",
                                         "Laney",
                                         "Whitney",
                                         "Anika",
                                         "Erin",
                                         "Jayden",
                                         "Madeline",
                                         "Izabelle",
                                         "Melanie",
                                         "Kassidy",
                                         "Judith",
                                         "Harmony",
                                         "Fernanda",
                                         "Priscilla",
                                         "Cali",
                                         "Anabelle",
                                         "Nathaly",
                                         "Lana",
                                         "Haven",
                                         "Aliza",
                                         "Rachel",
                                         "Nayeli",
                                         "Annabella",
                                         "Yaritza",
                                         "Sonia",
                                         "Ariella",
                                         "Lisa",
                                         "Emmy",
                                         "Kaylah",
                                         "Kenya",
                                         "Miranda",
                                         "Chelsea",
                                         "Taryn",
                                         "Janelle",
                                         "Angelique",
                                         "Leilani",
                                         "Kadence",
                                         "Shyanne",
                                         "Marie",
                                         "Cameron",
                                         "Leia",
                                         "Jordyn",
                                         "Aylin",
                                         "Aimee",
                                         "Kiley",
                                         "Kamari",
                                         "Aniyah",
                                         "Kaylin",
                                         "Sanai",
                                         "Lilian",
                                         "Carlie",
                                         "Jayleen",
                                         "Hannah",
                                         "Dulce",
                                         "Jessie",
                                         "Natalie",
                                         "Giovanna",
                                         "Aryana",
                                         "Nylah",
                                         "Karley",
                                         "Alani",
                                         "Laurel",
                                         "Iliana",
                                         "Taniya",
                                         "Mckenna",
                                         "Rhianna",
                                         "Kyra",
                                         "Cynthia",
                                         "Anabel",
                                         "Salma",
                                         "Melody",
                                         "Armani",
                                         "Lena",
                                         "Hazel",
                                         "Melissa",
                                         "Layla",
                                         "Elisa",
                                         "Eleanor",
                                         "Tamia",
                                         "Linda",
                                         "Penelope",
                                         "Phoenix",
                                         "Jayda",
                                         "Melany",
                                         "Aracely",
                                         "Zoe",
                                         "Kiera",
                                         "Nataly",
                                         "Marianna",
                                         "Kamora",
                                         "Kierra",
                                         "Jocelynn",
                                         "Joselyn",
                                         "Shyla",
                                         "Desiree",
                                         "Liliana",
                                         "Tori",
                                         "Laura",
                                         "Guadalupe",
                                         "Iris",
                                         "Cheyenne",
                                         "Brisa",
                                         "Jakayla",
                                         "Summer",
                                         "Kaylen",
                                         "Irene",
                                         "Leyla",
                                         "Elaine",
                                         "Alena",
                                         "Liberty",
                                         "McKayla",
                                         "Mya",
                                         "Gia",
                                         "Jaslyn",
                                         "Gracie",
                                         "Haylie",
                                         "Brylee",
                                         "Amanda",
                                         "Eileen",
                                         "Kailee",
                                         "Janiya",
                                         "Anaya",
                                         "Keyla",
                                         "Amber",
                                         "Kaitlin",
                                         "Ashlee",
                                         "Shannon",
                                         "Alana",
                                         "Lea",
                                         "Perla",
                                         "Madelynn",
                                         "Kennedy",
                                         "Adison",
                                         "Kenzie",
                                         "Rylie",
                                         "Desirae",
                                         "Jimena",
                                         "Diya",
                                         "Shea",
                                         "Shania",
                                         "Iyana",
                                         "Aleena",
                                         "Emery",
                                         "Ayana",
                                         "Kaiya",
                                         "Justice",
                                         "Sienna",
                                         "Simone",
                                         "Naomi",
                                         "Saige",
                                         "Emelia",
                                         "Emilie",
                                         "Danika",
                                         "Juliana",
                                         "Nyasia",
                                         "Kiersten",
                                         "Janiah",
                                         "Nola",
                                         "Adalynn",
                                         "Reyna",
                                         "Ada",
                                         "Kaley",
                                         "Gina",
                                         "Aliya",
                                         "Cheyanne",
                                         "Felicity",
                                         "Camryn",
                                         "Madisyn",
                                         "Addison",
                                         "Cloe",
                                         "Malia",
                                         "Abigail",
                                         "Lia",
                                         "Macy",
                                         "Abril",
                                         "Kira",
                                         "Lindsey",
                                         "Sophie",
                                         "Esperanza",
                                         "Danna",
                                         "Zariah",
                                         "Laila",
                                         "Molly",
                                         "Jasmine",
                                         "Mikaela",
                                         "Audrina",
                                         "Alisa",
                                         "Gabriella",
                                         "Sofia",
                                         "Arielle",
                                         "Madilynn",
                                         "Angelica",
                                         "Carolina",
                                         "Scarlet",
                                         "Mackenzie",
                                         "Monique",
                                         "Essence",
                                         "Natalia",
                                         "Ruth",
                                         "Katrina",
                                         "Shelby",
                                         "Cara",
                                         "Freddy",
                                         "Gary",
                                         "Lakeisha",
                                         "Ione",
                                         "Margot",
                                         "Kary",
                                         "Dirk",
                                         "Rosella",
                                         "Erinn",
                                         "Mario",
                                         "Dalila",
                                         "Avis",
                                         "Rupert",
                                         "Dione",
                                         "Giovanni",
                                         "Ligia",
                                         "Alysia",
                                         "Coralie",
                                         "Helen",
                                         "Leigha",
                                         "Kathe",
                                         "Katrice",
                                         "Hermila",
                                         "Omar",
                                         "Ivory",
                                         "Deane",
                                         "Odilia",
                                         "Jaymie",
                                         "Brittaney",
                                         "Ofelia",
                                         "Sharonda",
                                         "Jayson",
                                         "Truman",
                                         "Lewis",
                                         "Georgiana",
                                         "Elanor",
                                         "Erma",
                                         "Riva",
                                         "Laureen",
                                         "Ouida",
                                         "Katina",
                                         "Mechelle",
                                         "Lyndon",
                                         "Gertie",
                                         "Jon",
                                         "Tisa",
                                         "Hayden",
                                         "Ty",
                                         "Jacklyn",
                                         "Mickie"];


const SURNAMES: &'static [&'static str] = &["Soto",
                                            "Maddox",
                                            "Weber",
                                            "Ward",
                                            "Brandt",
                                            "Shelton",
                                            "Wilkerson",
                                            "Schmitt",
                                            "Riley",
                                            "Leon",
                                            "Benson",
                                            "Everett",
                                            "Aguilar",
                                            "Brown",
                                            "Dalton",
                                            "Gonzalez",
                                            "Zavala",
                                            "Williamson",
                                            "Dodson",
                                            "Carlson",
                                            "Castro",
                                            "Christian",
                                            "Huynh",
                                            "Sanford",
                                            "Copeland",
                                            "Sharp",
                                            "Freeman",
                                            "Carpenter",
                                            "Herring",
                                            "Dillon",
                                            "Rowland",
                                            "Stanley",
                                            "Shields",
                                            "Newman",
                                            "Gross",
                                            "Harding",
                                            "Duke",
                                            "Higgins",
                                            "McMillan",
                                            "Floyd",
                                            "Pena",
                                            "Yates",
                                            "Butler",
                                            "Beard",
                                            "Burgess",
                                            "Fuller",
                                            "Lawrence",
                                            "Buchanan",
                                            "David",
                                            "Solis",
                                            "Gilmore",
                                            "Holden",
                                            "Petersen",
                                            "Schroeder",
                                            "Duarte",
                                            "Blevins",
                                            "Lynch",
                                            "Washington",
                                            "Sandoval",
                                            "Hunt",
                                            "Hebert",
                                            "Macdonald",
                                            "Mack",
                                            "Sheppard",
                                            "McKenzie",
                                            "Norris",
                                            "Dennis",
                                            "Tate",
                                            "Lyons",
                                            "Morgan",
                                            "Barajas",
                                            "Galvan",
                                            "Patel",
                                            "Santana",
                                            "Meza",
                                            "Martinez",
                                            "Banks",
                                            "Hughes",
                                            "Harvey",
                                            "Grant",
                                            "Clayton",
                                            "Coffey",
                                            "Pittman",
                                            "Hutchinson",
                                            "Collier",
                                            "Stevenson",
                                            "Melendez",
                                            "Murillo",
                                            "Rodgers",
                                            "Mercer",
                                            "Armstrong",
                                            "Morales",
                                            "Douglas",
                                            "Douven",
                                            "Blanchard",
                                            "Wallace",
                                            "Mckinney",
                                            "Bird",
                                            "Bradford",
                                            "Cervantes",
                                            "Church",
                                            "Gordon",
                                            "George",
                                            "Cochran",
                                            "Ayala",
                                            "Schaefer",
                                            "Frey",
                                            "French",
                                            "Obrien",
                                            "James",
                                            "Terry",
                                            "Leblanc",
                                            "Lewis",
                                            "Walton",
                                            "Walters",
                                            "Lloyd",
                                            "Barker",
                                            "Singh",
                                            "Montes",
                                            "Franklin",
                                            "Pennington",
                                            "Dunn",
                                            "Russo",
                                            "Austin",
                                            "Carter",
                                            "Reese",
                                            "Mejia",
                                            "Hurley",
                                            "Krueger",
                                            "Foley",
                                            "Jacobs",
                                            "Fox",
                                            "Miranda",
                                            "Woods",
                                            "Glenn",
                                            "Rich",
                                            "Frank",
                                            "Nash",
                                            "Lawson",
                                            "Keller",
                                            "Novak",
                                            "Holmes",
                                            "Bowen",
                                            "Casey",
                                            "Burton",
                                            "Guzman",
                                            "Vargas",
                                            "Riggs",
                                            "Atkins",
                                            "Lee",
                                            "Becker",
                                            "Potter",
                                            "Gallegos",
                                            "Hahn",
                                            "Nielsen",
                                            "Lane",
                                            "Archer",
                                            "Carr",
                                            "Mason",
                                            "Watson",
                                            "Hardin",
                                            "Fitzpatrick",
                                            "Snyder",
                                            "Webster",
                                            "Rosario",
                                            "Tanner",
                                            "Deleon",
                                            "Cross",
                                            "Solomon",
                                            "Beasley",
                                            "Ibarra",
                                            "Arellano",
                                            "Carney",
                                            "Garner",
                                            "Sexton",
                                            "Garrett",
                                            "Walker",
                                            "Gillespie",
                                            "Hall",
                                            "Maldonado",
                                            "Winters",
                                            "Barnes",
                                            "Robles",
                                            "Saunders",
                                            "Strong",
                                            "Cowan",
                                            "Harrell",
                                            "McGuire",
                                            "Hernandez",
                                            "Potts",
                                            "Reed",
                                            "Mooney",
                                            "Carey",
                                            "Gould",
                                            "Patterson",
                                            "Dawson",
                                            "Horton",
                                            "Farley",
                                            "Callahan",
                                            "Jensen",
                                            "English",
                                            "Abraham",
                                            "Allan",
                                            "Alsop",
                                            "Anderson",
                                            "Arnold",
                                            "Avery",
                                            "Bailey",
                                            "Baker",
                                            "Ball",
                                            "Bell",
                                            "Berry",
                                            "Black",
                                            "Blake",
                                            "Bond",
                                            "Bower",
                                            "Brown",
                                            "Buckland",
                                            "Burgess",
                                            "Butler",
                                            "Cameron",
                                            "Campbell",
                                            "Carr",
                                            "Chapman",
                                            "Churchill",
                                            "Clark",
                                            "Clarkson",
                                            "Coleman",
                                            "Cornish",
                                            "Davidson",
                                            "Davies",
                                            "Dickens",
                                            "Dowd",
                                            "Duncan",
                                            "Dyer",
                                            "Edmunds",
                                            "Ellison",
                                            "Ferguson",
                                            "Fisher",
                                            "Forsyth",
                                            "Fraser",
                                            "Gibson",
                                            "Gill",
                                            "Glover",
                                            "Graham",
                                            "Grant",
                                            "Gray",
                                            "Greene",
                                            "Hamilton",
                                            "Hardacre",
                                            "Harris",
                                            "Hart",
                                            "Hemmings",
                                            "Henderson",
                                            "Hill",
                                            "Hodges",
                                            "Howard",
                                            "Hudson",
                                            "Hughes",
                                            "Hunter",
                                            "Ince",
                                            "Jackson",
                                            "James",
                                            "Johnston",
                                            "Jones",
                                            "Kelly",
                                            "Kerr",
                                            "King",
                                            "Knox",
                                            "Lambert",
                                            "Langdon",
                                            "Lawrence",
                                            "Lee",
                                            "Lewis",
                                            "Lyman",
                                            "MacDonald",
                                            "Mackay",
                                            "Mackenzie",
                                            "MacLeod",
                                            "Manning",
                                            "Marshall",
                                            "Martin",
                                            "Mathis",
                                            "May",
                                            "McDonald",
                                            "McLean",
                                            "McGrath",
                                            "Metcalfe",
                                            "Miller",
                                            "Mills",
                                            "Mitchell",
                                            "Morgan",
                                            "Morrison",
                                            "Murray",
                                            "Nash",
                                            "Newman",
                                            "Nolan",
                                            "North",
                                            "Ogden",
                                            "Oliver",
                                            "Paige",
                                            "Parr",
                                            "Parsons",
                                            "Paterson",
                                            "Payne",
                                            "Peake",
                                            "Peters",
                                            "Piper",
                                            "Poole",
                                            "Powell",
                                            "Pullman",
                                            "Quinn",
                                            "Rampling",
                                            "Randall",
                                            "Rees",
                                            "Reid",
                                            "Roberts",
                                            "Robertson",
                                            "Ross",
                                            "Russell",
                                            "Rutherford",
                                            "Sanderson",
                                            "Scott",
                                            "Sharp",
                                            "Short",
                                            "Simpson",
                                            "Skinner",
                                            "Slater",
                                            "Smith",
                                            "Springer",
                                            "Stewart",
                                            "Sutherland",
                                            "Taylor",
                                            "Terry",
                                            "Thomson",
                                            "Tucker",
                                            "Turner",
                                            "Underwood",
                                            "Vance",
                                            "Vaughan",
                                            "Walker",
                                            "Wallace",
                                            "Walsh",
                                            "Watson",
                                            "Welch",
                                            "White",
                                            "Wilkins",
                                            "Wilson",
                                            "Wright",
                                            "Young"];