diff --git a/vendor/github.com/Pallinder/go-randomdata/.gitignore b/vendor/github.com/Pallinder/go-randomdata/.gitignore new file mode 100644 index 0000000..583cb13 --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/.gitignore @@ -0,0 +1,30 @@ +# git ignore for idea (IntelliJ, Gogland,...) +.idea/ + +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe + +# Testing specific +*.out +*.prof +*.test \ No newline at end of file diff --git a/vendor/github.com/Pallinder/go-randomdata/.travis.yml b/vendor/github.com/Pallinder/go-randomdata/.travis.yml new file mode 100644 index 0000000..eb93f27 --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/.travis.yml @@ -0,0 +1 @@ +language: go \ No newline at end of file diff --git a/vendor/github.com/Pallinder/go-randomdata/CHANGELOG.md b/vendor/github.com/Pallinder/go-randomdata/CHANGELOG.md new file mode 100644 index 0000000..c0529cf --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/CHANGELOG.md @@ -0,0 +1,35 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.2.0] - 2019-06-02 +### Added +- Spaces in postal code for GB. +- Add functionality to randomly generate alphanumeric text. + +### Fixed +- Fix race condition that was introduced by relying on privateRand. +- Fix title with random gender not actually generating a title + +## [1.1.0] - 2018-10-31 + +### Added +- Generate random locale strings +- Country localised street names +- Country localised provinces + +### Fixed +- Generating dates will respect varying number of days in a month + +## [1.0.0] - 2018-10-30 + +### Added +- This CHANGELOG file to hopefully serve as an evolving example of a + standardized open source project CHANGELOG. +- Enforcing Semver compatability in releases + +### Changed +- Update README.md to include information about release strategy +- Update README.md to link to CHANGELOG.md diff --git a/vendor/github.com/Pallinder/go-randomdata/LICENSE b/vendor/github.com/Pallinder/go-randomdata/LICENSE new file mode 100644 index 0000000..258de4d --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 David Pallinder + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/Pallinder/go-randomdata/README.md b/vendor/github.com/Pallinder/go-randomdata/README.md new file mode 100644 index 0000000..0508e76 --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/README.md @@ -0,0 +1,200 @@ +# go-randomdata + +[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/Pallinder/go-randomdata/issues) +[![GoDoc](https://godoc.org/github.com/Pallinder/go-randomdata?status.svg)](https://godoc.org/github.com/Pallinder/go-randomdata) +[![Build Status](https://travis-ci.org/Pallinder/go-randomdata.png)](https://travis-ci.org/Pallinder/go-randomdata) +[![Go Report Card](https://goreportcard.com/badge/github.com/Pallinder/go-randomdata)](https://goreportcard.com/report/github.com/Pallinder/go-randomdata) + +randomdata is a tiny help suite for generating random data such as + +* first names (male or female) +* last names +* full names (male or female) +* country names (full name or iso 3166.1 alpha-2 or alpha-3) +* locales / language tags (bcp-47) +* random email address +* city names +* American state names (two chars or full) +* random numbers (in an interval) +* random paragraphs +* random bool values +* postal- or zip-codes formatted for a range of different countries. +* american sounding addresses / street names +* silly names - suitable for names of things +* random days +* random months +* random full date +* random full profile +* random date inside range +* random phone number + +## Installation + +```go get github.com/Pallinder/go-randomdata``` + +## Usage + +```go + +package main + +import ( + "fmt" + "github.com/Pallinder/go-randomdata" +) + +func main() { + // Print a random silly name + fmt.Println(randomdata.SillyName()) + + // Print a male title + fmt.Println(randomdata.Title(randomdata.Male)) + + // Print a female title + fmt.Println(randomdata.Title(randomdata.Female)) + + // Print a title with random gender + fmt.Println(randomdata.Title(randomdata.RandomGender)) + + // Print a male first name + fmt.Println(randomdata.FirstName(randomdata.Male)) + + // Print a female first name + fmt.Println(randomdata.FirstName(randomdata.Female)) + + // Print a last name + fmt.Println(randomdata.LastName()) + + // Print a male name + fmt.Println(randomdata.FullName(randomdata.Male)) + + // Print a female name + fmt.Println(randomdata.FullName(randomdata.Female)) + + // Print a name with random gender + fmt.Println(randomdata.FullName(randomdata.RandomGender)) + + // Print an email + fmt.Println(randomdata.Email()) + + // Print a country with full text representation + fmt.Println(randomdata.Country(randomdata.FullCountry)) + + // Print a country using ISO 3166-1 alpha-2 + fmt.Println(randomdata.Country(randomdata.TwoCharCountry)) + + // Print a country using ISO 3166-1 alpha-3 + fmt.Println(randomdata.Country(randomdata.ThreeCharCountry)) + + // Print BCP 47 language tag + fmt.Println(randomdata.Locale()) + + // Print a currency using ISO 4217 + fmt.Println(randomdata.Currency()) + + // Print the name of a random city + fmt.Println(randomdata.City()) + + // Print the name of a random american state + fmt.Println(randomdata.State(randomdata.Large)) + + // Print the name of a random american state using two chars + fmt.Println(randomdata.State(randomdata.Small)) + + // Print an american sounding street name + fmt.Println(randomdata.Street()) + + // Print an american sounding address + fmt.Println(randomdata.Address()) + + // Print a random number >= 10 and < 20 + fmt.Println(randomdata.Number(10, 20)) + + // Print a number >= 0 and < 20 + fmt.Println(randomdata.Number(20)) + + // Print a random float >= 0 and < 20 with decimal point 3 + fmt.Println(randomdata.Decimal(0, 20, 3)) + + // Print a random float >= 10 and < 20 + fmt.Println(randomdata.Decimal(10, 20)) + + // Print a random float >= 0 and < 20 + fmt.Println(randomdata.Decimal(20)) + + // Print a bool + fmt.Println(randomdata.Boolean()) + + // Print a paragraph + fmt.Println(randomdata.Paragraph()) + + // Print a postal code + fmt.Println(randomdata.PostalCode("SE")) + + // Print a set of 2 random numbers as a string + fmt.Println(randomdata.StringNumber(2, "-")) + + // Print a set of 2 random 3-Digits numbers as a string + fmt.Println(randomdata.StringNumberExt(2, "-", 3)) + + // Print a random string sampled from a list of strings + fmt.Println(randomdata.StringSample("my string 1", "my string 2", "my string 3")) + + // Print a valid random IPv4 address + fmt.Println(randomdata.IpV4Address()) + + // Print a valid random IPv6 address + fmt.Println(randomdata.IpV6Address()) + + // Print a browser's user agent string + fmt.Println(randomdata.UserAgentString()) + + // Print a day + fmt.Println(randomdata.Day()) + + // Print a month + fmt.Println(randomdata.Month()) + + // Print full date like Monday 22 Aug 2016 + fmt.Println(randomdata.FullDate()) + + // Print full date <= Monday 22 Aug 2016 + fmt.Println(randomdata.FullDateInRange("2016-08-22")) + + // Print full date >= Monday 01 Aug 2016 and <= Monday 22 Aug 2016 + fmt.Println(randomdata.FullDateInRange("2016-08-01", "2016-08-22")) + + // Print phone number according to e.164 + fmt.Println(randomdata.PhoneNumber()) + + // Get a complete and randomised profile of data generally used for users + // There are many fields in the profile to use check the Profile struct definition in fullprofile.go + profile := randomdata.GenerateProfile(randomdata.Male | randomdata.Female | randomdata.RandomGender) + fmt.Printf("The new profile's username is: %s and password (md5): %s\n", profile.Login.Username, profile.Login.Md5) + + // Get a random country-localised street name for Great Britain + fmt.Println(randomdata.StreetForCountry("GB")) + // Get a random country-localised street name for USA + fmt.Println(randomdata.StreetForCountry("US")) + + // Get a random country-localised province for Great Britain + fmt.Println(randomdata.ProvinceForCountry("GB")) + // Get a random country-localised province for USA + fmt.Println(randomdata.ProvinceForCountry("US")) +} + +``` + +## Versioning / Release Strategy +Go-Randomdata follows [Semver](https://www.semver.org) + +You can find current releases tagged under the [releases section](https://github.com/Pallinder/go-randomdata/releases). + +The [CHANGELOG.md](CHANGELOG.md) file contains the changelog of the project. + +## Contributors + +* [jteeuwen](https://github.com/jteeuwen) +* [n1try](https://github.com/n1try) + +All the other contributors are listed [here](https://github.com/Pallinder/go-randomdata/graphs/contributors). diff --git a/vendor/github.com/Pallinder/go-randomdata/fullprofile.go b/vendor/github.com/Pallinder/go-randomdata/fullprofile.go new file mode 100644 index 0000000..73fb974 --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/fullprofile.go @@ -0,0 +1,139 @@ +package randomdata + +import ( + "crypto/md5" + "crypto/sha1" + "crypto/sha256" + "encoding/base64" + "encoding/hex" + "fmt" + "strconv" + "strings" +) + +var letterRunes = []rune("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") +var portraitDirs = []string{"men", "women"} + +type Profile struct { + Gender string `json:"gender"` + Name struct { + First string `json:"first"` + Last string `json:"last"` + Title string `json:"title"` + } `json:"name"` + Location struct { + Street string `json:"street"` + City string `json:"city"` + State string `json:"state"` + Postcode int `json:"postcode"` + } `json:"location"` + + Email string `json:"email"` + Login struct { + Username string `json:"username"` + Password string `json:"password"` + Salt string `json:"salt"` + Md5 string `json:"md5"` + Sha1 string `json:"sha1"` + Sha256 string `json:"sha256"` + } `json:"login"` + + Dob string `json:"dob"` + Registered string `json:"registered"` + Phone string `json:"phone"` + Cell string `json:"cell"` + + ID struct { + Name string `json:"name"` + Value interface{} `json:"value"` + } `json:"id"` + + Picture struct { + Large string `json:"large"` + Medium string `json:"medium"` + Thumbnail string `json:"thumbnail"` + } `json:"picture"` + Nat string `json:"nat"` +} + +func RandStringRunes(n int) string { + b := make([]rune, n) + for i := range b { + b[i] = letterRunes[privateRand.Intn(len(letterRunes))] + } + return string(b) +} + +func getMD5Hash(text string) string { + hasher := md5.New() + hasher.Write([]byte(text)) + return hex.EncodeToString(hasher.Sum(nil)) +} + +func getSha1(text string) string { + hasher := sha1.New() + hasher.Write([]byte(text)) + sha := base64.URLEncoding.EncodeToString(hasher.Sum(nil)) + return sha +} + +func getSha256(text string) string { + hasher := sha256.New() + hasher.Write([]byte(text)) + sha := base64.URLEncoding.EncodeToString(hasher.Sum(nil)) + return sha +} + +func GenerateProfile(gender int) *Profile { + profile := &Profile{} + if gender == Male { + profile.Gender = "male" + } else if gender == Female { + profile.Gender = "female" + } else { + gender = privateRand.Intn(2) + if gender == Male { + profile.Gender = "male" + } else { + profile.Gender = "female" + } + } + profile.Name.Title = Title(gender) + profile.Name.First = FirstName(gender) + profile.Name.Last = LastName() + profile.ID.Name = "SSN" + profile.ID.Value = fmt.Sprintf("%d-%d-%d", + Number(101, 999), + Number(01, 99), + Number(100, 9999), + ) + + profile.Email = strings.ToLower(profile.Name.First) + "." + strings.ToLower(profile.Name.Last) + "@example.com" + profile.Cell = PhoneNumber() + profile.Phone = PhoneNumber() + profile.Dob = FullDate() + profile.Registered = FullDate() + profile.Nat = "US" + + profile.Location.City = City() + i, _ := strconv.Atoi(PostalCode("US")) + profile.Location.Postcode = i + profile.Location.State = State(2) + profile.Location.Street = StringNumber(1, "") + " " + Street() + + profile.Login.Username = SillyName() + pass := SillyName() + salt := RandStringRunes(16) + profile.Login.Password = pass + profile.Login.Salt = salt + profile.Login.Md5 = getMD5Hash(pass + salt) + profile.Login.Sha1 = getSha1(pass + salt) + profile.Login.Sha256 = getSha256(pass + salt) + + pic := privateRand.Intn(35) + profile.Picture.Large = fmt.Sprintf("https://randomuser.me/api/portraits/%s/%d.jpg", portraitDirs[gender], pic) + profile.Picture.Medium = fmt.Sprintf("https://randomuser.me/api/portraits/med/%s/%d.jpg", portraitDirs[gender], pic) + profile.Picture.Thumbnail = fmt.Sprintf("https://randomuser.me/api/portraits/thumb/%s/%d.jpg", portraitDirs[gender], pic) + + return profile +} diff --git a/vendor/github.com/Pallinder/go-randomdata/jsondata.go b/vendor/github.com/Pallinder/go-randomdata/jsondata.go new file mode 100644 index 0000000..a42e5db --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/jsondata.go @@ -0,0 +1,2896 @@ +package randomdata + +var data = []byte(`{ + "adjectives": [ + "black", + "white", + "gray", + "brown", + "red", + "pink", + "crimson", + "carnelian", + "orange", + "yellow", + "ivory", + "cream", + "green", + "viridian", + "aquamarine", + "cyan", + "blue", + "cerulean", + "azure", + "indigo", + "navy", + "violet", + "purple", + "lavender", + "magenta", + "rainbow", + "iridescent", + "spectrum", + "prism", + "bold", + "vivid", + "pale", + "clear", + "glass", + "translucent", + "misty", + "dark", + "light", + "gold", + "silver", + "copper", + "bronze", + "steel", + "iron", + "brass", + "mercury", + "zinc", + "chrome", + "platinum", + "titanium", + "nickel", + "lead", + "pewter", + "rust", + "metal", + "stone", + "quartz", + "granite", + "marble", + "alabaster", + "agate", + "jasper", + "pebble", + "pyrite", + "crystal", + "geode", + "obsidian", + "mica", + "flint", + "sand", + "gravel", + "boulder", + "basalt", + "ruby", + "beryl", + "scarlet", + "citrine", + "sulpher", + "topaz", + "amber", + "emerald", + "malachite", + "jade", + "abalone", + "lapis", + "sapphire", + "diamond", + "peridot", + "gem", + "jewel", + "bevel", + "coral", + "jet", + "ebony", + "wood", + "tree", + "cherry", + "maple", + "cedar", + "branch", + "bramble", + "rowan", + "ash", + "fir", + "pine", + "cactus", + "alder", + "grove", + "forest", + "jungle", + "palm", + "bush", + "mulberry", + "juniper", + "vine", + "ivy", + "rose", + "lily", + "tulip", + "daffodil", + "honeysuckle", + "fuschia", + "hazel", + "walnut", + "almond", + "lime", + "lemon", + "apple", + "blossom", + "bloom", + "crocus", + "rose", + "buttercup", + "dandelion", + "iris", + "carnation", + "fern", + "root", + "branch", + "leaf", + "seed", + "flower", + "petal", + "pollen", + "orchid", + "mangrove", + "cypress", + "sequoia", + "sage", + "heather", + "snapdragon", + "daisy", + "mountain", + "hill", + "alpine", + "chestnut", + "valley", + "glacier", + "forest", + "grove", + "glen", + "tree", + "thorn", + "stump", + "desert", + "canyon", + "dune", + "oasis", + "mirage", + "well", + "spring", + "meadow", + "field", + "prairie", + "grass", + "tundra", + "island", + "shore", + "sand", + "shell", + "surf", + "wave", + "foam", + "tide", + "lake", + "river", + "brook", + "stream", + "pool", + "pond", + "sun", + "sprinkle", + "shade", + "shadow", + "rain", + "cloud", + "storm", + "hail", + "snow", + "sleet", + "thunder", + "lightning", + "wind", + "hurricane", + "typhoon", + "dawn", + "sunrise", + "morning", + "noon", + "twilight", + "evening", + "sunset", + "midnight", + "night", + "sky", + "star", + "stellar", + "comet", + "nebula", + "quasar", + "solar", + "lunar", + "planet", + "meteor", + "sprout", + "pear", + "plum", + "kiwi", + "berry", + "apricot", + "peach", + "mango", + "pineapple", + "coconut", + "olive", + "ginger", + "root", + "plain", + "fancy", + "stripe", + "spot", + "speckle", + "spangle", + "ring", + "band", + "blaze", + "paint", + "pinto", + "shade", + "tabby", + "brindle", + "patch", + "calico", + "checker", + "dot", + "pattern", + "glitter", + "glimmer", + "shimmer", + "dull", + "dust", + "dirt", + "glaze", + "scratch", + "quick", + "swift", + "fast", + "slow", + "clever", + "fire", + "flicker", + "flash", + "spark", + "ember", + "coal", + "flame", + "chocolate", + "vanilla", + "sugar", + "spice", + "cake", + "pie", + "cookie", + "candy", + "caramel", + "spiral", + "round", + "jelly", + "square", + "narrow", + "long", + "short", + "small", + "tiny", + "big", + "giant", + "great", + "atom", + "peppermint", + "mint", + "butter", + "fringe", + "rag", + "quilt", + "truth", + "lie", + "holy", + "curse", + "noble", + "sly", + "brave", + "shy", + "lava", + "foul", + "leather", + "fantasy", + "keen", + "luminous", + "feather", + "sticky", + "gossamer", + "cotton", + "rattle", + "silk", + "satin", + "cord", + "denim", + "flannel", + "plaid", + "wool", + "linen", + "silent", + "flax", + "weak", + "valiant", + "fierce", + "gentle", + "rhinestone", + "splash", + "north", + "south", + "east", + "west", + "summer", + "winter", + "autumn", + "spring", + "season", + "equinox", + "solstice", + "paper", + "motley", + "torch", + "ballistic", + "rampant", + "shag", + "freckle", + "wild", + "free", + "chain", + "sheer", + "crazy", + "mad", + "candle", + "ribbon", + "lace", + "notch", + "wax", + "shine", + "shallow", + "deep", + "bubble", + "harvest", + "fluff", + "venom", + "boom", + "slash", + "rune", + "cold", + "quill", + "love", + "hate", + "garnet", + "zircon", + "power", + "bone", + "void", + "horn", + "glory", + "cyber", + "nova", + "hot", + "helix", + "cosmic", + "quark", + "quiver", + "holly", + "clover", + "polar", + "regal", + "ripple", + "ebony", + "wheat", + "phantom", + "dew", + "chisel", + "crack", + "chatter", + "laser", + "foil", + "tin", + "clever", + "treasure", + "maze", + "twisty", + "curly", + "fortune", + "fate", + "destiny", + "cute", + "slime", + "ink", + "disco", + "plume", + "time", + "psychadelic", + "relic", + "fossil", + "water", + "savage", + "ancient", + "rapid", + "road", + "trail", + "stitch", + "button", + "bow", + "nimble", + "zest", + "sour", + "bitter", + "phase", + "fan", + "frill", + "plump", + "pickle", + "mud", + "puddle", + "pond", + "river", + "spring", + "stream", + "battle", + "arrow", + "plume", + "roan", + "pitch", + "tar", + "cat", + "dog", + "horse", + "lizard", + "bird", + "fish", + "saber", + "scythe", + "sharp", + "soft", + "razor", + "neon", + "dandy", + "weed", + "swamp", + "marsh", + "bog", + "peat", + "moor", + "muck", + "mire", + "grave", + "fair", + "just", + "brick", + "puzzle", + "skitter", + "prong", + "fork", + "dent", + "dour", + "warp", + "luck", + "coffee", + "split", + "chip", + "hollow", + "heavy", + "legend", + "hickory", + "mesquite", + "nettle", + "rogue", + "charm", + "prickle", + "bead", + "sponge", + "whip", + "bald", + "frost", + "fog", + "oil", + "veil", + "cliff", + "volcano", + "rift", + "maze", + "proud", + "dew", + "mirror", + "shard", + "salt", + "pepper", + "honey", + "thread", + "bristle", + "ripple", + "glow", + "zenith" + ], + "nouns": [ + "head", + "crest", + "crown", + "tooth", + "fang", + "horn", + "frill", + "skull", + "bone", + "tongue", + "throat", + "voice", + "nose", + "snout", + "chin", + "eye", + "sight", + "seer", + "speaker", + "singer", + "song", + "chanter", + "howler", + "chatter", + "shrieker", + "shriek", + "jaw", + "bite", + "biter", + "neck", + "shoulder", + "fin", + "wing", + "arm", + "lifter", + "grasp", + "grabber", + "hand", + "paw", + "foot", + "finger", + "toe", + "thumb", + "talon", + "palm", + "touch", + "racer", + "runner", + "hoof", + "fly", + "flier", + "swoop", + "roar", + "hiss", + "hisser", + "snarl", + "dive", + "diver", + "rib", + "chest", + "back", + "ridge", + "leg", + "legs", + "tail", + "beak", + "walker", + "lasher", + "swisher", + "carver", + "kicker", + "roarer", + "crusher", + "spike", + "shaker", + "charger", + "hunter", + "weaver", + "crafter", + "binder", + "scribe", + "muse", + "snap", + "snapper", + "slayer", + "stalker", + "track", + "tracker", + "scar", + "scarer", + "fright", + "killer", + "death", + "doom", + "healer", + "saver", + "friend", + "foe", + "guardian", + "thunder", + "lightning", + "cloud", + "storm", + "forger", + "scale", + "hair", + "braid", + "nape", + "belly", + "thief", + "stealer", + "reaper", + "giver", + "taker", + "dancer", + "player", + "gambler", + "twister", + "turner", + "painter", + "dart", + "drifter", + "sting", + "stinger", + "venom", + "spur", + "ripper", + "swallow", + "devourer", + "knight", + "lady", + "lord", + "queen", + "king", + "master", + "mistress", + "prince", + "princess", + "duke", + "dutchess", + "samurai", + "ninja", + "knave", + "slave", + "servant", + "sage", + "wizard", + "witch", + "warlock", + "warrior", + "jester", + "paladin", + "bard", + "trader", + "sword", + "shield", + "knife", + "dagger", + "arrow", + "bow", + "fighter", + "bane", + "follower", + "leader", + "scourge", + "watcher", + "cat", + "panther", + "tiger", + "cougar", + "puma", + "jaguar", + "ocelot", + "lynx", + "lion", + "leopard", + "ferret", + "weasel", + "wolverine", + "bear", + "raccoon", + "dog", + "wolf", + "kitten", + "puppy", + "cub", + "fox", + "hound", + "terrier", + "coyote", + "hyena", + "jackal", + "pig", + "horse", + "donkey", + "stallion", + "mare", + "zebra", + "antelope", + "gazelle", + "deer", + "buffalo", + "bison", + "boar", + "elk", + "whale", + "dolphin", + "shark", + "fish", + "minnow", + "salmon", + "ray", + "fisher", + "otter", + "gull", + "duck", + "goose", + "crow", + "raven", + "bird", + "eagle", + "raptor", + "hawk", + "falcon", + "moose", + "heron", + "owl", + "stork", + "crane", + "sparrow", + "robin", + "parrot", + "cockatoo", + "carp", + "lizard", + "gecko", + "iguana", + "snake", + "python", + "viper", + "boa", + "condor", + "vulture", + "spider", + "fly", + "scorpion", + "heron", + "oriole", + "toucan", + "bee", + "wasp", + "hornet", + "rabbit", + "bunny", + "hare", + "brow", + "mustang", + "ox", + "piper", + "soarer", + "flasher", + "moth", + "mask", + "hide", + "hero", + "antler", + "chill", + "chiller", + "gem", + "ogre", + "myth", + "elf", + "fairy", + "pixie", + "dragon", + "griffin", + "unicorn", + "pegasus", + "sprite", + "fancier", + "chopper", + "slicer", + "skinner", + "butterfly", + "legend", + "wanderer", + "rover", + "raver", + "loon", + "lancer", + "glass", + "glazer", + "flame", + "crystal", + "lantern", + "lighter", + "cloak", + "bell", + "ringer", + "keeper", + "centaur", + "bolt", + "catcher", + "whimsey", + "quester", + "rat", + "mouse", + "serpent", + "wyrm", + "gargoyle", + "thorn", + "whip", + "rider", + "spirit", + "sentry", + "bat", + "beetle", + "burn", + "cowl", + "stone", + "gem", + "collar", + "mark", + "grin", + "scowl", + "spear", + "razor", + "edge", + "seeker", + "jay", + "ape", + "monkey", + "gorilla", + "koala", + "kangaroo", + "yak", + "sloth", + "ant", + "roach", + "weed", + "seed", + "eater", + "razor", + "shirt", + "face", + "goat", + "mind", + "shift", + "rider", + "face", + "mole", + "vole", + "pirate", + "llama", + "stag", + "bug", + "cap", + "boot", + "drop", + "hugger", + "sargent", + "snagglefoot", + "carpet", + "curtain" + ], + "firstNamesMale": [ + "Jacob", + "Mason", + "Ethan", + "Noah", + "William", + "Liam", + "Jayden", + "Michael", + "Alexander", + "Aiden", + "Daniel", + "Matthew", + "Elijah", + "James", + "Anthony", + "Benjamin", + "Joshua", + "Andrew", + "David", + "Joseph" + ], + "firstNamesFemale": [ + "Sophia", + "Emma", + "Isabella", + "Olivia", + "Ava", + "Emily", + "Abigail", + "Mia", + "Madison", + "Elizabeth", + "Chloe", + "Ella", + "Avery", + "Addison", + "Aubrey", + "Lily", + "Natalie", + "Sofia", + "Charlotte", + "Zoey" + ], + "lastNames": [ + "Smith", + "Johnson", + "Williams", + "Jones", + "Brown", + "Davis", + "Miller", + "Wilson", + "Moore", + "Taylor", + "Anderson", + "Thomas", + "Jackson", + "White", + "Harris", + "Martin", + "Thompson", + "Garcia", + "Martinez", + "Robinson" + ], + "domains": [ + "test.com", + "test.net", + "test.org", + "example.com", + "example.net", + "example.org" + ], + "people": [ + "Adams", + "Franklin", + "Jackson", + "Jefferson", + "Lincoln", + "Madison", + "Washington", + "Wilson" + ], + "streetTypes": [ + "St", + "Ave", + "Rd", + "Blvd", + "Trl", + "Ter", + "Rdg", + "Pl", + "Pkwy", + "Ct", + "Circle" + ], + "paragraphs": [ + "The Nellie, a cruising yawl, swung to her anchor without a flutter of the sails, and was at rest.", + "The sun set; the dusk fell on the stream, and lights began to appear along the shore. The Chapman light–house, a three–legged thing erect on a mud–flat, shone strongly.", + "He spoke of the happiness that was now certainly theirs, of the folly of not breaking sooner out of that magnificent prison of latter-day life, of the old romantic days that had passed from the world for ever.", + "One dog rolled before him, well-nigh slashed in half; but a second had him by the thigh, a third gripped his collar be- hind, and a fourth had the blade of the sword between its teeth, tasting its own blood.", + "She stared at him in astonishment, and as she read something of the significant hieroglyphic of his battered face, her lips whitened.", + "He completely abandoned the child of his marriage with Adelaida Ivanovna, not from malice, nor because of his matrimoni- al grievances, but simply because he forgot him.", + "It was at this time that the meeting, or, rather gathering of the mem- bers of this inharmonious family took place in the cell of the elder who had such an extraordinary influence on Alyosha.", + "The secular cooling that must someday overtake our planet has already gone far indeed with our neighbour.", + "Near it in the field, I remember, were three faint points of light, three telescopic stars infinitely remote, and all around it was the unfathomable darkness of empty space.", + "It is no doubt an optimistic enterprise. But it is good for awhile to be free from the carping note that must needs be audible when we discuss our present imperfections, to release ourselves from practical difficulties and the tangle of ways and means. It is good to stop by the track for a space, put aside the knapsack, wipe the brows, and talk a little of the upper slopes of the mountain we think we are climbing, would but the trees let us see it", + "But what sort of language would we have the world speak, if we were told the miracle of Babel was presently to be reversed?", + "I protest, even warmly, that neither he nor his sorrows were in my intention.", + "Have I come to Utopia to hear this sort of thing?", + "Then followed a battle of looks between them, but the captain soon knuckled under, put up his weapon, and resumed his seat, grumbling like a beaten dog.", + "And with that he went off to see my father, taking me with him by the arm.", + "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife.", + "I am all in a sea of wonders. I doubt; I fear; I think strange things, which I dare not confess to my own soul. God keep me, if only for the sake of those dear to me!" + ], + "countries": [ + "Afghanistan", + "Albania", + "Algeria", + "American Samoa", + "Andorra", + "Angola", + "Antigua and Barbuda", + "Argentina", + "Armenia", + "Aruba", + "Australia", + "Austria", + "Azerbaijan", + "Bahamas, The", + "Bahrain", + "Bangladesh", + "Barbados", + "Belarus", + "Belgium", + "Belize", + "Benin", + "Bermuda", + "Bhutan", + "Bolivia", + "Bosnia and Herzegovina", + "Botswana", + "Brazil", + "Brunei Darussalam", + "Bulgaria", + "Burkina Faso", + "Burundi", + "Cambodia", + "Cameroon", + "Canada", + "Cape Verde", + "Cayman Islands", + "Central African Republic", + "Chad", + "Channel Islands", + "Chile", + "China", + "Colombia", + "Comoros", + "Congo, Dem. Rep.", + "Congo, Rep.", + "Costa Rica", + "Côte dIvoire", + "Croatia", + "Cuba", + "Cyprus", + "Czech Republic", + "Denmark", + "Djibouti", + "Dominica", + "Dominican Republic", + "Ecuador", + "Egypt, Arab Rep.", + "El Salvador", + "Equatorial Guinea", + "Eritrea", + "Estonia", + "Ethiopia", + "Faeroe Islands", + "Fiji", + "Finland", + "France", + "French Polynesia", + "Gabon", + "Gambia, The", + "Georgia", + "Germany", + "Ghana", + "Greece", + "Greenland", + "Grenada", + "Guam", + "Guatemala", + "Guinea", + "Guinea-Bissau", + "Guyana", + "Haiti", + "Honduras", + "Hong Kong, China", + "Hungary", + "Iceland", + "India", + "Indonesia", + "Iran, Islamic Rep.", + "Iraq", + "Ireland", + "Isle of Man", + "Israel", + "Italy", + "Jamaica", + "Japan", + "Jordan", + "Kazakhstan", + "Kenya", + "Kiribati", + "Korea, Dem. Rep.", + "Korea, Rep.", + "Kuwait", + "Kyrgyz Republic", + "Lao PDR", + "Latvia", + "Lebanon", + "Lesotho", + "Liberia", + "Libya", + "Liechtenstein", + "Lithuania", + "Luxembourg", + "Macao, China", + "Macedonia, FYR", + "Madagascar", + "Malawi", + "Malaysia", + "Maldives", + "Mali", + "Malta", + "Marshall Islands", + "Mauritania", + "Mauritius", + "Mayotte", + "Mexico", + "Micronesia, Fed. Sts.", + "Moldova", + "Monaco", + "Mongolia", + "Montenegro", + "Morocco", + "Mozambique", + "Myanmar", + "Namibia", + "Nepal", + "Netherlands", + "Netherlands Antilles", + "New Caledonia", + "New Zealand", + "Nicaragua", + "Niger", + "Nigeria", + "Northern Mariana Islands", + "Norway", + "Oman", + "Pakistan", + "Palau", + "Panama", + "Papua New Guinea", + "Paraguay", + "Peru", + "Philippines", + "Poland", + "Portugal", + "Puerto Rico", + "Qatar", + "Romania", + "Russian Federation", + "Rwanda", + "Samoa", + "San Marino", + "São Tomé and Principe", + "Saudi Arabia", + "Senegal", + "Serbia", + "Seychelles", + "Sierra Leone", + "Singapore", + "Slovak Republic", + "Slovenia", + "Solomon Islands", + "Somalia", + "South Africa", + "Spain", + "Sri Lanka", + "St. Kitts and Nevis", + "St. Lucia", + "St. Vincent and the Grenadines", + "Sudan", + "Suriname", + "Swaziland", + "Sweden", + "Switzerland", + "Syrian Arab Republic", + "Tajikistan", + "Tanzania", + "Thailand", + "Timor-Leste", + "Togo", + "Tonga", + "Trinidad and Tobago", + "Tunisia", + "Turkey", + "Turkmenistan", + "Uganda", + "Ukraine", + "United Arab Emirates", + "United Kingdom", + "United States", + "Uruguay", + "Uzbekistan", + "Vanuatu", + "Venezuela, RB", + "Vietnam", + "Virgin Islands (U.S.)", + "West Bank and Gaza", + "Yemen, Rep.", + "Zambia", + "Zimbabwe" + ], + "countriesThreeChars": [ + "AFG", + "ALB", + "DZA", + "ASM", + "ADO", + "AGO", + "ATG", + "ARG", + "ARM", + "ABW", + "AUS", + "AUT", + "AZE", + "BHS", + "BHR", + "BGD", + "BRB", + "BLR", + "BEL", + "BLZ", + "BEN", + "BMU", + "BTN", + "BOL", + "BIH", + "BWA", + "BRA", + "BRN", + "BGR", + "BFA", + "BDI", + "KHM", + "CMR", + "CAN", + "CPV", + "CYM", + "CAF", + "TCD", + "CHI", + "CHL", + "CHN", + "COL", + "COM", + "ZAR", + "COG", + "CRI", + "CIV", + "HRV", + "CUB", + "CUW", + "CYP", + "CZE", + "DNK", + "DJI", + "DMA", + "DOM", + "ECU", + "EGY", + "SLV", + "GNQ", + "ERI", + "EST", + "ETH", + "FRO", + "FJI", + "FIN", + "FRA", + "PYF", + "GAB", + "GMB", + "GEO", + "DEU", + "GHA", + "GRC", + "GRL", + "GRD", + "GUM", + "GTM", + "GIN", + "GNB", + "GUY", + "HTI", + "HND", + "HKG", + "HUN", + "ISL", + "IND", + "IDN", + "IRN", + "IRQ", + "IRL", + "IMY", + "ISR", + "ITA", + "JAM", + "JPN", + "JOR", + "KAZ", + "KEN", + "KIR", + "PRK", + "KOR", + "KSV", + "KWT", + "KGZ", + "LAO", + "LVA", + "LBN", + "LSO", + "LBR", + "LBY", + "LIE", + "LTU", + "LUX", + "MAC", + "MKD", + "MDG", + "MWI", + "MYS", + "MDV", + "MLI", + "MLT", + "MHL", + "MRT", + "MUS", + "MEX", + "FSM", + "MDA", + "MCO", + "MNG", + "MNE", + "MAR", + "MOZ", + "MMR", + "NAM", + "NPL", + "NLD", + "NCL", + "NZL", + "NIC", + "NER", + "NGA", + "MNP", + "NOR", + "OMN", + "PAK", + "PLW", + "PAN", + "PNG", + "PRY", + "PER", + "PHL", + "POL", + "PRT", + "PRI", + "QAT", + "ROM", + "RUS", + "RWA", + "WSM", + "SMR", + "STP", + "SAU", + "SEN", + "SRB", + "SYC", + "SLE", + "SGP", + "SXM", + "SVK", + "SVN", + "SLB", + "SOM", + "ZAF", + "SSD", + "ESP", + "LKA", + "KNA", + "LCA", + "MAF", + "VCT", + "SDN", + "SUR", + "SWZ", + "SWE", + "CHE", + "SYR", + "TJK", + "TZA", + "THA", + "TMP", + "TGO", + "TON", + "TTO", + "TUN", + "TUR", + "TKM", + "TCA", + "TUV", + "UGA", + "UKR", + "ARE", + "GBR", + "USA", + "URY", + "UZB", + "VUT", + "VEN", + "VNM", + "VIR", + "WBG", + "YEM", + "ZMB", + "ZWE" + ], + "countriesTwoChars": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "KH", + "CM", + "CA", + "CV", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KP", + "KR", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MK", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SZ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "US", + "UM", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "currencies": [ + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AUD", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BOV", + "BRL", + "BSD", + "BTN", + "BWP", + "BYR", + "BZD", + "CAD", + "CDF", + "CHE", + "CHF", + "CHW", + "CLF", + "CLP", + "CNY", + "COP", + "COU", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EGP", + "ERN", + "ETB", + "EUR", + "FJD", + "FKP", + "GBP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "INR", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "JPY", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LTL", + "LVL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRO", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "NZD", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SEK", + "SGD", + "SHP", + "SLL", + "SOS", + "SRD", + "SSP", + "STD", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USD", + "USN", + "USS", + "UYI", + "UYU", + "UZS", + "VEF", + "VND", + "VUV", + "WST", + "XAF", + "XCD", + "XDR", + "XFU", + "XOF", + "XPF", + "YER", + "ZAR", + "ZMW" + ], + "cities": [ + "Derby Center", + "New Deal", + "Cienega Springs", + "Ransom Canyon", + "Burrton", + "Hoonah", + "Lucien", + "San Martin", + "Buffalo City", + "Skidaway Island", + "Kingsbridge", + "Berkhamsted", + "Bury", + "Brandwell", + "Campden", + "Plympton", + "Baldock", + "Northleach", + "Newstead" + ], + "states": [ + "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", + "New Hampshire", + "New Jersey", + "New Mexico", + "New York", + "North Carolina", + "North Dakota", + "Ohio", + "Oklahoma", + "Oregon", + "Pennsylvania", + "Rhode Island", + "South Carolina", + "South Dakota", + "Tennessee", + "Texas", + "Utah", + "Vermont", + "Virginia", + "Washington", + "West Virginia", + "Wisconsin", + "Wyoming" + ], + "statesSmall": [ + "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", + "VA", + "VI", + "WA", + "DC", + "WV", + "WI", + "WY" + ], + "days" : [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "months": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + "femaleTitles": [ + "Ms", + "Miss", + "Mrs" + ], + "maleTitles": [ + "Mr" + ], + "timezones": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Asmera", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Timbuktu", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/ComodRivadavia", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Atka", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Buenos_Aires", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Catamarca", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Coral_Harbour", + "America/Cordoba", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Ensenada", + "America/Fortaleza", + "America/Fort_Nelson", + "America/Fort_Wayne", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indianapolis", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Jujuy", + "America/Juneau", + "America/Knox_IN", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Louisville", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Mendoza", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montreal", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Porto_Acre", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Rosario", + "America/Santa_Isabel", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Shiprock", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Virgin", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/South_Pole", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Ashkhabad", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Calcutta", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Chongqing", + "Asia/Chungking", + "Asia/Colombo", + "Asia/Dacca", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Harbin", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kashgar", + "Asia/Kathmandu", + "Asia/Katmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macao", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qyzylorda", + "Asia/Rangoon", + "Asia/Riyadh", + "Asia/Saigon", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Tel_Aviv", + "Asia/Thimbu", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ujung_Pandang", + "Asia/Ulaanbaatar", + "Asia/Ulan_Bator", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faeroe", + "Atlantic/Faroe", + "Atlantic/Jan_Mayen", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/Stanley", + "Atlantic/St_Helena", + "Australia/ACT", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Canberra", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/LHI", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/North", + "Australia/NSW", + "Australia/Perth", + "Australia/Queensland", + "Australia/South", + "Australia/Sydney", + "Australia/Tasmania", + "Australia/Victoria", + "Australia/West", + "Australia/Yancowinna", + "Brazil/Acre", + "Brazil/DeNoronha", + "Brazil/East", + "Brazil/West", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Canada/Saskatchewan", + "Canada/Yukon", + "Chile/Continental", + "Chile/EasterIsland", + "Etc/GMT", + "Etc/GMT0", + "Etc/GMT-0", + "Etc/GMT+0", + "Etc/GMT-1", + "Etc/GMT+1", + "Etc/GMT-10", + "Etc/GMT+10", + "Etc/GMT-11", + "Etc/GMT+11", + "Etc/GMT-12", + "Etc/GMT+12", + "Etc/GMT-13", + "Etc/GMT-14", + "Etc/GMT-2", + "Etc/GMT+2", + "Etc/GMT-3", + "Etc/GMT+3", + "Etc/GMT-4", + "Etc/GMT+4", + "Etc/GMT-5", + "Etc/GMT+5", + "Etc/GMT-6", + "Etc/GMT+6", + "Etc/GMT-7", + "Etc/GMT+7", + "Etc/GMT-8", + "Etc/GMT+8", + "Etc/GMT-9", + "Etc/GMT+9", + "Etc/Greenwich", + "Etc/UCT", + "Etc/Universal", + "Etc/UTC", + "Etc/Zulu", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belfast", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Nicosia", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Tiraspol", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Mexico/BajaNorte", + "Mexico/BajaSur", + "Mexico/General", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Johnston", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Ponape", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Samoa", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Truk", + "Pacific/Wake", + "Pacific/Wallis", + "Pacific/Yap", + "US/Alaska", + "US/Aleutian", + "US/Arizona", + "US/Central", + "US/Eastern", + "US/East-Indiana", + "US/Hawaii", + "US/Indiana-Starke", + "US/Michigan", + "US/Mountain", + "US/Pacific", + "US/Pacific-New", + "US/Samoa", + "CET", + "CST6CDT", + "Cuba", + "EET", + "Egypt", + "Eire", + "EST", + "EST5EDT", + "Factory", + "GB", + "GB-Eire", + "GMT", + "GMT0", + "GMT-0", + "GMT+0", + "Greenwich", + "Hongkong", + "HST", + "Iceland", + "Iran", + "Israel", + "Jamaica", + "Japan", + "Kwajalein", + "Libya", + "MET", + "MST", + "MST7MDT", + "Navajo", + "NZ", + "NZ-CHAT", + "Poland", + "Portugal", + "PRC", + "PST8PDT", + "ROC", + "ROK", + "Singapore", + "Turkey", + "UCT", + "Universal", + "UTC", + "WET", + "W-SU", + "Zulu" + ], + "locales": [ + "gd-GB", + "fr-MR", + "en-SL", + "fr-GA", + "en-MT", + "en-FK", + "ar-IQ", + "ca-ES", + "en-SX", + "en-ZM", + "en-BI", + "en-RW", + "en-WS", + "fr-GA", + "en-US", + "pl-PL", + "es-BO", + "en-DK", + "en-ZA", + "km-KH", + "ko-KP", + "es-SV", + "en-ZM", + "ln-AO", + "ko-KP", + "en-CC", + "fr-KM", + "en-VC", + "en-LC", + "es-PE", + "fr-MU", + "ta-IN", + "fr-TG", + "hr-BA", + "yo-NG", + "ka-GE", + "hi-IN", + "ko-KR", + "de-DE", + "fr-TN", + "en-SX", + "om-ET", + "fr-MA", + "ms-BN", + "en-DK", + "es-AR", + "ar-DZ", + "ln-CG", + "en-GG", + "en-BE", + "ti-ET", + "en-JE", + "si-LK", + "zu-ZA", + "ga-IE", + "en-BZ", + "kl-GL", + "en-KI", + "fr-MC", + "si-LK", + "en-NR", + "mn-MN", + "en-MT", + "en-JE", + "en-BB", + "ja-JP", + "en-TT", + "ar-MR", + "ne-IN", + "pt-MZ", + "de-AT", + "en-HK", + "ca-FR", + "ar-BH", + "sw-CD", + "ti-ER", + "es-CL", + "fr-MF", + "es-CU", + "en-FI", + "be-BY", + "en-IL", + "en-FI", + "es-CL", + "ar-QA", + "de-IT", + "pt-LU", + "en-TZ", + "ca-FR", + "ms-SG", + "fo-FO", + "fr-MR", + "en-TC", + "et-EE", + "en-GY", + "en-CK", + "ha-NG", + "en-GG", + "pt-LU", + "es-PR" + ], + "countryCallingCodes" : [ + "886", "93", "355", "213", "1 684", "376", "244", "1 264", "672", "1 268", "54", "374", "297", "61", "43", "994", "1 242", "973", "880", "1 246", "375", "32", "501", "229", "1 441", "975", "591", "599", "387", "267", "47", "55", "246", "1 284", "673", "359", "226", "257", "238", "855", "237", "1", "1 345", "236", "235", "56", "86", "852", "853", "61", "61", "57", "269", "242", "682", "506", "385", "53", "599", "357", "420", "225", "850", "243", "45", "253", "1 767", "1 809,1 829,1 849", "593", "20", "503", "240", "291", "372", "251", "500", "298", "679", "358", "33", "594", "689", "262", "241", "220", "995", "49", "233", "350", "30", "299", "1 473", "590", "1 671", "502", "44", "224", "245", "592", "509", "672", "39 06", "504", "36", "354", "91", "62", "98", "964", "353", "44", "972", "39", "1 876", "81", "44", "962", "7", "254", "686", "965", "996", "856", "371", "961", "266", "231", "218", "423", "370", "352", "261", "265", "60", "960", "223", "356", "692", "596", "222", "230", "262", "52", "691", "377", "976", "382", "1 664", "212", "258", "95", "264", "674", "977", "31", "687", "64", "505", "227", "234", "683", "672", "1 670", "47", "968", "92", "680", "507", "675", "595", "51", "63", "870", "48", "351", "1", "974", "82", "373", "40", "7", "250", "262", "590", "290", "1 869", "1 758", "590", "508", "1 784", "685", "378", "239", "966", "221", "381", "248", "232", "65", "1 721", "421", "386", "677", "252", "27", "500", "211", "34", "94", "970", "249", "597", "47", "268", "46", "41", "963", "992", "66", "389", "670", "228", "690", "676", "1 868", "216", "90", "993", "1 649", "688", "256", "380", "971", "44", "255", " ", "1 340", "1", "598", "998", "678", "58", "84", "681", "212", "967", "260", "263", "358" + ], + "userAgents": [ + "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2869.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3191.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0", + "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0", + "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.2; WOW64; Trident/5.0)", + "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko", + "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; MALNJS; rv:11.0) like Gecko", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 OPR/47.0.2631.55", + "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.91 Safari/537.36 Vivaldi/1.92.917.39", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.49 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML like Gecko) Chrome/22.0.1229.56 Safari/537.4", + "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/60.0.3112.78 Chrome/60.0.3112.78 Safari/537.36", + "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0", + "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Safari/537.36 OPR/20.0.1396.73172", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36 OPR/40.0.2308.62", + "Mozilla/5.0 (Linux; Android 8.0.0; Pixel XL Build/OPR6.170623.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.107 Mobile Safari/537.36", + "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch)", + "Opera/10.61 (J2ME/MIDP; Opera Mini/5.1.21219/19.999; en-US; rv:1.9.3a5) WebKit/534.5 Presto/2.6.30", + "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1", + "Mozilla/5.0 (Linux; Android 8.0.0; Pixel XL Build/OPR6.170623.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.107 Mobile Safari/537.36", + "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; DEVICE INFO) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Mobile Safari/537.36 Edge/12.0", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" + ], + "provincesGB": [ + "Aberdeenshire", + "Anglesey", + "Angus", + "Antrim", + "Argyllshire", + "Armagh", + "Ayrshire", + "Banffshire", + "Bedfordshire", + "Berkshire", + "Berwickshire", + "Brecknockshire", + "Bristol", + "Buckinghamshire", + "Buteshire", + "Caernarfonshire", + "Caithness", + "Cambridgeshire", + "Cardiganshire", + "Carmarthenshire", + "Cheshire", + "City of London", + "Clackmannanshire", + "Cornwall", + "Cromartyshire", + "Cumbria", + "Denbighshire", + "Derbyshire", + "Devon", + "Dorset", + "Down", + "Dumfriesshire", + "Dunbartonshire", + "Durham", + "East Lothian", + "East Riding of Yorkshire", + "East Sussex", + "Essex", + "Fermanagh", + "Fife", + "Flintshire", + "Glamorgan", + "Gloucestershire", + "Greater London", + "Greater Manchester", + "Hampshire", + "Herefordshire", + "Hertfordshire", + "Inverness-shire", + "Isle of Wight", + "Kent", + "Kincardineshire", + "Kinross", + "Kirkcudbrightshire", + "Lanarkshire", + "Lancashire", + "Leicestershire", + "Lincolnshire", + "Londonderry", + "Merioneth", + "Merseyside", + "Midlothian", + "Monmouthshire", + "Montgomeryshire", + "Morayshire", + "Nairnshire", + "Norfolk", + "North Yorkshire", + "Northamptonshire", + "Northumberland", + "Nottinghamshire", + "Orkney", + "Oxfordshire", + "Peeblesshire", + "Pembrokeshire", + "Perthshire", + "Radnorshire", + "Renfrewshire", + "Ross-shire", + "Roxburghshire", + "Rutland", + "Selkirkshire", + "Shetland", + "Shropshire", + "Somerset", + "South Yorkshire", + "Staffordshire", + "Stirlingshire", + "Suffolk", + "Surrey", + "Sutherland", + "Tyne and Wear", + "Tyrone", + "Warwickshire", + "West Lothian", + "West Midlands", + "West Sussex", + "West Yorkshire", + "Wigtownshire", + "Wiltshire", + "Worcestershire" + ], + "streetNameGB": [ + "Church", + "Hill", + "High", + "Wood", + "Friars", + "Letsby", + "Dickinson", + "Moore" + ], + "streetTypesGB": [ + "Street", + "Avenue", + "Road", + "Crescent", + "Close", + "Walk", + "Court", + "Park", + "Gate", + "Court" + ] +}`) diff --git a/vendor/github.com/Pallinder/go-randomdata/postalcodes.go b/vendor/github.com/Pallinder/go-randomdata/postalcodes.go new file mode 100644 index 0000000..50b2646 --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/postalcodes.go @@ -0,0 +1,246 @@ +package randomdata + +import ( + "fmt" + "math" + "strings" +) + +// Supported formats obtained from: +// * http://www.geopostcodes.com/GeoPC_Postal_codes_formats + +// PostalCode yields a random postal/zip code for the given 2-letter country code. +// +// These codes are not guaranteed to refer to actually locations. +// They merely follow the correct format as far as letters and digits goes. +// Where possible, the function enforces valid ranges of letters and digits. +func PostalCode(countrycode string) string { + switch strings.ToUpper(countrycode) { + case "LS", "MG", "IS", "OM", "PG": + return Digits(3) + + case "AM", "GE", "NZ", "NE", "NO", "PY", "ZA", "MZ", "SJ", "LI", "AL", + "BD", "CV", "GL": + return Digits(4) + + case "DZ", "BA", "KH", "DO", "EG", "EE", "GP", "GT", "ID", "IL", "JO", + "KW", "MQ", "MX", "LK", "SD", "TR", "UA", "US", "CR", "IQ", "KV", "MY", + "MN", "ME", "PK", "SM", "MA", "UY", "EH", "ZM": + return Digits(5) + + case "BY", "CN", "IN", "KZ", "KG", "NG", "RO", "RU", "SG", "TJ", "TM", "UZ", "VN": + return Digits(6) + + case "CL": + return Digits(7) + + case "IR": + return Digits(10) + + case "FO": + return "FO " + Digits(3) + + case "AF": + return BoundedDigits(2, 10, 43) + BoundedDigits(2, 1, 99) + + case "AU", "AT", "BE", "BG", "CY", "DK", "ET", "GW", "HU", "LR", "MK", "PH", + "CH", "TN", "VE": + return BoundedDigits(4, 1000, 9999) + + case "SV": + return "CP " + BoundedDigits(4, 1000, 9999) + + case "HT": + return "HT" + Digits(4) + + case "LB": + return Digits(4) + " " + Digits(4) + + case "LU": + return BoundedDigits(4, 6600, 6999) + + case "MD": + return "MD-" + BoundedDigits(4, 1000, 9999) + + case "HR": + return "HR-" + Digits(5) + + case "CU": + return "CP " + BoundedDigits(5, 10000, 99999) + + case "FI": + // Last digit is usually 0 but can, in some cases, be 1 or 5. + switch privateRand.Intn(2) { + case 0: + return Digits(4) + "0" + case 1: + return Digits(4) + "1" + } + + return Digits(4) + "5" + + case "FR", "GF", "PF", "YT", "MC", "RE", "BL", "MF", "PM", "RS", "TH": + return BoundedDigits(5, 10000, 99999) + + case "DE": + return BoundedDigits(5, 1000, 99999) + + case "GR": + return BoundedDigits(3, 100, 999) + " " + Digits(2) + + case "HN": + return "CM" + Digits(4) + + case "IT", "VA": + return BoundedDigits(5, 10, 99999) + + case "KE": + return BoundedDigits(5, 100, 99999) + + case "LA": + return BoundedDigits(5, 1000, 99999) + + case "MH": + return BoundedDigits(5, 96960, 96970) + + case "FM": + return "FM" + BoundedDigits(5, 96941, 96944) + + case "MM": + return BoundedDigits(2, 1, 14) + Digits(3) + + case "NP": + return BoundedDigits(5, 10700, 56311) + + case "NC": + return "98" + Digits(3) + + case "PW": + return "PW96940" + + case "PR": + return "PR " + Digits(5) + + case "SA": + return BoundedDigits(5, 10000, 99999) + "-" + BoundedDigits(4, 1000, 9999) + + case "ES": + return BoundedDigits(2, 1, 52) + BoundedDigits(3, 100, 999) + + case "WF": + return "986" + Digits(2) + + case "SZ": + return Letters(1) + Digits(3) + + case "BM": + return Letters(2) + Digits(2) + + case "AD": + return Letters(2) + Digits(3) + + case "BN", "AZ", "VG", "PE": + return Letters(2) + Digits(4) + + case "BB": + return Letters(2) + Digits(5) + + case "EC": + return Letters(2) + Digits(6) + + case "MT": + return Letters(3) + Digits(4) + + case "JM": + return "JM" + Letters(3) + Digits(2) + + case "AR": + return Letters(1) + Digits(4) + Letters(3) + + case "CA": + return Letters(1) + Digits(1) + Letters(1) + Digits(1) + Letters(1) + Digits(1) + + case "FK", "TC": + return Letters(4) + Digits(1) + Letters(2) + + case "GG", "IM", "JE": + return Letters(2) + Digits(2) + Letters(2) + + case "GB": + return Letters(2) + Digits(1) + " " + Digits(1) + Letters(2) + + case "KY": + return Letters(2) + Digits(1) + "-" + Digits(4) + + case "JP": + return Digits(3) + "-" + Digits(4) + + case "LV", "SI": + return Letters(2) + "-" + Digits(4) + + case "LT": + return Letters(2) + "-" + Digits(5) + + case "SE", "TW": + return Digits(5) + + case "MV": + return Digits(2) + "-" + Digits(2) + + case "PL": + return Digits(2) + "-" + Digits(3) + + case "NI": + return Digits(3) + "-" + Digits(3) + "-" + Digits(1) + + case "KR": + return Digits(3) + "-" + Digits(3) + + case "PT": + return Digits(4) + "-" + Digits(3) + + case "NL": + return Digits(4) + Letters(2) + + case "BR": + return Digits(5) + "-" + Digits(3) + } + + return "" +} + +// Letters generates a string of N random leters (A-Z). +func Letters(letters int) string { + list := make([]byte, letters) + + for i := range list { + list[i] = byte(privateRand.Intn('Z'-'A') + 'A') + } + + return string(list) +} + +// Digits generates a string of N random digits, padded with zeros if necessary. +func Digits(digits int) string { + max := int(math.Pow10(digits)) - 1 + num := privateRand.Intn(max) + format := fmt.Sprintf("%%0%dd", digits) + return fmt.Sprintf(format, num) +} + +// BoundedDigits generates a string of N random digits, padded with zeros if necessary. +// The output is restricted to the given range. +func BoundedDigits(digits, low, high int) string { + if low > high { + low, high = high, low + } + + max := int(math.Pow10(digits)) - 1 + if high > max { + high = max + } + + num := privateRand.Intn(high-low+1) + low + format := fmt.Sprintf("%%0%dd", digits) + return fmt.Sprintf(format, num) +} diff --git a/vendor/github.com/Pallinder/go-randomdata/random_data.go b/vendor/github.com/Pallinder/go-randomdata/random_data.go new file mode 100644 index 0000000..13031f3 --- /dev/null +++ b/vendor/github.com/Pallinder/go-randomdata/random_data.go @@ -0,0 +1,443 @@ +// Package randomdata implements a bunch of simple ways to generate (pseudo) random data +package randomdata + +import ( + "encoding/json" + "fmt" + "log" + "math/rand" + "net" + "strconv" + "strings" + "sync" + "time" + "unicode" +) + +const ( + Male int = 0 + Female int = 1 + RandomGender int = 2 +) + +const ( + Small int = 0 + Large int = 1 +) + +const ( + FullCountry = 0 + TwoCharCountry = 1 + ThreeCharCountry = 2 +) + +const ( + DateInputLayout = "2006-01-02" + DateOutputLayout = "Monday 2 Jan 2006" +) + +const ALPHANUMERIC = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + +type jsonContent struct { + Adjectives []string `json:"adjectives"` + Nouns []string `json:"nouns"` + FirstNamesFemale []string `json:"firstNamesFemale"` + FirstNamesMale []string `json:"firstNamesMale"` + LastNames []string `json:"lastNames"` + Domains []string `json:"domains"` + People []string `json:"people"` + StreetTypes []string `json:"streetTypes"` // Taken from https://github.com/tomharris/random_data/blob/master/lib/random_data/locations.rb + Paragraphs []string `json:"paragraphs"` // Taken from feedbooks.com and www.gutenberg.org + Countries []string `json:"countries"` // Fetched from the world bank at http://siteresources.worldbank.org/DATASTATISTICS/Resources/CLASS.XLS + CountriesThreeChars []string `json:"countriesThreeChars"` + CountriesTwoChars []string `json:"countriesTwoChars"` + Currencies []string `json:"currencies"` //https://github.com/OpenBookPrices/country-data + Cities []string `json:"cities"` + States []string `json:"states"` + StatesSmall []string `json:"statesSmall"` + Days []string `json:"days"` + Months []string `json:"months"` + FemaleTitles []string `json:"femaleTitles"` + MaleTitles []string `json:"maleTitles"` + Timezones []string `json:"timezones"` // https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + Locales []string `json:"locales"` // https://tools.ietf.org/html/bcp47 + UserAgents []string `json:"userAgents"` // http://techpatterns.com/downloads/firefox/useragentswitcher.xml + CountryCallingCodes []string `json:"countryCallingCodes"` // from https://github.com/datasets/country-codes/blob/master/data/country-codes.csv + ProvincesGB []string `json:"provincesGB"` + StreetNameGB []string `json:"streetNameGB"` + StreetTypesGB []string `json:"streetTypesGB"` +} + +type pRand struct { + pr *rand.Rand + mu *sync.Mutex +} + +func (r *pRand) Intn(n int) int { + r.mu.Lock() + defer r.mu.Unlock() + return r.pr.Intn(n) +} + +func (r *pRand) Float64() float64 { + r.mu.Lock() + defer r.mu.Unlock() + return r.pr.Float64() +} + +var jsonData = jsonContent{} +var privateRand *pRand + +func init() { + privateRand = &pRand{rand.New(rand.NewSource(time.Now().UnixNano())), &sync.Mutex{}} + jsonData = jsonContent{} + + err := json.Unmarshal(data, &jsonData) + + if err != nil { + log.Fatal(err) + } +} + +func CustomRand(randToUse *rand.Rand) { + privateRand.pr = randToUse +} + +// Returns a random part of a slice +func randomFrom(source []string) string { + return source[privateRand.Intn(len(source))] +} + +// Title returns a random title, gender decides the gender of the name +func Title(gender int) string { + switch gender { + case Male: + return randomFrom(jsonData.MaleTitles) + case Female: + return randomFrom(jsonData.FemaleTitles) + default: + return Title(privateRand.Intn(2)) + } +} + +// FirstName returns a random first name, gender decides the gender of the name +func FirstName(gender int) string { + var name = "" + switch gender { + case Male: + name = randomFrom(jsonData.FirstNamesMale) + break + case Female: + name = randomFrom(jsonData.FirstNamesFemale) + break + default: + name = FirstName(rand.Intn(2)) + break + } + return name +} + +// LastName returns a random last name +func LastName() string { + return randomFrom(jsonData.LastNames) +} + +// FullName returns a combination of FirstName LastName randomized, gender decides the gender of the name +func FullName(gender int) string { + return FirstName(gender) + " " + LastName() +} + +// Email returns a random email +func Email() string { + return strings.ToLower(FirstName(RandomGender)+LastName()) + StringNumberExt(1, "", 3) + "@" + randomFrom(jsonData.Domains) +} + +// Country returns a random country, countryStyle decides what kind of format the returned country will have +func Country(countryStyle int64) string { + country := "" + switch countryStyle { + + default: + + case FullCountry: + country = randomFrom(jsonData.Countries) + break + + case TwoCharCountry: + country = randomFrom(jsonData.CountriesTwoChars) + break + + case ThreeCharCountry: + country = randomFrom(jsonData.CountriesThreeChars) + break + } + return country +} + +// Currency returns a random currency under ISO 4217 format +func Currency() string { + return randomFrom(jsonData.Currencies) +} + +// City returns a random city +func City() string { + return randomFrom(jsonData.Cities) +} + +// ProvinceForCountry returns a randomly selected province (state, county,subdivision ) name for a supplied country. +// If the country is not supported it will return an empty string. +func ProvinceForCountry(countrycode string) string { + switch countrycode { + case "US": + return randomFrom(jsonData.States) + case "GB": + return randomFrom(jsonData.ProvincesGB) + } + return "" +} + +// State returns a random american state +func State(typeOfState int) string { + if typeOfState == Small { + return randomFrom(jsonData.StatesSmall) + } + return randomFrom(jsonData.States) +} + +// Street returns a random fake street name +func Street() string { + return fmt.Sprintf("%s %s", randomFrom(jsonData.People), randomFrom(jsonData.StreetTypes)) +} + +// StreetForCountry returns a random fake street name typical to the supplied country. +// If the country is not supported it will return an empty string. +func StreetForCountry(countrycode string) string { + switch countrycode { + case "US": + return Street() + case "GB": + return fmt.Sprintf("%s %s", randomFrom(jsonData.StreetNameGB), randomFrom(jsonData.StreetTypesGB)) + } + return "" +} + +// Address returns an american style address +func Address() string { + return fmt.Sprintf("%d %s,\n%s, %s, %s", Number(100), Street(), City(), State(Small), PostalCode("US")) +} + +// Paragraph returns a random paragraph +func Paragraph() string { + return randomFrom(jsonData.Paragraphs) +} + +// Number returns a random number, if only one integer (n1) is supplied it returns a number in [0,n1) +// if a second argument is supplied it returns a number in [n1,n2) +func Number(numberRange ...int) int { + nr := 0 + if len(numberRange) > 1 { + nr = 1 + nr = privateRand.Intn(numberRange[1]-numberRange[0]) + numberRange[0] + } else { + nr = privateRand.Intn(numberRange[0]) + } + return nr +} + +func Decimal(numberRange ...int) float64 { + nr := 0.0 + if len(numberRange) > 1 { + nr = 1.0 + nr = privateRand.Float64()*(float64(numberRange[1])-float64(numberRange[0])) + float64(numberRange[0]) + } else { + nr = privateRand.Float64() * float64(numberRange[0]) + } + + if len(numberRange) > 2 { + sf := strconv.FormatFloat(nr, 'f', numberRange[2], 64) + nr, _ = strconv.ParseFloat(sf, 64) + } + return nr +} + +func StringNumberExt(numberPairs int, separator string, numberOfDigits int) string { + numberString := "" + + for i := 0; i < numberPairs; i++ { + for d := 0; d < numberOfDigits; d++ { + numberString += fmt.Sprintf("%d", Number(0, 9)) + } + + if i+1 != numberPairs { + numberString += separator + } + } + + return numberString +} + +// StringNumber returns a random number as a string +func StringNumber(numberPairs int, separator string) string { + return StringNumberExt(numberPairs, separator, 2) +} + +// StringSample returns a random string from a list of strings +func StringSample(stringList ...string) string { + str := "" + if len(stringList) > 0 { + str = stringList[Number(0, len(stringList))] + } + return str +} + +// Alphanumeric returns a random alphanumeric string consits of [0-9a-zA-Z]. +func Alphanumeric(length int) string { + list := make([]byte, length) + + for i := range list { + list[i] = ALPHANUMERIC[privateRand.Intn(len(ALPHANUMERIC))] + } + + return string(list) +} + +func Boolean() bool { + nr := privateRand.Intn(2) + return nr != 0 +} + +// Noun returns a random noun +func Noun() string { + return randomFrom(jsonData.Nouns) +} + +// Adjective returns a random adjective +func Adjective() string { + return randomFrom(jsonData.Adjectives) +} + +func uppercaseFirstLetter(word string) string { + a := []rune(word) + a[0] = unicode.ToUpper(a[0]) + return string(a) +} + +func lowercaseFirstLetter(word string) string { + a := []rune(word) + a[0] = unicode.ToLower(a[0]) + return string(a) +} + +// SillyName returns a silly name, useful for randomizing naming of things +func SillyName() string { + return uppercaseFirstLetter(Noun()) + Adjective() +} + +// IpV4Address returns a valid IPv4 address as string +func IpV4Address() string { + blocks := []string{} + for i := 0; i < 4; i++ { + number := privateRand.Intn(255) + blocks = append(blocks, strconv.Itoa(number)) + } + + return strings.Join(blocks, ".") +} + +// IpV6Address returns a valid IPv6 address as net.IP +func IpV6Address() string { + var ip net.IP + for i := 0; i < net.IPv6len; i++ { + number := uint8(privateRand.Intn(255)) + ip = append(ip, number) + } + return ip.String() +} + +// MacAddress returns an mac address string +func MacAddress() string { + blocks := []string{} + for i := 0; i < 6; i++ { + number := fmt.Sprintf("%02x", privateRand.Intn(255)) + blocks = append(blocks, number) + } + + return strings.Join(blocks, ":") +} + +// Day returns random day +func Day() string { + return randomFrom(jsonData.Days) +} + +// Month returns random month +func Month() string { + return randomFrom(jsonData.Months) +} + +// FullDate returns full date +func FullDate() string { + timestamp := time.Now() + year := timestamp.Year() + month := Number(1, 13) + maxDay := time.Date(year, time.Month(month+1), 0, 0, 0, 0, 0, time.UTC).Day() + day := Number(1, maxDay+1) + date := time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC) + return date.Format(DateOutputLayout) +} + +// FullDateInRange returns a date string within a given range, given in the format "2006-01-02". +// If no argument is supplied it will return the result of randomdata.FullDate(). +// If only one argument is supplied it is treated as the max date to return. +// If a second argument is supplied it returns a date between (and including) the two dates. +// Returned date is in format "Monday 2 Jan 2006". +func FullDateInRange(dateRange ...string) string { + var ( + min time.Time + max time.Time + duration int + dateString string + ) + if len(dateRange) == 1 { + max, _ = time.Parse(DateInputLayout, dateRange[0]) + } else if len(dateRange) == 2 { + min, _ = time.Parse(DateInputLayout, dateRange[0]) + max, _ = time.Parse(DateInputLayout, dateRange[1]) + } + if !max.IsZero() && max.After(min) { + duration = Number(int(max.Sub(min))) * -1 + dateString = max.Add(time.Duration(duration)).Format(DateOutputLayout) + } else if !max.IsZero() && !max.After(min) { + dateString = max.Format(DateOutputLayout) + } else { + dateString = FullDate() + } + return dateString +} + +func Timezone() string { + return randomFrom(jsonData.Timezones) +} + +func Locale() string { + return randomFrom(jsonData.Locales) +} + +func UserAgentString() string { + return randomFrom(jsonData.UserAgents) +} + +func PhoneNumber() string { + str := randomFrom(jsonData.CountryCallingCodes) + " " + + str += Digits(privateRand.Intn(3) + 1) + + for { + // max 15 chars + remaining := 15 - (len(str) - strings.Count(str, " ")) + if remaining < 2 { + return "+" + str + } + str += " " + Digits(privateRand.Intn(remaining-1)+1) + } +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 9e9bc3a..ecbce77 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,6 +1,8 @@ # github.com/Microsoft/go-winio v0.4.13 github.com/Microsoft/go-winio github.com/Microsoft/go-winio/pkg/guid +# github.com/Pallinder/go-randomdata v1.2.0 +github.com/Pallinder/go-randomdata # github.com/cskr/pubsub v1.0.2 github.com/cskr/pubsub # github.com/davecgh/go-spew v1.1.1