Showing preview only (276K chars total). Download the full file or copy to clipboard to get everything.
Repository: lucapette/fakedata
Branch: main
Commit: d84f298e0e24
Files: 78
Total size: 253.5 KB
Directory structure:
gitextract_roc4rtvn/
├── .github/
│ └── workflows/
│ ├── go.yml
│ └── lint.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── cmd/
│ └── import/
│ └── main.go
├── go.mod
├── go.sum
├── goreleaser.yml
├── integration/
│ ├── cli_test.go
│ ├── setup_test.go
│ └── templates_test.go
├── main.go
├── pkg/
│ ├── data/
│ │ ├── adjectives.go
│ │ ├── animals.go
│ │ ├── cats.go
│ │ ├── cities.go
│ │ ├── colors.go
│ │ ├── countries.go
│ │ ├── country_codes.go
│ │ ├── dinosaurs.go
│ │ ├── dogs.go
│ │ ├── emoji.go
│ │ ├── first_names.go
│ │ ├── industries.go
│ │ ├── last_names.go
│ │ ├── nationalities.go
│ │ ├── nouns.go
│ │ ├── occupations.go
│ │ ├── sentences.go
│ │ ├── state_codes.go
│ │ ├── states.go
│ │ ├── timezones.go
│ │ ├── tlds.go
│ │ └── usernames.go
│ └── fakedata/
│ ├── column.go
│ ├── column_test.go
│ ├── completion.go
│ ├── completion_test.go
│ ├── formatter.go
│ ├── formatter_test.go
│ ├── generator.go
│ ├── generator_test.go
│ └── template.go
├── scripts/
│ ├── perf.sh
│ └── queries.csv
└── testutil/
├── diff.go
├── fixtures/
│ ├── broken.tmpl
│ ├── file.txt
│ ├── loop-with-index.tmpl
│ ├── loop.tmpl
│ ├── simple.tmpl
│ └── unknown-function.tmpl
├── golden/
│ ├── broken-template.golden
│ ├── csv-format.golden
│ ├── default-format-with-headers.golden
│ ├── default-format-with-limit.golden
│ ├── default-format.golden
│ ├── file-does-not-exist.golden
│ ├── file-empty.golden
│ ├── file-exist.golden
│ ├── help.golden
│ ├── loop-with-index.golden
│ ├── loop.golden
│ ├── path-empty.golden
│ ├── simple-template.golden
│ ├── sql-format-with-keys.golden
│ ├── sql-format-with-table-name.golden
│ ├── sql-format.golden
│ ├── tab-format.golden
│ ├── unknown-format.golden
│ ├── unknown-function.golden
│ └── unknown-generators.golden
└── test_file.go
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/go.yml
================================================
name: Go
on:
push:
branches: ["*"]
pull_request:
branches: ["*"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.24.0
- name: build
run: make build
- name: test
run: make test
================================================
FILE: .github/workflows/lint.yml
================================================
name: golangci-lint
on:
push:
branches: ["*"]
pull_request:
branches: ["*"]
permissions:
contents: read
jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
with:
go-version: 1.24.0
- uses: actions/checkout@v3
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
================================================
FILE: .gitignore
================================================
/fakedata
/fakedata-with-cover
.vscode
/dist
*.perf
*.db
.coverdata
.idea
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# fakedata Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team [here](mailto:ciao@lucapette.me). All
complaints will be reviewed and investigated and will result in a response
that is deemed necessary and appropriate to the circumstances. The project
team is obligated to maintain confidentiality with regard to the reporter of
an incident. Further details of specific enforcement policies may be posted
separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 1.4, available at
[http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
We love every form of contribution. By participating to this project, you agree
to abide to the `fakedata` [code of conduct](/CODE_OF_CONDUCT.md).
## Set up your machine
Our [Makefile](/Makefile) is the entry point for most of the activities you will
run into as a contributor. To get a basic understanding of what you can do with
it, you can run:
```sh
make help
```
Which shows documented targets.
`fakedata` is written in
[Go](https://golang.org/). Here is a list of prerequisites to build and test the
code:
- `make`
- [Go 1.19+](http://golang.org/doc/install)
Clone `fakedata` from source:
```sh
$ git clone https://github.com/lucapette/fakedata.git
# Cloning into 'fakedata'...
# etc..
$ cd fakedata
```
A good way of making sure everything is all right is running the test suite:
```sh
make test
```
Open an [issue](https://github.com/lucapette/fakedata/issues/new) if you run
into any problem.
## Building and running fakedata
You can build the entire application by running `make` without arguments:
```sh
make
```
since `build` is the default target.
You can run `fakedata` following the steps:
```sh
make
$ ./fakedata username -l 3
RussellBishop
g3d
rude
```
## Testing
We try to cover as much as we can with testing. The goal is having each single
feature covered by one or more tests. Adding more tests is a great way of
contributing to the project!
### Running the tests
Once you are [setup](#set-up-your-machine), you can run the test suite with one
command:
```sh
make test
```
You can run only a subset of the tests using the `TEST_PATTERN` variable:
```sh
make test TEST_PATTERN=TheAnswerIsFortyTwo
```
You can use pass options to `go test` through the `TEST_OPTIONS` variable:
```sh
make test TEST_OPTIONS=-v
```
You can combine the two options which is very helpful if you are working on a
specific feature and want immediate feedback. Like so:
```sh
make test TEST_OPTIONS=-v TEST_PATTERN=TheAnswerIsFortyTwo
```
## Test your change
You can create a branch for your changes and try to build from the source as
you go:
```sh
make build
```
When you are satisfied with the changes, we suggest running:
```sh
make lint
```
This command runs the linters and the tests the same way we run them in our CI
system.
## Submit a pull request
Push your branch to your `fakedata` fork and open a pull request against the
main branch.
================================================
FILE: Dockerfile
================================================
FROM alpine
RUN apk add --no-cache strace
ADD ./fakedata .
================================================
FILE: LICENSE
================================================
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.
================================================
FILE: Makefile
================================================
SOURCE_FILES?=$$(go list ./pkg/...)
TEST_PATTERN?=.
TEST_OPTIONS?=
unit: ## Run tests
@go test $(TEST_OPTIONS) -cover $(SOURCE_FILES) -run $(TEST_PATTERN) -timeout=30s
integration: build-with-cover ## Run integration tests
@go test $(TEST_OPTIONS) $$(go list ./integration/...) -timeout=30s
@go tool covdata percent -i=.coverdata
test: unit integration
bench: ## Run benchmarks
@go test $(TEST_OPTIONS) -cover $(SOURCE_FILES) -bench $(TEST_PATTERN) -timeout=30s
lint: ## Run linters
@golangci-lint run
build: ## Build a dev version of fakedata
@go build
build-debug-image:
@GOOS=linux GOARCH=amd64 go build
docker build -t fakedata .
build-with-cover: ## Build a cover version of fakedata
@rm -fr .coverdata
@mkdir .coverdata
@go build -cover -o ./fakedata-with-cover
import: ## Import or update data from dariusk/corpora
@go run cmd/import/main.go
# Absolutely awesome: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
.DEFAULT_GOAL := build
================================================
FILE: README.md
================================================
# fakedata
`fakedata` is a small program that generates test data on the command line.
## How to install
If you use [Homebrew](https://brew.sh/):
```sh
brew install lucapette/tap/fakedata
```
If you have [Go](https://go.dev/) installed:
```sh
go install github.com/lucapette/fakedata@latest
```
Or you can download the latest [compiled
binary](https://github.com/lucapette/fakedata/releases) and put it anywhere in
your executable path.
If you want to build it yourself, refer to our [contributing
guidelines](/CONTRIBUTING.md).
## Quick Start
`fakedata` helps you generate random data in a number of ways.
By default, it uses a column formatter with space separator:
```sh
$ fakedata email country
cemshid@example.com Afghanistan
LucasPerdidao@example.me Turkey
arthurholcombe1@test.us Saint Helena
iamgarth@example.us Montenegro
joelcipriano@test.name Croatia
keryilmaz@test.name Vietnam
plbabin@test.org Lithuania
bermonpainter@test.us Haiti
opnsrce@example.name Malaysia
ankitind@test.info Virgin Islands, British
```
You can choose a different separator:
```sh
$ fakedata --separator=, product.category product.name
Shoes,Rankfix
Automotive,Namis
Movies,Matquadfax
Tools,Damlight
Computers,Silverlux
Industrial,Matquadfax
Home,Sil-Home
Health,Toughwarm
Shoes,Freetop
Tools,Domnix
# tab is a little tricky to type, but works
$ fakedata emoji industry -s=$'\t'
👦 Electrical & Electronic Manufacturing
🆘 Investment Banking/Venture
📦 Computer Hardware
♐ Computer & Network Security
🔠 Religious Institutions
💷 Automotive
🇱 Capital Markets
㊙ Public Relations
☺ Alternative Dispute Resoluti
```
You can specify a SQL formatter:
```sh
$ fakedata --format=sql --limit 1 email domain
INSERT INTO TABLE (email,domain) values ('yigitpinar@example.org','example.me');
```
Or a [ndjson](https://github.com/ndjson/ndjson-spec) one:
```sh
$ fakedata --format=ndjson --limit 1 noun country.code
{"country.code":"PY","noun":"mainframe"}
```
You can change the name of the field column using a field with the syntax
`column_name=generator`. It works with the SQL formatter as well the ndjson one:
```sh
$ fakedata --format=sql --limit 1 login=email referral=domain
INSERT INTO TABLE (login,referral) values ('calebogden@example.com','test.me');
$ fakedata --format=ndjson --limit 1 login=email referral=domain
{"login":"rmlewisuk@example.xn--80ao21a","referral":"example.ventures"}
```
`fakedata` can also _stream_ rows of test data for you:
```sh
$ fakedata --stream animal
horse
koala
chameleon
## and so on...
```
If you need more control over the output, use [templates](#templates).
## Generators
`fakedata` provides a number of generators. You can see the full list running
the following command:
```sh
$ fakedata --generators # or -G
color one word color
country Full country name
country.code 2-digit country code
date date
domain domain
domain.tld example|test
#...
#...
#It's a long list :)
```
You can use the `-g` (or `--generator`) option to see an example:
```sh
$ fakedata -g sentence
Description: sentence
Example:
Jerk the dart from the cork target.
Drop the ashes on the worn old rug.
The sense of smell is better than that of touch.
Tin cans are absent from store shelves.
Shut the hatch before the waves push it in.
```
### Constraints
Some generators allow you to pass in a range to constraint the output to a
subset of values. To find out which generators support constraints:
```sh
fakedata -c # or fakedata --generators-with-constraints
```
#### Int
Here is how you can use constraints with the `int` generator:
```sh
fakedata int:1,100 # will generate only integers between 1 and 100
fakedata int:50, # specifying only min number works too
fakedata int:50 # also works
```
#### Enum
The `enum` generator allows you to specify a set of values. It comes handy when
you need random data from a small set of values:
```sh
$ fakedata --limit 5 enum
foo
baz
foo
foo
baz
$ fakedata --limit 5 enum:bug,feature,question,duplicate
question
duplicate
duplicate
bug
feature
```
When passing a single value `enum` can be used to repeat a value in every line:
```sh
$ fakedata --limit 5 enum:one,two enum:repeat
two repeat
one repeat
two repeat
one repeat
one repeat
```
#### File
The `file` generator can be use to read custom values from a file:
```sh
$ printf "one\ntwo\nthree" > values.txt
$ fakedata -l5 file:values.txt
three
two
two
one
two
```
## Templates
`fakedata` supports parsing and executing template files for generating
customized output formats.
It executes the provided template a number of times based on the limit flag
(`-l`, `--limit`) and writes the output to `stdout`, exactly like using inline
generators.
You pipe a template into `fakedata`:
```sh
$ echo "#{{ Int 0 100}} {{ Name }} <{{ Email }}>" | fakedata
#56 Dannie Martin <bassamology@test.th>
#89 Moshe Walsh <baires@example.autos>
#48 Buck Reid <syropian@test.cg>
#55 Rico Powell <findingjenny@example.pohl>
#92 Luise Wood <91bilal@example.link>
#96 Josphine Patton <abelcabans@test.wtf>
#95 Jetta Blair <tgerken@example.jewelry>
#10 Clorinda Parsons <roybarberuk@test.gives>
#0 Dionna Bates <jefffis@test.flights>
```
Or you ask `fakedata` to read templates from disk:
```sh
$ echo "{{Email}}--{{Int}}" > /tmp/template.tmpl
$ fakedata --template /tmp/template.tmpl
ademilter@test.school--214
Silveredge9@example.anquan--379
plbabin@example.here--902
silvanmuhlemann@test.aero--412
ivanfilipovbg@test.bmw--517
robbschiller@example.feedback--471
rickdt@example.vista--963
rmlewisuk@test.info--101
linux29@example.archi--453
g3d@test.pl--921
```
The generators listed under `fakedata -g` are available as functions into the
templates.
If the generator name is a single word, then it's available as a function with
the same name capitalized (example: `int` becomes `Int`).
If the generator name is composed by multiple words joined by dots, then the
function name is again capitalized by the first letter of the word and joined
together (example: `product.name` becomes `ProductName`).
Each generator with [constraints](#constraints) is available in templates as a
function that takes arguments.
### `Enum`
Enum takes one or more strings and returns a random string on each run. Strings
are passed to Enum like so:
```sh
$ echo '{{ Enum "feature" "bug" "documentation" }}' | fakedata -l5
feature
bug
documentation
feature
documentation
```
### `File`
File reads a file from disk and returns a random line on each run. It takes one
parameter which is the path to the file on disk.
```sh
$ echo "uno\ndue\ntre" > example.txt
$ echo '{{ File "./example.txt" }}' | fakedata -l5
tre
uno
due
due
due
foo
```
### `Int`
Int takes one or two integer values and returns a number within this range. By
default it returns a number between `0` and `1000`.
```sh
$ echo "{{ Int 15 20 }}" | fakedata -l5
15
20
15
15
17
```
### `Date`
Date takes one or two dates and returns a date within this range. By default, it
returns a date between one year ago and today.
### Helpers
Beside the generator functions, `fakedata` templates provide a number of helper
functions:
- `Loop`
- `Odd`
- `Even`
If you need to create your own loop for advanced templates you can use the `{{ Loop }}` function.
This function takes a single integer as a parameter which is the number of
iterations. `Loop` must be used with `range` e.g.
```html
{{ range Loop 10 }} You're going to see this 10 times! {{ end }}
```
`Loop` can take a second argument, so that you can specify a range and
`fakedata` will generate a random number of iterations in that range. For
example:
```html
{{ range Loop 1 5 }}42{{ end }}
```
In combination with `Loop` and `range` you can use `Odd` and `Even` to determine
if the current iteration is odd or even.
For example, this is helpful when creating HTML tables:
```html
{{ range $i := Loop 5 }}
<tr>
{{ if Odd $i -}}
<td class="odd">{{- else -}}</td>
<td class="even">{{- end -}} {{ Name }}</td>
</tr>
{{ end }}
```
`Odd` takes an integer as parameter which is why we need to assign the return
values of `Loop 5` to the variables `$i` and `$j`.
Templates also support string manipulation via the `printf` function. Using
`printf` we can create custom output.
For example, to display a full name in the format `Lastname Firstname` instead
of `Firstname Lastname`.
```html
{{ printf "%s %s" NameLast NameFirst }}
```
## Completion
`fakedata` supports basic shell tab completion for bash, zsh, and fish shells:
```sh
eval "$(fakedata --completion zsh)"
eval "$(fakedata --completion bash)"
eval (fakedata --completion fish)
```
## How to contribute
We love every form of contribution! Good entry points to the project are:
- Our [contributing guidelines](/CONTRIBUTING.md) document
- Issues with the tag
[gardening](https://github.com/lucapette/fakedata/issues?q=is%3Aissue+is%3Aopen+label%3Agardening)
- Issues with the tag [good first
patch](https://github.com/lucapette/fakedata/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+patch%22)
If you're not sure where to start, please open a [new
issue](https://github.com/lucapette/fakedata/issues/new) and we'll gladly help
you get started.
## Code of Conduct
You are expected to follow our [code of conduct](/CODE_OF_CONDUCT.md) when
interacting with the project via issues, pull requests, or in any other form.
Many thanks to the awesome [contributor
covenant](http://contributor-covenant.org/) initiative!
## License
[MIT License](/LICENSE) Copyright (c) [2022] [Luca Pette](https://lucapette.me)
================================================
FILE: cmd/import/main.go
================================================
package main
import (
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
"path/filepath"
"strings"
)
// relative package data dir
const targetDir = "pkg/data"
// Content of a Go file
const fileTemplate = `package data
var %s = %#v
`
var keyExtractor = func(key string) func(io.ReadCloser) []string {
return func(body io.ReadCloser) []string {
var jsonData map[string]json.RawMessage
if err := json.NewDecoder(body).Decode(&jsonData); err != nil {
log.Fatal(err)
}
var data []string
if err := json.Unmarshal(jsonData[key], &data); err != nil {
log.Fatal(err)
}
return data
}
}
var tasks = []struct {
URL string
Extractor func(io.ReadCloser) []string
Var string
}{
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/words/nouns.json",
keyExtractor("nouns"),
"Nouns",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/animals/common.json",
keyExtractor("animals"),
"Animals",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/animals/dinosaurs.json",
keyExtractor("dinosaurs"),
"Dinosaurs",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/animals/dogs.json",
keyExtractor("dogs"),
"Dogs",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/animals/cats.json",
keyExtractor("cats"),
"Cats",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/words/emoji/emoji.json",
keyExtractor("emoji"),
"Emoji",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/words/adjs.json",
keyExtractor("adjs"),
"Adjectives",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/words/harvard_sentences.json",
keyExtractor("data"),
"Sentences",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/corporations/industries.json",
keyExtractor("industries"),
"Industries",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/humans/occupations.json",
keyExtractor("occupations"),
"Occupations",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/geography/nationalities.json",
keyExtractor("nationalities"),
"Nationalities",
},
{
"https://raw.githubusercontent.com/dariusk/corpora/master/data/geography/us_cities.json",
func(body io.ReadCloser) []string {
var jsonData struct {
Cities []struct {
City string `json:"city"`
} `json:"cities"`
}
if err := json.NewDecoder(body).Decode(&jsonData); err != nil {
log.Fatal(err)
}
data := make([]string, len(jsonData.Cities))
for i, city := range jsonData.Cities {
data[i] = city.City
}
return data
},
"Cities",
},
}
func main() {
// Check if running in the repository directory
_, err := os.Stat(targetDir)
if err != nil && !os.IsNotExist(err) {
log.Fatal(err)
}
if err != nil {
log.Fatalf("the data directory cannot be found at %s. Ensure the importer is running in the correct location: %v", targetDir, err)
}
for _, task := range tasks {
// Get JSON from URL
var resp *http.Response
resp, err = http.Get(task.URL)
if err != nil {
log.Fatal(err)
}
file := filepath.Join(targetDir, strings.ToLower(task.Var)+".go")
if err = os.MkdirAll(filepath.Dir(file), 0777); err != nil {
log.Fatal(err)
}
data := task.Extractor(resp.Body)
content := fmt.Sprintf(fileTemplate, task.Var, data)
if err = os.WriteFile(file, []byte(content), 0644); err != nil {
log.Fatal(err)
}
if err = resp.Body.Close(); err != nil {
panic(err)
}
}
}
================================================
FILE: go.mod
================================================
module github.com/lucapette/fakedata
go 1.24.0
require (
github.com/gofrs/uuid v4.4.0+incompatible
github.com/kr/pretty v0.3.1
github.com/spf13/pflag v1.0.10
golang.org/x/text v0.33.0
)
require (
github.com/kr/text v0.2.0 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
)
================================================
FILE: go.sum
================================================
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
================================================
FILE: goreleaser.yml
================================================
build:
goos:
- windows
- darwin
- linux
goarch:
- amd64
brews:
-
name: fakedata
tap:
owner: lucapette
name: homebrew-tap
homepage: https://github.com/lucapette/fakedata
================================================
FILE: integration/cli_test.go
================================================
package integration
import (
"regexp"
"testing"
"reflect"
"github.com/lucapette/fakedata/testutil"
)
func TestCLI(t *testing.T) {
tests := []struct {
name string
args []string
golden string
wantErr bool
}{
{
"no arguments",
[]string{},
"help.golden",
false,
},
{
"default format",
[]string{"int:42,42", "enum:foo,foo"},
"default-format.golden",
false,
},
{
"default format with headers",
[]string{"--header", "int:42,42", "enum:foo,foo"},
"default-format-with-headers.golden",
false,
},
{
"unknown generators",
[]string{"madeupgenerator", "anothermadeupgenerator"},
"unknown-generators.golden",
true,
},
{
"default format with limit short",
[]string{"-l=5", "int:42,42", "enum:foo,foo"},
"default-format-with-limit.golden",
false,
},
{
"default format with limit",
[]string{"--limit=5", "int:42,42", "enum:foo,foo"},
"default-format-with-limit.golden",
false,
},
{
"csv format short",
[]string{"-s=,", "int:42,42", "enum:foo,foo"},
"csv-format.golden",
false,
},
{
"csv format",
[]string{"--separator=,", "int:42,42", "enum:foo,foo"},
"csv-format.golden",
false,
},
{
"tab format",
[]string{"--separator=\t", "int:42,42", "enum:foo,foo"},
"tab-format.golden",
false,
},
{
"sql format",
[]string{"-f=sql", "int:42,42", "enum:foo,foo"},
"sql-format.golden",
false,
},
{
"sql format with keys",
[]string{"-f=sql", "age=int:42,42", "name=enum:foo,foo"},
"sql-format-with-keys.golden",
false,
},
{
"sql format with table name",
[]string{"-f=sql", "-t=USERS", "int:42,42", "enum:foo,foo"},
"sql-format-with-table-name.golden",
false,
},
{
"unknown format",
[]string{"-f=no-format", "-t=USERS", "int:42,42", "enum:foo,foo"},
"unknown-format.golden",
true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
output, err := runBinary(tt.args...)
if (err != nil) != tt.wantErr {
t.Fatalf("%s\nexpected (err != nil) to be %v, but got %v. err: %v", output, tt.wantErr, err != nil, err)
}
actual := string(output)
golden := testutil.NewGoldenFile(t, tt.golden)
if *update {
golden.Write(actual)
}
expected := golden.Load()
if !reflect.DeepEqual(expected, actual) {
t.Fatalf("diff: %v", testutil.Diff(expected, actual))
}
})
}
}
func TestGeneratorDescription(t *testing.T) {
tests := []struct {
name string
args []string
}{
{"simple generator", []string{"-g", "name.first"}},
{"custom generator", []string{"-g", "int"}},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
output, err := runBinary(tt.args...)
if err != nil {
t.Fatalf("test run returned an error: %v\n%s", err, output)
}
actual := string(output)
matched, err := regexp.MatchString("Description:", actual)
if err != nil {
t.Fatalf("could not match actual: %v", err)
}
if !matched {
t.Fatalf("expected %s to match description, but did not", actual)
}
})
}
}
func TestFileGenerator(t *testing.T) {
tests := []struct {
name string
args []string
golden string
wantErr bool
}{
{"no file", []string{"file"}, "path-empty.golden", true},
{"file does not exist", []string{`file:'this file does not exist.txt'`}, "file-does-not-exist.golden", true},
{"file exists", []string{`file:testutil/fixtures/file.txt`}, "file-exist.golden", false},
{"file exists with quotes", []string{`file:'testutil/fixtures/file.txt'`}, "file-exist.golden", false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
output, err := runBinary(tt.args...)
if (err != nil) != tt.wantErr {
t.Fatalf("%s\nexpected (err != nil) to be %v, but got %v. err: %v", output, tt.wantErr, err != nil, err)
}
golden := testutil.NewGoldenFile(t, tt.golden)
actual := string(output)
if *update {
golden.Write(actual)
}
expected := golden.Load()
if !reflect.DeepEqual(actual, expected) {
t.Fatalf("diff: %v", testutil.Diff(expected, actual))
}
})
}
}
================================================
FILE: integration/setup_test.go
================================================
package integration
import (
"flag"
"fmt"
"os"
"os/exec"
"path/filepath"
"testing"
)
// In these tests there's a lot going on. For more details:
// https://lucapette.me/writing/writing-integration-tests-for-a-go-cli-application
var update = flag.Bool("update", false, "update golden files")
const binaryName = "fakedata-with-cover"
var binaryPath string
func TestMain(m *testing.M) {
err := os.Chdir("..")
if err != nil {
fmt.Printf("could not change dir: %v", err)
os.Exit(1)
}
abs, err := filepath.Abs(binaryName)
if err != nil {
fmt.Printf("could not get abs path for %s: %v", binaryName, err)
os.Exit(1)
}
binaryPath = abs
os.Exit(m.Run())
}
func runBinary(args ...string) ([]byte, error) {
cmd := exec.Command(binaryPath, args...)
cmd.Env = append(os.Environ(), "GOCOVERDIR=.coverdata")
return cmd.CombinedOutput()
}
================================================
FILE: integration/templates_test.go
================================================
package integration
import (
"fmt"
"os/exec"
"reflect"
"testing"
"github.com/lucapette/fakedata/testutil"
)
type templateTestCase struct {
tmpl string
golden string
wantErr bool
}
var testCases = []templateTestCase{
{"simple.tmpl", "simple-template.golden", false},
{"loop.tmpl", "loop.golden", false},
{"loop-with-index.tmpl", "loop-with-index.golden", false},
{"broken.tmpl", "broken-template.golden", true},
{"unknown-function.tmpl", "unknown-function.golden", true},
}
func TestTemplatesWithCLIArgs(t *testing.T) {
for _, tt := range testCases {
t.Run(tt.tmpl, func(t *testing.T) {
output, err := runBinary("--template", fmt.Sprintf("testutil/fixtures/%s", tt.tmpl))
verifyOutput(t, tt, output, err)
})
}
}
func TestTemplatesWithPipe(t *testing.T) {
for _, tt := range testCases {
t.Run(tt.tmpl, func(t *testing.T) {
fixture := testutil.NewFixture(t, tt.tmpl)
cmd := exec.Command(binaryPath)
cmd.Stdin = fixture.AsFile()
cmd.Env = append(cmd.Env, "GOCOVERDIR=.coverdata")
output, err := cmd.CombinedOutput()
verifyOutput(t, tt, output, err)
})
}
}
func verifyOutput(t *testing.T, tt templateTestCase, output []byte, err error) {
if (err != nil) != tt.wantErr {
t.Fatalf("%s\nexpected (err != nil) to be %v, but got %v. err: %v", output, tt.wantErr, err != nil, err)
}
golden := testutil.NewGoldenFile(t, tt.golden)
actual := string(output)
if *update {
golden.Write(actual)
}
expected := golden.Load()
if !reflect.DeepEqual(actual, expected) {
t.Fatalf("diff: %v", testutil.Diff(expected, actual))
}
}
================================================
FILE: main.go
================================================
package main
import (
"bufio"
"bytes"
"fmt"
"io"
"os"
"github.com/lucapette/fakedata/pkg/fakedata"
flag "github.com/spf13/pflag"
)
var version = "main"
func generatorsHelp(generators fakedata.Generators) string {
maxInt := 0
for _, gen := range generators {
if len(gen.Name) > maxInt {
maxInt = len(gen.Name)
}
}
buffer := &bytes.Buffer{}
pattern := fmt.Sprintf("%%-%ds%%s\n", maxInt+2) //+2 makes the output more readable
for _, gen := range generators {
_, _ = fmt.Fprintf(buffer, pattern, gen.Name, gen.Desc)
}
return buffer.String()
}
func isPipe() bool {
stat, err := os.Stdin.Stat()
if err != nil {
fmt.Printf("error checking shell pipe: %v", err)
}
// Check if template data is piped to fakedata
return (stat.Mode() & os.ModeCharDevice) == 0
}
func findTemplate(path string) string {
if path != "" {
tp, err := os.ReadFile(path)
if err != nil {
fmt.Printf("unable to read input: %s", err)
os.Exit(1)
}
return string(tp)
}
if isPipe() {
tp, err := io.ReadAll(os.Stdin)
if err != nil {
fmt.Printf("unable to read input: %s", err)
os.Exit(1)
}
return string(tp)
}
return ""
}
func main() {
var (
completionFlag = flag.StringP("completion", "C", "", "print shell completion function, pass shell name as argument (\"bash\", \"zsh\" or \"fish\")")
constraintsFlag = flag.BoolP("generators-with-constraints", "c", false, "lists available generators with constraints")
formatFlag = flag.StringP("format", "f", "column", "generates rows in f format. Available formats: column|ndjson|sql")
generatorFlag = flag.StringP("generator", "g", "", "show help for a specific generator")
generatorsFlag = flag.BoolP("generators", "G", false, "lists available generators")
headerFlag = flag.BoolP("header", "H", false, "adds headers row")
helpFlag = flag.BoolP("help", "h", false, "shows help")
limitFlag = flag.IntP("limit", "l", 10, "limits rows up to n")
separatorFlag = flag.StringP("separator", "s", " ", "specifies separator for the column format")
streamFlag = flag.BoolP("stream", "S", false, "streams rows till the end of time")
tableFlag = flag.StringP("table", "t", "TABLE", "table name of the sql format")
templateFlag = flag.StringP("template", "T", "", "Use template as input")
versionFlag = flag.BoolP("version", "v", false, "shows version information")
)
flag.Usage = func() {
fmt.Print("Usage: fakedata [option ...] generator...\n\n")
flag.PrintDefaults()
}
flag.Parse()
if *helpFlag {
flag.Usage()
os.Exit(0)
}
if *completionFlag != "" {
completion, err := fakedata.GetCompletionFunc(*completionFlag)
if err != nil {
fmt.Println(err)
}
fmt.Printf("%s\n", completion)
os.Exit(0)
}
if *versionFlag {
fmt.Println(version)
os.Exit(0)
}
generators := fakedata.NewGenerators()
if *generatorsFlag {
fmt.Print(generatorsHelp(generators.Visible()))
os.Exit(0)
}
if *generatorFlag != "" {
if generator := generators.FindByName(*generatorFlag); generator != nil {
fmt.Printf("Description: %s\n\nExample:\n\n", generator.Desc)
for i := 0; i < 5; i++ {
fn := generator.Func
if generator.IsCustom() {
custom, err := generator.CustomFunc("")
if err != nil {
fmt.Printf("could not generate example: %v", err)
os.Exit(1)
}
fn = custom
}
fmt.Println(fn())
}
}
os.Exit(0)
}
if *constraintsFlag {
fmt.Print(generatorsHelp(generators.WithConstraints()))
os.Exit(0)
}
if tmpl := findTemplate(*templateFlag); tmpl != "" {
if err := fakedata.ExecuteTemplate(tmpl, *limitFlag, *streamFlag); err != nil {
fmt.Println(err)
os.Exit(1)
}
return
}
if len(flag.Args()) == 0 {
flag.Usage()
os.Exit(0)
}
columns, err := fakedata.NewColumns(flag.Args())
if err != nil {
fmt.Printf("%v\n\n", err)
flag.Usage()
os.Exit(1)
}
var formatter fakedata.Formatter
switch *formatFlag {
case "column":
formatter = fakedata.NewColumnFormatter(*separatorFlag)
case "sql":
formatter = fakedata.NewSQLFormatter(*tableFlag)
case "ndjson":
formatter = fakedata.NewNdjsonFormatter()
default:
fmt.Printf("unknown format: %s\n\n", *formatFlag)
flag.Usage()
os.Exit(1)
}
fOut := bufio.NewWriter(os.Stdout)
defer func() {
if err = fOut.Flush(); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "failed to flush buffer: %v\n", err)
}
}()
if *headerFlag {
columns.GenerateHeader(fOut, formatter)
}
if *streamFlag {
for {
columns.GenerateRow(fOut, formatter)
}
}
for i := 0; i < *limitFlag; i++ {
columns.GenerateRow(fOut, formatter)
}
}
================================================
FILE: pkg/data/adjectives.go
================================================
package data
var Adjectives = []string{"Aristotelian", "Arthurian", "Bohemian", "Brethren", "Mosaic", "Oceanic", "Proctor", "Terran", "Tudor", "abroad", "absorbing", "abstract", "academic", "accelerated", "accented", "accountant", "acquainted", "acute", "addicting", "addictive", "adjustable", "admired", "adult", "adverse", "advised", "aerosol", "afraid", "aggravated", "aggressive", "agreeable", "alienate", "aligned", "all-round", "alleged", "almond", "alright", "altruistic", "ambient", "ambivalent", "amiable", "amino", "amorphous", "amused", "anatomical", "ancestral", "angelic", "angrier", "answerable", "antiquarian", "antiretroviral", "appellate", "applicable", "apportioned", "approachable", "appropriated", "archer", "aroused", "arrested", "assertive", "assigned", "athletic", "atrocious", "attained", "authoritarian", "autobiographical", "avaricious", "avocado", "awake", "awesome", "backstage", "backwoods", "balding", "bandaged", "banded", "banned", "barreled", "battle", "beaten", "begotten", "beguiled", "bellied", "belted", "beneficent", "besieged", "betting", "big-money", "biggest", "biochemical", "bipolar", "blackened", "blame", "blessed", "blindfolded", "bloat", "blocked", "blooded", "blue-collar", "blushing", "boastful", "bolder", "bolstered", "bonnie", "bored", "boundary", "bounded", "bounding", "branched", "brawling", "brazen", "breeding", "bridged", "brimming", "brimstone", "broadest", "broiled", "broker", "bronze", "bruising", "buffy", "bullied", "bungling", "burial", "buttery", "candied", "canonical", "cantankerous", "cardinal", "carefree", "caretaker", "casual", "cathartic", "causal", "chapel", "characterized", "charcoal", "cheeky", "cherished", "chipotle", "chirping", "chivalrous", "circumstantial", "civic", "civil", "civilised", "clanking", "clapping", "claptrap", "classless", "cleansed", "cleric", "cloistered", "codified", "colloquial", "colour", "combat", "combined", "comely", "commissioned", "commonplace", "commuter", "commuting", "comparable", "complementary", "compromising", "conceding", "concentrated", "conceptual", "conditioned", "confederate", "confident", "confidential", "confining", "confuse", "congressional", "consequential", "conservative", "constituent", "contaminated", "contemporaneous", "contraceptive", "convertible", "convex", "cooked", "coronary", "corporatist", "correlated", "corroborated", "cosmic", "cover", "crash", "crypto", "culminate", "cushioned", "dandy", "dashing", "dazzled", "decreased", "decrepit", "dedicated", "defaced", "defective", "defenseless", "deluded", "deodorant", "departed", "depress", "designing", "despairing", "destitute", "detective", "determined", "devastating", "deviant", "devilish", "devoted", "diagonal", "dictated", "didactic", "differentiated", "diffused", "dirtier", "disabling", "disconnected", "discovered", "disdainful", "diseased", "disfigured", "disheartened", "disheveled", "disillusioned", "disparate", "dissident", "doable", "doctrinal", "doing", "dotted", "double-blind", "downbeat", "dozen", "draining", "draught", "dread", "dried", "dropped", "dulled", "duplicate", "eaten", "echoing", "economical", "elaborated", "elastic", "elective", "electoral", "elven", "embryo", "emerald", "emergency", "emissary", "emotional", "employed", "enamel", "encased", "encrusted", "endangered", "engraved", "engrossing", "enlarged", "enlisted", "enlivened", "ensconced", "entangled", "enthralling", "entire", "envious", "eradicated", "eroded", "esoteric", "essential", "evaporated", "ever-present", "evergreen", "everlasting", "exacting", "exasperated", "excess", "exciting", "executable", "existent", "exonerated", "exorbitant", "exponential", "export", "extraordinary", "exultant", "exulting", "facsimile", "fading", "fainter", "faith-based", "fallacious", "faltering", "famous", "fancier", "fast-growing", "fated", "favourable", "fearless", "feathered", "fellow", "fermented", "ferocious", "fiddling", "filling", "firmer", "fitted", "flammable", "flawed", "fledgling", "fleshy", "flexible", "flickering", "floral", "flowering", "flowing", "foggy", "folic", "foolhardy", "foolish", "footy", "forehand", "forked", "formative", "formulaic", "foul-mouthed", "fractional", "fragrant", "fraudulent", "freakish", "freckled", "freelance", "freight", "fresh", "fretted", "frugal", "fulfilling", "fuming", "funded", "funny", "garbled", "gathered", "geologic", "geometric", "gibberish", "gilded", "ginger", "glare", "glaring", "gleaming", "glorified", "glorious", "goalless", "gold-plated", "goody", "grammatical", "grande", "grateful", "gratuitous", "graven", "greener", "grinding", "grizzly", "groaning", "grudging", "guaranteed", "gusty", "half-breed", "hand-held", "handheld", "hands-off", "hard-pressed", "harlot", "healing", "healthier", "healthiest", "heart", "heart-shaped", "heathen", "hedonistic", "heralded", "herbal", "high-density", "high-performance", "high-res", "high-yield", "hissy", "hitless", "holiness", "homesick", "honorable", "hooded", "hopeless", "horrendous", "horrible", "hot-button", "huddled", "human", "humbling", "humid", "humiliating", "hypnotized", "idealistic", "idiosyncratic", "ignited", "illustrated", "illustrative", "imitated", "immense", "immersive", "immigrant", "immoral", "impassive", "impressionable", "improbable", "impulsive", "in-between", "in-flight", "inattentive", "inbound", "inbounds", "incalculable", "incomprehensible", "indefatigable", "indigo", "indiscriminate", "indomitable", "inert", "inflate", "inform", "inheriting", "injured", "injurious", "inking", "inoffensive", "insane", "insensible", "insidious", "insincere", "insistent", "insolent", "insufferable", "intemperate", "interdependent", "interesting", "interfering", "intern", "interpreted", "intersecting", "intolerable", "intolerant", "intuitive", "irresolute", "irritate", "jealous", "jerking", "joining", "joint", "journalistic", "joyful", "keyed", "knowing", "lacklustre", "laden", "lagging", "lamented", "laughable", "layered", "leather", "leathern", "leery", "left-footed", "legible", "leisure", "lessening", "liberating", "life-size", "lifted", "lightest", "limitless", "listening", "literary", "liver", "livid", "lobster", "locked", "long-held", "long-lasting", "long-running", "long-suffering", "loudest", "loveliest", "low-budget", "low-carb", "lowering", "lucid", "luckless", "lusty", "luxurious", "magazine", "maniac", "manmade", "maroon", "mastered", "mated", "material", "materialistic", "meaningful", "measuring", "mediaeval", "medical", "meditated", "medley", "melodic", "memorable", "memorial", "metabolic", "metallic", "metallurgical", "metering", "midair", "midterm", "midway", "mighty", "migrating", "mind-blowing", "mind-boggling", "minor", "mirrored", "misguided", "misshapen", "mitigated", "mixed", "modernized", "molecular", "monarch", "monastic", "morbid", "motley", "motorized", "mounted", "multi-million", "multidisciplinary", "muscled", "muscular", "muted", "mysterious", "mythic", "nail-biting", "natural", "nauseous", "negative", "networked", "neurological", "neutered", "newest", "night", "nitrous", "no-fly", "noncommercial", "nonsense", "north", "nuanced", "occurring", "offensive", "oldest", "oncoming", "one-eyed", "one-year", "onstage", "onward", "opaque", "open-ended", "operating", "opportunist", "opposing", "opt-in", "ordinate", "outdone", "outlaw", "outsized", "overboard", "overheated", "oversize", "overworked", "oyster", "paced", "panting", "paralyzed", "paramount", "parental", "parted", "partisan", "passive", "pastel", "patriot", "peacekeeping", "pedestrian", "peevish", "penal", "penned", "pensive", "perceptual", "perky", "permissible", "pernicious", "perpetuate", "perplexed", "pervasive", "petrochemical", "philosophical", "picturesque", "pillaged", "piped", "piquant", "pitching", "plausible", "pliable", "plumb", "politician", "polygamous", "poorest", "portmanteau", "posed", "positive", "possible", "postpartum", "prank", "pre-emptive", "precocious", "predicted", "premium", "preparatory", "prerequisite", "prescient", "preserved", "presidential", "pressed", "pressurized", "presumed", "prewar", "priced", "pricier", "primal", "primer", "primetime", "printed", "private", "problem", "procedural", "process", "prodigious", "professional", "programmed", "progressive", "prolific", "promising", "promulgated", "pronged", "proportionate", "protracted", "pulled", "pulsed", "purgatory", "quick", "rapid-fire", "raunchy", "razed", "reactive", "readable", "realizing", "recognised", "recovering", "recurrent", "recycled", "redeemable", "reflecting", "regal", "registering", "reliable", "reminiscent", "remorseless", "removable", "renewable", "repeating", "repellent", "reserve", "resigned", "respectful", "rested", "restrict", "resultant", "retaliatory", "retiring", "revelatory", "reverend", "reversing", "revolving", "ridiculous", "right-hand", "ringed", "risque", "robust", "roomful", "rotating", "roused", "rubber", "run-down", "running", "runtime", "rustling", "safest", "salient", "sanctioned", "saute", "saved", "scandalized", "scarlet", "scattering", "sceptical", "scheming", "scoundrel", "scratched", "scratchy", "scrolled", "seated", "second-best", "segregated", "self-taught", "semiautomatic", "senior", "sensed", "sentient", "sexier", "shadowy", "shaken", "shaker", "shameless", "shaped", "shiny", "shipped", "shivering", "shoestring", "short", "short-lived", "signed", "simplest", "simplistic", "sizable", "skeleton", "skinny", "skirting", "skyrocketed", "slamming", "slanting", "slapstick", "sleek", "sleepless", "sleepy", "slender", "slimmer", "smacking", "smokeless", "smothered", "smouldering", "snuff", "socialized", "solid-state", "sometime", "sought", "spanking", "sparing", "spattered", "specialized", "specific", "speedy", "spherical", "spiky", "spineless", "sprung", "squint", "stainless", "standing", "starlight", "startled", "stately", "statewide", "stereoscopic", "sticky", "stimulant", "stinky", "stoked", "stolen", "storied", "strained", "strapping", "strengthened", "stubborn", "stylized", "suave", "subjective", "subjugated", "subordinate", "succeeding", "suffering", "summary", "sunset", "sunshine", "supernatural", "supervisory", "supply-side", "surrogate", "suspended", "suspenseful", "swarthy", "sweating", "sweeping", "swinging", "swooning", "sympathize", "synchronized", "synonymous", "synthetic", "tailed", "tallest", "tangible", "tanked", "tarry", "technical", "tectonic", "telepathic", "tenderest", "territorial", "testimonial", "theistic", "thicker", "threatening", "tight-lipped", "timed", "timely", "timid", "torrent", "totalled", "tougher", "traditional", "transformed", "trapped", "traveled", "traverse", "treated", "trial", "trunk", "trusting", "trying", "twisted", "two-lane", "tyrannical", "unaided", "unassisted", "unassuming", "unattractive", "uncapped", "uncomfortable", "uncontrolled", "uncooked", "uncooperative", "underground", "undersea", "undisturbed", "unearthly", "uneasy", "unequal", "unfazed", "unfinished", "unforeseen", "unforgivable", "unidentified", "unimaginative", "uninspired", "unintended", "uninvited", "universal", "unmasked", "unorthodox", "unparalleled", "unpleasant", "unprincipled", "unread", "unreasonable", "unregulated", "unreliable", "unremitting", "unsafe", "unsanitary", "unsealed", "unsuccessful", "unsupervised", "untimely", "unwary", "unwrapped", "uppity", "upstart", "useless", "utter", "valiant", "valid", "valued", "vanilla", "vaulting", "vaunted", "veering", "vegetative", "vented", "verbal", "verifying", "veritable", "versed", "vinyl", "virgin", "visceral", "visual", "voluptuous", "walk-on", "wanton", "warlike", "washed", "waterproof", "waved", "weakest", "well-bred", "well-chosen", "well-informed", "wetting", "wheeled", "whirlwind", "widen", "widening", "willful", "willing", "winnable", "winningest", "wireless", "wistful", "woeful", "wooded", "woodland", "wordless", "workable", "worldly", "worldwide", "worst-case", "worsted", "worthless"}
================================================
FILE: pkg/data/animals.go
================================================
package data
var Animals = []string{"aardvark", "alligator", "alpaca", "antelope", "ape", "armadillo", "baboon", "badger", "bat", "bear", "beaver", "bison", "boar", "buffalo", "bull", "camel", "canary", "capybara", "cat", "chameleon", "cheetah", "chimpanzee", "chinchilla", "chipmunk", "cougar", "cow", "coyote", "crocodile", "crow", "deer", "dingo", "dog", "donkey", "dromedary", "elephant", "elk", "ewe", "ferret", "finch", "fish", "fox", "frog", "gazelle", "gila monster", "giraffe", "gnu", "goat", "gopher", "gorilla", "grizzly bear", "ground hog", "guinea pig", "hamster", "hedgehog", "hippopotamus", "hog", "horse", "hyena", "ibex", "iguana", "impala", "jackal", "jaguar", "kangaroo", "koala", "lamb", "lemur", "leopard", "lion", "lizard", "llama", "lynx", "mandrill", "marmoset", "mink", "mole", "mongoose", "monkey", "moose", "mountain goat", "mouse", "mule", "muskrat", "mustang", "mynah bird", "newt", "ocelot", "opossum", "orangutan", "oryx", "otter", "ox", "panda", "panther", "parakeet", "parrot", "pig", "platypus", "polar bear", "porcupine", "porpoise", "prairie dog", "puma", "rabbit", "raccoon", "ram", "rat", "reindeer", "reptile", "rhinoceros", "salamander", "seal", "sheep", "shrew", "silver fox", "skunk", "sloth", "snake", "squirrel", "tapir", "tiger", "toad", "turtle", "walrus", "warthog", "weasel", "whale", "wildcat", "wolf", "wolverine", "wombat", "woodchuck", "yak", "zebra"}
================================================
FILE: pkg/data/cats.go
================================================
package data
var Cats = []string{"Abyssinian", "Aegean", "American Bobtail", "American Curl", "American Shorthair", "American Wirehair", "Arabian Mau", "Asian", "Asian Semi-longhair", "Australian Mist", "Balinese", "Bambino", "Bengal", "Birman", "Bombay", "Brazilian Shorthair", "British Longhair", "British Semi-longhair", "British Shorthair", "Burmese", "Burmilla", "California Spangled", "Chantilly-Tiffany", "Chartreux", "Chausie", "Cheetoh", "Colorpoint Shorthair", "Cornish Rex", "Cymric", "Cyprus", "Devon Rex", "Donskoy", "Dragon Li", "Dwarf cat", "Egyptian Mau", "European Shorthair", "Exotic Shorthair", "Foldex", "German Rex", "Havana Brown", "Highlander", "Himalayan", "Japanese Bobtail", "Javanese", "Khao Manee", "Korat", "Korean Bobtail", "Korn Ja", "Kurilian Bobtail", "LaPerm", "Lykoi", "Maine Coon", "Manx", "Mekong Bobtail", "Minskin", "Munchkin", "Napoleon", "Nebelung", "Norwegian Forest cat", "Ocicat", "Ojos Azules", "Oregon Rex", "Oriental Bicolor", "Oriental Longhair", "Oriental Shorthair", "PerFold", "Persian (Modern)", "Persian (Traditional)", "Peterbald", "Pixie-bob", "Raas", "Ragamuffin", "Ragdoll", "Russian Blue", "Russian White, Black and Tabby", "Sam Sawet", "Savannah", "Scottish Fold", "Selkirk Rex", "Serengeti", "Serrade Petit", "Siamese", "Siberian", "Singapura", "Snowshoe", "Sokoke", "Somali", "Sphynx", "Suphalak", "Thai", "Thai Lilac", "Tonkinese", "Toyger", "Turkish Angora", "Turkish Van", "Ukrainian Levkoy"}
================================================
FILE: pkg/data/cities.go
================================================
package data
var Cities = []string{"New York", "Los Angeles", "Chicago", "Houston", "Philadelphia", "Phoenix", "San Antonio", "San Diego", "Dallas", "San Jose", "Austin", "Jacksonville", "San Francisco", "Indianapolis", "Columbus", "Fort Worth", "Charlotte", "Detroit", "El Paso", "Seattle", "Denver", "Washington", "Boston", "Memphis", "Nashville-Davidson", "Baltimore", "Portland", "Oklahoma City", "Las Vegas", "Louisville/Jefferson County", "Milwaukee", "Albuquerque", "Tucson", "Fresno", "Sacramento", "Kansas City", "Mesa", "Long Beach", "Atlanta", "Virginia Beach", "Colorado Springs", "Omaha", "Raleigh", "Miami", "Oakland", "Minneapolis", "Tulsa", "Cleveland", "Wichita", "Arlington", "New Orleans", "Bakersfield", "Tampa", "Aurora", "San Juan", "Honolulu", "Anaheim", "Santa Ana", "Corpus Christi", "Riverside", "St. Louis", "Lexington-Fayette", "Pittsburgh", "Stockton", "Anchorage", "Cincinnati", "St. Paul", "Greensboro", "Toledo", "Newark", "Plano", "Henderson", "Lincoln", "Orlando", "Jersey City", "Fort Wayne", "Chula Vista", "Buffalo", "St. Petersburg", "Durham", "Laredo", "Irvine", "Madison", "Norfolk", "Lubbock", "Chandler", "Glendale", "Winston-Salem", "Reno", "Hialeah", "Garland", "Scottsdale", "Chesapeake", "Irving", "North Las Vegas", "Paradise", "Baton Rouge", "Fremont", "Gilbert", "Arlington", "Boise City", "Richmond", "San Bernardino", "Des Moines", "Birmingham", "Spokane", "Rochester", "Modesto", "Tacoma", "Fontana", "Oxnard", "Fayetteville", "Moreno Valley", "Montgomery", "Aurora", "Columbus", "Yonkers", "Huntington Beach", "Shreveport", "Akron", "Glendale", "Little Rock", "Amarillo", "Augusta-Richmond County", "Grand Rapids", "Mobile", "Sunrise Manor", "Salt Lake City", "Spring Valley", "Huntsville", "Tallahassee", "Grand Prairie", "Knoxville", "Overland Park", "Worcester", "Brownsville", "Newport News", "Santa Clarita", "Providence", "Port St. Lucie", "Chattanooga", "Fort Lauderdale", "Tempe", "Garden Grove", "Oceanside", "Bayamon", "Rancho Cucamonga", "Santa Rosa", "Jackson", "Cape Coral", "Vancouver", "Ontario", "Sioux Falls", "Springfield", "Pembroke Pines", "Elk Grove", "Salem", "Eugene", "Corona", "Lancaster", "Peoria", "Fort Collins", "Palmdale", "McKinney", "Salinas", "Cary", "Hayward", "Springfield", "Macon-Bibb County", "Pasadena", "Pomona", "Alexandria", "Escondido", "Lakewood", "Kansas City", "Rockford", "Sunnyvale", "Hollywood", "Carolina", "Joliet", "Torrance", "Bridgeport", "Paterson", "Clarksville", "Naperville", "Frisco", "Metairie", "Savannah", "Syracuse", "Mesquite", "Dayton", "Pasadena", "Orange", "Fullerton", "Killeen", "McAllen", "Hampton", "Bellevue", "Warren", "West Valley City", "Miramar", "Olathe", "Columbia", "Sterling Heights", "Waco", "Thornton", "New Haven", "Charleston", "Enterprise", "Cedar Rapids", "Carrollton", "Visalia", "Thousand Oaks", "Gainesville", "Denton", "Roseville", "Midland", "Elizabeth", "Coral Springs", "Surprise", "Topeka", "Stamford", "Concord", "Simi Valley", "Lafayette", "Kent", "Hartford", "East Los Angeles", "Ponce", "Santa Clara", "Abilene", "Murfreesboro", "Victorville", "Athens-Clarke County", "Evansville", "Vallejo", "Allentown", "Norman", "Berkeley", "Ann Arbor", "Beaumont", "Independence", "Columbia", "Springfield", "Peoria", "Fargo", "Provo", "El Monte", "Lansing", "Odessa", "Wilmington", "Arvada", "Downey", "Round Rock", "Miami Gardens", "Costa Mesa", "Lehigh Acres", "Carlsbad", "Elgin", "Westminster", "Clearwater", "Rochester", "Inglewood", "Fairfield", "West Jordan", "Manchester", "Gresham", "Lowell", "Brandon", "Waterbury", "Billings", "San Buenaventura (Ventura)", "High Point", "Temecula", "Cambridge", "Antioch", "Murrieta", "Pueblo", "The Woodlands", "Richardson", "Richmond", "Centennial", "West Covina", "Highlands Ranch", "Everett", "Palm Bay", "Norwalk", "Pearland", "North Charleston", "Pompano Beach", "Daly City", "Boulder", "Wichita Falls", "West Palm Beach", "Green Bay", "Broken Arrow", "College Station", "Burbank", "Santa Maria", "Columbia", "Spring Hill", "El Cajon", "Lakeland", "Rialto", "Lewisville", "Davenport", "San Mateo", "Sandy Springs", "Clovis", "Tyler", "Las Cruces", "South Bend", "Jurupa Valley", "Hillsboro", "Erie", "Kenosha", "Roanoke", "Greeley", "Flint", "Davie", "San Angelo", "Vista", "Renton", "Albany", "Compton", "Arden-Arcade", "Lawton", "Tuscaloosa", "Mission Viejo", "Portsmouth", "Vacaville", "Dearborn", "South Gate", "New Bedford", "League City", "Beaverton", "Livonia", "Brockton", "Sparks", "Allen", "Lee's Summit", "Federal Way", "Roswell", "Yuma", "Quincy", "Yakima", "Spokane Valley", "Orem", "Sandy", "Rio Rancho", "Carson", "Hesperia", "Lawrence", "Santa Monica", "Lynn", "Miami Beach", "Boca Raton", "Westminster", "San Marcos", "Redding", "Sunrise", "Santa Barbara", "Plantation", "Longmont", "Germantown", "Greenville", "Chico", "San Leandro", "Fall River", "Toms River", "San Tan Valley", "Edmond", "Newton", "Meridian", "Waukegan", "Norwalk", "Reading", "Nampa", "Fort Smith", "Asheville", "Deltona", "Nashua", "Suffolk", "Carmel", "Hawthorne", "Alafaya", "Newport Beach", "Whittier", "Livermore", "Tracy", "Duluth", "Citrus Heights", "Fishers", "Kirkland", "Concord", "Sugar Land", "Clifton", "Indio", "Bloomington", "Menifee", "Ogden", "Alhambra", "Champaign", "Riverview", "Trenton", "Bellingham", "Bend", "Edinburg", "Hoover", "O'Fallon", "Cicero", "Danbury", "Chino", "Bloomington", "Troy", "Johns Creek", "Santa Fe", "Buena Park", "Hemet", "Sioux City", "Redwood City", "Town 'n' Country", "Westland", "Mission", "Longview", "Warwick", "Merced", "Farmington Hills", "Lakewood", "Palm Coast", "Cranston", "Largo", "Lake Forest", "Avondale", "Fayetteville", "Bryan", "Parma", "Napa", "Somerville", "Tustin", "Lawrence", "New Rochelle", "Melbourne", "Medford", "Mountain View", "Brooklyn Park", "Lynchburg", "Deerfield Beach", "St. George", "Bloomington", "Hammond", "Caguas", "Silver Spring", "Kennewick", "Racine", "Mount Pleasant", "Gary", "Bellflower", "Alameda", "Chino Hills", "Pleasanton", "St. Joseph", "Baldwin Park", "Scranton", "Springdale", "Camden", "Kalamazoo", "Upland", "Arlington Heights", "Albany", "Auburn", "Evanston", "Baytown", "Pharr", "Bethlehem", "Plymouth", "Lake Charles", "Folsom", "Wyoming", "Cheektowaga", "Kendall", "Conroe", "San Ramon", "Schaumburg", "Bolingbrook", "Decatur", "Gastonia", "Perris", "Manteca", "Union City", "Milpitas", "Appleton", "Dale City", "Loveland", "Warner Robins", "Centreville", "Southfield", "Rochester Hills", "New Britain", "Boynton Beach", "Atascocita", "Jonesboro", "Goodyear", "Rapid City", "Waldorf", "Layton", "Iowa City", "Canton", "Waukesha", "Missouri City", "Guaynabo", "Wilmington", "Apple Valley", "Pawtucket", "Gulfport", "Lafayette", "Lynwood", "Turlock", "Temple", "Fort Myers", "Ellicott City", "Framingham", "Franklin", "Passaic", "Lauderhill", "Redlands", "Rock Hill", "Missoula", "Flower Mound", "Pine Hills", "Muncie", "Rancho Cordova", "The Villages", "Flagstaff", "Palatine", "Glen Burnie", "Bismarck", "Union City", "Weston", "Casas Adobes", "Pasco", "Jacksonville", "Waterloo", "St. Charles", "Frederick", "Mount Vernon", "Dothan", "Pittsburg", "North Richland Hills", "Redondo Beach", "Eau Claire", "Walnut Creek", "Yorba Linda", "Jackson", "Bossier City", "New Braunfels", "Maple Grove", "Kenner", "Davis", "Kissimmee", "St. Cloud", "Oshkosh", "Woodbury", "Palo Alto", "Portland", "Camarillo", "South San Francisco", "Yuba City", "Victoria", "Gaithersburg", "North Little Rock", "Eagan", "Bayonne", "Homestead", "Harlingen", "Schenectady", "Johnson City", "Mayaguez", "Rockville", "Youngstown", "San Clemente", "Delray Beach", "Laguna Niguel", "Marysville", "Skokie", "East Orange", "Shawnee", "Conway", "Daytona Beach", "Ames", "Janesville", "Lodi", "Tamarac", "Pico Rivera", "Lorain", "Carmichael", "Cedar Park", "Montebello", "Madera", "Florence-Graham", "Santa Cruz", "Eden Prairie", "West Hartford", "Mansfield", "Alpharetta", "Cheyenne", "Castro Valley", "Bowling Green", "Greenville", "South Jordan", "Waltham", "Bethesda", "Broomfield", "Haverhill", "Dundalk", "Council Bluffs", "Hamilton", "Encinitas", "Coon Rapids", "North Miami", "Poinciana", "Sammamish", "Rogers", "Taylor", "Tulare", "La Habra", "West Des Moines", "Brentwood", "Wellington", "Utica", "Blaine", "Millcreek", "Burnsville", "Terre Haute", "Monterey Park", "Vineland", "North Port", "Malden", "Grand Junction", "Springfield", "Jupiter", "West Allis", "Rocklin", "Taylorsville", "Bristol", "National City", "Auburn", "Cupertino", "Palm Harbor", "Lake Elsinore", "Meriden", "Reston", "Pontiac", "St. Clair Shores", "Gardena", "Lakeville", "Springfield", "Petaluma", "Marietta", "Moore", "Lakewood", "Great Falls", "Georgetown", "Casper", "Lancaster", "South Whittier", "Buckeye", "Redmond", "Kendale Lakes", "Rowlett", "Brookline", "La Mesa", "Chapel Hill", "San Rafael", "Idaho Falls", "Huntington Park", "Royal Oak", "Port Orange", "Des Plaines", "Noblesville", "Owensboro", "Orland Park", "Spring", "Dubuque", "Porterville", "Bartlett", "Novi", "Eastvale", "Towson", "Kokomo", "Port Charlotte", "White Plains", "Ocala", "Tonawanda", "Tamiami", "Arcadia", "San Marcos", "Coconut Creek", "Bowie", "Woodland", "Fountainebleau", "Medford", "Tinley Park", "Sanford", "Midwest City", "Brentwood", "Santee", "Oak Lawn", "Valdosta", "Fountain Valley", "Taunton", "Diamond Bar", "New Brunswick", "Berwyn", "Dearborn Heights", "Lehi", "Margate", "Rocky Mount", "The Hammocks", "Chicopee", "Manhattan", "Grand Forks", "St. Peters", "Corvallis", "Kettering", "Pflugerville", "Weymouth Town", "Hempstead", "Decatur", "Anderson", "South Hill", "Hendersonville", "Shoreline", "West Haven", "Paramount", "Port Arthur", "Hanford", "Aloha", "Novato", "Smyrna", "Lakewood", "Pocatello", "Greenwood", "Mount Prospect", "Normal", "Dublin", "Rosemead", "Highland", "Sarasota", "Carson City", "Hacienda Heights", "Elyria", "Colton", "Castle Rock", "Euless", "Blue Springs", "Wheaton", "Doral", "Ankeny", "Cathedral City", "Pensacola", "Richland", "Revere", "Hoboken", "Lake Havasu City", "Bellevue", "Bradenton", "Watsonville", "Yucaipa", "Kingsport", "Gilroy", "Burlington", "Delano", "West New York", "Levittown", "Elkhart", "Stratford", "Perth Amboy", "Peabody", "Florissant", "Placentia", "La Crosse", "Aspen Hill", "Milford", "Oak Park", "Harrisonburg", "Albany", "Palm Beach Gardens", "DeSoto", "Southaven", "Battle Creek", "Commerce City", "Hoffman Estates", "Huntersville", "Minnetonka", "Casa Grande", "Brookhaven", "West Sacramento", "Catalina Foothills", "Glendora", "Joplin", "Wesley Chapel", "Lenexa", "Irondequoit", "Levittown", "Palm Desert", "Pinellas Park", "Grand Island", "Enid", "Lakewood", "East Hartford", "Tigard", "Kentwood", "Apple Valley", "Plainfield", "Grapevine", "Coral Gables", "Caldwell", "Rowland Heights", "Aliso Viejo", "Charleston", "Burien", "Edina", "North Bethesda", "Saginaw", "Troy", "Country Club", "Bonita Springs", "Cerritos", "Wheaton", "Ashburn", "Poway", "Olympia", "Wilson", "Downers Grove", "Logan", "Florin", "Galveston", "Leesburg", "Monroe", "Cuyahoga Falls", "Niagara Falls", "Harrisburg", "La Mirada", "Methuen Town", "Rancho Santa Margarita", "Severn", "Cypress", "McLean", "Bedford", "Murray", "Sheboygan", "Huntington", "Covina", "Middletown", "Azusa", "Newark", "Parker", "Roswell", "East Lansing", "Antelope", "Mishawaka", "Dunwoody", "Stillwater", "Alexandria", "Collierville", "Tuckahoe", "East Honolulu", "Summerville", "Euclid", "Portage", "Coeur d'Alene", "Chesterfield", "Salina", "Roseville", "St. Louis Park", "Bel Air South", "Cedar Hill", "Lawrence", "Wauwatosa", "Minot", "East Providence", "Pearl City", "Ceres", "Apopka", "Middletown", "Mansfield", "Mentor", "Hattiesburg", "North Highlands", "Texas City", "San Luis Obispo", "Palm Springs", "Twin Falls", "Glenview", "Columbus", "Jeffersonville", "Draper", "Madison", "San Jacinto", "Binghamton", "Trujillo Alto", "Beavercreek", "Potomac", "Elmhurst", "Kannapolis", "Lincoln", "Wylie", "Lacey", "Hilo", "Charlottesville", "Maricopa", "Pine Bluff", "Smyrna", "Biloxi", "Altoona", "West Seneca", "Cleveland Heights", "Littleton", "Altadena", "Titusville", "Lake Ridge", "Newark", "Everett", "Strongsville", "West Lafayette", "Barnstable Town", "Arlington", "Sierra Vista", "Hackensack", "Sayreville", "Keller", "St. Cloud", "Attleboro", "Farmington", "Lombard", "Cutler Bay", "Blacksburg", "Apex", "Fort Pierce", "Dublin", "University", "Haltom City", "York", "Coachella", "Danville", "North Miami Beach", "El Centro", "Lompoc", "Oakland Park", "Pittsfield", "El Dorado Hills", "Bountiful", "West Babylon", "Cleveland", "DeKalb", "Freeport", "Annandale", "Bothell", "Jefferson City", "North Lauderdale", "Fond du Lac", "Hicksville", "Bell Gardens", "Moline", "Salem", "San Bruno", "Belleville", "Fairfield", "Concord", "Altamonte Springs", "Burlington", "Bentonville", "Rancho Palos Verdes", "Arecibo", "Oro Valley", "Danville", "Burke", "Beaumont", "State College", "Midland", "Kearny", "Catonsville", "Burleson", "Urbana", "Rohnert Park", "Plainfield", "Morgan Hill", "Bozeman", "Rockwall", "Hutchinson", "Linden", "Waipahu", "Urbandale", "Buffalo Grove", "Riverton", "Westfield", "Bartlett", "Findlay", "South Valley"}
================================================
FILE: pkg/data/colors.go
================================================
package data
// Colors is an array of colors
var Colors = []string{
"azure",
"black",
"blue",
"cyan",
"fuchsia",
"gold",
"green",
"grey",
"indigo",
"ivory",
"lavender",
"lime",
"magenta",
"maroon",
"olive",
"orange",
"orchid",
"pink",
"plum",
"purple",
"red",
"salmon",
"silver",
"tan",
"teal",
"turquoise",
"violet",
"white",
"yellow",
}
================================================
FILE: pkg/data/countries.go
================================================
package data
// Countries is an array of country names
var Countries = []string{
"Afghanistan",
"Albania",
"Algeria",
"American Samoa",
"Andorra",
"Angola",
"Anguilla",
"Antarctica (the territory South of 60 deg S)",
"Antigua and Barbuda",
"Argentina",
"Armenia",
"Aruba",
"Australia",
"Austria",
"Azerbaijan",
"Bahamas",
"Bahrain",
"Bangladesh",
"Barbados",
"Belarus",
"Belgium",
"Belize",
"Benin",
"Bermuda",
"Bhutan",
"Bolivia",
"Bosnia and Herzegovina",
"Botswana",
"Bouvet Island (Bouvetoya)",
"Brazil",
"British Indian Ocean Territory (Chagos Archipelago)",
"Brunei Darussalam",
"Bulgaria",
"Burkina Faso",
"Burundi",
"Cambodia",
"Cameroon",
"Canada",
"Cape Verde",
"Cayman Islands",
"Central African Republic",
"Chad",
"Chile",
"China",
"Christmas Island",
"Cocos (Keeling) Islands",
"Colombia",
"Comoros",
"Congo",
"Congo",
"Cook Islands",
"Costa Rica",
"Cote d'Ivoire",
"Croatia",
"Cuba",
"Cyprus",
"Czech Republic",
"Denmark",
"Djibouti",
"Dominica",
"Dominican Republic",
"Ecuador",
"Egypt",
"El Salvador",
"Equatorial Guinea",
"Eritrea",
"Estonia",
"Ethiopia",
"Faroe Islands",
"Falkland Islands (Malvinas)",
"Fiji",
"Finland",
"France",
"French Guiana",
"French Polynesia",
"French Southern Territories",
"Gabon",
"Gambia",
"Georgia",
"Germany",
"Ghana",
"Gibraltar",
"Greece",
"Greenland",
"Grenada",
"Guadeloupe",
"Guam",
"Guatemala",
"Guernsey",
"Guinea",
"Guinea-Bissau",
"Guyana",
"Haiti",
"Heard Island and McDonald Islands",
"Holy See (Vatican City State)",
"Honduras",
"Hong Kong",
"Hungary",
"Iceland",
"India",
"Indonesia",
"Iran",
"Iraq",
"Ireland",
"Isle of Man",
"Israel",
"Italy",
"Jamaica",
"Japan",
"Jersey",
"Jordan",
"Kazakhstan",
"Kenya",
"Kiribati",
"Democratic People's Republic of Korea",
"Republic of Korea",
"Kuwait",
"Kyrgyz Republic",
"Lao People's Democratic Republic",
"Latvia",
"Lebanon",
"Lesotho",
"Liberia",
"Libyan Arab Jamahiriya",
"Liechtenstein",
"Lithuania",
"Luxembourg",
"Macao",
"Macedonia",
"Madagascar",
"Malawi",
"Malaysia",
"Maldives",
"Mali",
"Malta",
"Marshall Islands",
"Martinique",
"Mauritania",
"Mauritius",
"Mayotte",
"Mexico",
"Micronesia",
"Moldova",
"Monaco",
"Mongolia",
"Montenegro",
"Montserrat",
"Morocco",
"Mozambique",
"Myanmar",
"Namibia",
"Nauru",
"Nepal",
"Netherlands Antilles",
"Netherlands",
"New Caledonia",
"New Zealand",
"Nicaragua",
"Niger",
"Nigeria",
"Niue",
"Norfolk Island",
"Northern Mariana Islands",
"Norway",
"Oman",
"Pakistan",
"Palau",
"Palestinian Territory",
"Panama",
"Papua New Guinea",
"Paraguay",
"Peru",
"Philippines",
"Pitcairn Islands",
"Poland",
"Portugal",
"Puerto Rico",
"Qatar",
"Reunion",
"Romania",
"Russian Federation",
"Rwanda",
"Saint Barthelemy",
"Saint Helena",
"Saint Kitts and Nevis",
"Saint Lucia",
"Saint Martin",
"Saint Pierre and Miquelon",
"Saint Vincent and the Grenadines",
"Samoa",
"San Marino",
"Sao Tome and Principe",
"Saudi Arabia",
"Senegal",
"Serbia",
"Seychelles",
"Sierra Leone",
"Singapore",
"Slovakia (Slovak Republic)",
"Slovenia",
"Solomon Islands",
"Somalia",
"South Africa",
"South Georgia and the South Sandwich Islands",
"Spain",
"Sri Lanka",
"Sudan",
"Suriname",
"Svalbard & Jan Mayen Islands",
"Swaziland",
"Sweden",
"Switzerland",
"Syrian Arab Republic",
"Taiwan",
"Tajikistan",
"Tanzania",
"Thailand",
"Timor-Leste",
"Togo",
"Tokelau",
"Tonga",
"Trinidad and Tobago",
"Tunisia",
"Turkey",
"Turkmenistan",
"Turks and Caicos Islands",
"Tuvalu",
"Uganda",
"Ukraine",
"United Arab Emirates",
"United Kingdom",
"United States of America",
"United States Minor Outlying Islands",
"Uruguay",
"Uzbekistan",
"Vanuatu",
"Venezuela",
"Vietnam",
"Virgin Islands, British",
"Virgin Islands, U.S.",
"Wallis and Futuna",
"Western Sahara",
"Yemen",
"Zambia",
"Zimbabwe",
}
================================================
FILE: pkg/data/country_codes.go
================================================
package data
// CountryCodes is a map of 2-digit country codes to calling codes",
var CountryCodes = map[string]string{
"AD": "376",
"AE": "971",
"AF": "93",
"AG": "1-268",
"AI": "1-264",
"AL": "355",
"AM": "374",
"AO": "244",
"AQ": "672",
"AR": "54",
"AS": "1-684",
"AT": "43",
"AU": "61",
"AW": "297",
"AX": "358",
"AZ": "994",
"BA": "387",
"BB": "1-246",
"BD": "880",
"BE": "32",
"BF": "226",
"BG": "359",
"BH": "973",
"BI": "257",
"BJ": "229",
"BL": "590",
"BM": "1-441",
"BN": "673",
"BO": "591",
"BQ": "599",
"BR": "55",
"BS": "1-242",
"BT": "975",
"BV": "47",
"BW": "267",
"BY": "375",
"BZ": "501",
"CA": "1",
"CC": "61",
"CD": "243",
"CF": "236",
"CG": "242",
"CH": "41",
"CI": "225",
"CK": "682",
"CL": "56",
"CM": "237",
"CN": "86",
"CO": "57",
"CR": "506",
"CU": "53",
"CV": "238",
"CW": "599",
"CX": "61",
"CY": "357",
"CZ": "420",
"DE": "49",
"DJ": "253",
"DK": "45",
"DM": "1-767",
"DO": "1-809",
"DZ": "213",
"EC": "593",
"EE": "372",
"EG": "20",
"EH": "212",
"ER": "291",
"ES": "34",
"ET": "251",
"FI": "358",
"FJ": "679",
"FK": "500",
"FM": "691",
"FO": "298",
"FR": "33",
"GA": "241",
"GB": "44",
"GD": "1-473",
"GE": "995",
"GF": "594",
"GG": "44",
"GH": "233",
"GI": "350",
"GL": "299",
"GM": "220",
"GN": "224",
"GP": "590",
"GQ": "240",
"GR": "30",
"GS": "500",
"GT": "502",
"GU": "1-671",
"GW": "245",
"GY": "592",
"HK": "852",
"HM": "672",
"HN": "504",
"HR": "385",
"HT": "509",
"HU": "36",
"ID": "62",
"IE": "353",
"IL": "972",
"IM": "44",
"IN": "91",
"IO": "246",
"IQ": "964",
"IR": "98",
"IS": "354",
"IT": "39",
"JE": "44",
"JM": "1-876",
"JO": "962",
"JP": "81",
"KE": "254",
"KG": "996",
"KH": "855",
"KI": "686",
"KM": "269",
"KN": "1-869",
"KP": "850",
"KR": "82",
"KW": "965",
"KY": "1-345",
"KZ": "7",
"LA": "856",
"LB": "961",
"LC": "1-758",
"LI": "423",
"LK": "94",
"LR": "231",
"LS": "266",
"LT": "370",
"LU": "352",
"LV": "371",
"LY": "218",
"MA": "212",
"MC": "377",
"MD": "373",
"ME": "382",
"MF": "590",
"MG": "261",
"MH": "692",
"MK": "389",
"ML": "223",
"MM": "95",
"MN": "976",
"MO": "853",
"MP": "1-670",
"MQ": "596",
"MR": "222",
"MS": "1-664",
"MT": "356",
"MU": "230",
"MV": "960",
"MW": "265",
"MX": "52",
"MY": "60",
"MZ": "258",
"NA": "264",
"NC": "687",
"NE": "227",
"NF": "672",
"NG": "234",
"NI": "505",
"NL": "31",
"NO": "47",
"NP": "977",
"NR": "674",
"NU": "683",
"NZ": "64",
"OM": "968",
"PA": "507",
"PE": "51",
"PF": "689",
"PG": "675",
"PH": "63",
"PK": "92",
"PL": "48",
"PM": "508",
"PN": "870",
"PR": "1",
"PS": "970",
"PT": "351",
"PW": "680",
"PY": "595",
"QA": "974",
"RE": "262",
"RO": "40",
"RS": "381",
"RU": "7",
"RW": "250",
"SA": "966",
"SB": "677",
"SC": "248",
"SD": "249",
"SE": "46",
"SG": "65",
"SH": "290",
"SI": "386",
"SJ": "47",
"SK": "421",
"SL": "232",
"SM": "378",
"SN": "221",
"SO": "252",
"SR": "597",
"SS": "211",
"ST": "239",
"SV": "503",
"SX": "1-721",
"SY": "963",
"SZ": "268",
"TC": "1-649",
"TD": "235",
"TF": "262",
"TG": "228",
"TH": "66",
"TJ": "992",
"TK": "690",
"TL": "670",
"TM": "993",
"TN": "216",
"TO": "676",
"TR": "90",
"TT": "1-868",
"TV": "688",
"TW": "886",
"TZ": "255",
"UA": "380",
"UG": "256",
"UM": "1",
"US": "1",
"UY": "598",
"UZ": "998",
"VA": "39-06",
"VC": "1-784",
"VE": "58",
"VG": "1-284",
"VI": "1-340",
"VN": "84",
"VU": "678",
"WF": "681",
"WS": "685",
"YE": "967",
"YT": "262",
"ZA": "27",
"ZM": "260",
"ZW": "263",
}
================================================
FILE: pkg/data/dinosaurs.go
================================================
package data
var Dinosaurs = []string{"Kangnasaurus", "Lophostropheus", "Spinophorosaurus", "Epachthosaurus", "Coelurosauria", "Lycorhinus", "Adasaurus", "Draconyx", "Ceratops", "Lagerpeton", "Qiaowanlong", "Rhynchosaur", "Ningyuansaurus", "Palaeolimnornis", "Anabisetia", "Talarurus", "Sphenodontia", "Tianyulong", "Aepisaurus", "Neuquenraptor", "Galesaurus", "Pachysuchus", "Auroraceratops", "Hecatasaurus", "Barapasaurus", "Asiatosaurus", "Daanosaurus", "Luoyanggia", "Eobrontosaurus", "Wellnhoferia", "Zuolong", "Tenchisaurus", "Centrosaurus", "Falcarius", "Ojoraptorsaurus", "Lufengocephalus", "Vulcanodon", "Mollusc", "Shunosaurus", "Empaterias", "Issasaurus", "Jiangxisaurus", "Laplatasaurus", "Aublysodon", "Embasaurus", "Blikanasaurus", "Bonapartenykus", "Asiamericana", "Arizonasaurus", "Cryptoraptor", "Morosaurus", "Mapusaurus", "Buitreraptor", "Gravitholus", "Vitakrisaurus", "Nurosaurus", "Cetiosauriscus", "Kukufeldia", "Propanoplosaurus", "Suchoprion", "Umarsaurus", "Likhoelesaurus", "Dasygnathoides", "Dubreuillosaurus", "Shenzhouraptor", "Atrociraptor", "Amurosaurus", "Latirhinus", "Albisaurus", "Zupaysaurus", "Venenosaurus", "Syrmosaurus", "Arkharavia", "Yueosaurus", "Tianchungosaurus", "Dyslocosaurus", "Sinraptor", "Owenodon", "Pelycosaur", "Duriavenator", "Haplocheirus", "Epidendrosaurus", "Nyasasaurus", "Tawasaurus", "Lisboasaurus", "Ahshislepelta", "Magnirostris", "Psittacosaurus", "Orodromeus", "Ostafrikasaurus", "Nemegtomaia", "Dracorex", "Ovoraptor", "Amazonsaurus", "Leyesaurus", "Dollodon", "Cryptosaurus", "Coahuilaceratops", "Variraptor", "Panamericansaurus", "Nodocephalosaurus", "Nasutoceratops", "Prosaurolophus", "Jingshanosaurus", "Teleocrater", "Tribelesodon", "Mochlodon", "Eohadrosaurus", "Comanchesaurus", "Limnornis", "Gigantspinosaurus", "Oxalaia", "Wuerhosaurus", "Mtapaiasaurus", "Longisquama", "Velocisaurus", "Aorun", "Sinopliosaurus", "Gigantosaurus", "Sphenospondylus", "Dinotyrannus", "Rhabdodon", "Kritosaurus", "Lamplughsaura", "Notohypsilophodon", "Tsagantegia", "Brontoraptor", "Argyrosaurus", "Lambeosaurus", "Heterosaurus", "Tazoudasaurus", "Valdoraptor", "Microhadrosaurus", "Pycnonemosaurus", "Manidens", "Coelophysis", "Hulsanpes", "Losillasaurus", "Polacanthoides", "Lanzhousaurus", "Walgettosuchus", "Sauroniops", "Magulodon", "Pneumatoraptor", "Altispinax", "Alnashetri", "Hoplitosaurus", "Rahiolisaurus", "Luanpingosaurus", "Abrosaurus", "Palaeosaurus", "Iguanoides", "Abydosaurus", "Riodevasaurus", "Stormbergia", "Bihariosaurus", "Yuanmousaurus", "Sphenosuchus", "Dashanpusaurus", "Crocodilia", "Enigmosaurus", "Montanoceratops", "Frenguellisaurus", "Segnosaurus", "Kryptops", "Labocania", "Sinocalliopteryx", "Dromiceiomimus", "Isisaurus", "Archaeornithoides", "Deinonychus", "Allosaurus", "Stephanosaurus", "Sinornithoides", "Incisivosaurus", "Ornitholestes", "Ankylosaurus", "Plateosaurus", "Shidaisaurus", "Platyceratops", "Agnosphitys", "Changdusaurus", "Nothosaur", "Orthogoniosaurus", "Titanoceratops", "Dysganus", "Lamaceratops", "Helioceratops", "Nanyangosaurus", "Khaan", "Cryptodraco", "Chasmosaurus", "Rileyasuchus", "Aeolosaurus", "Yizhousaurus", "Echinodon", "Omnivoropteryx", "Lengosaurus", "Megadactylus", "Mamenchisaurus", "Notoceratops", "Pachysaurus", "Tianzhenosaurus", "Zhuchengceratops", "Tyreophorus", "Nedcolbertia", "Shixinggia", "Jeholosaurus", "Ornithosuchus", "Veterupristisaurus", "Rayososaurus", "Velafrons", "Lapparentosaurus", "Seismosaurus", "Tsuchikurasaurus", "Styracosaurus", "Dilophosaurus", "Gasparinisaura", "Xiaotingia", "Dromaeosaurus", "Scansoriopteryx", "Eurolimnornis", "Proterosuchid", "Nipponosaurus", "Brachiosaurus", "Vitaridrinda", "Mantellodon", "Sphaerotholus", "Shuosaurus", "Koutalisaurus", "Cardiodon", "Yixianosaurus", "Jurassosaurus", "Jiutaisaurus", "Gryphognathus", "Archaeornithomimus", "Griphornis", "Szechuanosaurus", "Pneumatoarthrus", "Basutodon", "Aletopelta", "Tendaguria", "Riojasaurus", "Creosaurus", "Harpymimus", "Huaxiagnathus", "Carnotaurus", "Beipiaosaurus", "Teratophoneus", "Cedarosaurus", "Omosaurus", "Wyleyia", "Aachenosaurus", "Atlantosaurus", "Bilbeyhallorum", "Balochisaurus", "Ouranosaurus", "Fukuititan", "Sarcolestes", "Alocodon", "Amphisaurus", "Lametasaurus", "Raptorex", "Sinosaurus", "Doratodon", "Ankistrodon", "Chuanjiesaurus", "Parasaurolophus", "Albertonykus", "Efraasia", "Alaskacephale", "Torilion", "Rapator", "Sauroplites", "Thecocoelurus", "Lirainosaurus", "Xixiasaurus", "Conchoraptor", "Paralititan", "Arcusaurus", "Becklespinax", "Thecodontosaurus", "Taveirosaurus", "Daemonosaurus", "Suuwassea", "Albertosaurus", "Nouerosaurus", "Marshosaurus", "Xuanhuasaurus", "Algoasaurus", "Capitalsaurus", "Xenoposeidon", "Cryolophosaurus", "Gobipteryx", "Stereosaurus", "Nemegtia", "Proyandusaurus", "Thyreophora", "Xiaosaurus", "Tatankaceratops", "Hanwulosaurus", "Gryphoceratops", "Linheraptor", "Ornithomimoides", "Edmontonia", "Aerosteon", "Ninghsiasaurus", "Prenoceratops", "Vagaceratops", "Sinucerasaurus", "Hongshanosaurus", "Hexinlusaurus", "Indosuchus", "Moshisaurus", "Alashansaurus", "Berberosaurus", "Elaltitan", "Marisaurus", "Rhoetosaurus", "Tatankacephalus", "Bienosaurus", "Dracopelta", "Chiayusaurus", "Pseudosuchia", "Sarcosaurus", "Shuvuuia", "Unaysaurus", "Amtosaurus", "Nqwebasaurus", "Claorhynchus", "Prolacertiform", "Honghesaurus", "Ugrosaurus", "Aegyptosaurus", "Gallimimus", "Clasmodosaurus", "Hypacrosaurus", "Caenagnathus", "Velocipes", "Lessemsaurus", "Agrosaurus", "Paronychodon", "Maleevosaurus", "Leipsanosaurus", "Clevelanotyrannus", "Dynamosaurus", "Megacervixosaurus", "Protohadros", "Polyonax", "Daxiatitan", "Spondylosoma", "Ichthyovenator", "Demandasaurus", "Dimodosaurus", "Torvosaurus", "Gwyneddosaurus", "Cystosaurus", "Irritator", "Zanclodon", "Rugops", "Ignavusaurus", "Chinshakiangosaurus", "Zhejiangosaurus", "Pachyrhinosaurus", "Stenotholus", "Iuticosaurus", "Tyrannotitan", "Xixianykus", "Palaeopteryx", "Vitakridrinda", "Planicoxa", "Jianchangosaurus", "Sinovenator", "Ohmdenosaurus", "Protecovasaurus", "Eoceratops", "Laevisuchus", "Cumnoria", "Ratchasimasaurus", "Elaphrosaurus", "Dracovenator", "Abelisaurus", "Sangonghesaurus", "Austrocheirus", "Calamosaurus", "Vectensia", "Elosaurus", "Termatosaurus", "Pleuropeltus", "Chubutisaurus", "Macrophalangia", "Futalongkosaurus", "Acristavus", "Wintonotitan", "Diclonius", "Nanosaurus", "Tonganosaurus", "Tarascosaurus", "Amphicoelicaudia", "Achillesaurus", "Delapparentia", "Argentinosaurus", "Sulaimansaurus", "Koparion", "Brachytrachelopan", "Bakesaurus", "Rahona", "Oryctodromeus", "Campylodon", "Stygivenator", "Wangonisaurus", "Genyodectes", "Acrocanthosaurus", "Danubiosaurus", "Deltadromeus", "Rileya", "Borealosaurus", "Rioarribasaurus", "Gondwanatitan", "Lophorhothon", "Talenkauen", "Diracodon", "Nanshiungosaurus", "Bradycneme", "Ferganocephale", "Cheneosaurus", "Wulagasaurus", "Tanystrosuchus", "Comahuesaurus", "Actiosaurus", "Jiangjunmiaosaurus", "Xinjiangovenator", "Gadolosaurus", "Clarencea", "Avemetatarsalia", "Dakotadon", "Diapsid", "Albinykus", "Pectinodon", "Protorosaurus", "Ginnareemimus", "Doryphorosaurus", "Dalianraptor", "Megapnosaurus", "Scelidosaurus", "Metriorhynchid", "Piatnitzkysaurus", "Haplocanthosaurus", "Phytosaur", "Manospondylus", "Gansutitan", "Neovenator", "Brasileosaurus", "Judiceratops", "Khetranisaurus", "Fish", "Proceratosaurus", "Zatomus", "Ceratosaurus", "Unescoceratops", "Telmatosaurus", "Segisaurus", "Pachyspondylus", "Caseosaurus", "Ultrasauros", "Dongbeititan", "Galvesaurus", "Crocodylomorph", "Ephoenosaurus", "Fossil", "Crosbysaurus", "Coelosaurus", "Unenlagia", "Strenusaurus", "Concavenator", "Fukuiraptor", "Camarasaurus", "Iliosuchus", "Huayangosaurus", "Kileskus", "Clepsysaurus", "Richardoestesia", "Sphenosaurus", "Scutellosaurus", "Garudimimus", "Hexing", "Nanningosaurus", "Sonorasaurus", "Pradhania", "Orosaurus", "Andesaurus", "Genusaurus", "Huxleysaurus", "Elopteryx", "Alectrosaurus", "Tecovasaurus", "Parksosaurus", "Paranthodon", "Airakoraptor", "Jobaria", "Ichabodcraniosaurus", "Muyelensaurus", "Sacisaurus", "Deinodon", "Patricosaurus", "Maleevus", "Tylocephale", "Sugiyamasaurus", "Nodosaurus", "Aliwalia", "Kerberosaurus", "Kazaklambia", "Eolambia", "Dongyangosaurus", "Citipati", "Euskelosaurus", "Trigonosaurus", "Epidexipteryx", "Dolichosuchus", "Walkeria", "Labrosaurus", "Condorraptor", "Tichosteus", "Uberabatitan", "Magnosaurus", "Janenschia", "Anasazisaurus", "Macrogryphosaurus", "Erliansaurus", "Ornithotarsus", "Bayosaurus", "Santanaraptor", "Zhuchengtyrannus", "Lukousaurus", "Sauroposeidon", "Ampelosaurus", "Pampadromaeus", "Erectopus", "Glyptodontopelta", "Drinker", "Leaellynasaura", "Magyarosaurus", "Postosuchus", "Szechuanoraptor", "Yubasaurus", "Brachyrophus", "Cionodon", "Sellacoxa", "Elachistosuchus", "Shuvosaurus", "Sauraechmodon", "Microdontosaurus", "Carcharodontosaurus", "Brachylophosaurus", "Theropoda", "Tapinocephalus", "Changchunsaurus", "Cladeiodon", "Pareiasaurus", "Heishansaurus", "Aristosuchus", "Protiguanodon", "Brohisaurus", "Eupodosaurus", "Datousaurus", "Giraffatitan", "Jaklapallisaurus", "Tugulusaurus", "Compsognathus", "Ilokelesia", "Revueltoraptor", "Tuojiangosaurus", "Huaxiasaurus", "Palaeocursornis", "Onychosaurus", "Ceratonykus", "Amargatitanis", "Albalophosaurus", "Byronosaurus", "Cryptovolans", "Shenzhousaurus", "Rapetosaurus", "Altirhinus", "Sanjuansaurus", "Dysalotosaurus", "Archaeopteryx", "Liliensternus", "Beelemodon", "Xuanhuaceratops", "Protrachodon", "Caenagnathasia", "Willinakaqe", "Atacamatitan", "Lourinhanosaurus", "Yaverlandia", "Ligomasaurus", "Suchomimus", "Brasilotitan", "Jenghizkhan", "Aggiosaurus", "Elrhazosaurus", "Yingshanosaurus", "Australovenator", "Ichthyornis", "Valdosaurus", "Yuanmouraptor", "Prolacertiformes", "Tarchia", "Hesperosaurus", "Azendohsaurus", "Eucentrosaurus", "Scipionyx", "Petrobrasaurus", "Hudiesaurus", "Sinornithosaurus", "Shuangmiaosaurus", "Tianchisaurus", "Araucanoraptor", "Poposaurus", "Pararhabdodon", "Osmakasaurus", "Siamotyrannus", "Galveosaurus", "Yangchuanosaurus", "Microcephale", "Mirischia", "Probactrosaurus", "Yunxiansaurus", "Enantiornithine", "Cedrorestes", "Chaoyangsaurus", "Loricatosaurus", "Stygimoloch", "Venaticosuchus", "Gorgosaurus", "Anchiornis", "Ischisaurus", "Bactrosaurus", "Quilmesaurus", "Fukuisaurus", "Stegosaurus", "Griphosaurus", "Graciliceratops", "Oligosaurus", "Baotianmansaurus", "Eocursor", "Turtle", "Macelognathus", "Arctosaurus", "Streptospondylus", "Texasetes", "Dianchungosaurus", "Birds", "Nomingia", "Sinornithomimus", "Hierosaurus", "Abdallahsaurus", "Jaxartosaurus", "Sanchusaurus", "Tarbosaurus", "Sinocoelurus", "Timimus", "Herrerasaurus", "Giganotosaurus", "Tsaagan", "Anthracothere", "Yezosaurus", "Chihuahuasaurus", "Cathartesaura", "Domeykosaurus", "Loncosaurus", "Archaeoceratops", "Udanoceratops", "Gojirasaurus", "Dongyangopelta", "Duriatitan", "Chondrosteus", "Arkanosaurus", "Lusotitan", "Diceratus", "Nuoersaurus", "Wadhurstia", "Sauropelta", "Ultrasaurus", "Indosaurus", "Kotasaurus", "Urbacodon", "Zhongyuansaurus", "Tanystropheus", "Mifunesaurus", "Pegomastax", "Gobititan", "Lusitanosaurus", "Caulodon", "Baryonyx", "Tataouinea", "Longosaurus", "Pareiasaur", "Leshansaurus", "Machairasaurus", "Colossosaurus", "Arstanosaurus", "Wakinosaurus", "Lanasaurus", "Dryosaurus", "Sterrholophus", "Dachungosaurus", "Chialingosaurus", "Jiangjunosaurus", "Klamelisaurus", "Rauisuchia", "Caudipteryx", "Jinfengopteryx", "Leptoceratops", "Sinotyrannus", "Poekilopleuron", "Gobisaurus", "Angaturama", "Pterosaur", "Aetonyx", "Angolatitan", "Tanius", "Therizinosaurus", "Tastavinsaurus", "Lancangosaurus", "Dinheirosaurus", "Brachypodosaurus", "Gobiceratops", "Fruitadens", "Monkonosaurus", "Spinostropheus", "Cristatusaurus", "Bolong", "Rebbachisaurus", "Monolophosaurus", "Alioramus", "Hypsirophus", "Olorotitan", "Euoplocephalus", "Juravenator", "Euhelopus", "Epanterias", "Lancanjiangosaurus", "Xianshanosaurus", "Ekrixinatosaurus", "Achillobator", "Hesperonychus", "Pachysauriscus", "Ruyangosaurus", "Gongbusaurus", "Teratosaurus", "Ruehleia", "Yaleosaurus", "Canardia", "Brachyceratops", "Pantydraco", "Afrovenator", "Mendozasaurus", "Pedopenna", "Blasisaurus", "Astrodon", "Mandschurosaurus", "Drusilasaura", "Libycosaurus", "Eucamerotus", "Tonouchisaurus", "Didanodon", "Proplanicoxa", "Kentrurosaurus", "Trinisaura", "Fusuisaurus", "Kentrosaurus", "Eocarcharia", "Albertaceratops", "Rutellum", "Saltasaurus", "Majungatholus", "Mussaurus", "Zigongosaurus", "Euacanthus", "Craspedodon", "Ingenia", "Priodontognathus", "Rubeosaurus", "Gyposaurus", "Utahraptor", "Pukyongosaurus", "Coelurosaur", "Silvisaurus", "Troodon", "Jixiangornis", "Pawpawsaurus", "Oohkotokia", "Hadrosauravus", "Shaochilong", "Ponerosteus", "Ischyrosaurus", "Hadrosaurus", "Gryposaurus", "Spinops", "Peloroplites", "Daspletosaurus", "Dravidosaurus", "Hagryphus", "Sphenosuchia", "Ligabueino", "Mymoorapelta", "Tatisaurus", "Trimucrodon", "Cathetosaurus", "Teinurosaurus", "Antetonitrus", "Rajasaurus", "Fabrosaurus", "Angloposeidon", "Levnesovia", "Mongolosaurus", "Asiaceratops", "Avipes", "Turiasaurus", "Eucnemesaurus", "Otogosaurus", "Martharaptor", "Tsintaosaurus", "Hypsilophodon", "Gigantoscelus", "Palaeosauriscus", "Hironosaurus", "Paludititan", "Anatosaurus", "Kaatedocus", "Linhevenator", "Pellegrinisaurus", "Sanpasaurus", "Lapampasaurus", "Inosaurus", "Eomamenchisaurus", "Liassaurus", "Jinzhousaurus", "Equijubus", "Dryptosaurus", "Nopcsaspondylus", "Changtusaurus", "Tapuiasaurus", "Diabloceratops", "Dakosaurus", "Chassternbergia", "Limaysaurus", "Huaxiaosaurus", "Minotaurasaurus", "Uteodon", "Micropachycephalosaurus", "Avisaurus", "Siamodon", "Ornithomerus", "Eodromaeus", "Turanoceratops", "Nambalia", "Cruxicheiros", "Riojasuchus", "Stokesosaurus", "Amygdalodon", "Linhenykus", "Heterodontosaurus", "Dromicosaurus", "Bahariasaurus", "Xiongguanlong", "Jeyawati", "Polyodontosaurus", "Morinosaurus", "Campylodoniscus", "Aralosaurus", "Pentaceratops", "Squalodon", "Saurornitholestes", "Yandusaurus", "Bruhathkayosaurus", "Kinnareemimus", "Tornieria", "Scaphonyx", "Barosaurus", "Titanosaurus", "Volkheimeria", "Brontomerus", "Megalosaurus", "Rhopalodon", "Huanghetitan", "Ngexisaurus", "Jiangshanosaurus", "Archosaur", "Sciurumimus", "Histriasaurus", "Spinosaurus", "Eoraptor", "Phaedrolosaurus", "Betasuchus", "Belodon", "Bagaraatan", "Protognathus", "Marmarospondylus", "Dinosaur", "Darwinsaurus", "Apatodon", "Eotyrannus", "Struthiomimus", "Pelecanimimus", "Gideonmantellia", "Appalachiosaurus", "Edmontosaurus", "Acracanthus", "Machimosaurus", "Razanandrongobe", "Uintasaurus", "Magnapaulia", "Moabosaurus", "Ojoceratops", "Yaxartosaurus", "Macroscelosaurus", "Aniksosaurus", "Guanlong", "Futabasaurus", "Proceratops", "Xuwulong", "Ricardoestesia", "Symphyrophus", "Pleurocoelus", "Damalasaurus", "Naashoibitosaurus", "Panphagia", "Graciliraptor", "Ornithoides", "Futalognkosaurus", "Pachycephalosaurus", "Plesiosaur", "Astrophocaudia", "Gilmoreosaurus", "Diamantinasaurus", "Eucercosaurus", "Gavinosaurus", "Suchosaurus", "Eugongbusaurus", "Camelotia", "Shanxia", "Antarctopelta", "Traukutitan", "Saurornithoides", "Hippodraco", "Nteregosaurus", "Sauropodus", "Coelurosauravus", "Stereocephalus", "Adeopapposaurus", "Ctenosauriscid", "Paraiguanodon", "Eosinopteryx", "Archaeornis", "Bambiraptor", "Isanosaurus", "Stegosaurides", "Avaceratops", "Gannansaurus", "Triceratops", "Paluxysaurus", "Denversaurus", "Bathygnathus", "Katsuyamasaurus", "Barsboldia", "Mojoceratops", "Eucoelophysis", "Microraptor", "Calamospondylus", "Fusinasus", "Agathaumas", "Protoceratops", "Eustreptospondylus", "Macrurosaurus", "Atlascopcosaurus", "Claosaurus", "Avicephala", "Tochisaurus", "Protognathosaurus", "Kakuru", "Neuquensaurus", "Chilantaisaurus", "Chindesaurus", "Parvicursor", "Phuwiangosaurus", "Saltriosaurus", "Edmarka", "Chingkankousaurus", "Bicentenaria", "Kemkemia", "Microceratus", "Chaoyangosaurus", "Atlasaurus", "Eotriceratops", "Neimongosaurus", "Unicerosaurus", "Qinlingosaurus", "Laosaurus", "Craterosaurus", "Dacentrurus", "Geminiraptor", "Erlikosaurus", "Bonitasaura", "Arrhinoceratops", "Triassolestes", "Hisanohamasaurus", "Oplosaurus", "Supersaurus", "Achelousaurus", "Rinconsaurus", "Serendipaceratops", "Eoabelisaurus", "Dystrophaeus", "Thotobolosaurus", "Blancocerosaurus", "Cetiosaurus", "Roccosaurus", "Chondrosteosaurus", "Fulengia", "Mohammadisaurus", "Halticosaurus", "Lancangjiangosaurus", "Teyuwasu", "Breviceratops", "Rhodanosaurus", "Metriacanthosaurus", "Overosaurus", "Newtonsaurus", "Gracilisuchus", "Pseudolagosuchus", "Sellosaurus", "Ajkaceratops", "Lufengosaurus", "Yamaceratops", "Bagaceratops", "Apatosaurus", "Khateranisaurus", "Batyrosaurus", "Cinizasaurus", "Tanycolagreus", "Bainoceratops", "Silesaurid", "Byranjaffia", "Shamosaurus", "Austrosaurus", "Amtocephale", "Cylindricodon", "Huabeisaurus", "Regnosaurus", "Callovosaurus", "Heptasteornis", "Gryponyx", "Tylosteus", "Gargoyleosaurus", "Kundurosaurus", "Mononykus", "Secernosaurus", "Puertasaurus", "Bellusaurus", "Archosauriform", "Qiupalong", "Alamosaurus", "Dystylosaurus", "Tethyshadros", "Selimanosaurus", "Albertadromeus", "Karongasaurus", "Kaijiangosaurus", "Microvenator", "Amphicoelias", "Eshanosaurus", "Salimosaurus", "Avimimus", "Elvisaurus", "Bonatitan", "Procheneosaurus", "Tetragonosaurus", "Mammal", "Oshanosaurus", "Jurapteryx", "Paleosaurus", "Dinosauromorph", "Plateosauravus", "Hungarosaurus", "Chromogisaurus", "Anoplosaurus", "Amargasaurus", "Merosaurus", "Alwalkeria", "Macrodontophion", "Shanshanosaurus", "Gongxianosaurus", "Vectisaurus", "Kitadanisaurus", "Agustinia", "Sulaimanisaurus", "Thescelosaurus", "Zephyrosaurus", "Arenysaurus", "Patagosaurus", "Laornis", "Protoavis", "Tenantosaurus", "Yinlong", "Bravoceratops", "Saurophaganax", "Coeluroides", "Seitaad", "Trialestes", "Glishades", "Cedarpelta", "Rinchenia", "Lesothosaurus", "Dromaeosaur", "Nuoerosaurus", "Hallopus", "Yanornis", "Tomodon", "Juratyrant", "Shanyangosaurus", "Deuterosaurus", "Coelurus", "Zizhongosaurus", "Hypselospinus", "Austroraptor", "Brachytaenius", "Orcomimus", "Acrotholus", "Chirostenotes", "Emausaurus", "Nigersaurus", "Animantarx", "Luanchuanraptor", "Zuniceratops", "Wannanosaurus", "Abrictosaurus", "Heyuannia", "Synapsid", "Struthiosaurus", "Yunnanosaurus", "Noasaurus", "Tyrannosaurid", "Yibinosaurus", "Thespesius", "Priconodon", "Marasuchus", "Anchisaurus", "Iguanacolossus", "Patagonykus", "Haplocanthus", "Corythosaurus", "Limusaurus", "Coloradisaurus", "Similicaudipteryx", "Leptospondylus", "Aviatyrannis", "Hortalotarsus", "Tienshanosaurus", "Pamparaptor", "Peishansaurus", "Succinodon", "Dinosaurus", "Rachitrema", "Dachongosaurus", "Therapsida", "Saurolophus", "Pekinosaurus", "Skorpiovenator", "Microsaurops", "Ammosaurus", "Ichthyosaur", "Antarctosaurus", "Liaoningosaurus", "Nothronychus", "Spinosuchus", "Iguanosaurus", "Anchiceratops", "Orkoraptor", "Microcoelus", "Xuanhanosaurus", "Geranosaurus", "Goyocephale", "Ankylosauria", "Dahalokely", "Daptosaurus", "Loricosaurus", "Australodocus", "Pterospondylus", "Gigantoraptor", "Hylaeosaurus", "Caudocoelus", "Opisthocoelicaudia", "Rhadinosaurus", "Ligabuesaurus", "Aragosaurus", "Rocasaurus", "Parrosaurus", "Sahaliyania", "Agilisaurus", "Orthomerus", "Penelopognathus", "Liaoceratops", "Dyoplosaurus", "Stenonychosaurus", "Walkersaurus", "Narambuenatitan", "Pitekunsaurus", "Camarillasaurus", "Procolophonid", "Epichirostenotes", "Beishanlong", "Gasosaurus", "Coronosaurus", "Zapalasaurus", "Sauraechinodon", "Glacialisaurus", "Therapsid", "Gravisaurus", "Lewisuchus", "Jainosaurus", "Centemodon", "Arkansaurus", "Einiosaurus", "Palaeoscincus", "Cerasinops", "Microceratops", "Pteropelyx", "Sigilmassasaurus", "Staurikosaurus", "Pyroraptor", "Ornithodesmus", "Asylosaurus", "Anodontosaurus", "Siluosaurus", "Carnosauria", "Qantassaurus", "Ornithomimus", "Dinodocus", "Chuxiongosaurus", "Anserimimus", "Camptonotus", "Lagosuchus", "Anatotitan", "Dryptosauroides", "Silesaurus", "Pachysaurops", "Saichania", "Procerosaurus", "Lucianosaurus", "Koreasaurus", "Lurdusaurus", "Piveteausaurus", "Jeholornis", "Angulomastacator", "Hoplosaurus", "Saltopus", "Shanag", "Homalocephale", "Torosaurus", "Fenestrosaurus", "Jubbulpuria", "Mtotosaurus", "Nemegtosaurus", "Maiasaura", "Yutyrannus", "Ozraptor", "Lariosaurus", "Bugenasaura", "Ornatotholus", "Aardonyx", "Herbstosaurus", "Tianyuraptor", "Diplodocus", "Kosmoceratops", "Muttaburrasaurus", "Kagasaurus", "Atsinganosaurus", "Massospondylus", "Utahceratops", "Nanotyrannus", "Qingxiusaurus", "Avalonianus", "Erketu", "Fulgurotherium", "Kayentavenator", "Protarchaeopteryx", "Chungkingosaurus", "Krzyzanowskisaurus", "Yimenosaurus", "Aurornis", "Ganzhousaurus", "Pinacosaurus", "Archosauromorph", "Niobrarasaurus", "Melanorosaurus", "Baurutitan", "Elmisaurus", "Euronychodon", "Tehuelchesaurus", "Sinusonasus", "Omeisaurus", "Agujaceratops", "Aucasaurus", "Wulatelong", "Stegopelta", "Europasaurus", "Alxasaurus", "Stegosauroides", "Tangvayosaurus", "Pliosaur", "Unquillosaurus", "Xixiposaurus", "Ornithopsis", "Crataeomus", "Madsenius", "Diplotomodon", "Kulceratops", "Adamantisaurus", "Nyororosaurus", "Monoclonius", "Kuszholia", "Jintasaurus", "Camptosaurus", "Masiakasaurus", "Parhabdodon", "Prodeinodon", "Saurophagus", "Alvarezsaurus", "Mantellisaurus", "Aristosaurus", "Suzhousaurus", "Limnosaurus", "Dromaeosauroides", "Augustia", "Spinosaurid", "Othnielia", "Thecospondylus", "Cetacea", "Medusaceratops", "Zalmoxes", "Koreaceratops", "Syngonosaurus", "Dicraeosaurus", "Xenoceratops", "Scleromochlus", "Deinocheirus", "Chuandongocoelurus", "Itemirus", "Phyllodon", "Megaraptor", "Philovenator", "Ferganasaurus", "Pelorosaurus", "Nebulasaurus", "Barilium", "Nedoceratops", "Acanthopholis", "Nuthetes", "Panoplosaurus", "Quaesitosaurus", "Crocodile", "Archaeoraptor", "Charonosaurus", "Eureodon", "Hanssuesia", "Guaibasaurus", "Camposaurus", "Hylosaurus", "Zapsalis", "Bistahieversor", "Erlicosaurus", "Procompsognathus", "Hypselosaurus", "Prenocephale", "Malarguesaurus", "Tenontosaurus", "Kittysaurus", "Iguanodon", "Palaeoctonus", "Trachodon", "Wyomingraptor", "Huehuecanauhtlus", "Theiophytalia", "Nectosaurus", "Scolosaurus", "Pisanosaurus", "Kunmingosaurus", "Liubangosaurus", "Malawisaurus", "Pakisaurus", "Carnosaur", "Leonerasaurus", "Oviraptor", "Texacephale", "Shantungosaurus", "Zhuchengosaurus", "Gripposaurus", "Polacanthus", "Xenotarsosaurus", "Dinosauriform", "Hypsibema", "Podokesaurus", "Sonidosaurus", "Colepiocephale", "Kelmayisaurus", "Crichtonsaurus", "Stegoceras", "Borogovia", "Lourinhasaurus", "Picrodon", "Mononychus", "Bothriospondylus", "Siamosaurus", "Technosaurus", "Theropod", "Neosodon", "Velociraptor", "Eolosaurus", "Archaeovolans", "Chebsaurus", "Compsosuchus", "Othnielosaurus", "Banji", "Proiguanodon", "Rahonavis", "Majungasaurus", "Nanotyrannosaurus", "Bissektipelta", "Revueltosaurus", "Lexovisaurus", "Antrodemus", "Hikanodon", "Tyrannosaurus", "Barrosasaurus", "Sinoceratops", "Megadontosaurus", "Sinosauropteryx", "Heilongjiangosaurus", "Maxakalisaurus", "Jensenosaurus", "Dandakosaurus", "Therosaurus", "Sarahsaurus", "Hypselorhachis", "Archaeodontosaurus", "Gresslyosaurus", "Stenopelix"}
================================================
FILE: pkg/data/dogs.go
================================================
package data
var Dogs = []string{"Affenpinscher", "Afghan Hound", "Aidi", "Airedale Terrier", "Akbash Dog", "Akita", "Alano Español", "Alaskan Klee Kai", "Alaskan Malamute", "Alpine Dachsbracke", "Alpine Spaniel", "American Bulldog", "American Cocker Spaniel", "American Eskimo Dog", "American Foxhound", "American Hairless Terrier", "American Pit Bull Terrier", "American Staffordshire Terrier", "American Water Spaniel", "Anglo-Français de Petite Vénerie", "Appenzeller Sennenhund", "Ariege Pointer", "Ariegeois", "Armant", "Armenian Gampr dog", "Artois Hound", "Australian Cattle Dog", "Australian Kelpie", "Australian Shepherd", "Australian Silky Terrier", "Australian Stumpy Tail Cattle Dog", "Australian Terrier", "Azawakh", "Bakharwal Dog", "Barbet", "Basenji", "Basque Shepherd Dog", "Basset Artésien Normand", "Basset Bleu de Gascogne", "Basset Fauve de Bretagne", "Basset Hound", "Bavarian Mountain Hound", "Beagle", "Beagle-Harrier", "Bearded Collie", "Beauceron", "Bedlington Terrier", "Belgian Shepherd Dog (Groenendael)", "Belgian Shepherd Dog (Laekenois)", "Belgian Shepherd Dog (Malinois)", "Bergamasco Shepherd", "Berger Blanc Suisse", "Berger Picard", "Berner Laufhund", "Bernese Mountain Dog", "Billy", "Black and Tan Coonhound", "Black and Tan Virginia Foxhound", "Black Norwegian Elkhound", "Black Russian Terrier", "Bloodhound", "Blue Lacy", "Blue Paul Terrier", "Boerboel", "Bohemian Shepherd", "Bolognese", "Border Collie", "Border Terrier", "Borzoi", "Boston Terrier", "Bouvier des Ardennes", "Bouvier des Flandres", "Boxer", "Boykin Spaniel", "Bracco Italiano", "Braque d'Auvergne", "Braque du Bourbonnais", "Braque du Puy", "Braque Francais", "Braque Saint-Germain", "Brazilian Terrier", "Briard", "Briquet Griffon Vendéen", "Brittany", "Broholmer", "Bruno Jura Hound", "Bucovina Shepherd Dog", "Bull and Terrier", "Bull Terrier (Miniature)", "Bull Terrier", "Bulldog", "Bullenbeisser", "Bullmastiff", "Bully Kutta", "Burgos Pointer", "Cairn Terrier", "Canaan Dog", "Canadian Eskimo Dog", "Cane Corso", "Cardigan Welsh Corgi", "Carolina Dog", "Carpathian Shepherd Dog", "Catahoula Cur", "Catalan Sheepdog", "Caucasian Shepherd Dog", "Cavalier King Charles Spaniel", "Central Asian Shepherd Dog", "Cesky Fousek", "Cesky Terrier", "Chesapeake Bay Retriever", "Chien Français Blanc et Noir", "Chien Français Blanc et Orange", "Chien Français Tricolore", "Chien-gris", "Chihuahua", "Chilean Fox Terrier", "Chinese Chongqing Dog", "Chinese Crested Dog", "Chinese Imperial Dog", "Chinook", "Chippiparai", "Chow Chow", "Cierny Sery", "Cimarrón Uruguayo", "Cirneco dell'Etna", "Clumber Spaniel", "Combai", "Cordoba Fighting Dog", "Coton de Tulear", "Cretan Hound", "Croatian Sheepdog", "Cumberland Sheepdog", "Curly Coated Retriever", "Cursinu", "Cão da Serra de Aires", "Cão de Castro Laboreiro", "Cão Fila de São Miguel", "Dachshund", "Dalmatian", "Dandie Dinmont Terrier", "Danish Swedish Farmdog", "Deutsche Bracke", "Doberman Pinscher", "Dogo Argentino", "Dogo Cubano", "Dogue de Bordeaux", "Drentse Patrijshond", "Drever", "Dunker", "Dutch Shepherd Dog", "Dutch Smoushond", "East Siberian Laika", "East-European Shepherd", "Elo", "English Cocker Spaniel", "English Foxhound", "English Mastiff", "English Setter", "English Shepherd", "English Springer Spaniel", "English Toy Terrier (Black & Tan)", "English Water Spaniel", "English White Terrier", "Entlebucher Mountain Dog", "Estonian Hound", "Estrela Mountain Dog", "Eurasier", "Field Spaniel", "Fila Brasileiro", "Finnish Hound", "Finnish Lapphund", "Finnish Spitz", "Flat-Coated Retriever", "Formosan Mountain Dog", "Fox Terrier (Smooth)", "French Bulldog", "French Spaniel", "Galgo Español", "Gascon Saintongeois", "German Longhaired Pointer", "German Pinscher", "German Shepherd", "German Shorthaired Pointer", "German Spaniel", "German Spitz", "German Wirehaired Pointer", "Giant Schnauzer", "Glen of Imaal Terrier", "Golden Retriever", "Gordon Setter", "Gran Mastín de Borínquen", "Grand Anglo-Français Blanc et Noir", "Grand Anglo-Français Blanc et Orange", "Grand Anglo-Français Tricolore", "Grand Basset Griffon Vendéen", "Grand Bleu de Gascogne", "Grand Griffon Vendéen", "Great Dane", "Great Pyrenees", "Greater Swiss Mountain Dog", "Greek Harehound", "Greenland Dog", "Greyhound", "Griffon Bleu de Gascogne", "Griffon Bruxellois", "Griffon Fauve de Bretagne", "Griffon Nivernais", "Hamiltonstövare", "Hanover Hound", "Hare Indian Dog", "Harrier", "Havanese", "Hawaiian Poi Dog", "Himalayan Sheepdog", "Hokkaido", "Hovawart", "Huntaway", "Hygenhund", "Ibizan Hound", "Icelandic Sheepdog", "Indian pariah dog", "Indian Spitz", "Irish Red and White Setter", "Irish Setter", "Irish Terrier", "Irish Water Spaniel", "Irish Wolfhound", "Istrian Coarse-haired Hound", "Istrian Shorthaired Hound", "Italian Greyhound", "Jack Russell Terrier", "Jagdterrier", "Jämthund", "Kai Ken", "Kaikadi", "Kanni", "Karelian Bear Dog", "Karst Shepherd", "Keeshond", "Kerry Beagle", "Kerry Blue Terrier", "King Charles Spaniel", "King Shepherd", "Kintamani", "Kishu", "Komondor", "Kooikerhondje", "Koolie", "Korean Jindo Dog", "Kromfohrländer", "Kumaon Mastiff", "Kurī", "Kuvasz", "Kyi-Leo", "Labrador Husky", "Labrador Retriever", "Lagotto Romagnolo", "Lakeland Terrier", "Lancashire Heeler", "Landseer", "Lapponian Herder", "Large Münsterländer", "Leonberger", "Lhasa Apso", "Lithuanian Hound", "Longhaired Whippet", "Löwchen", "Mahratta Greyhound", "Maltese", "Manchester Terrier", "Maremma Sheepdog", "McNab", "Mexican Hairless Dog", "Miniature American Shepherd", "Miniature Australian Shepherd", "Miniature Fox Terrier", "Miniature Pinscher", "Miniature Schnauzer", "Miniature Shar Pei", "Molossus", "Montenegrin Mountain Hound", "Moscow Watchdog", "Moscow Water Dog", "Mountain Cur", "Mucuchies", "Mudhol Hound", "Mudi", "Neapolitan Mastiff", "New Zealand Heading Dog", "Newfoundland", "Norfolk Spaniel", "Norfolk Terrier", "Norrbottenspets", "North Country Beagle", "Northern Inuit Dog", "Norwegian Buhund", "Norwegian Elkhound", "Norwegian Lundehund", "Norwich Terrier", "Old Croatian Sighthound", "Old Danish Pointer", "Old English Sheepdog", "Old English Terrier", "Old German Shepherd Dog", "Olde English Bulldogge", "Otterhound", "Pachon Navarro", "Paisley Terrier", "Pandikona", "Papillon", "Parson Russell Terrier", "Patterdale Terrier", "Pekingese", "Pembroke Welsh Corgi", "Perro de Presa Canario", "Perro de Presa Mallorquin", "Peruvian Hairless Dog", "Petit Basset Griffon Vendéen", "Petit Bleu de Gascogne", "Phalène", "Pharaoh Hound", "Phu Quoc ridgeback dog", "Picardy Spaniel", "Plott Hound", "Podenco Canario", "Pointer (dog breed)", "Polish Greyhound", "Polish Hound", "Polish Hunting Dog", "Polish Lowland Sheepdog", "Polish Tatra Sheepdog", "Pomeranian", "Pont-Audemer Spaniel", "Poodle", "Porcelaine", "Portuguese Podengo", "Portuguese Pointer", "Portuguese Water Dog", "Posavac Hound", "Pražský Krysařík", "Pudelpointer", "Pug", "Puli", "Pumi", "Pungsan Dog", "Pyrenean Mastiff", "Pyrenean Shepherd", "Rafeiro do Alentejo", "Rajapalayam", "Rampur Greyhound", "Rastreador Brasileiro", "Rat Terrier", "Ratonero Bodeguero Andaluz", "Redbone Coonhound", "Rhodesian Ridgeback", "Rottweiler", "Rough Collie", "Russell Terrier", "Russian Spaniel", "Russian tracker", "Russo-European Laika", "Sabueso Español", "Saint-Usuge Spaniel", "Sakhalin Husky", "Saluki", "Samoyed", "Sapsali", "Schapendoes", "Schillerstövare", "Schipperke", "Schweizer Laufhund", "Schweizerischer Niederlaufhund", "Scotch Collie", "Scottish Deerhound", "Scottish Terrier", "Sealyham Terrier", "Segugio Italiano", "Seppala Siberian Sleddog", "Serbian Hound", "Serbian Tricolour Hound", "Shar Pei", "Shetland Sheepdog", "Shiba Inu", "Shih Tzu", "Shikoku", "Shiloh Shepherd Dog", "Siberian Husky", "Silken Windhound", "Sinhala Hound", "Skye Terrier", "Sloughi", "Slovak Cuvac", "Slovakian Rough-haired Pointer", "Small Greek Domestic Dog", "Small Münsterländer", "Smooth Collie", "South Russian Ovcharka", "Southern Hound", "Spanish Mastiff", "Spanish Water Dog", "Spinone Italiano", "Sporting Lucas Terrier", "St. Bernard", "St. John's water dog", "Stabyhoun", "Staffordshire Bull Terrier", "Standard Schnauzer", "Stephens Cur", "Styrian Coarse-haired Hound", "Sussex Spaniel", "Swedish Lapphund", "Swedish Vallhund", "Tahltan Bear Dog", "Taigan", "Talbot", "Tamaskan Dog", "Teddy Roosevelt Terrier", "Telomian", "Tenterfield Terrier", "Thai Bangkaew Dog", "Thai Ridgeback", "Tibetan Mastiff", "Tibetan Spaniel", "Tibetan Terrier", "Tornjak", "Tosa", "Toy Bulldog", "Toy Fox Terrier", "Toy Manchester Terrier", "Toy Trawler Spaniel", "Transylvanian Hound", "Treeing Cur", "Treeing Walker Coonhound", "Trigg Hound", "Tweed Water Spaniel", "Tyrolean Hound", "Vizsla", "Volpino Italiano", "Weimaraner", "Welsh Sheepdog", "Welsh Springer Spaniel", "Welsh Terrier", "West Highland White Terrier", "West Siberian Laika", "Westphalian Dachsbracke", "Wetterhoun", "Whippet", "White Shepherd", "Wire Fox Terrier", "Wirehaired Pointing Griffon", "Wirehaired Vizsla", "Yorkshire Terrier", "Šarplaninac"}
================================================
FILE: pkg/data/emoji.go
================================================
package data
var Emoji = []string{"🀄", "🃏", "🅰", "🅱", "🅾", "🅿", "🆎", "🆑", "🆒", "🆓", "🆔", "🆕", "🆖", "🆗", "🆘", "🆙", "🆚", "🇦", "🇧", "🇨", "🇩", "🇪", "🇫", "🇬", "🇭", "🇮", "🇯", "🇰", "🇱", "🇲", "🇳", "🇴", "🇵", "🇶", "🇷", "🇸", "🇹", "🇺", "🇻", "🇼", "🇽", "🇾", "🇿", "🈁", "🈂", "🈚", "🈯", "🈲", "🈳", "🈴", "🈵", "🈶", "🈷", "🈸", "🈹", "🈺", "🉐", "🉑", "🌀", "🌁", "🌂", "🌃", "🌄", "🌅", "🌆", "🌇", "🌈", "🌉", "🌊", "🌋", "🌌", "🌍", "🌎", "🌏", "🌐", "🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘", "🌙", "🌚", "🌛", "🌜", "🌝", "🌞", "🌟", "🌠", "🌰", "🌱", "🌲", "🌳", "🌴", "🌵", "🌷", "🌸", "🌹", "🌺", "🌻", "🌼", "🌽", "🌾", "🌿", "🍀", "🍁", "🍂", "🍃", "🍄", "🍅", "🍆", "🍇", "🍈", "🍉", "🍊", "🍋", "🍌", "🍍", "🍎", "🍏", "🍐", "🍑", "🍒", "🍓", "🍔", "🍕", "🍖", "🍗", "🍘", "🍙", "🍚", "🍛", "🍜", "🍝", "🍞", "🍟", "🍠", "🍡", "🍢", "🍣", "🍤", "🍥", "🍦", "🍧", "🍨", "🍩", "🍪", "🍫", "🍬", "🍭", "🍮", "🍯", "🍰", "🍱", "🍲", "🍳", "🍴", "🍵", "🍶", "🍷", "🍸", "🍹", "🍺", "🍻", "🍼", "🎀", "🎁", "🎂", "🎃", "🎄", "🎅", "🎆", "🎇", "🎈", "🎉", "🎊", "🎋", "🎌", "🎍", "🎎", "🎏", "🎐", "🎑", "🎒", "🎓", "🎠", "🎡", "🎢", "🎣", "🎤", "🎥", "🎦", "🎧", "🎨", "🎩", "🎪", "🎫", "🎬", "🎭", "🎮", "🎯", "🎰", "🎱", "🎲", "🎳", "🎴", "🎵", "🎶", "🎷", "🎸", "🎹", "🎺", "🎻", "🎼", "🎽", "🎾", "🎿", "🏀", "🏁", "🏂", "🏃", "🏄", "🏆", "🏇", "🏈", "🏉", "🏊", "🏠", "🏡", "🏢", "🏣", "🏤", "🏥", "🏦", "🏧", "🏨", "🏩", "🏪", "🏫", "🏬", "🏭", "🏮", "🏯", "🏰", "🐀", "🐁", "🐂", "🐃", "🐄", "🐅", "🐆", "🐇", "🐈", "🐉", "🐊", "🐋", "🐌", "🐍", "🐎", "🐏", "🐐", "🐑", "🐒", "🐓", "🐔", "🐕", "🐖", "🐗", "🐘", "🐙", "🐚", "🐛", "🐜", "🐝", "🐞", "🐟", "🐠", "🐡", "🐢", "🐣", "🐤", "🐥", "🐦", "🐧", "🐨", "🐩", "🐪", "🐫", "🐬", "🐭", "🐮", "🐯", "🐰", "🐱", "🐲", "🐳", "🐴", "🐵", "🐶", "🐷", "🐸", "🐹", "🐺", "🐻", "🐼", "🐽", "🐾", "👀", "👂", "👃", "👄", "👅", "👆", "👇", "👈", "👉", "👊", "👋", "👌", "👍", "👎", "👏", "👐", "👑", "👒", "👓", "👔", "👕", "👖", "👗", "👘", "👙", "👚", "👛", "👜", "👝", "👞", "👟", "👠", "👡", "👢", "👣", "👤", "👥", "👦", "👧", "👨", "👩", "👪", "👫", "👬", "👭", "👮", "👯", "👰", "👱", "👲", "👳", "👴", "👵", "👶", "👷", "👸", "👹", "👺", "👻", "👼", "👽", "👾", "👿", "💀", "💁", "💂", "💃", "💄", "💅", "💆", "💇", "💈", "💉", "💊", "💋", "💌", "💍", "💎", "💏", "💐", "💑", "💒", "💓", "💔", "💕", "💖", "💗", "💘", "💙", "💚", "💛", "💜", "💝", "💞", "💟", "💠", "💡", "💢", "💣", "💤", "💥", "💦", "💧", "💨", "💩", "💪", "💫", "💬", "💭", "💮", "💯", "💰", "💱", "💲", "💳", "💴", "💵", "💶", "💷", "💸", "💹", "💺", "💻", "💼", "💽", "💾", "💿", "📀", "📁", "📂", "📃", "📄", "📅", "📆", "📇", "📈", "📉", "📊", "📋", "📌", "📍", "📎", "📏", "📐", "📑", "📒", "📓", "📔", "📕", "📖", "📗", "📘", "📙", "📚", "📛", "📜", "📝", "📞", "📟", "📠", "📡", "📢", "📣", "📤", "📥", "📦", "📧", "📨", "📩", "📪", "📫", "📬", "📭", "📮", "📯", "📰", "📱", "📲", "📳", "📴", "📵", "📶", "📷", "📹", "📺", "📻", "📼", "🔀", "🔁", "🔂", "🔃", "🔄", "🔅", "🔆", "🔇", "🔈", "🔉", "🔊", "🔋", "🔌", "🔍", "🔎", "🔏", "🔐", "🔑", "🔒", "🔓", "🔔", "🔕", "🔖", "🔗", "🔘", "🔙", "🔚", "🔛", "🔜", "🔝", "🔞", "🔟", "🔠", "🔡", "🔢", "🔣", "🔤", "🔥", "🔦", "🔧", "🔨", "🔩", "🔪", "🔫", "🔬", "🔭", "🔮", "🔯", "🔰", "🔱", "🔲", "🔳", "🔴", "🔵", "🔶", "🔷", "🔸", "🔹", "🔺", "🔻", "🔼", "🔽", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧", "🗻", "🗼", "🗽", "🗾", "🗿", "😀", "😁", "😂", "😃", "😄", "😅", "😆", "😇", "😈", "😉", "😊", "😋", "😌", "😍", "😎", "😏", "😐", "😑", "😒", "😓", "😔", "😕", "😖", "😗", "😘", "😙", "😚", "😛", "😜", "😝", "😞", "😟", "😠", "😡", "😢", "😣", "😤", "😥", "😦", "😧", "😨", "😩", "😪", "😫", "😬", "😭", "😮", "😯", "😰", "😱", "😲", "😳", "😴", "😵", "😶", "😷", "😸", "😹", "😺", "😻", "😼", "😽", "😾", "😿", "🙀", "🙁", "🙂", "🙅", "🙆", "🙇", "🙈", "🙉", "🙊", "🙋", "🙌", "🙍", "🙎", "🙏", "🚀", "🚁", "🚂", "🚃", "🚄", "🚅", "🚆", "🚇", "🚈", "🚉", "🚊", "🚋", "🚌", "🚍", "🚎", "🚏", "🚐", "🚑", "🚒", "🚓", "🚔", "🚕", "🚖", "🚗", "🚘", "🚙", "🚚", "🚛", "🚜", "🚝", "🚞", "🚟", "🚠", "🚡", "🚢", "🚣", "🚤", "🚥", "🚦", "🚧", "🚨", "🚩", "🚪", "🚫", "🚬", "🚭", "🚮", "🚯", "🚰", "🚱", "🚲", "🚳", "🚴", "🚵", "🚶", "🚷", "🚸", "🚹", "🚺", "🚻", "🚼", "🚽", "🚾", "🚿", "🛀", "🛁", "🛂", "🛃", "🛄", "🛅", "‼", "⁉", "™", "ℹ", "↔", "↕", "↖", "↗", "↘", "↙", "↩", "↪", "#", "⌚", "⌛", "⏩", "⏪", "⏫", "⏬", "⏰", "⏳", "Ⓜ", "▪", "▫", "▶", "◀", "◻", "◼", "◽", "◾", "☀", "☁", "☎", "☑", "☔", "☕", "☝", "☺", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓", "♠", "♣", "♥", "♦", "♨", "♻", "♿", "⚓", "⚠", "⚡", "⚪", "⚫", "⚽", "⚾", "⛄", "⛅", "⛎", "⛔", "⛪", "⛲", "⛳", "⛵", "⛺", "⛽", "✂", "✅", "✈", "✉", "✊", "✋", "✌", "✏", "✒", "✔", "✖", "✨", "✳", "✴", "❄", "❇", "❌", "❎", "❓", "❔", "❕", "❗", "❤", "➕", "➖", "➗", "➡", "➰", "➿", "⤴", "⤵", "⬅", "⬆", "⬇", "⬛", "⬜", "⭐", "⭕", "0", "〰", "〽", "1", "2", "㊗", "㊙", "3", "4", "5", "6", "7", "8", "9", "©", "®", "\ue50a"}
================================================
FILE: pkg/data/first_names.go
================================================
package data
// Firstnames is an array of first names
var Firstnames = []string{
"Abram",
"Adalberto",
"Adaline",
"Adriene",
"Ahmed",
"Alease",
"Alec",
"Aleshia",
"Alfonzo",
"Alishia",
"Alisia",
"Alix",
"Aliza",
"Allen",
"Alline",
"Almeta",
"Alonso",
"Amado",
"Amberly",
"Ambrose",
"Andreas",
"Angele",
"Angelena",
"Angelo",
"Anibal",
"Annalee",
"Annalisa",
"Annett",
"Annice",
"Antione",
"Antone",
"Antonia",
"Apolonia",
"Apryl",
"Aracelis",
"Ardell",
"Arden",
"Argelia",
"Ariane",
"Arianne",
"Arie",
"Arlen",
"Arletha",
"Arlie",
"Armanda",
"Arminda",
"Arnoldo",
"Asa",
"Ashlyn",
"Assunta",
"Augustus",
"Aundrea",
"Azucena",
"Barbar",
"Barbera",
"Barrett",
"Becki",
"Bell",
"Benedict",
"Benton",
"Bernardine",
"Berneice",
"Bernie",
"Berry",
"Bertram",
"Bethann",
"Betsey",
"Bev",
"Blossom",
"Blythe",
"Bo",
"Boyce",
"Bradly",
"Branda",
"Brant",
"Breann",
"Brendon",
"Brenton",
"Brett",
"Brice",
"Brinda",
"Britt",
"Britta",
"Broderick",
"Brynn",
"Buck",
"Bud",
"Burl",
"Buster",
"Carisa",
"Carmon",
"Carol",
"Carola",
"Carrol",
"Catarina",
"Cedrick",
"Ceola",
"Chang",
"Chas",
"Chau",
"Chauncey",
"Cher",
"Chery",
"Chet",
"Chi",
"China",
"Ching",
"Chong",
"Chung",
"Cicely",
"Clarita",
"Claud",
"Claudie",
"Claudio",
"Clemente",
"Cleora",
"Clorinda",
"Coletta",
"Colton",
"Columbus",
"Connie",
"Coralee",
"Cordell",
"Cordie",
"Cortez",
"Criselda",
"Cristen",
"Cristie",
"Cristobal",
"Cristopher",
"Dacia",
"Damion",
"Danae",
"Daniell",
"Danika",
"Danille",
"Danilo",
"Dannette",
"Dannie",
"Danuta",
"Danyell",
"Darby",
"Darell",
"Dario",
"Daron",
"Darrick",
"Darron",
"Deangelo",
"Dee",
"Del",
"Delaine",
"Delena",
"Delicia",
"Delmer",
"Delpha",
"Demarcus",
"Demetrice",
"Demetrius",
"Denese",
"Deshawn",
"Devora",
"Devorah",
"Dewitt",
"Diedre",
"Dillon",
"Dimple",
"Dionna",
"Doloris",
"Domenic",
"Domonique",
"Dong",
"Donn",
"Donte",
"Donya",
"Doretta",
"Dorie",
"Dorsey",
"Douglass",
"Drema",
"Dung",
"Dwain",
"Dyan",
"Ebonie",
"Echo",
"Edda",
"Edgardo",
"Edison",
"Edmundo",
"Edward",
"Elanor",
"Elden",
"Eldridge",
"Elenore",
"Elisha",
"Ellsworth",
"Elly",
"Elois",
"Elroy",
"Elvina",
"Emerald",
"Emerita",
"Emmitt",
"Enoch",
"Epifania",
"Erasmo",
"Erinn",
"Erline",
"Ermelinda",
"Erminia",
"Ethelene",
"Eugene",
"Eusebio",
"Evan",
"Evelin",
"Exie",
"Ezekiel",
"Ezequiel",
"Fae",
"Faustino",
"Fausto",
"Fe",
"Felton",
"Fermin",
"Filiberto",
"Florencio",
"Florentino",
"Floretta",
"Foster",
"Francie",
"Francina",
"Francoise",
"Franklyn",
"Fredric",
"Fumiko",
"Garfield",
"Garret",
"Gaston",
"Gayle",
"Gaylene",
"Gaylord",
"Gaynelle",
"Gearldine",
"Genia",
"Gennie",
"Geraldo",
"Gertude",
"Gianna",
"Gino",
"Giuseppe",
"Glennie",
"Glynda",
"Glynis",
"Graig",
"Granville",
"Grayce",
"Gwenn",
"Gwyn",
"Hai",
"Hang",
"Hanh",
"Hank",
"Harland",
"Hassan",
"Hayden",
"Haywood",
"Hedy",
"Herb",
"Herta",
"Hilaria",
"Hilario",
"Hilde",
"Hildegarde",
"Hildred",
"Hilton",
"Hipolito",
"Hobert",
"Hong",
"Horacio",
"Hosea",
"Hoyt",
"Huey",
"Hyacinth",
"Hyman",
"Ike",
"Ilda",
"Iluminada",
"Inocencia",
"Irish",
"Isa",
"Isaias",
"Isidra",
"Isis",
"Isreal",
"Ivelisse",
"Jacinda",
"Jacinto",
"Jacquelyne",
"Jacquie",
"Jacquiline",
"Jadwiga",
"Jae",
"Jae",
"Jaleesa",
"Jamaal",
"Jamey",
"Jamey",
"Jamison",
"Janay",
"Janee",
"Janise",
"Jann",
"Jannet",
"Jarod",
"Jarred",
"Jaye",
"Jc",
"Jeanmarie",
"Jed",
"Jefferey",
"Jen",
"Jene",
"Jenice",
"Jeramy",
"Jere",
"Jeromy",
"Jerrell",
"Jerrica",
"Jerrold",
"Jesusa",
"Jetta",
"Jewel",
"Jewell",
"Jimmy",
"Joannie",
"Johana",
"Johna",
"Johnson",
"Jolanda",
"Jolyn",
"Jona",
"Jonah",
"Jordon",
"Josiah",
"Joseph",
"Josphine",
"Jude",
"Judson",
"Julian",
"Juliane",
"Junita",
"Justin",
"Ka",
"Kaila",
"Kaley",
"Kam",
"Kandis",
"Karine",
"Karl",
"Karleen",
"Kary",
"Karyl",
"Kasey",
"Kasie",
"Kathe",
"Kathey",
"Katia",
"Katrice",
"Keena",
"Keenan",
"Kelle",
"Kelley",
"Kena",
"Keneth",
"Kenton",
"Keven",
"Kiersten",
"Kimbery",
"Kimiko",
"King",
"Kip",
"Klara",
"Korey",
"Kory",
"Kraig",
"Kristel",
"Kristofer",
"Lachelle",
"Lacy",
"Lakiesha",
"Lala",
"Laquanda",
"Laraine",
"Laronda",
"Larry",
"Lasandra",
"Latashia",
"Latesha",
"Latina",
"Latrisha",
"Launa",
"Lauren",
"Laurice",
"Lauryn",
"Lavera",
"Lavette",
"Lavonna",
"Lawanna",
"Lawerence",
"Leandro",
"Leif",
"Leigh",
"Leighann",
"Leisha",
"Len",
"Lenard",
"Lenny",
"Leonore",
"Lesley",
"Lexie",
"Lezlie",
"Liberty",
"Librada",
"Lindsay",
"Lino",
"Lisbeth",
"Lizzette",
"Loida",
"Long",
"Lonny",
"Loriann",
"Loris",
"Lory",
"Lou",
"Louie",
"Lucius",
"Luigi",
"Luise",
"Luna",
"Lupe",
"Lyman",
"Lyndon",
"Lynell",
"Lynetta",
"Lynsey",
"Lynwood",
"Mac",
"Madlyn",
"Magdalen",
"Maia",
"Maile",
"Malcom",
"Malik",
"Mallie",
"Man",
"Mana",
"Manual",
"Marceline",
"Marcellus",
"Marcelo",
"Margareta",
"Margert",
"Marget",
"Marguerita",
"Maria",
"Mariko",
"Marilu",
"Marinda",
"Marivel",
"Markus",
"Marlana",
"Marlen",
"Martin",
"Maryalice",
"Mathilde",
"Mauro",
"Maximo",
"Maybell",
"Mckinley",
"Meggan",
"Mel",
"Melaine",
"Melda",
"Melissia",
"Melvin",
"Mendy",
"Meri",
"Merrie",
"Mica",
"Michal",
"Michale",
"Mignon",
"Miguelina",
"Mika",
"Mikel",
"Milagro",
"Milan",
"Milo",
"Minda",
"Minh",
"Miquel",
"Mireille",
"Mirtha",
"Miss",
"Mitchell",
"Mitzie",
"Modesto",
"Mohamed",
"Mose",
"Moshe",
"Narcisa",
"Natashia",
"Nathanael",
"Nathanial",
"Neville",
"Newton",
"Nicky",
"Noble",
"Noma",
"Norah",
"Noriko",
"Obdulia",
"Odelia",
"Odis",
"Olen",
"Olimpia",
"Olin",
"Omega",
"Omer",
"Oren",
"Orval",
"Oswaldo",
"Otha",
"Otha",
"Ozella",
"Palmer",
"Pandora",
"Paris",
"Patria",
"Patricia",
"Penni",
"Phylicia",
"Piedad",
"Porfirio",
"Porter",
"Prince",
"Quinn",
"Quintin",
"Raguel",
"Raleigh",
"Ranae",
"Randee",
"Rashad",
"Rasheeda",
"Rayford",
"Raylene",
"Raymon",
"Raymond",
"Reda",
"Reiko",
"Renaldo",
"Renato",
"Renetta",
"Rey",
"Reyes",
"Reynalda",
"Rhett",
"Rhona",
"Richie",
"Ricki",
"Rico",
"Robt",
"Rochell",
"Rolf",
"Rolland",
"Rosario",
"Roseline",
"Roselle",
"Roxy",
"Rozella",
"Rudolf",
"Rudy",
"Rueben",
"Rupert",
"Rutha",
"Sal",
"Samira",
"Samual",
"Sandie",
"Sanora",
"Santo",
"Sebrina",
"Shad",
"Sharri",
"Shaunda",
"Shaunna",
"Shavonne",
"Shawana",
"Shawnna",
"Shayne",
"Sheilah",
"Shemeka",
"Shenita",
"Sherika",
"Sherlyn",
"Sherwood",
"Shery",
"Shirleen",
"Shirley",
"Shon",
"Sid",
"Silvana",
"Siu",
"Sol",
"Solange",
"Stanford",
"Stanton",
"Sung",
"Susy",
"Svetlana",
"Tad",
"Tai",
"Taisha",
"Talitha",
"Tameika",
"Tamesha",
"Tamisha",
"Tanner",
"Tashia",
"Temeka",
"Teodoro",
"Tequila",
"Tereasa",
"Tesha",
"Thanh",
"Theo",
"Theola",
"Thora",
"Titus",
"Tobias",
"Tod",
"Tomi",
"Tomiko",
"Toney",
"Tory",
"Toshiko",
"Towanda",
"Tran",
"Trang",
"Trinh",
"Trinidad",
"Tristan",
"Troy",
"Trula",
"Tuan",
"Twanna",
"Tyree",
"Tyrell",
"Tyron",
"Usha",
"Ute",
"Val",
"Valentine",
"Vella",
"Veola",
"Verdie",
"Verena",
"Verlene",
"Verlie",
"Veta",
"Vincenzo",
"Virgilio",
"Von",
"Waldo",
"Walker",
"Wally",
"Walter",
"Walton",
"Waltraud",
"Waneta",
"Warner",
"Waylon",
"Wei",
"Wen",
"Werner",
"Wes",
"Whitney",
"Wilber",
"Willian",
"Williemae",
"Willy",
"Wilton",
"Winford",
"Wonda",
"Xochitl",
"Yi",
"Yolando",
"Yong",
"Yuk",
"Yukiko",
"Yuko",
"Yung",
"Yuri",
"Zachariah",
"Zack",
"Zackary",
}
================================================
FILE: pkg/data/industries.go
================================================
package data
var Industries = []string{"Accounting", "Airlines/Aviation", "Alternative Dispute Resolution", "Alternative Medicine", "Animation", "Apparel & Fashion", "Architecture & Planning", "Arts & Crafts", "Automotive", "Aviation & Aerospace", "Banking", "Biotechnology", "Broadcast Media", "Building Materials", "Business Supplies & Equipment", "Capital Markets", "Chemicals", "Civic & Social Organization", "Civil Engineering", "Commercial Real Estate", "Computer & Network Security", "Computer Games", "Computer Hardware", "Computer Networking", "Computer Software", "Construction", "Consumer Electronics", "Consumer Goods", "Consumer Services", "Cosmetics", "Dairy", "Defense & Space", "Design", "Education Management", "E-learning", "Electrical & Electronic Manufacturing", "Entertainment", "Environmental Services", "Events Services", "Executive Office", "Facilities Services", "Farming", "Financial Services", "Fine Art", "Fishery", "Food & Beverages", "Food Production", "Fundraising", "Furniture", "Gambling & Casinos", "Glass, Ceramics & Concrete", "Government Administration", "Government Relations", "Graphic Design", "Health, Wellness & Fitness", "Higher Education", "Hospital & Health Care", "Hospitality", "Human Resources", "Import & Export", "Individual & Family Services", "Industrial Automation", "Information Services", "Information Technology & Services", "Insurance", "International Affairs", "International Trade & Development", "Internet", "Investment Banking/Venture", "Investment Management", "Judiciary", "Law Enforcement", "Law Practice", "Legal Services", "Legislative Office", "Leisure & Travel", "Libraries", "Logistics & Supply Chain", "Luxury Goods & Jewelry", "Machinery", "Management Consulting", "Maritime", "Marketing & Advertising", "Market Research", "Mechanical or Industrial Engineering", "Media Production", "Medical Device", "Medical Practice", "Mental Health Care", "Military", "Mining & Metals", "Motion Pictures & Film", "Museums & Institutions", "Music", "Nanotechnology", "Newspapers", "Nonprofit Organization Management", "Oil & Energy", "Online Publishing", "Outsourcing/Offshoring", "Package/Freight Delivery", "Packaging & Containers", "Paper & Forest Products", "Performing Arts", "Pharmaceuticals", "Philanthropy", "Photography", "Plastics", "Political Organization", "Primary/Secondary", "Printing", "Professional Training", "Program Development", "Public Policy", "Public Relations", "Public Safety", "Publishing", "Railroad Manufacture", "Ranching", "Real Estate", "Recreational", "Facilities & Services", "Religious Institutions", "Renewables & Environment", "Research", "Restaurants", "Retail", "Security & Investigations", "Semiconductors", "Shipbuilding", "Sporting Goods", "Sports", "Staffing & Recruiting", "Supermarkets", "Telecommunications", "Textiles", "Think Tanks", "Tobacco", "Translation & Localization", "Transportation/Trucking/Railroad", "Utilities", "Venture Capital", "Veterinary", "Warehousing", "Wholesale", "Wine & Spirits", "Wireless", "Writing & Editing"}
================================================
FILE: pkg/data/last_names.go
================================================
package data
// Lastnames is an array of last names
var Lastnames = []string{
"Adams",
"Adkins",
"Aguilar",
"Alexander",
"Allen",
"Alvarado",
"Alvarez",
"Anderson",
"Andrews",
"Armstrong",
"Arnold",
"Austin",
"Bailey",
"Baker",
"Baldwin",
"Ball",
"Ballard",
"Banks",
"Barber",
"Barker",
"Barnes",
"Barnett",
"Barrett",
"Bates",
"Beck",
"Becker",
"Bell",
"Bennett",
"Benson",
"Berry",
"Bishop",
"Black",
"Blair",
"Blake",
"Bowen",
"Bowman",
"Boyd",
"Bradley",
"Brady",
"Brewer",
"Briggs",
"Brock",
"Brooks",
"Brown",
"Bryant",
"Buchanan",
"Burgess",
"Burke",
"Burns",
"Burton",
"Bush",
"Butler",
"Byrd",
"Caldwell",
"Campbell",
"Cannon",
"Carlson",
"Carpenter",
"Carr",
"Carroll",
"Carter",
"Castillo",
"Castro",
"Chambers",
"Chandler",
"Chapman",
"Chavez",
"Christensen",
"Clark",
"Cobb",
"Cohen",
"Cole",
"Coleman",
"Collins",
"Colon",
"Conner",
"Cook",
"Cooper",
"Copeland",
"Cox",
"Craig",
"Crawford",
"Cross",
"Cruz",
"Cummings",
"Cunningham",
"Curry",
"Curtis",
"Daniel",
"Daniels",
"Davidson",
"Davis",
"Dawson",
"Day",
"Dean",
"Delgado",
"Dennis",
"Diaz",
"Dixon",
"Douglas",
"Doyle",
"Duncan",
"Dunn",
"Edwards",
"Elliott",
"Ellis",
"Erickson",
"Estrada",
"Evans",
"Farmer",
"Ferguson",
"Fernandez",
"Fields",
"Fisher",
"Fitzgerald",
"Fleming",
"Fletcher",
"Flores",
"Flowers",
"Floyd",
"Ford",
"Foster",
"Fowler",
"Fox",
"Francis",
"Frank",
"Franklin",
"Frazier",
"Freeman",
"French",
"Fuller",
"Garcia",
"Gardner",
"Garner",
"Garrett",
"Garza",
"George",
"Gibbs",
"Gibson",
"Gilbert",
"Gill",
"Glover",
"Gomez",
"Gonzales",
"Gonzalez",
"Goodman",
"Goodwin",
"Gordon",
"Graham",
"Grant",
"Graves",
"Gray",
"Green",
"Greene",
"Greer",
"Gregory",
"Griffin",
"Griffith",
"Gross",
"Guerrero",
"Gutierrez",
"Guzman",
"Hale",
"Hall",
"Hamilton",
"Hammond",
"Hampton",
"Hansen",
"Hanson",
"Hardy",
"Harmon",
"Harper",
"Harris",
"Harrison",
"Hart",
"Harvey",
"Hawkins",
"Hayes",
"Haynes",
"Henderson",
"Henry",
"Hernandez",
"Herrera",
"Hicks",
"Higgins",
"Hill",
"Hines",
"Hodges",
"Hoffman",
"Holland",
"Holloway",
"Holmes",
"Holt",
"Hopkins",
"Horton",
"Houston",
"Howard",
"Howell",
"Hubbard",
"Hudson",
"Hughes",
"Hunt",
"Hunter",
"Ingram",
"Jackson",
"Jacobs",
"James",
"Jenkins",
"Jennings",
"Jensen",
"Jimenez",
"Johnson",
"Johnston",
"Jones",
"Jordan",
"Joseph",
"Keller",
"Kelley",
"Kelly",
"Kennedy",
"Kim",
"King",
"Klein",
"Knight",
"Lambert",
"Lane",
"Larson",
"Lawrence",
"Lawson",
"Lee",
"Leonard",
"Lewis",
"Lindsey",
"Little",
"Logan",
"Long",
"Lopez",
"Love",
"Lowe",
"Luca",
"Lucas",
"Lynch",
"Lyons",
"Mack",
"Maldonado",
"Malone",
"Mann",
"Manning",
"Marshall",
"Martin",
"Martinez",
"Mason",
"Matthews",
"Maxwell",
"May",
"Mcbride",
"Mccarthy",
"Mccormick",
"Mccoy",
"Mcdaniel",
"Mcdonald",
"Mcgee",
"Mckinney",
"Mclaughlin",
"Medina",
"Mendez",
"Mendoza",
"Meyer",
"Miles",
"Miller",
"Mills",
"Mitchell",
"Montgomery",
"Moody",
"Moore",
"Morales",
"Moran",
"Moreno",
"Morgan",
"Morris",
"Morrison",
"Moss",
"Mullins",
"Munoz",
"Murphy",
"Murray",
"Myers",
"Neal",
"Nelson",
"Newman",
"Newton",
"Nguyen",
"Nichols",
"Norman",
"Norris",
"Nunez",
"Obrien",
"Oliver",
"Olson",
"Ortega",
"Ortiz",
"Osborne",
"Owen",
"Owens",
"Padilla",
"Page",
"Palmer",
"Parker",
"Parks",
"Parsons",
"Patterson",
"Patton",
"Paul",
"Payne",
"Pearson",
"Pena",
"Perez",
"Perkins",
"Perry",
"Peters",
"Peterson",
"Phillips",
"Pierce",
"Pittman",
"Poole",
"Pope",
"Porter",
"Potter",
"Powell",
"Powers",
"Pratt",
"Price",
"Quinn",
"Ramirez",
"Ramos",
"Ramsey",
"Ray",
"Reed",
"Reese",
"Reeves",
"Reid",
"Reyes",
"Reynolds",
"Rhodes",
"Rice",
"Richards",
"Richardson",
"Riley",
"Rios",
"Rivera",
"Robbins",
"Roberts",
"Robertson",
"Robinson",
"Rodgers",
"Rodriguez",
"Rodriquez",
"Rogers",
"Romero",
"Rose",
"Ross",
"Rowe",
"Roy",
"Ruiz",
"Russell",
"Ryan",
"Salazar",
"Sanchez",
"Sanders",
"Sandoval",
"Santiago",
"Santos",
"Saunders",
"Schmidt",
"Schneider",
"Schultz",
"Schwartz",
"Scott",
"Sharp",
"Shaw",
"Shelton",
"Sherman",
"Silva",
"Simmons",
"Simon",
"Simpson",
"Sims",
"Snyder",
"Soto",
"Spencer",
"Stanley",
"Steele",
"Stephens",
"Stevens",
"Stevenson",
"Stewart",
"Stokes",
"Stone",
"Strickland",
"Sullivan",
"Sutton",
"Swanson",
"Tate",
"Taylor",
"Terry",
"Thomas",
"Thompson",
"Thornton",
"Todd",
"Torres",
"Townsend",
"Tucker",
"Turner",
"Tyler",
"Valdez",
"Vargas",
"Vasquez",
"Vaughn",
"Vega",
"Wade",
"Wagner",
"Walker",
"Wallace",
"Walsh",
"Walters",
"Walton",
"Ward",
"Warner",
"Warren",
"Washington",
"Waters",
"Watkins",
"Watson",
"Watts",
"Weaver",
"Webb",
"Weber",
"Webster",
"Welch",
"Wells",
"West",
"Wheeler",
"White",
"Williams",
"Williamson",
"Willis",
"Wilson",
"Wise",
"Wolfe",
"Wood",
"Woods",
"Wright",
"Yates",
"Young",
"Zimmerman",
}
================================================
FILE: pkg/data/nationalities.go
================================================
package data
var Nationalities = []string{"Afghan", "Albanian", "Algerian", "American", "Andorran", "Angolan", "Anguillan", "Citizen of Antigua and Barbuda", "Argentine", "Armenian", "Australian", "Austrian", "Azerbaijani", "Bahamian", "Bahraini", "Bangladeshi", "Barbadian", "Belarusian", "Belgian", "Belizean", "Beninese", "Bermudian", "Bhutanese", "Bolivian", "Citizen of Bosnia and Herzegovina", "Botswanan", "Brazilian", "British", "British Virgin Islander", "Bruneian", "Bulgarian", "Burkinan", "Burmese", "Burundian", "Cambodian", "Cameroonian", "Canadian", "Cape Verdean", "Cayman Islander", "Central African", "Chadian", "Chilean", "Chinese", "Colombian", "Comoran", "Congolese (Congo)", "Congolese (DRC)", "Cook Islander", "Costa Rican", "Croatian", "Cuban", "Cymraes", "Cymro", "Cypriot", "Czech", "Danish", "Djiboutian", "Dominican", "Citizen of the Dominican Republic", "Dutch", "East Timorese", "Ecuadorean", "Egyptian", "Emirati", "English", "Equatorial Guinean", "Eritrean", "Estonian", "Ethiopian", "Faroese", "Fijian", "Filipino", "Finnish", "French", "Gabonese", "Gambian", "Georgian", "German", "Ghanaian", "Gibraltarian", "Greek", "Greenlandic", "Grenadian", "Guamanian", "Guatemalan", "Citizen of Guinea-Bissau", "Guinean", "Guyanese", "Haitian", "Honduran", "Hong Konger", "Hungarian", "Icelandic", "Indian", "Indonesian", "Iranian", "Iraqi", "Irish", "Israeli", "Italian", "Ivorian", "Jamaican", "Japanese", "Jordanian", "Kazakh", "Kenyan", "Kittitian", "Citizen of Kiribati", "Kosovan", "Kuwaiti", "Kyrgyz", "Lao", "Latvian", "Lebanese", "Liberian", "Libyan", "Liechtenstein citizen", "Lithuanian", "Luxembourger", "Macanese", "Macedonian", "Malagasy", "Malawian", "Malaysian", "Maldivian", "Malian", "Maltese", "Marshallese", "Martiniquais", "Mauritanian", "Mauritian", "Mexican", "Micronesian", "Moldovan", "Monegasque", "Mongolian", "Montenegrin", "Montserratian", "Moroccan", "Mosotho", "Mozambican", "Namibian", "Nauruan", "Nepalese", "New Zealander", "Nicaraguan", "Nigerian", "Nigerien", "Niuean", "North Korean", "Northern Irish", "Norwegian", "Omani", "Pakistani", "Palauan", "Palestinian", "Panamanian", "Papua New Guinean", "Paraguayan", "Peruvian", "Pitcairn Islander", "Polish", "Portuguese", "Prydeinig", "Puerto Rican", "Qatari", "Romanian", "Russian", "Rwandan", "Salvadorean", "Sammarinese", "Samoan", "Sao Tomean", "Saudi Arabian", "Scottish", "Senegalese", "Serbian", "Citizen of Seychelles", "Sierra Leonean", "Singaporean", "Slovak", "Slovenian", "Solomon Islander", "Somali", "South African", "South Korean", "South Sudanese", "Spanish", "Sri Lankan", "St Helenian", "St Lucian", "Stateless", "Sudanese", "Surinamese", "Swazi", "Swedish", "Swiss", "Syrian", "Taiwanese", "Tajik", "Tanzanian", "Thai", "Togolese", "Tongan", "Trinidadian", "Tristanian", "Tunisian", "Turkish", "Turkmen", "Turks and Caicos Islander", "Tuvaluan", "Ugandan", "Ukrainian", "Uruguayan", "Uzbek", "Vatican citizen", "Citizen of Vanuatu", "Venezuelan", "Vietnamese", "Vincentian", "Wallisian", "Welsh", "Yemeni", "Zambian", "Zimbabwean"}
================================================
FILE: pkg/data/nouns.go
================================================
package data
var Nouns = []string{"Armour", "Barrymore", "Cabot", "Catholicism", "Chihuahua", "Christianity", "Easter", "Frenchman", "Lowry", "Mayer", "Orientalism", "Pharaoh", "Pueblo", "Pullman", "Rodeo", "Saturday", "Sister", "Snead", "Syrah", "Tuesday", "Woodward", "abbey", "absence", "absorption", "abstinence", "absurdity", "abundance", "acceptance", "accessibility", "accommodation", "accomplice", "accountability", "accounting", "accreditation", "accuracy", "acquiescence", "acreage", "actress", "actuality", "adage", "adaptation", "adherence", "adjustment", "adoption", "adultery", "advancement", "advert", "advertisement", "advertising", "advice", "aesthetics", "affinity", "aggression", "agriculture", "aircraft", "airtime", "allegation", "allegiance", "allegory", "allergy", "allies", "alligator", "allocation", "allotment", "altercation", "ambulance", "ammonia", "anatomy", "anemia", "ankle", "announcement", "annoyance", "annuity", "anomaly", "anthropology", "anxiety", "apartheid", "apologise", "apostle", "apparatus", "appeasement", "appellation", "appendix", "applause", "appointment", "appraisal", "archery", "archipelago", "architecture", "ardor", "arrears", "arrow", "artisan", "artistry", "ascent", "assembly", "assignment", "association", "asthma", "atheism", "attacker", "attraction", "attractiveness", "auspices", "authority", "avarice", "aversion", "aviation", "babbling", "backlash", "baker", "ballet", "balls", "banjo", "baron", "barrier", "barrister", "bases", "basin", "basis", "battery", "battling", "bedtime", "beginner", "begun", "bending", "bicycle", "billing", "bingo", "biography", "biology", "birthplace", "blackberry", "blather", "blossom", "boardroom", "boasting", "bodyguard", "boldness", "bomber", "bondage", "bonding", "bones", "bonus", "bookmark", "boomer", "booty", "bounds", "bowling", "brainstorming", "breadth", "breaker", "brewer", "brightness", "broccoli", "broth", "brotherhood", "browsing", "brunch", "brunt", "building", "bullion", "bureaucracy", "burglary", "buyout", "by-election", "cabal", "cabbage", "calamity", "campaign", "canonization", "captaincy", "carcass", "carrier", "cartridge", "cassette", "catfish", "caught", "celebrity", "cemetery", "certainty", "certification", "charade", "chasm", "check-in", "cheerleader", "cheesecake", "chemotherapy", "chili", "china", "chivalry", "cholera", "cilantro", "circus", "civilisation", "civility", "clearance", "clearing", "clerk", "climber", "closeness", "clothing", "clutches", "coaster", "coconut", "coding", "collaborator", "colleague", "college", "collision", "colors", "combustion", "comedian", "comer", "commander", "commemoration", "commenter", "commissioner", "commune", "competition", "completeness", "complexity", "computing", "comrade", "concur", "condominium", "conduit", "confidant", "configuration", "confiscation", "conflagration", "conflict", "consist", "consistency", "consolidation", "conspiracy", "constable", "consul", "consultancy", "contentment", "contents", "contractor", "conversation", "cornerstone", "corpus", "correlation", "councilman", "counselor", "countdown", "countryman", "coverage", "covering", "coyote", "cracker", "creator", "criminality", "crocodile", "cropping", "cross-examination", "crossover", "crossroads", "culprit", "cumin", "curator", "curfew", "cursor", "custard", "cutter", "cyclist", "cyclone", "cylinder", "cynicism", "daddy", "damsel", "darkness", "dawning", "daybreak", "dealing", "dedication", "deduction", "defection", "deference", "deficiency", "definition", "deflation", "degeneration", "delegation", "delicacy", "delirium", "deliverance", "demeanor", "demon", "demonstration", "denomination", "dentist", "departure", "depletion", "depression", "designation", "despotism", "detention", "developer", "devolution", "dexterity", "diagnosis", "dialect", "differentiation", "digger", "digress", "dioxide", "diploma", "disability", "disarmament", "discord", "discovery", "dishonesty", "dismissal", "disobedience", "dispatcher", "disservice", "distribution", "distributor", "diver", "diversity", "docking", "dollar", "dominance", "domination", "dominion", "donkey", "doorstep", "doorway", "dossier", "downside", "drafting", "drank", "drilling", "driver", "drumming", "drunkenness", "duchess", "ducking", "dugout", "dumps", "dwelling", "dynamics", "eagerness", "earnestness", "earnings", "eater", "editor", "effectiveness", "electricity", "elements", "eloquence", "emancipation", "embodiment", "embroidery", "emperor", "employment", "encampment", "enclosure", "encouragement", "endangerment", "enlightenment", "enthusiasm", "environment", "environs", "envoy", "epilepsy", "equation", "equator", "error", "espionage", "estimation", "evacuation", "exaggeration", "examination", "exclamation", "expediency", "exploitation", "extinction", "eyewitness", "falls", "fascism", "fastball", "feces", "feedback", "ferocity", "fertilization", "fetish", "finale", "firing", "fixing", "flashing", "flask", "flora", "fluke", "folklore", "follower", "foothold", "footing", "forefinger", "forefront", "forgiveness", "formality", "formation", "formula", "foyer", "fragmentation", "framework", "fraud", "freestyle", "frequency", "friendliness", "fries", "frigate", "fulfillment", "function", "functionality", "fundraiser", "fusion", "futility", "gallantry", "gallery", "genesis", "genitals", "girlfriend", "glamour", "glitter", "glucose", "google", "grandeur", "grappling", "greens", "gridlock", "grocer", "groundwork", "grouping", "gunman", "gusto", "habitation", "hacker", "hallway", "hamburger", "hammock", "handling", "hands", "handshake", "happiness", "hardship", "headcount", "header", "headquarters", "heads", "headset", "hearth", "hearts", "heath", "hegemony", "height", "hello", "helper", "helping", "helplessness", "hierarchy", "hoarding", "hockey", "homeland", "homer", "honesty", "horror", "horseman", "hostility", "housing", "humility", "hurricane", "iceberg", "ignition", "illness", "illustration", "illustrator", "immunity", "immunization", "imperialism", "imprisonment", "inaccuracy", "inaction", "inactivity", "inauguration", "indecency", "indicator", "inevitability", "infamy", "infiltration", "influx", "iniquity", "innocence", "innovation", "insanity", "inspiration", "instruction", "instructor", "insurer", "interact", "intercession", "intercourse", "intermission", "interpretation", "intersection", "interval", "intolerance", "intruder", "invasion", "investment", "involvement", "irrigation", "iteration", "jenny", "jogging", "jones", "joseph", "juggernaut", "juncture", "jurisprudence", "juror", "kangaroo", "kingdom", "knocking", "laborer", "larceny", "laurels", "layout", "leadership", "leasing", "legislation", "leopard", "liberation", "licence", "lifeblood", "lifeline", "ligament", "lighting", "likeness", "line-up", "lineage", "liner", "lineup", "liquidation", "listener", "literature", "litigation", "litre", "loathing", "locality", "lodging", "logic", "longevity", "lookout", "lordship", "lustre", "ma'am", "machinery", "madness", "magnificence", "mahogany", "mailing", "mainframe", "maintenance", "majority", "manga", "mango", "manifesto", "mantra", "manufacturer", "maple", "martin", "martyrdom", "mathematician", "matrix", "matron", "mayhem", "mayor", "means", "meantime", "measurement", "mechanics", "mediator", "medics", "melodrama", "memory", "mentality", "metaphysics", "method", "metre", "miner", "mirth", "misconception", "misery", "mishap", "misunderstanding", "mobility", "molasses", "momentum", "monarchy", "monument", "morale", "mortality", "motto", "mouthful", "mouthpiece", "mover", "movie", "mowing", "murderer", "musician", "mutation", "mythology", "narration", "narrator", "nationality", "negligence", "neighborhood", "neighbour", "nervousness", "networking", "nexus", "nightmare", "nobility", "nobody", "noodle", "normalcy", "notification", "nourishment", "novella", "nucleus", "nuisance", "nursery", "nutrition", "nylon", "oasis", "obscenity", "obscurity", "observer", "offense", "onslaught", "operation", "opportunity", "opposition", "oracle", "orchestra", "organisation", "organizer", "orientation", "originality", "ounce", "outage", "outcome", "outdoors", "outfield", "outing", "outpost", "outset", "overseer", "owner", "oxygen", "pairing", "panther", "paradox", "parliament", "parsley", "parson", "passenger", "pasta", "patchwork", "pathos", "patriotism", "pendulum", "penguin", "permission", "persona", "perusal", "pessimism", "peter", "philosopher", "phosphorus", "phrasing", "physique", "piles", "plateau", "playing", "plaza", "plethora", "plurality", "pneumonia", "pointer", "poker", "policeman", "polling", "poster", "posterity", "posting", "postponement", "potassium", "pottery", "poultry", "pounding", "pragmatism", "precedence", "precinct", "preoccupation", "pretense", "priesthood", "prisoner", "privacy", "probation", "proceeding", "proceedings", "processing", "processor", "progression", "projection", "prominence", "propensity", "prophecy", "prorogation", "prospectus", "protein", "prototype", "providence", "provider", "provocation", "proximity", "puberty", "publicist", "publicity", "publisher", "pundit", "putting", "quantity", "quart", "quilting", "quorum", "racism", "radiance", "ralph", "rancher", "ranger", "rapidity", "rapport", "ratification", "rationality", "reaction", "reader", "reassurance", "rebirth", "receptor", "recipe", "recognition", "recourse", "recreation", "rector", "recurrence", "redemption", "redistribution", "redundancy", "refinery", "reformer", "refrigerator", "regularity", "regulator", "reinforcement", "reins", "reinstatement", "relativism", "relaxation", "rendition", "repayment", "repentance", "repertoire", "repository", "republic", "reputation", "resentment", "residency", "resignation", "restaurant", "resurgence", "retailer", "retention", "retirement", "reviewer", "riches", "righteousness", "roadblock", "robber", "rocks", "rubbing", "runoff", "saloon", "salvation", "sarcasm", "saucer", "savior", "scarcity", "scenario", "scenery", "schism", "scholarship", "schoolboy", "schooner", "scissors", "scolding", "scooter", "scouring", "scrimmage", "scrum", "seating", "sediment", "seduction", "seeder", "seizure", "self-confidence", "self-control", "self-respect", "semicolon", "semiconductor", "semifinal", "senator", "sending", "serenity", "seriousness", "servitude", "sesame", "setup", "sewing", "sharpness", "shaving", "shoplifting", "shopping", "siding", "simplicity", "simulation", "sinking", "skate", "sloth", "slugger", "snack", "snail", "snapshot", "snark", "soccer", "solemnity", "solicitation", "solitude", "somewhere", "sophistication", "sorcery", "souvenir", "spaghetti", "specification", "specimen", "specs", "spectacle", "spectre", "speculation", "sperm", "spoiler", "squad", "squid", "staging", "stagnation", "staircase", "stairway", "stamina", "standpoint", "standstill", "stanza", "statement", "stillness", "stimulus", "stocks", "stole", "stoppage", "storey", "storyteller", "stylus", "subcommittee", "subscription", "subsidy", "suburb", "success", "sufferer", "supposition", "suspension", "sweater", "sweepstakes", "swimmer", "syndrome", "synopsis", "syntax", "system", "tablespoon", "taker", "tavern", "technology", "telephony", "template", "tempo", "tendency", "tendon", "terrier", "terror", "terry", "theater", "theology", "therapy", "thicket", "thoroughfare", "threshold", "thriller", "thunderstorm", "ticker", "tiger", "tights", "to-day", "tossing", "touchdown", "tourist", "tourney", "toxicity", "tracing", "tractor", "translation", "transmission", "transmitter", "trauma", "traveler", "treadmill", "trilogy", "trout", "tuning", "twenties", "tycoon", "tyrant", "ultimatum", "underdog", "underwear", "unhappiness", "unification", "university", "uprising", "vaccination", "validity", "vampire", "vanguard", "variation", "vegetation", "verification", "viability", "vicinity", "victory", "viewpoint", "villa", "vindication", "violation", "vista", "vocalist", "vogue", "volcano", "voltage", "vomiting", "vulnerability", "waistcoat", "waitress", "wardrobe", "warmth", "watchdog", "wealth", "weariness", "whereabouts", "whisky", "whiteness", "widget", "width", "windfall", "wiring", "witchcraft", "withholding", "womanhood", "words", "workman", "youngster"}
================================================
FILE: pkg/data/occupations.go
================================================
package data
var Occupations = []string{"accountant", "actor", "actuary", "adhesive bonding machine tender", "adjudicator", "administrative assistant", "administrative services manager", "adult education teacher", "advertising manager", "advertising sales agent", "aerobics instructor", "aerospace engineer", "aerospace engineering technician", "agent", "agricultural engineer", "agricultural equipment operator", "agricultural grader", "agricultural inspector", "agricultural manager", "agricultural sciences teacher", "agricultural sorter", "agricultural technician", "agricultural worker", "air conditioning installer", "air conditioning mechanic", "air traffic controller", "aircraft cargo handling supervisor", "aircraft mechanic", "aircraft service technician", "airline copilot", "airline pilot", "ambulance dispatcher", "ambulance driver", "amusement machine servicer", "anesthesiologist", "animal breeder", "animal control worker", "animal scientist", "animal trainer", "animator", "answering service operator", "anthropologist", "apparel patternmaker", "apparel worker", "arbitrator", "archeologist", "architect", "architectural drafter", "architectural manager", "archivist", "art director", "art teacher", "artist", "assembler", "astronomer", "athlete", "athletic trainer", "ATM machine repairer", "atmospheric scientist", "attendant", "audio and video equipment technician", "audio-visual and multimedia collections specialist", "audiologist", "auditor", "author", "auto damage insurance appraiser", "automotive and watercraft service attendant", "automotive glass installer", "automotive mechanic", "avionics technician", "back-end developer", "baggage porter", "bailiff", "baker", "barback", "barber", "bartender", "basic education teacher", "behavioral disorder counselor", "bellhop", "bench carpenter", "bicycle repairer", "bill and account collector", "billing and posting clerk", "biochemist", "biological technician", "biomedical engineer", "biophysicist", "blaster", "blending machine operator", "blockmason", "boiler operator", "boilermaker", "bookkeeper", "boring machine tool tender", "brazer", "brickmason", "bridge and lock tender", "broadcast news analyst", "broadcast technician", "brokerage clerk", "budget analyst", "building inspector", "bus mechanic", "butcher", "buyer", "cabinetmaker", "cafeteria attendant", "cafeteria cook", "camera operator", "camera repairer", "cardiovascular technician", "cargo agent", "carpenter", "carpet installer", "cartographer", "cashier", "caster", "ceiling tile installer", "cellular equipment installer", "cement mason", "channeling machine operator", "chauffeur", "checker", "chef", "chemical engineer", "chemical plant operator", "chemist", "chemistry teacher", "chief executive", "child social worker", "childcare worker", "chiropractor", "choreographer", "civil drafter", "civil engineer", "civil engineering technician", "claims adjuster", "claims examiner", "claims investigator", "cleaner", "clinical laboratory technician", "clinical laboratory technologist", "clinical psychologist", "coating worker", "coatroom attendant", "coil finisher", "coil taper", "coil winder", "coin machine servicer", "commercial diver", "commercial pilot", "commodities sales agent", "communications equipment operator", "communications teacher", "community association manager", "community service manager", "compensation and benefits manager", "compliance officer", "composer", "computer hardware engineer", "computer network architect", "computer operator", "computer programmer", "computer science teacher", "computer support specialist", "computer systems administrator", "computer systems analyst", "concierge", "conciliator", "concrete finisher", "conservation science teacher", "conservation scientist", "conservation worker", "conservator", "construction inspector", "construction manager", "construction painter", "construction worker", "continuous mining machine operator", "convention planner", "conveyor operator", "cook", "cooling equipment operator", "copy marker", "correctional officer", "correctional treatment specialist", "correspondence clerk", "correspondent", "cosmetologist", "cost estimator", "costume attendant", "counseling psychologist", "counselor", "courier", "court reporter", "craft artist", "crane operator", "credit analyst", "credit checker", "credit counselor", "criminal investigator", "criminal justice teacher", "crossing guard", "curator", "custom sewer", "customer service representative", "cutter", "cutting machine operator", "dancer", "data entry keyer", "database administrator", "decorating worker", "delivery services driver", "demonstrator", "dental assistant", "dental hygienist", "dental laboratory technician", "dentist", "dermatologist", "derrick operator", "designer", "desktop publisher", "detective", "developer", "diagnostic medical sonographer", "die maker", "diesel engine specialist", "dietetic technician", "dietitian", "dinkey operator", "director", "dishwasher", "dispatcher", "DJ", "doctor", "door-to-door sales worker", "drafter", "dragline operator", "drama teacher", "dredge operator", "dressing room attendant", "dressmaker", "drier operator", "drilling machine tool operator", "dry-cleaning worker", "drywall installer", "dyeing machine operator", "earth driller", "economics teacher", "economist", "editor", "education administrator", "electric motor repairer", "electrical electronics drafter", "electrical engineer", "electrical equipment assembler", "electrical installer", "electrical power-line installer", "electrician", "electro-mechanical technician", "elementary school teacher", "elevator installer", "elevator repairer", "embalmer", "emergency management director", "emergency medical technician", "engine assembler", "engineer", "engineering manager", "engineering teacher", "english language teacher", "engraver", "entertainment attendant", "environmental engineer", "environmental science teacher", "environmental scientist", "epidemiologist", "escort", "etcher", "event planner", "excavating operator", "executive administrative assistant", "executive secretary", "exhibit designer", "expediting clerk", "explosives worker", "extraction worker", "fabric mender", "fabric patternmaker", "fabricator", "faller", "family practitioner", "family social worker", "family therapist", "farm advisor", "farm equipment mechanic", "farm labor contractor", "farmer", "farmworker", "fashion designer", "fast food cook", "fence erector", "fiberglass fabricator", "fiberglass laminator", "file clerk", "filling machine operator", "film and video editor", "financial analyst", "financial examiner", "financial manager", "financial services sales agent", "fine artist", "fire alarm system installer", "fire dispatcher", "fire inspector", "fire investigator", "firefighter", "fish and game warden", "fish cutter", "fish trimmer", "fisher", "fitness studies teacher", "fitness trainer", "flight attendant", "floor finisher", "floor layer", "floor sander", "floral designer", "food batchmaker", "food cooking machine operator", "food preparation worker", "food science technician", "food scientist", "food server", "food service manager", "food technologist", "foreign language teacher", "foreign literature teacher", "forensic science technician", "forest fire inspector", "forest fire prevention specialist", "forest worker", "forester", "forestry teacher", "forging machine setter", "foundry coremaker", "freight agent", "freight mover", "front-end developer", "fundraising manager", "funeral attendant", "funeral director", "funeral service manager", "furnace operator", "furnishings worker", "furniture finisher", "gaming booth cashier", "gaming cage worker", "gaming change person", "gaming dealer", "gaming investigator", "gaming manager", "gaming surveillance officer", "garment mender", "garment presser", "gas compressor", "gas plant operator", "gas pumping station operator", "general manager", "general practitioner", "geographer", "geography teacher", "geological engineer", "geological technician", "geoscientist", "glazier", "government program eligibility interviewer", "graduate teaching assistant", "graphic designer", "groundskeeper", "groundskeeping worker", "gynecologist", "hairdresser", "hairstylist", "hand grinding worker", "hand laborer", "hand packager", "hand packer", "hand polishing worker", "hand sewer", "hazardous materials removal worker", "head cook", "health and safety engineer", "health educator", "health information technician", "health services manager", "health specialties teacher", "healthcare social worker", "hearing officer", "heat treating equipment setter", "heating installer", "heating mechanic", "heavy truck driver", "highway maintenance worker", "historian", "history teacher", "hoist and winch operator", "home appliance repairer", "home economics teacher", "home entertainment installer", "home health aide", "home management advisor", "host", "hostess", "hostler", "hotel desk clerk", "housekeeping cleaner", "human resources assistant", "human resources manager", "human service assistant", "hunter", "hydrologist", "illustrator", "industrial designer", "industrial engineer", "industrial engineering technician", "industrial machinery mechanic", "industrial production manager", "industrial truck operator", "industrial-organizational psychologist", "information clerk", "information research scientist", "information security analyst", "information systems manager", "inspector", "instructional coordinator", "instructor", "insulation worker", "insurance claims clerk", "insurance sales agent", "insurance underwriter", "intercity bus driver", "interior designer", "internist", "interpreter", "interviewer", "investigator", "jailer", "janitor", "jeweler", "judge", "judicial law clerk", "kettle operator", "kiln operator", "kindergarten teacher", "laboratory animal caretaker", "landscape architect", "landscaping worker", "lathe setter", "laundry worker", "law enforcement teacher", "law teacher", "lawyer", "layout worker", "leather worker", "legal assistant", "legal secretary", "legislator", "librarian", "library assistant", "library science teacher", "library technician", "licensed practical nurse", "licensed vocational nurse", "life scientist", "lifeguard", "light truck driver", "line installer", "literacy teacher", "literature teacher", "loading machine operator", "loan clerk", "loan interviewer", "loan officer", "lobby attendant", "locker room attendant", "locksmith", "locomotive engineer", "locomotive firer", "lodging manager", "log grader", "logging equipment operator", "logistician", "machine feeder", "machinist", "magistrate judge", "magistrate", "maid", "mail clerk", "mail machine operator", "mail superintendent", "maintenance painter", "maintenance worker", "makeup artist", "management analyst", "manicurist", "manufactured building installer", "mapping technician", "marble setter", "marine engineer", "marine oiler", "market research analyst", "marketing manager", "marketing specialist", "marriage therapist", "massage therapist", "material mover", "materials engineer", "materials scientist", "mathematical science teacher", "mathematical technician", "mathematician", "maxillofacial surgeon", "measurer", "meat cutter", "meat packer", "meat trimmer", "mechanical door repairer", "mechanical drafter", "mechanical engineer", "mechanical engineering technician", "mediator", "medical appliance technician", "medical assistant", "medical equipment preparer", "medical equipment repairer", "medical laboratory technician", "medical laboratory technologist", "medical records technician", "medical scientist", "medical secretary", "medical services manager", "medical transcriptionist", "meeting planner", "mental health counselor", "mental health social worker", "merchandise displayer", "messenger", "metal caster", "metal patternmaker", "metal pickling operator", "metal pourer", "metal worker", "metal-refining furnace operator", "metal-refining furnace tender", "meter reader", "microbiologist", "middle school teacher", "milling machine setter", "millwright", "mine cutting machine operator", "mine shuttle car operator", "mining engineer", "mining safety engineer", "mining safety inspector", "mining service unit operator", "mixing machine setter", "mobile heavy equipment mechanic", "mobile home installer", "model maker", "model", "molder", "mortician", "motel desk clerk", "motion picture projectionist", "motorboat mechanic", "motorboat operator", "motorboat service technician", "motorcycle mechanic", "movers", "multimedia artist", "museum technician", "music director", "music teacher", "musical instrument repairer", "musician", "natural sciences manager", "naval architect", "network systems administrator", "new accounts clerk", "news vendor", "nonfarm animal caretaker", "nuclear engineer", "nuclear medicine technologist", "nuclear power reactor operator", "nuclear technician", "nursing aide", "nursing instructor", "nursing teacher", "nutritionist", "obstetrician", "occupational health and safety specialist", "occupational health and safety technician", "occupational therapist", "occupational therapy aide", "occupational therapy assistant", "offbearer", "office clerk", "office machine operator", "operating engineer", "operations manager", "operations research analyst", "ophthalmic laboratory technician", "optician", "optometrist", "oral surgeon", "order clerk", "order filler", "orderly", "ordnance handling expert", "orthodontist", "orthotist", "outdoor power equipment mechanic", "oven operator", "packaging machine operator", "painter ", "painting worker", "paper goods machine setter", "paperhanger", "paralegal", "paramedic", "parking enforcement worker", "parking lot attendant", "parts salesperson", "paving equipment operator", "payroll clerk", "pediatrician", "pedicurist", "personal care aide", "personal chef", "personal financial advisor", "personal trainer", "pest control worker", "pesticide applicator", "pesticide handler", "pesticide sprayer", "petroleum engineer", "petroleum gauger", "petroleum pump system operator", "petroleum refinery operator", "petroleum technician", "pharmacist", "pharmacy aide", "pharmacy technician", "philosophy teacher", "photogrammetrist", "photographer", "photographic process worker", "photographic processing machine operator", "physical therapist aide", "physical therapist assistant", "physical therapist", "physician assistant", "physician", "physicist", "physics teacher", "pile-driver operator", "pipefitter", "pipelayer", "planing machine operator", "planning clerk", "plant operator", "plant scientist", "plasterer", "plastic patternmaker", "plastic worker", "plumber", "podiatrist", "police dispatcher", "police officer", "policy processing clerk", "political science teacher", "political scientist", "postal service clerk", "postal service mail carrier", "postal service mail processing machine operator", "postal service mail processor", "postal service mail sorter", "postmaster", "postsecondary teacher", "poultry cutter", "poultry trimmer", "power dispatcher", "power distributor", "power plant operator", "power tool repairer", "precious stone worker", "precision instrument repairer", "prepress technician", "preschool teacher", "priest", "print binding worker", "printing press operator", "private detective", "probation officer", "procurement clerk", "producer", "product promoter", "product manager", "production clerk", "production occupation", "proofreader", "property manager", "prosthetist", "prosthodontist", "psychiatric aide", "psychiatric technician", "psychiatrist", "psychologist", "psychology teacher", "public relations manager", "public relations specialist", "pump operator", "purchasing agent", "purchasing manager", "radiation therapist", "radio announcer", "radio equipment installer", "radio operator", "radiologic technician", "radiologic technologist", "rail car repairer", "rail transportation worker", "rail yard engineer", "rail-track laying equipment operator", "railroad brake operator", "railroad conductor", "railroad police", "rancher", "real estate appraiser", "real estate broker", "real estate manager", "real estate sales agent", "receiving clerk", "receptionist", "record clerk", "recreation teacher", "recreation worker", "recreational therapist", "recreational vehicle service technician", "recyclable material collector", "referee", "refractory materials repairer", "refrigeration installer", "refrigeration mechanic", "refuse collector", "regional planner", "registered nurse", "rehabilitation counselor", "reinforcing iron worker", "reinforcing rebar worker", "religion teacher", "religious activities director", "religious worker", "rental clerk", "repair worker", "reporter", "residential advisor", "resort desk clerk", "respiratory therapist", "respiratory therapy technician", "retail buyer", "retail salesperson", "revenue agent", "rigger", "rock splitter", "rolling machine tender", "roof bolter", "roofer", "rotary drill operator", "roustabout", "safe repairer", "sailor", "sales engineer", "sales manager", "sales representative", "sampler", "sawing machine operator", "scaler", "school bus driver", "school psychologist", "school social worker", "scout leader", "sculptor", "secondary education teacher", "secondary school teacher", "secretary", "securities sales agent", "security guard", "security system installer", "segmental paver", "self-enrichment education teacher", "semiconductor processor", "septic tank servicer", "set designer", "sewer pipe cleaner", "sewing machine operator", "shampooer", "shaper", "sheet metal worker", "sheriff's patrol officer", "ship captain", "ship engineer", "ship loader", "shipmate", "shipping clerk", "shoe machine operator", "shoe worker", "short order cook", "signal operator", "signal repairer", "singer", "ski patrol", "skincare specialist", "slaughterer", "slicing machine tender", "slot supervisor", "social science research assistant", "social sciences teacher", "social scientist", "social service assistant", "social service manager", "social work teacher", "social worker", "sociologist", "sociology teacher", "software developer", "software engineer", "soil scientist", "solderer", "sorter", "sound engineering technician", "space scientist", "special education teacher", "speech-language pathologist", "sports book runner", "sports entertainer", "sports performer", "stationary engineer", "statistical assistant", "statistician", "steamfitter", "stock clerk", "stock mover", "stonemason", "street vendor", "streetcar operator", "structural iron worker", "structural metal fabricator", "structural metal fitter", "structural steel worker", "stucco mason", "substance abuse counselor", "substance abuse social worker", "subway operator", "surfacing equipment operator", "surgeon", "surgical technologist", "survey researcher", "surveying technician", "surveyor", "switch operator", "switchboard operator", "tailor", "tamping equipment operator", "tank car loader", "taper", "tax collector", "tax examiner", "tax preparer", "taxi driver", "teacher assistant", "teacher", "team assembler", "technical writer", "telecommunications equipment installer", "telemarketer", "telephone operator", "television announcer", "teller", "terrazzo finisher", "terrazzo worker", "tester", "textile bleaching operator", "textile cutting machine setter", "textile knitting machine setter", "textile presser", "textile worker", "therapist", "ticket agent", "ticket taker", "tile setter", "timekeeping clerk", "timing device assembler", "tire builder", "tire changer", "tire repairer", "title abstractor", "title examiner", "title searcher", "tobacco roasting machine operator", "tool filer", "tool grinder", "tool maker", "tool sharpener", "tour guide", "tower equipment installer", "tower operator", "track switch repairer", "tractor operator", "tractor-trailer truck driver", "traffic clerk", "traffic technician", "training and development manager", "training and development specialist", "transit police", "translator", "transportation equipment painter", "transportation inspector", "transportation security screener", "transportation worker", "trapper", "travel agent", "travel clerk", "travel guide", "tree pruner", "tree trimmer", "trimmer", "truck loader", "truck mechanic", "tuner", "turning machine tool operator", "tutor", "typist", "umpire", "undertaker", "upholsterer", "urban planner", "usher", "UX designer", "valve installer", "vending machine servicer", "veterinarian", "veterinary assistant", "veterinary technician", "vocational counselor", "vocational education teacher", "waiter", "waitress", "watch repairer", "water treatment plant operator", "weaving machine setter", "web developer", "weigher", "welder", "wellhead pumper", "wholesale buyer", "wildlife biologist", "window trimmer", "wood patternmaker", "woodworker", "word processor", "writer", "yardmaster", "zoologist"}
================================================
FILE: pkg/data/sentences.go
================================================
package data
var Sentences = []string{"The birch canoe slid on the smooth planks.", "Glue the sheet to the dark blue background.", "It's easy to tell the depth of a well.", "These days a chicken leg is a rare dish.", "Rice is often served in round bowls.", "The juice of lemons makes fine punch.", "The box was thrown beside the parked truck.", "The hogs were fed chopped corn and garbage.", "Four hours of steady work faced us.", "Large size in stockings is hard to sell.", "The boy was there when the sun rose.", "A rod is used to catch pink salmon.", "The source of the huge river is the clear spring.", "Kick the ball straight and follow through.", "Help the woman get back to her feet.", "A pot of tea helps to pass the evening.", "Smoky fires lack flame and heat.", "The soft cushion broke the man's fall.", "The salt breeze came across from the sea.", "The girl at the booth sold fifty bonds.", "The small pup gnawed a hole in the sock.", "The fish twisted and turned on the bent hook.", "Press the pants and sew a button on the vest.", "The swan dive was far short of perfect.", "The beauty of the view stunned the young boy.", "Two blue fish swam in the tank.", "Her purse was full of useless trash.", "The colt reared and threw the tall rider.", "It snowed, rained, and hailed the same morning.", "Read verse out loud for pleasure.", "Hoist the load to your left shoulder.", "Take the winding path to reach the lake.", "Note closely the size of the gas tank.", "Wipe the grease off his dirty face.", "Mend the coat before you go out.", "The wrist was badly strained and hung limp.", "The stray cat gave birth to kittens.", "The young girl gave no clear response.", "The meal was cooked before the bell rang.", "What joy there is in living.", "A king ruled the state in the early days.", "The ship was torn apart on the sharp reef.", "Sickness kept him home the third week.", "The wide road shimmered in the hot sun.", "The lazy cow lay in the cool grass.", "Lift the square stone over the fence.", "The rope will bind the seven books at once.", "Hop over the fence and plunge in.", "The friendly gang left the drug store.", "Mesh mire keeps chicks inside.", "The frosty air passed through the coat.", "The crooked maze failed to fool the mouse.", "Adding fast leads to wrong sums.", "The show was a flop from the very start.", "A saw is a tool used for making boards.", "The wagon moved on well oiled wheels.", "March the soldiers past the next hill.", "A cup of sugar makes sweet fudge.", "Place a rosebush near the porch steps.", "Both lost their lives in the raging storm.", "We talked of the slide show in the circus.", "Use a pencil to write the first draft.", "He ran half way to the hardware store.", "The clock struck to mark the third period.", "A small creek cut across the field.", "Cars and busses stalled in snow drifts.", "The set of china hit, the floor with a crash.", "This is a grand season for hikes on the road.", "The dune rose from the edge of the water.", "Those words were the cue for the actor to leave.", "A yacht slid around the point into the bay.", "The two met while playing on the sand.", "The ink stain dried on the finished page.", "The walled town was seized without a fight.", "The lease ran out in sixteen weeks.", "A tame squirrel makes a nice pet.", "The horn of the car woke the sleeping cop.", "The heart beat strongly and with firm strokes.", "The pearl was worn in a thin silver ring.", "The fruit peel was cut in thick slices.", "The Navy attacked the big task force.", "See the cat glaring at the scared mouse.", "There are more than two factors here.", "The hat brim was wide and too droopy.", "The lawyer tried to lose his case.", "The grass curled around the fence post.", "Cut the pie into large parts.", "Men strive but seldom get rich.", "Always close the barn door tight.", "He lay prone and hardly moved a limb.", "The slush lay deep along the street.", "A wisp of cloud hung in the blue air.", "A pound of sugar costs more than eggs.", "The fin was sharp and cut the clear water.", "The play seems dull and quite stupid.", "Bail the boat, to stop it from sinking.", "The term ended in late June that year.", "A tusk is used to make costly gifts.", "Ten pins were set in order.", "The bill as paid every third week.", "Oak is strong and also gives shade.", "Cats and dogs each hate the other.", "The pipe began to rust while new.", "Open the crate but don't break the glass.", "Add the sum to the product of these three.", "Thieves who rob friends deserve jail.", "The ripe taste of cheese improves with age.", "Act on these orders with great speed.", "The hog crawled under the high fence.", "Move the vat over the hot fire.", "The bark of the pine tree was shiny and dark.", "Leaves turn brown and yellow in the fall.", "The pennant waved when the wind blew.", "Split the log with a quick, sharp blow.", "Burn peat after the logs give out.", "He ordered peach pie with ice cream.", "Weave the carpet on the right hand side.", "Hemp is a weed found in parts of the tropics.", "A lame back kept his score low.", "We find joy in the simplest things.", "Type out three lists of orders.", "The harder he tried the less he got done.", "The boss ran the show with a watchful eye.", "The cup cracked and spilled its contents.", "Paste can cleanse the most dirty brass.", "The slang word for raw whiskey is booze.", "It caught its hind paw in a rusty trap.", "The wharf could be seen at the farther shore.", "Feel the heat of the weak dying flame.", "The tiny girl took off her hat.", "A cramp is no small danger on a swim.", "He said the same phrase thirty times.", "Pluck the bright rose without leaves.", "Two plus seven is less than ten.", "The glow deepened in the eyes of the sweet girl.", "Bring your problems to the wise chief.", "Write a fond note to the friend you cherish.", "Clothes and lodging are free to new men.", "We frown when events take a bad turn.", "Port is a strong wine with a smoky taste.", "The young kid jumped the rusty gate.", "Guess the results from the first scores.", "A salt pickle tastes fine with ham.", "The just claim got the right verdict.", "These thistles bend in a high wind.", "Pure bred poodles have curls.", "The tree top waved in a graceful way.", "The spot on the blotter was made by green ink.", "Mud was spattered on the front of his white shirt.", "The cigar burned a hole in the desk top.", "The empty flask stood on the tin tray.", "A speedy man can beat this track mark.", "He broke a new shoelace that day.", "The coffee stand is too high for the couch.", "The urge to write short stories is rare.", "The pencils have all been used.", "The pirates seized the crew of the lost ship.", "We tried to replace the coin but failed.", "She sewed the torn coat quite neatly.", "The sofa cushion is red and of light weight.", "The jacket hung on the back of the wide chair.", "At that high level the air is pure.", "Drop the two when you add the figures.", "A filing case is now hard to buy.", "An abrupt start does not win the prize.", "Wood is best for making toys and blocks.", "The office paint was a dull sad tan.", "He knew the skill of the great young actress.", "A rag will soak up spilled water.", "A shower of dirt fell from the hot pipes.", "Steam hissed from the broken valve.", "The child almost hurt the small dog.", "There was a sound of dry leaves outside.", "The sky that morning was clear and bright blue.", "Torn scraps littered the stone floor.", "Sunday is the best part of the week.", "The doctor cured him with these pills.", "The new girl was fired today at noon.", "They felt gay when the ship arrived in port.", "Add the store's account to the last cent.", "Acid burns holes in wool cloth.", "Fairy tales should be fun to write.", "Eight miles of woodland burned to waste.", "The third act was dull and tired the players.", "A young child should not suffer fright.", "Add the column and put the sum here.", "We admire and love a good cook.", "There the flood mark is ten inches.", "He carved a head from the round block of marble.", "She has st smart way of wearing clothes.", "The fruit of a fig tree is apple-shaped.", "Corn cobs can be used to kindle a fire.", "Where were they when the noise started.", "The paper box is full of thumb tacks.", "Sell your gift to a buyer at a good gain.", "The tongs lay beside the ice pail.", "The petals fall with the next puff of wind.", "Bring your best compass to the third class.", "They could laugh although they were sad.", "Farmers came in to thresh the oat crop.", "The brown house was on fire to the attic.", "The lure is used to catch trout and flounder.", "Float the soap on top of the bath water.", "A blue crane is a tall wading bird.", "A fresh start will work such wonders.", "The club rented the rink for the fifth night.", "After the dance they went straight home.", "The hostess taught the new maid to serve.", "He wrote his last novel there at the inn.", "Even the worst will beat his low score.", "The cement had dried when he moved it.", "The loss of the second ship was hard to take.", "The fly made its way along the wall.", "Do that with a wooden stick.", "Lire wires should be kept covered.", "The large house had hot water taps.", "It is hard to erase blue or red ink.", "Write at once or you may forget it.", "The doorknob was made of bright clean brass.", "The wreck occurred by the bank on Main Street.", "A pencil with black lead writes best.", "Coax a young calf to drink from a bucket.", "Schools for ladies teach charm and grace.", "The lamp shone with a steady green flame.", "They took the axe and the saw to the forest.", "The ancient coin was quite dull and worn.", "The shaky barn fell with a loud crash.", "Jazz and swing fans like fast music.", "Rake the rubbish up and then burn it.", "Slash the gold cloth into fine ribbons.", "Try to have the court decide the case.", "They are pushed back each time they attack.", "He broke his ties with groups of former friends.", "They floated on the raft to sun their white backs.", "The map had an X that meant nothing.", "Whitings are small fish caught in nets.", "Some ads serve to cheat buyers.", "Jerk the rope and the bell rings weakly.", "A waxed floor makes us lose balance.", "Madam, this is the best brand of corn.", "On the islands the sea breeze is soft and mild.", "The play began as soon as we sat down.", "This will lead the world to more sound and fury", "Add salt before you fry the egg.", "The rush for funds reached its peak Tuesday.", "The birch looked stark white and lonesome.", "The box is held by a bright red snapper.", "To make pure ice, you freeze water.", "The first worm gets snapped early.", "Jump the fence and hurry up the bank.", "Yell and clap as the curtain slides back.", "They are men who walk the middle of the road.", "Both brothers wear the same size.", "In some form or other we need fun.", "The prince ordered his head chopped off.", "The houses are built of red clay bricks.", "Ducks fly north but lack a compass.", "Fruit flavors are used in fizz drinks.", "These pills do less good than others.", "Canned pears lack full flavor.", "The dark pot hung in the front closet.", "Carry the pail to the wall and spill it there.", "The train brought our hero to the big town.", "We are sure that one war is enough.", "Gray paint stretched for miles around.", "The rude laugh filled the empty room.", "High seats are best for football fans.", "Tea served from the brown jug is tasty.", "A dash of pepper spoils beef stew.", "A zestful food is the hot-cross bun.", "The horse trotted around the field at a brisk pace.", "Find the twin who stole the pearl necklace.", "Cut the cord that binds the box tightly.", "The red tape bound the smuggled food.", "Look in the corner to find the tan shirt.", "The cold drizzle will halt the bond drive.", "Nine men were hired to dig the ruins.", "The junk yard had a mouldy smell.", "The flint sputtered and lit a pine torch.", "Soak the cloth and drown the sharp odor.", "The shelves were bare of both jam or crackers.", "A joy to every child is the swan boat.", "All sat frozen and watched the screen.", "A cloud of dust stung his tender eyes.", "To reach the end he needs much courage.", "Shape the clay gently into block form.", "The ridge on a smooth surface is a bump or flaw.", "Hedge apples may stain your hands green.", "Quench your thirst, then eat the crackers.", "Tight curls get limp on rainy days.", "The mute muffled the high tones of the horn.", "The gold ring fits only a pierced ear.", "The old pan was covered with hard fudge.", "Watch the log float in the wide river.", "The node on the stalk of wheat grew daily.", "The heap of fallen leaves was set on fire.", "Write fast, if you want to finish early.", "His shirt was clean but one button was gone.", "The barrel of beer was a brew of malt and hops.", "Tin cans are absent from store shelves.", "Slide the box into that empty space.", "The plant grew large and green in the window.", "The beam dropped down on the workmen's head.", "Pink clouds floated with the breeze.", "She danced like a swan, tall and graceful.", "The tube was blown and the tire flat and useless.", "It is late morning on the old wall clock.", "Let's all join as we sing the last chorus.", "The last switch cannot be turned off.", "The fight will end in just six minutes.", "The store walls were lined with colored frocks.", "The peace league met to discuss their plans.", "The rise to fame of a person takes luck.", "Paper is scarce, so write with much care.", "The quick fox jumped on the sleeping cat.", "The nozzle of the fire hose was bright brass.", "Screw the round cap on as tight as needed.", "Time brings us many changes.", "The purple tie was ten years old.", "Men think and plan and sometimes act.", "Fill the ink jar with sticky glue.", "He smoke a big pipe with strong contents.", "We need grain to keep our mules healthy.", "Pack the records in a neat thin case.", "The crunch of feet in the snow was the only sound.", "The copper bowl shone in the sun's rays.", "Boards will warp unless kept dry.", "The plush chair leaned against the wall.", "Glass will clink when struck by metal.", "Bathe and relax in the cool green grass.", "Nine rows of soldiers stood in line.", "The beach is dry and shallow at low tide.", "The idea is to sew both edges straight.", "The kitten chased the dog down the street.", "Pages bound in cloth make a book.", "Try to trace the fine lines of the painting.", "Women form less than half of the group.", "The zones merge in the central part of town.", "A gem in the rough needs work to polish.", "Code is used when secrets are sent.", "Most of the new is easy for us to hear.", "He used the lathe to make brass objects.", "The vane on top of the pole revolved in the wind.", "Mince pie is a dish served to children.", "The clan gathered on each dull night.", "Let it burn, it gives us warmth and comfort.", "A castle built from sand fails to endure.", "A child's wit saved the day for us.", "Tack the strip of carpet to the worn floor.", "Next Tuesday we must vote.", "Pour the stew from the pot into the plate.", "Each penny shone like new.", "The man went to the woods to gather sticks.", "The dirt piles were lines along the road.", "The logs fell and tumbled into the clear stream.", "Just hoist it up and take it away,", "A ripe plum is fit for a king's palate.", "Our plans right now are hazy.", "Brass rings are sold by these natives.", "It takes a good trap to capture a bear.", "Feed the white mouse some flower seeds.", "The thaw came early and freed the stream.", "He took the lead and kept it the whole distance.", "The key you designed will fit the lock.", "Plead to the council to free the poor thief.", "Better hash is made of rare beef.", "This plank was made for walking on.", "The lake sparkled in the red hot sun.", "He crawled with care along the ledge.", "Tend the sheep while the dog wanders.", "It takes a lot of help to finish these.", "Mark the spot with a sign painted red.", "Take two shares as a fair profit.", "The fur of cats goes by many names.", "North winds bring colds and fevers.", "He asks no person to vouch for him.", "Go now and come here later.", "A sash of gold silk will trim her dress.", "Soap can wash most dirt away.", "That move means the game is over.", "He wrote down a long list of items.", "A siege will crack the strong defense.", "Grape juice and water mix well.", "Roads are paved with sticky tar.", "Fake shoes shine but cost little.", "The drip of the rain made a pleasant sound.", "Smoke poured out of every crack.", "Serve the hot rum to the tired heroes.", "Much of the story makes good sense.", "The sun came up to light the eastern sky.", "Heave the line over the port side.", "A lathe cuts and trims any wood.", "It's a dense crowd in two distinct ways.", "His hip struck the knee of the next player.", "The stale smell of old beer lingers.", "The desk was firm on the shaky floor.", "It takes heat to bring out the odor.", "Beef is scarcer than some lamb.", "Raise the sail and steer the ship northward.", "The cone costs five cents on Mondays.", "A pod is what peas always grow in.", "Jerk the dart from the cork target.", "No cement will hold hard wood.", "We now have a new base for shipping.", "The list of names is carved around the base.", "The sheep were led home by a dog.", "Three for a dime, the young peddler cried.", "The sense of smell is better than that of touch.", "No hardship seemed to keep him sad.", "Grace makes up for lack of beauty.", "Nudge gently but wake her now.", "The news struck doubt into restless minds.", "Once we stood beside the shore.", "A chink in the wall allowed a draft to blow.", "Fasten two pins on each side.", "A cold dip restores health and zest.", "He takes the oath of office each March.", "The sand drifts over the sill of the old house.", "The point of the steel pen was bent and twisted.", "There is a lag between thought and act.", "Seed is needed to plant the spring corn.", "Draw the chart with heavy black lines.", "The boy owed his pal thirty cents.", "The chap slipped into the crowd and was lost.", "Hats are worn to tea and not to dinner.", "The ramp led up to the wide highway.", "Beat the dust from the rug onto the lawn.", "Say it slow!y but make it ring clear.", "The straw nest housed five robins.", "Screen the porch with woven straw mats.", "This horse will nose his way to the finish.", "The dry wax protects the deep scratch.", "He picked up the dice for a second roll.", "These coins will be needed to pay his debt.", "The nag pulled the frail cart along.", "Twist the valve and release hot steam.", "The vamp of the shoe had a gold buckle.", "The smell of burned rags itches my nose.", "New pants lack cuffs and pockets.", "The marsh will freeze when cold enough.", "They slice the sausage thin with a knife.", "The bloom of the rose lasts a few days.", "A gray mare walked before the colt.", "Breakfast buns are fine with a hot drink.", "Bottles hold four kinds of rum.", "The man wore a feather in his felt hat.", "He wheeled the bike past the winding road.", "Drop the ashes on the worn old rug.", "The desk and both chairs were painted tan.", "Throw out the used paper cup and plate.", "A clean neck means a neat collar.", "The couch cover and hall drapes were blue.", "The stems of the tall glasses cracked and broke.", "The wall phone rang loud and often.", "The clothes dried on a thin wooden rack.", "Turn on the lantern which gives us light.", "The cleat sank deeply into the soft turf.", "The bills were mailed promptly on the tenth of the month.", "To have is better than to wait and hope.", "The price is fair for a good antique clock.", "The music played on while they talked.", "Dispense with a vest on a day like this.", "The bunch of grapes was pressed into wine.", "He sent the figs, but kept the ripe cherries.", "The hinge on the door creaked with old age.", "The screen before the fire kept in the sparks.", "Fly by night, and you waste little time.", "Thick glasses helped him read the print.", "Birth and death mark the limits of life.", "The chair looked strong but had no bottom.", "The kite flew wildly in the high wind.", "A fur muff is stylish once more.", "The tin box held priceless stones.", "We need an end of all such matter.", "The case was puzzling to the old and wise.", "The bright lanterns were gay on the dark lawn.", "We don't get much money but we have fun.", "The youth drove with zest, but little skill.", "Five years he lived with a shaggy dog.", "A fence cuts through the corner lot.", "The way to save money is not to spend much.", "Shut the hatch before the waves push it in.", "The odor of spring makes young hearts jump.", "Crack the walnut with your sharp side teeth.", "He offered proof in the form of a large chart.", "Send the stuff in a thick paper bag.", "A quart of milk is water for the most part.", "They told wild tales to frighten him.", "The three story house was built of stone.", "In the rear of the ground floor was a large passage.", "A man in a blue sweater sat at the desk.", "Oats are a food eaten by horse and man.", "Their eyelids droop for want of sleep.", "The sip of tea revives his tired friend.", "There are many ways to do these things.", "Tuck the sheet under the edge of the mat.", "A force equal to that would move the earth.", "We like to see clear weather.", "The work of the tailor is seen on each side.", "Take a chance and win a china doll.", "Shake the dust from your shoes, stranger.", "She was kind to sick old people.", "The dusty bench stood by the stone wall.", "The square wooden crate was packed to be shipped.", "We dress to suit the weather of most days.", "Smile when you say nasty words.", "A bowl of rice is free with chicken stew.", "The water in this well is a source of good health.", "Take shelter in this tent, but keep still.", "That guy is the writer of a few banned books.", "The little tales they tell are false.", "The door was barred, locked, and bolted as well.", "Ripe pears are fit for a queen's table.", "A big wet stain was on the round carpet.", "The kite dipped and swayed, but stayed aloft.", "The pleasant hours fly by much too soon.", "The room was crowded with a wild mob.", "This strong arm shall shield your honor.", "She blushed when he gave her a white orchid.", "The beetle droned in the hot June sun.", "Press the pedal with your left foot.", "Neat plans fail without luck.", "The black trunk fell from the landing.", "The bank pressed for payment of the debt.", "The theft of the pearl pin was kept secret.", "Shake hands with this friendly child.", "The vast space stretched into the far distance.", "A rich farm is rare in this sandy waste.", "His wide grin earned many friends.", "Flax makes a fine brand of paper.", "Hurdle the pit with the aid of a long pole.", "A strong bid may scare your partner stiff.", "Even a just cause needs power to win.", "Peep under the tent and see the clowns.", "The leaf drifts along with a slow spin.", "Cheap clothes are flashy but don't last.", "A thing of small note can cause despair.", "Flood the mails with requests for this book.", "A thick coat of black paint covered all.", "The pencil was cut to be sharp at both ends.", "Those last words were a strong statement.", "He wrote his name boldly at the top of tile sheet.", "Dill pickles are sour but taste fine.", "Down that road is the way to the grain farmer.", "Either mud or dust are found at all times.", "The best method is to fix it in place with clips.", "If you mumble your speech will be lost.", "At night the alarm roused him from a deep sleep.", "Read just what the meter says.", "Fill your pack with bright trinkets for the poor.", "The small red neon lamp went out.", "Clams are small, round, soft, and tasty.", "The fan whirled its round blades softly.", "The line where the edges join was clean.", "Breathe deep and smell the piny air.", "It matters not if he reads these words or those.", "A brown leather bag hung from its strap.", "A toad and a frog are hard to tell apart.", "A white silk jacket goes with any shoes.", "A break in the dam almost caused a flood.", "Paint the sockets in the wall dull green.", "The child crawled into the dense grass.", "Bribes fail where honest men work.", "Trample the spark, else the flames will spread.", "The hilt of the sword was carved with fine designs.", "A round hole was drilled through the thin board.", "Footprints showed the path he took up the beach.", "She was waiting at my front lawn.", "A vent near the edge brought in fresh air.", "Prod the old mule with a crooked stick.", "It is a band of steel three inches wide.", "The pipe ran almost the length of the ditch.", "It was hidden from sight by a mass of leaves and shrubs.", "The weight of the package was seen on the high scale.", "Wake and rise, and step into the green outdoors.", "The green light in the brown box flickered.", "The brass tube circled the high wall.", "The lobes of her ears were pierced to hold rings.", "Hold the hammer near the end to drive the nail.", "Next Sunday is the twelfth of the month.", "Every word and phrase he speaks is true.", "He put his last cartridge into the gun and fired.", "They took their kids from the public school.", "Drive the screw straight into the wood.", "Keep the hatch tight and the watch constant.", "Sever the twine with a quick snip of the knife.", "Paper will dry out when wet.", "Slide the catch back and open the desk.", "Help the weak to preserve their strength.", "A sullen smile gets few friends.", "Stop whistling and watch the boys march.", "Jerk the cord, and out tumbles the gold.", "Slide the tray across the glass top.", "The cloud moved in a stately way and was gone.", "Light maple makes for a swell room.", "Set the piece here and say nothing.", "Dull stories make her laugh.", "A stiff cord will do to fasten your shoe.", "Get the trust fund to the bank early.", "Choose between the high road and the low.", "A plea for funds seems to come again.", "He lent his coat to the tall gaunt stranger.", "There is a strong chance it will happen once more.", "The duke left the park in a silver coach.", "Greet the new guests and leave quickly.", "When the frost has come it is time for turkey.", "Sweet words work better than fierce.", "A thin stripe runs down the middle.", "A six comes up more often than a ten.", "Lush fern grow on the lofty rocks.", "The ram scared the school children off.", "The team with the best timing looks good.", "The farmer swapped his horse for a brown ox.", "Sit on the perch and tell the others what to do.", "A steep trail is painful for our feet.", "The early phase of life moves fast.", "Green moss grows on the northern side.", "Tea in thin china has a sweet taste.", "Pitch the straw through the door of the stable.", "The latch on the beck gate needed a nail.", "The goose was brought straight from the old market.", "The sink is the thing in which we pile dishes.", "A whiff of it will cure the most stubborn cold.", "The facts don't always show who is right.", "She flaps her cape as she parades the street.", "The loss of the cruiser was a blow to the fleet.", "Loop the braid to the left and then over.", "Plead with the lawyer to drop the lost cause.", "Calves thrive on tender spring grass.", "Post no bills on this office wall.", "Tear a thin sheet from the yellow pad.", "A cruise in warm waters in a sleek yacht is fun.", "A streak of color ran down the left edge.", "It was done before the boy could see it.", "Crouch before you jump or miss the mark.", "Pack the kits and don't forget the salt.", "The square peg will settle in the round hole.", "Fine soap saves tender skin.", "Poached eggs and tea must suffice.", "Bad nerves are jangled by a door slam.", "Ship maps are different from those for planes.", "Dimes showered down from all sides.", "They sang the same tunes at each party.", "The sky in the west is tinged with orange red.", "The pods of peas ferment in bare fields.", "The horse balked and threw the tall rider.", "The hitch between the horse and cart broke.", "Pile the coal high in the shed corner.", "The gold vase is both rare and costly.", "The knife was hung inside its bright sheath.", "The rarest spice comes from the far East.", "The roof should be tilted at a sharp slant.", "A smatter of French is worse than none.", "The mule trod the treadmill day and night.", "The aim of the contest is to raise a great fund.", "To send it now in large amounts is bad.", "There is a fine hard tang in salty air.", "Cod is the main business of the north shore.", "The slab was hewn from heavy blocks of slat'e.", "Dunk the stale biscuits into strong drink.", "Hang tinsel from both branches.", "Cap the jar with a tight brass cover.", "The poor boy missed the boat again.", "Be sure to set the lamp firmly in the hole.", "Pick a card and slip it under the pack.", "A round mat will cover the dull spot.", "The first part of the plan needs changing.", "The good book informs of what we ought to know.", "The mail comes in three batches per day.", "You cannot brew tea in a cold pot.", "Dots of light betrayed the black cat.", "Put the chart on the mantel and tack it down.", "The night shift men rate extra pay.", "The red paper brightened the dim stage.", "See the player scoot to third base.", "Slide the bill between the two leaves.", "Many hands help get the job done.", "We don't like to admit our small faults.", "No doubt about the way the wind blows.", "Dig deep in the earth for pirate's gold.", "The steady drip is worse than a drenching rain.", "A flat pack takes less luggage space.", "Green ice frosted the punch bowl.", "A stuffed chair slipped from the moving van.", "The stitch will serve but needs to be shortened.", "A thin book fits in the side pocket.", "The gloss on top made it unfit to read.", "The hail pattered on the burnt brown grass.", "Seven seals were stamped on great sheets.", "Our troops are set to strike heavy blows.", "The store was jammed before the sale could start.", "It was a bad error on the part of the new judge.", "One step more and the board will collapse.", "Take the match and strike it against your shoe.", "The pot boiled, but the contents failed to jell.", "The baby puts his right foot in his mouth.", "The bombs left most of the town in ruins.", "Stop and stare at the hard working man.", "The streets are narrow and full of sharp turns.", "The pup jerked the leash as he saw a feline shape.", "Open your book to the first page.", "Fish evade the net, and swim off.", "Dip the pail once and let it settle.", "Will you please answer that phone.", "The big red apple fell to the ground.", "The curtain rose and the show was on.", "The young prince became heir to the throne.", "He sent the boy on a short errand.", "Leave now and you will arrive on time.", "The corner store was robbed last night.", "A gold ring will please most any girl.", "The long journey home took a year.", "She saw a cat in the neighbor's house.", "A pink shell was found on the sandy beach.", "Small children came to see him.", "The grass and bushes were wet with dew.", "The blind man counted his old coins.", "A severe storm tore down the barn.", "She called his name many times.", "When you hear the bell, come quickly."}
================================================
FILE: pkg/data/state_codes.go
================================================
package data
// StateCodes is an array of 2-digit US state names
var StateCodes = []string{
"AL",
"AK",
"AZ",
"AR",
"CA",
"CO",
"CT",
"DE",
"FL",
"GA",
"HI",
"ID",
"IL",
"IN",
"IA",
"KS",
"KY",
"LA",
"ME",
"MD",
"MA",
"MI",
"MN",
"MS",
"MO",
"MT",
"NE",
"NV",
"NH",
"NJ",
"NM",
"NY",
"NC",
"ND",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VT",
"VA",
"WA",
"WV",
"WI",
"WY",
}
================================================
FILE: pkg/data/states.go
================================================
package data
// States is an array of US state names
var States = []string{
"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",
}
================================================
FILE: pkg/data/timezones.go
================================================
package data
// Timezones is an array of TimeZone names
var Timezones = []string{
"Africa/Algiers",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Monrovia",
"Africa/Nairobi",
"America/Argentina/Buenos_Aires",
"America/Bogota",
"America/Caracas",
"America/Chicago",
"America/Chihuahua",
"America/Denver",
"America/Godthab",
"America/Guatemala",
"America/Guyana",
"America/Halifax",
"America/Indiana/Indianapolis",
"America/Juneau",
"America/La_Paz",
"America/Lima",
"America/Los_Angeles",
"America/Mazatlan",
"America/Mexico_City",
"America/Monterrey",
"America/New_York",
"America/Phoenix",
"America/Regina",
"America/Santiago",
"America/Sao_Paulo",
"America/St_Johns",
"America/Tijuana",
"Asia/Almaty",
"Asia/Baghdad",
"Asia/Baku",
"Asia/Bangkok",
"Asia/Chongqing",
"Asia/Colombo",
"Asia/Dhaka",
"Asia/Hong_Kong",
"Asia/Irkutsk",
"Asia/Jakarta",
"Asia/Jerusalem",
"Asia/Kabul",
"Asia/Kamchatka",
"Asia/Karachi",
"Asia/Kathmandu",
"Asia/Kolkata",
"Asia/Krasnoyarsk",
"Asia/Kuala_Lumpur",
"Asia/Kuwait",
"Asia/Magadan",
"Asia/Muscat",
"Asia/Novosibirsk",
"Asia/Rangoon",
"Asia/Riyadh",
"Asia/Seoul",
"Asia/Shanghai",
"Asia/Singapore",
"Asia/Taipei",
"Asia/Tashkent",
"Asia/Tbilisi",
"Asia/Tehran",
"Asia/Tokyo",
"Asia/Ulaanbaatar",
"Asia/Urumqi",
"Asia/Vladivostok",
"Asia/Yakutsk",
"Asia/Yekaterinburg",
"Asia/Yerevan",
"Atlantic/Azores",
"Atlantic/Cape_Verde",
"Atlantic/South_Georgia",
"Australia/Adelaide",
"Australia/Brisbane",
"Australia/Darwin",
"Australia/Hobart",
"Australia/Melbourne",
"Australia/Melbourne",
"Australia/Perth",
"Australia/Sydney",
"Europe/Amsterdam",
"Europe/Athens",
"Europe/Belgrade",
"Europe/Berlin",
"Europe/Bratislava",
"Europe/Brussels",
"Europe/Bucharest",
"Europe/Budapest",
"Europe/Copenhagen",
"Europe/Dublin",
"Europe/Helsinki",
"Europe/Istanbul",
"Europe/Kiev",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
"Europe/London",
"Europe/Madrid",
"Europe/Minsk",
"Europe/Moscow",
"Europe/Paris",
"Europe/Prague",
"Europe/Riga",
"Europe/Rome",
"Europe/Sarajevo",
"Europe/Skopje",
"Europe/Sofia",
"Europe/Stockholm",
"Europe/Tallinn",
"Europe/Vienna",
"Europe/Vilnius",
"Europe/Warsaw",
"Europe/Zagreb",
"Pacific/Apia",
"Pacific/Auckland",
"Pacific/Fakaofo",
"Pacific/Fiji",
"Pacific/Guam",
"Pacific/Honolulu",
"Pacific/Majuro",
"Pacific/Midway",
"Pacific/Noumea",
"Pacific/Pago_Pago",
"Pacific/Port_Moresby",
"Pacific/Tongatapu",
}
================================================
FILE: pkg/data/tlds.go
================================================
package data
// source: https://data.iana.org/TLD/tlds-alpha-by-domain.txt
// TLDs is an array of top level domain names
var TLDs = []string{
"aaa",
"aarp",
"abarth",
"abb",
"abbott",
"abbvie",
"abc",
"able",
"abogado",
"abudhabi",
"ac",
"academy",
"accenture",
"accountant",
"accountants",
"aco",
"active",
"actor",
"ad",
"adac",
"ads",
"adult",
"ae",
"aeg",
"aero",
"aetna",
"af",
"afamilycompany",
"afl",
"africa",
"ag",
"agakhan",
"agency",
"ai",
"aig",
"aigo",
"airbus",
"airforce",
"airtel",
"akdn",
"al",
"alfaromeo",
"alibaba",
"alipay",
"allfinanz",
"allstate",
"ally",
"alsace",
"alstom",
"am",
"americanexpress",
"americanfamily",
"amex",
"amfam",
"amica",
"amsterdam",
"analytics",
"android",
"anquan",
"anz",
"ao",
"aol",
"apartments",
"app",
"apple",
"aq",
"aquarelle",
"ar",
"arab",
"aramco",
"archi",
"
gitextract_roc4rtvn/
├── .github/
│ └── workflows/
│ ├── go.yml
│ └── lint.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── cmd/
│ └── import/
│ └── main.go
├── go.mod
├── go.sum
├── goreleaser.yml
├── integration/
│ ├── cli_test.go
│ ├── setup_test.go
│ └── templates_test.go
├── main.go
├── pkg/
│ ├── data/
│ │ ├── adjectives.go
│ │ ├── animals.go
│ │ ├── cats.go
│ │ ├── cities.go
│ │ ├── colors.go
│ │ ├── countries.go
│ │ ├── country_codes.go
│ │ ├── dinosaurs.go
│ │ ├── dogs.go
│ │ ├── emoji.go
│ │ ├── first_names.go
│ │ ├── industries.go
│ │ ├── last_names.go
│ │ ├── nationalities.go
│ │ ├── nouns.go
│ │ ├── occupations.go
│ │ ├── sentences.go
│ │ ├── state_codes.go
│ │ ├── states.go
│ │ ├── timezones.go
│ │ ├── tlds.go
│ │ └── usernames.go
│ └── fakedata/
│ ├── column.go
│ ├── column_test.go
│ ├── completion.go
│ ├── completion_test.go
│ ├── formatter.go
│ ├── formatter_test.go
│ ├── generator.go
│ ├── generator_test.go
│ └── template.go
├── scripts/
│ ├── perf.sh
│ └── queries.csv
└── testutil/
├── diff.go
├── fixtures/
│ ├── broken.tmpl
│ ├── file.txt
│ ├── loop-with-index.tmpl
│ ├── loop.tmpl
│ ├── simple.tmpl
│ └── unknown-function.tmpl
├── golden/
│ ├── broken-template.golden
│ ├── csv-format.golden
│ ├── default-format-with-headers.golden
│ ├── default-format-with-limit.golden
│ ├── default-format.golden
│ ├── file-does-not-exist.golden
│ ├── file-empty.golden
│ ├── file-exist.golden
│ ├── help.golden
│ ├── loop-with-index.golden
│ ├── loop.golden
│ ├── path-empty.golden
│ ├── simple-template.golden
│ ├── sql-format-with-keys.golden
│ ├── sql-format-with-table-name.golden
│ ├── sql-format.golden
│ ├── tab-format.golden
│ ├── unknown-format.golden
│ ├── unknown-function.golden
│ └── unknown-generators.golden
└── test_file.go
SYMBOL INDEX (102 symbols across 16 files)
FILE: cmd/import/main.go
constant targetDir (line 15) | targetDir = "pkg/data"
constant fileTemplate (line 18) | fileTemplate = `package data
function main (line 121) | func main() {
FILE: integration/cli_test.go
function TestCLI (line 12) | func TestCLI(t *testing.T) {
function TestGeneratorDescription (line 121) | func TestGeneratorDescription(t *testing.T) {
function TestFileGenerator (line 150) | func TestFileGenerator(t *testing.T) {
FILE: integration/setup_test.go
constant binaryName (line 17) | binaryName = "fakedata-with-cover"
function TestMain (line 21) | func TestMain(m *testing.M) {
function runBinary (line 39) | func runBinary(args ...string) ([]byte, error) {
FILE: integration/templates_test.go
type templateTestCase (line 12) | type templateTestCase struct
function TestTemplatesWithCLIArgs (line 26) | func TestTemplatesWithCLIArgs(t *testing.T) {
function TestTemplatesWithPipe (line 35) | func TestTemplatesWithPipe(t *testing.T) {
function verifyOutput (line 48) | func verifyOutput(t *testing.T, tt templateTestCase, output []byte, err ...
FILE: main.go
function generatorsHelp (line 16) | func generatorsHelp(generators fakedata.Generators) string {
function isPipe (line 33) | func isPipe() bool {
function findTemplate (line 42) | func findTemplate(path string) string {
function main (line 66) | func main() {
FILE: pkg/fakedata/column.go
type Column (line 10) | type Column struct
type Columns (line 17) | type Columns
method GenerateRow (line 60) | func (columns Columns) GenerateRow(f io.Writer, formatter Formatter) {
method GenerateHeader (line 71) | func (columns Columns) GenerateHeader(f io.Writer, formatter Formatter) {
function NewColumns (line 21) | func NewColumns(keys []string) (cols Columns, err error) {
FILE: pkg/fakedata/column_test.go
type columnsTests (line 16) | type columnsTests
function columnsEql (line 23) | func columnsEql(a, b fakedata.Columns) bool {
function TestNewColumns (line 37) | func TestNewColumns(t *testing.T) {
function TestNewColumnsWithName (line 77) | func TestNewColumnsWithName(t *testing.T) {
type args (line 111) | type args struct
function TestGenerateRow (line 116) | func TestGenerateRow(t *testing.T) {
function TestGenerateRowWithIntRanges (line 185) | func TestGenerateRowWithIntRanges(t *testing.T) {
function TestGenerateRowWithDateRanges (line 230) | func TestGenerateRowWithDateRanges(t *testing.T) {
function TestGenerateRowWithEnum (line 285) | func TestGenerateRowWithEnum(t *testing.T) {
FILE: pkg/fakedata/completion.go
constant bashTemplate (line 10) | bashTemplate = `
constant zshTemplate (line 26) | zshTemplate = `
constant fishTemplate (line 35) | fishTemplate = "complete -c fakedata -a '%s'"
function getTemplate (line 37) | func getTemplate(shell string) (string, error) {
function GetCompletionFunc (line 52) | func GetCompletionFunc(shell string) (string, error) {
FILE: pkg/fakedata/completion_test.go
function TestPrintShellCompletionFunction (line 9) | func TestPrintShellCompletionFunction(t *testing.T) {
FILE: pkg/fakedata/formatter.go
type Formatter (line 12) | type Formatter interface
type ColumnFormatter (line 17) | type ColumnFormatter struct
method Format (line 31) | func (f *ColumnFormatter) Format(columns Columns, values []string) str...
type SQLFormatter (line 22) | type SQLFormatter struct
method Format (line 36) | func (f *SQLFormatter) Format(columns Columns, values []string) string {
type NdjsonFormatter (line 27) | type NdjsonFormatter struct
method Format (line 60) | func (f *NdjsonFormatter) Format(columns Columns, values []string) str...
function NewColumnFormatter (line 76) | func NewColumnFormatter(sep string) (f *ColumnFormatter) {
function NewSQLFormatter (line 81) | func NewSQLFormatter(table string) (f *SQLFormatter) {
function NewNdjsonFormatter (line 86) | func NewNdjsonFormatter() (f *NdjsonFormatter) {
FILE: pkg/fakedata/formatter_test.go
function TestColumnFormatter (line 13) | func TestColumnFormatter(t *testing.T) {
function TestSQLFormatter (line 33) | func TestSQLFormatter(t *testing.T) {
function TestNdjsonFormatter (line 51) | func TestNdjsonFormatter(t *testing.T) {
function BenchmarkFormatters (line 68) | func BenchmarkFormatters(b *testing.B) {
FILE: pkg/fakedata/generator.go
type Generator (line 17) | type Generator struct
method IsCustom (line 30) | func (g Generator) IsCustom() bool {
type Generators (line 26) | type Generators
method WithConstraints (line 47) | func (gens Generators) WithConstraints() (newGens Generators) {
method Visible (line 57) | func (gens Generators) Visible() (newGens Generators) {
method FindByName (line 67) | func (gens Generators) FindByName(name string) (gen *Generator) {
function NewGenerators (line 35) | func NewGenerators() (gens Generators) {
function withList (line 76) | func withList(list []string) func() string {
function withMapValues (line 82) | func withMapValues(m map[string]string) func() string {
function ipv4 (line 101) | func ipv4() string {
function ipv6 (line 105) | func ipv6() string {
function mac (line 109) | func mac() string {
function latitude (line 113) | func latitude() string {
function longitude (line 117) | func longitude() string {
function double (line 121) | func double() string {
function domain (line 125) | func domain() string {
function date (line 129) | func date(options string) (f func() string, err error) {
function integer (line 175) | func integer(options string) (func() string, error) {
function file (line 211) | func file(path string) (func() string, error) {
function enum (line 229) | func enum(options string) (func() string, error) {
function localPhone (line 237) | func localPhone(options string) (func() string, error) {
function timestamp (line 262) | func timestamp() func() string {
function uuidv1 (line 269) | func uuidv1() string {
function uuidv4 (line 278) | func uuidv4() string {
function uuidv6 (line 287) | func uuidv6() string {
function uuidv7 (line 296) | func uuidv7() string {
function phoneGenerator (line 305) | func phoneGenerator(phoneCodeFunc func() string) func() string {
function phone (line 316) | func phone() string {
function countryPhone (line 320) | func countryPhone(countryCode string) func() string {
type generatorsMap (line 324) | type generatorsMap
method addGen (line 326) | func (gM generatorsMap) addGen(g Generator) {
type factory (line 330) | type factory struct
method extractFunc (line 334) | func (f factory) extractFunc(key, options string) (fn func() string, e...
function newFactory (line 347) | func newFactory() (f factory) {
FILE: pkg/fakedata/generator_test.go
function BenchmarkGenerators (line 11) | func BenchmarkGenerators(b *testing.B) {
function BenchmarkEnum (line 25) | func BenchmarkEnum(b *testing.B) {
function BenchmarkInt (line 41) | func BenchmarkInt(b *testing.B) {
function BenchmarkPhoneLocal (line 57) | func BenchmarkPhoneLocal(b *testing.B) {
function BenchmarkFile (line 77) | func BenchmarkFile(b *testing.B) {
FILE: pkg/fakedata/template.go
type templateFactory (line 15) | type templateFactory struct
method getFunctions (line 23) | func (tf templateFactory) getFunctions() template.FuncMap {
function newTemplateFactory (line 19) | func newTemplateFactory() *templateFactory {
function ExecuteTemplate (line 94) | func ExecuteTemplate(tmpl string, n int, streamMode bool) (err error) {
FILE: testutil/diff.go
function Diff (line 5) | func Diff(expected, actual interface{}) []string {
FILE: testutil/test_file.go
type TestFile (line 10) | type TestFile struct
method Path (line 24) | func (tf *TestFile) Path() string {
method Write (line 34) | func (tf *TestFile) Write(content string) {
method AsFile (line 42) | func (tf *TestFile) AsFile() *os.File {
method Load (line 51) | func (tf *TestFile) Load() string {
function NewFixture (line 16) | func NewFixture(t *testing.T, name string) *TestFile {
function NewGoldenFile (line 20) | func NewGoldenFile(t *testing.T, name string) *TestFile {
Condensed preview — 78 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (306K chars).
[
{
"path": ".github/workflows/go.yml",
"chars": 356,
"preview": "name: Go\n\non:\n push:\n branches: [\"*\"]\n pull_request:\n branches: [\"*\"]\n\njobs:\n build:\n runs-on: ubuntu-latest"
},
{
"path": ".github/workflows/lint.yml",
"chars": 415,
"preview": "name: golangci-lint\non:\n push:\n branches: [\"*\"]\n pull_request:\n branches: [\"*\"]\npermissions:\n contents: read\njo"
},
{
"path": ".gitignore",
"chars": 74,
"preview": "/fakedata\n/fakedata-with-cover\n.vscode\n/dist\n*.perf\n*.db\n.coverdata\n.idea\n"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3227,
"preview": "# fakedata Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontrib"
},
{
"path": "CONTRIBUTING.md",
"chars": 2395,
"preview": "# Contributing\n\nWe love every form of contribution. By participating to this project, you agree\nto abide to the `fakedat"
},
{
"path": "Dockerfile",
"chars": 61,
"preview": "FROM alpine\n\nRUN apk add --no-cache strace\n\nADD ./fakedata .\n"
},
{
"path": "LICENSE",
"chars": 1023,
"preview": "Permission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentati"
},
{
"path": "Makefile",
"chars": 1121,
"preview": "SOURCE_FILES?=$$(go list ./pkg/...)\nTEST_PATTERN?=.\nTEST_OPTIONS?=\n\nunit: ## Run tests\n\t@go test $(TEST_OPTIONS) -cover "
},
{
"path": "README.md",
"chars": 9579,
"preview": "# fakedata\n\n`fakedata` is a small program that generates test data on the command line.\n\n## How to install\n\nIf you use ["
},
{
"path": "cmd/import/main.go",
"chars": 3574,
"preview": "package main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\n// relative"
},
{
"path": "go.mod",
"chars": 297,
"preview": "module github.com/lucapette/fakedata\n\ngo 1.24.0\n\nrequire (\n\tgithub.com/gofrs/uuid v4.4.0+incompatible\n\tgithub.com/kr/pre"
},
{
"path": "go.sum",
"chars": 1292,
"preview": "github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/gofrs/uuid v4.4.0+incompa"
},
{
"path": "goreleaser.yml",
"chars": 215,
"preview": "build:\n goos:\n - windows\n - darwin\n - linux\n goarch:\n - amd64\nbrews:\n -\n name: fakedata\n tap:\n "
},
{
"path": "integration/cli_test.go",
"chars": 4121,
"preview": "package integration\n\nimport (\n\t\"regexp\"\n\t\"testing\"\n\n\t\"reflect\"\n\n\t\"github.com/lucapette/fakedata/testutil\"\n)\n\nfunc TestCL"
},
{
"path": "integration/setup_test.go",
"chars": 857,
"preview": "package integration\n\nimport (\n\t\"flag\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"testing\"\n)\n\n// In these tests there's a"
},
{
"path": "integration/templates_test.go",
"chars": 1584,
"preview": "package integration\n\nimport (\n\t\"fmt\"\n\t\"os/exec\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/lucapette/fakedata/testutil\"\n)\n\ntype"
},
{
"path": "main.go",
"chars": 4635,
"preview": "package main\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/lucapette/fakedata/pkg/fakedata\"\n\tflag \"github"
},
{
"path": "pkg/data/adjectives.go",
"chars": 11892,
"preview": "package data\n\nvar Adjectives = []string{\"Aristotelian\", \"Arthurian\", \"Bohemian\", \"Brethren\", \"Mosaic\", \"Oceanic\", \"Proct"
},
{
"path": "pkg/data/animals.go",
"chars": 1405,
"preview": "package data\n\nvar Animals = []string{\"aardvark\", \"alligator\", \"alpaca\", \"antelope\", \"ape\", \"armadillo\", \"baboon\", \"badge"
},
{
"path": "pkg/data/cats.go",
"chars": 1458,
"preview": "package data\n\nvar Cats = []string{\"Abyssinian\", \"Aegean\", \"American Bobtail\", \"American Curl\", \"American Shorthair\", \"Am"
},
{
"path": "pkg/data/cities.go",
"chars": 13190,
"preview": "package data\n\nvar Cities = []string{\"New York\", \"Los Angeles\", \"Chicago\", \"Houston\", \"Philadelphia\", \"Phoenix\", \"San Ant"
},
{
"path": "pkg/data/colors.go",
"chars": 369,
"preview": "package data\n\n// Colors is an array of colors\nvar Colors = []string{\n\t\"azure\",\n\t\"black\",\n\t\"blue\",\n\t\"cyan\",\n\t\"fuchsia\",\n\t"
},
{
"path": "pkg/data/countries.go",
"chars": 3946,
"preview": "package data\n\n// Countries is an array of country names\nvar Countries = []string{\n\t\"Afghanistan\",\n\t\"Albania\",\n\t\"Algeria\""
},
{
"path": "pkg/data/country_codes.go",
"chars": 3592,
"preview": "package data\n\n// CountryCodes is a map of 2-digit country codes to calling codes\",\nvar CountryCodes = map[string]string{"
},
{
"path": "pkg/data/dinosaurs.go",
"chars": 23156,
"preview": "package data\n\nvar Dinosaurs = []string{\"Kangnasaurus\", \"Lophostropheus\", \"Spinophorosaurus\", \"Epachthosaurus\", \"Coeluros"
},
{
"path": "pkg/data/dogs.go",
"chars": 9057,
"preview": "package data\n\nvar Dogs = []string{\"Affenpinscher\", \"Afghan Hound\", \"Aidi\", \"Airedale Terrier\", \"Akbash Dog\", \"Akita\", \"A"
},
{
"path": "pkg/data/emoji.go",
"chars": 4360,
"preview": "package data\n\nvar Emoji = []string{\"🀄\", \"🃏\", \"🅰\", \"🅱\", \"🅾\", \"🅿\", \"🆎\", \"🆑\", \"🆒\", \"🆓\", \"🆔\", \"🆕\", \"🆖\", \"🆗\", \"🆘\", \"🆙\", \"🆚\", "
},
{
"path": "pkg/data/first_names.go",
"chars": 7803,
"preview": "package data\n\n// Firstnames is an array of first names\nvar Firstnames = []string{\n\t\"Abram\",\n\t\"Adalberto\",\n\t\"Adaline\",\n\t\""
},
{
"path": "pkg/data/industries.go",
"chars": 3042,
"preview": "package data\n\nvar Industries = []string{\"Accounting\", \"Airlines/Aviation\", \"Alternative Dispute Resolution\", \"Alternativ"
},
{
"path": "pkg/data/last_names.go",
"chars": 5124,
"preview": "package data\n\n// Lastnames is an array of last names\nvar Lastnames = []string{\n\t\"Adams\",\n\t\"Adkins\",\n\t\"Aguilar\",\n\t\"Alexan"
},
{
"path": "pkg/data/nationalities.go",
"chars": 3061,
"preview": "package data\n\nvar Nationalities = []string{\"Afghan\", \"Albanian\", \"Algerian\", \"American\", \"Andorran\", \"Angolan\", \"Anguill"
},
{
"path": "pkg/data/nouns.go",
"chars": 12208,
"preview": "package data\n\nvar Nouns = []string{\"Armour\", \"Barrymore\", \"Cabot\", \"Catholicism\", \"Chihuahua\", \"Christianity\", \"Easter\","
},
{
"path": "pkg/data/occupations.go",
"chars": 20882,
"preview": "package data\n\nvar Occupations = []string{\"accountant\", \"actor\", \"actuary\", \"adhesive bonding machine tender\", \"adjudicat"
},
{
"path": "pkg/data/sentences.go",
"chars": 31260,
"preview": "package data\n\nvar Sentences = []string{\"The birch canoe slid on the smooth planks.\", \"Glue the sheet to the dark blue ba"
},
{
"path": "pkg/data/state_codes.go",
"chars": 445,
"preview": "package data\n\n// StateCodes is an array of 2-digit US state names\nvar StateCodes = []string{\n\t\"AL\",\n\t\"AK\",\n\t\"AZ\",\n\t\"AR\","
},
{
"path": "pkg/data/states.go",
"chars": 751,
"preview": "package data\n\n// States is an array of US state names\nvar States = []string{\n\t\"Alabama\",\n\t\"Alaska\",\n\t\"Arizona\",\n\t\"Arkans"
},
{
"path": "pkg/data/timezones.go",
"chars": 2538,
"preview": "package data\n\n// Timezones is an array of TimeZone names\nvar Timezones = []string{\n\t\"Africa/Algiers\",\n\t\"Africa/Cairo\",\n\t"
},
{
"path": "pkg/data/tlds.go",
"chars": 16480,
"preview": "package data\n\n// source: https://data.iana.org/TLD/tlds-alpha-by-domain.txt\n\n// TLDs is an array of top level domain nam"
},
{
"path": "pkg/data/usernames.go",
"chars": 5157,
"preview": "package data\n\n// Usernames is an array of fictional usernames\nvar Usernames = []string{\n\t\"91bilal\",\n\t\"9lessons\",\n\t\"AM_Kn"
},
{
"path": "pkg/fakedata/column.go",
"chars": 1653,
"preview": "package fakedata\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\n// A Column represents one field of data to generate\ntype Column s"
},
{
"path": "pkg/fakedata/column_test.go",
"chars": 7347,
"preview": "package fakedata_test\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github."
},
{
"path": "pkg/fakedata/completion.go",
"chars": 1543,
"preview": "package fakedata\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"github.com/spf13/pflag\"\n)\n\nconst bashTemplate = `\n_fakedata()\n{\n local "
},
{
"path": "pkg/fakedata/completion_test.go",
"chars": 623,
"preview": "package fakedata_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/lucapette/fakedata/pkg/fakedata\"\n)\n\nfunc TestPrintShellCompleti"
},
{
"path": "pkg/fakedata/formatter.go",
"chars": 2045,
"preview": "package fakedata\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n)\n\n// Formatter is the interface wrapping t"
},
{
"path": "pkg/fakedata/formatter_test.go",
"chars": 2201,
"preview": "package fakedata_test\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/lucapette/fakedata/pkg/fakedata\"\n)\n\nvar columns = fa"
},
{
"path": "pkg/fakedata/generator.go",
"chars": 13189,
"preview": "package fakedata\n\nimport (\n\t\"fmt\"\n\t\"math/rand\"\n\t\"os\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gofrs/uuid\"\n\t\"g"
},
{
"path": "pkg/fakedata/generator_test.go",
"chars": 1669,
"preview": "package fakedata_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/lucapette/fakedata/pkg/fakedata\"\n)\n\nvar gens = fakedata.NewGene"
},
{
"path": "pkg/fakedata/template.go",
"chars": 2483,
"preview": "package fakedata\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"os\"\n\t\"strings\"\n\t\"text/template\"\n\n\t\"golang.org/x/text/cases\"\n\t\""
},
{
"path": "scripts/perf.sh",
"chars": 1024,
"preview": "#!/bin/bash\n\nset -euo pipefail\nIFS=$'\\n\\t'\n\nROWS=${ROWS:-100000000}\n\n# https://stackoverflow.com/questions/59895/how-do-"
},
{
"path": "scripts/queries.csv",
"chars": 287,
"preview": "\"name\",\"sql\",\"author_id\"\n\"template\",\"SELECT tick, rows_done - lag(rows_done, 1, 0) OVER (ORDER BY tick) rows_done_so_far"
},
{
"path": "testutil/diff.go",
"chars": 140,
"preview": "package testutil\n\nimport \"github.com/kr/pretty\"\n\nfunc Diff(expected, actual interface{}) []string {\n\treturn pretty.Diff("
},
{
"path": "testutil/fixtures/broken.tmpl",
"chars": 14,
"preview": "{{Int}} {{Int}"
},
{
"path": "testutil/fixtures/file.txt",
"chars": 220,
"preview": "from-an-existing-file\nfrom-an-existing-file\nfrom-an-existing-file\nfrom-an-existing-file\nfrom-an-existing-file\nfrom-an-ex"
},
{
"path": "testutil/fixtures/loop-with-index.tmpl",
"chars": 36,
"preview": "{{range $i := Loop 5}}{{$i}}{{end}}\n"
},
{
"path": "testutil/fixtures/loop.tmpl",
"chars": 28,
"preview": "{{range Loop 1 1}}42{{end}}\n"
},
{
"path": "testutil/fixtures/simple.tmpl",
"chars": 29,
"preview": "{{Int 42 42}}--{{Enum \"foo\"}}"
},
{
"path": "testutil/fixtures/unknown-function.tmpl",
"chars": 25,
"preview": "{{Int 42 42}} {{Madeup}}"
},
{
"path": "testutil/golden/broken-template.golden",
"chars": 47,
"preview": "template: template:1: bad character U+007D '}'\n"
},
{
"path": "testutil/golden/csv-format.golden",
"chars": 70,
"preview": "42,foo\n42,foo\n42,foo\n42,foo\n42,foo\n42,foo\n42,foo\n42,foo\n42,foo\n42,foo\n"
},
{
"path": "testutil/golden/default-format-with-headers.golden",
"chars": 79,
"preview": "int enum\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n"
},
{
"path": "testutil/golden/default-format-with-limit.golden",
"chars": 35,
"preview": "42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n"
},
{
"path": "testutil/golden/default-format.golden",
"chars": 70,
"preview": "42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n42 foo\n"
},
{
"path": "testutil/golden/file-does-not-exist.golden",
"chars": 1172,
"preview": "could not read file this file does not exist.txt: open this file does not exist.txt: no such file or directory\n\nUsage: f"
},
{
"path": "testutil/golden/file-empty.golden",
"chars": 110,
"preview": "could not read file this file does not exist.txt: open this file does not exist.txt: no such file or directory"
},
{
"path": "testutil/golden/file-exist.golden",
"chars": 220,
"preview": "from-an-existing-file\nfrom-an-existing-file\nfrom-an-existing-file\nfrom-an-existing-file\nfrom-an-existing-file\nfrom-an-ex"
},
{
"path": "testutil/golden/help.golden",
"chars": 1060,
"preview": "Usage: fakedata [option ...] generator...\n\n -C, --completion string print shell completion function, pass s"
},
{
"path": "testutil/golden/loop-with-index.golden",
"chars": 60,
"preview": "01234\n01234\n01234\n01234\n01234\n01234\n01234\n01234\n01234\n01234\n"
},
{
"path": "testutil/golden/loop.golden",
"chars": 30,
"preview": "42\n42\n42\n42\n42\n42\n42\n42\n42\n42\n"
},
{
"path": "testutil/golden/path-empty.golden",
"chars": 1080,
"preview": "no file path given\n\nUsage: fakedata [option ...] generator...\n\n -C, --completion string print shell complet"
},
{
"path": "testutil/golden/simple-template.golden",
"chars": 70,
"preview": "42--foo42--foo42--foo42--foo42--foo42--foo42--foo42--foo42--foo42--foo"
},
{
"path": "testutil/golden/sql-format-with-keys.golden",
"chars": 500,
"preview": "INSERT INTO TABLE (age,name) VALUES ('42','foo');\nINSERT INTO TABLE (age,name) VALUES ('42','foo');\nINSERT INTO TABLE (a"
},
{
"path": "testutil/golden/sql-format-with-table-name.golden",
"chars": 500,
"preview": "INSERT INTO USERS (int,enum) VALUES ('42','foo');\nINSERT INTO USERS (int,enum) VALUES ('42','foo');\nINSERT INTO USERS (i"
},
{
"path": "testutil/golden/sql-format.golden",
"chars": 500,
"preview": "INSERT INTO TABLE (int,enum) VALUES ('42','foo');\nINSERT INTO TABLE (int,enum) VALUES ('42','foo');\nINSERT INTO TABLE (i"
},
{
"path": "testutil/golden/tab-format.golden",
"chars": 70,
"preview": "42\tfoo\n42\tfoo\n42\tfoo\n42\tfoo\n42\tfoo\n42\tfoo\n42\tfoo\n42\tfoo\n42\tfoo\n42\tfoo\n"
},
{
"path": "testutil/golden/unknown-format.golden",
"chars": 1087,
"preview": "unknown format: no-format\n\nUsage: fakedata [option ...] generator...\n\n -C, --completion string print shell "
},
{
"path": "testutil/golden/unknown-function.golden",
"chars": 52,
"preview": "template: template:1: function \"Madeup\" not defined\n"
},
{
"path": "testutil/golden/unknown-generators.golden",
"chars": 1096,
"preview": "unknown generator: madeupgenerator\n\nUsage: fakedata [option ...] generator...\n\n -C, --completion string pri"
},
{
"path": "testutil/test_file.go",
"chars": 1159,
"preview": "package testutil\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"testing\"\n)\n\ntype TestFile struct {\n\tt *testing.T\n\tname"
}
]
About this extraction
This page contains the full source code of the lucapette/fakedata GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 78 files (253.5 KB), approximately 87.9k tokens, and a symbol index with 102 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.