Repository: interrogator/corpkit Branch: master Commit: c54be1f8c83d Files: 98 Total size: 2.3 MB Directory structure: gitextract_mzzg7lm1/ ├── .gitattributes ├── .gitmodules ├── .travis.yml ├── API-README.md ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── bld.bat ├── build.sh ├── conf.py ├── corpkit/ │ ├── __init__.py │ ├── annotate.py │ ├── blanknotebook.ipynb │ ├── build.py │ ├── completer.py │ ├── configurations.py │ ├── conll.py │ ├── constants.py │ ├── corpkit │ ├── corpkit.1 │ ├── corpus.py │ ├── cql.py │ ├── dictionaries/ │ │ ├── __init__.py │ │ ├── bnc.p │ │ ├── bnc.py │ │ ├── eng_verb_lexicon.p │ │ ├── process_types.py │ │ ├── queries.py │ │ ├── roles.py │ │ ├── stopwords.py │ │ ├── verblist.py │ │ ├── word_transforms.py │ │ └── wordlists.py │ ├── download/ │ │ ├── __init__.py │ │ └── corenlp.py │ ├── editor.py │ ├── env.py │ ├── gui.py │ ├── inflect.py │ ├── interpreter_tests.cki │ ├── interrogation.py │ ├── interrogator.py │ ├── keys.py │ ├── layouts.py │ ├── lazyprop.py │ ├── make.py │ ├── model.py │ ├── multiprocess.py │ ├── new_project │ ├── noseinstall.py │ ├── nosetests.py │ ├── other.py │ ├── parse │ ├── plotter.py │ ├── plugins.py │ ├── process.py │ ├── stanford-tregex.jar │ ├── stats.py │ ├── textprogressbar.py │ ├── tokenise.py │ └── tregex.sh ├── data/ │ ├── corpus-filelist.txt │ ├── test/ │ │ ├── first/ │ │ │ └── intro.txt │ │ └── second/ │ │ └── body.txt │ ├── test-plain-parsed/ │ │ ├── first/ │ │ │ └── intro.txt.conll │ │ └── second/ │ │ └── body.txt.conll │ ├── test-speak-parsed/ │ │ ├── first/ │ │ │ └── intro.txt.conll │ │ └── second/ │ │ └── body.txt.conll │ └── test-stripped/ │ ├── first/ │ │ └── intro.txt │ └── second/ │ └── body.txt ├── index.rst ├── make.bat ├── meta.yaml ├── requirements.txt ├── rst_docs/ │ ├── API/ │ │ ├── corpkit.building.rst │ │ ├── corpkit.concordancing.rst │ │ ├── corpkit.editing.rst │ │ ├── corpkit.interrogating.rst │ │ ├── corpkit.langmodel.rst │ │ ├── corpkit.managing.rst │ │ └── corpkit.visualising.rst │ ├── API-ref/ │ │ ├── corpkit.corpus.rst │ │ ├── corpkit.dictionaries.rst │ │ ├── corpkit.interrogation.rst │ │ └── corpkit.other.rst │ └── interpreter/ │ ├── corpkit.interpreter.annotating.rst │ ├── corpkit.interpreter.concordancing.rst │ ├── corpkit.interpreter.editing.rst │ ├── corpkit.interpreter.interrogating.rst │ ├── corpkit.interpreter.making.rst │ ├── corpkit.interpreter.managing.rst │ ├── corpkit.interpreter.overview.rst │ ├── corpkit.interpreter.setup.rst │ └── corpkit.interpreter.visualising.rst ├── setup.cfg ├── setup.py └── talks/ └── IDL_seminar.tex ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ *.p linguist-language=Python ================================================ FILE: .gitmodules ================================================ [submodule "corpkit-app"] path = corpkit-app url = https://github.com/interrogator/corpkit-app.git ================================================ FILE: .travis.yml ================================================ language: python python: - '2.7' - '3.5' install: - pip install --install-option="--no-cython-compile" cython - pip install -r requirements.txt - nltkd=$(python -c 'from __future__ import print_function; import nltk; print(nltk.data.path[0])') - python -m nltk.downloader punkt -d "$nltkd" - python -m nltk.downloader wordnet -d "$nltkd" - python -m nltk.downloader averaged_perceptron_tagger -d "$nltkd" script: - nosetests corpkit/nosetests.py -a '!slow' deploy: provider: pypi user: mcddjx password: secure: I7K+LWe37vRytA0QpF9sAdGaTYbwq0NuN6Xi6QgrSYr08WO5wKSZJ9bkBtJF4U9OCAtRjM64hOY+eobnKfwbNE+IHG8znI9z40jHyyCayYtk5P5UOG6OtB5wBbhXLjb9qXzy21byFcY1zM7iEUKw8D+Q4nu8cENFmx9agG025jet4MHXqtQlQYxTVr7GLK0oAqxO19J/D7F6Ykn2UEHw9dm3X0gu94gM6fMN1lIS74DM4d2IzRWOZrIaYigL8ckDSkWP9taVM553aI9qrLCz/4prCKwxo0QAINExiPYjSwG1swzTfabZvPI5bVdxY23TTx86Af6z3BQuhpIY1fspDTaw/Gn527XWFeOuqI8jhf6pP6ZdOo7qiyVwqU33/5CoTW+A/o1o963SDHSjyarxbz+De10zLScCvfIsZ2uHnh3CFnlWUeprjV09QIuz2lQbZoQP817/CAdxqLaMl/aG7Wcf4X7MI/SQauLVYR91gkhiBWzBdrYNGOEsrr7dzc5tbqBLeupF6Nf811BR2SdoGIfmihQGrYdC271/HuHTLsrcvXaCyXWElA1ATSRy6XfC8IsljU695Bm6kSrb4pG4V64P2Lhe2F8wtu4L1IzP+w7NRbeZNntMqMfksZz5vNe3CVhqcPy8VmOZGsmOaa9PIFHzZ7pM1Pxybt25Hz+GXBQ= on: tags: true distributions: sdist bdist_wheel repo: interrogator/corpkit git: submodules: false ================================================ FILE: API-README.md ================================================ ## *corpkit*: API readme > This file is a deprecated introduction to the *corpkit* Python API. It still exists because it contains a lot of useful information and advanced examples that are not found elsewhere. It is deprecated because better documentation is available at [ReadTheDocs](http://corpkit.readthedocs.org/en/latest/). - [What's in here?](#whats-in-here) - [`Corpus()`](#corpus) - [Navigating `Corpus` objects](#navigating-corpus-objects) - [`interrogate()` method](#interrogate-method) - [`concordance()` method](#concordance-method) - [`Interrogation`](#interrogation) - [`edit()` method](#edit-method) - [`visualise()` method](#visualise-method) - [Functions, lists, etc.](#functions-lists-etc) - [Installation](#installation) - [By downloading the repository](#by-downloading-the-repository) - [By cloning the repository](#by-cloning-the-repository) - [Via `pip`](#via-pip) - [Quickstart](#quickstart) - [More detailed examples](#more-detailed-examples) - [`search`, `exclude` and `show`](#search-exclude-and-show) - [Working with coreferences](#working-with-coreferences) - [Building corpora](#building-corpora) - [Speaker IDs](#speaker-ids) - [Navigating parsed corpora](#navigating-parsed-corpora) - [Getting general stats](#getting-general-stats) - [Concordancing](#concordancing) - [Systemic functional stuff](#systemic-functional-stuff) - [Keywording](#keywording) - [Visualising keywords](#visualising-keywords) - [Traditional reference corpora](#traditional-reference-corpora) - [Parallel processing](#parallel-processing) - [Multiple corpora](#multiple-corpora) - [Multiple speakers](#multiple-speakers) - [Multiple queries](#multiple-queries) - [More complex queries and plots](#more-complex-queries-and-plots) - [Visualisation options](#visualisation-options) - [Contact](#contact) - [Cite](#cite) ## What's in here? Essentially, the module contains classes, methods and functions for building and interrogating corpora, then manipulating or visualising the results. ### `Corpus()` First, there's a `Corpus()` class, which models a corpus of CoreNLP XML, lists of tokens, or plaintext files, creating subclasses for subcorpora and corpus files. To use it, simple feed it a path to a directory containing `.txt` files, or subfolders containing `.txt` files. ```python >>> from corpkit import Corpus >>> unparsed = Corpus('path/to/data') ``` With the `Corpus()` class, the following attributes are available: | Attribute | Purpose | |-----------|---------| | `corpus.subcorpora` | list of subcorpus objects with indexing/slicing methods | | `corpus.features` | Corpus features (characters, clauses, words, tokens, process types, passives, etc.) | | `corpus.postags` | Distribution of parts of speech | | `corpus.wordclasses` | Distribution of word classes | as well as the following methods: | Method | Purpose | |--------|---------| | `corpus.parse()` | Create a parsed version of a plaintext corpus | | `corpus.tokenise()` | Create a tokenised version of a plaintext corpus | | `corpus.interrogate()` | Interrogate the corpus for lexicogrammatical features | | `corpus.concordance()` | Concordance via lexis and/or grammar | #### Navigating `Corpus` objects Once you've defined a Corpus, you can move around it very easily: ```python ### corpus containing annual subcorpora of NYT articles >>> corpus = Corpus('data/NYT-parsed') >>> list(corpus.subcorpora)[:3] ### [, ### , ### ] >>> corpus.subcorpora[0].path, corpus.subcorpora[0].datatype ### ('/Users/daniel/Work/risk/data/NYT-parsed/1987', 'parse') >>> corpus.subcorpora.c1989.files[10:13] ### [, ### , ### ] ``` Most attributes, and the `.interrogate()` and `.concordance()` methods, can also be called on `Subcorpus` and `File` objects. `File` objects also have a `.read()` method. #### `interrogate()` method * Use [Tregex](http://nlp.stanford.edu/~manning/courses/ling289/Tregex.html), regular expressions or wordlists to search parse trees, dependencies, token lists or plain text for complex lexicogrammatical phenomena * Search for, exclude and show word, lemma, POS tag, semantic role, governor, dependent, index (etc) of a token * N-gramming * Two-way UK-US spelling conversion * Output Pandas DataFrames that can be easily edited and visualised * Use parallel processing to search for a number of patterns, or search for the same pattern in multiple corpora * Restrict searches to particular speakers in a corpus * Works on collections of corpora, corpora, subcorpora, single files, or slices thereof * Quickly save to and load from disk with `save()` and `load()` #### `concordance()` method * Equivalent to `interrogate()`, but return DataFrame of concordance lines * Return any combination and order of words, lemmas, indices, functions, or POS tags * Editable and saveable * Output to LaTeX, CSV or string with `format()` The code below demonstrates the complex kinds of queries that can be handled by the `interrogate()` and `concordance()` methods: ```python ### import * mostly so that we can access global variables like G, P, V ### otherwise, use 'w' instead of W, 'p' instead of P, etc. >>> from corpkit import * ### select parsed corpus >>> corpus = Corpus('data/postcounts-parsed') ### import process type lists and closed class wordlists >>> from corpkit.dictionaries import * ### match tokens with governor that is in relational process wordlist, ### and whose function is `nsubj(pass)` or `csubj(pass)`: >>> criteria = {GL: processes.relational.lemmata, F: r'^.subj'} ### exclude tokens whose part-of-speech is verbal, ### or whose word is in a list of pronouns >>> exc = {P: r'^V', W: wordlists.pronouns} # interrogate, returning slash-delimited function/lemma >>> data = corpus.interrogate(criteria, exclude=exc, show=[F,L]) >>> lines = corpus.concordance(criteria, exclude=exc, show=[F,L]) ### show results >>> print data, lines.format(n=10, window=40, columns=[L,M,R]) ``` Output sample: ``` nsubj/thing nsubj/person nsubj/problem nsubj/way nsubj/son 01 296 168 134 69 73 02 233 147 88 70 70 03 250 160 95 80 67 04 247 205 88 93 71 05 275 193 68 75 61 0 nk nsubj/it cop/be ccomp/sad advmod/when nsubj/person aux/do neg/not advcl/look ./at prep_at/w 1 /my dobj/Fluoxetine advmod/now mark/that nsubj/spring ccomp/be advmod/here ./, ./but nsubj/I a 2 y mark/because expl/there advcl/be det/a nsubj/woman ./across det/the prep_across/hall ./from 3 num/114 ccomp/pound ./, mark/so det/any nsubj/med nsubj/I rcmod/take aux/can advcl/have de 4 nsubj/Kat ./, root/be nsubj/you dep/taper ./off ./ 5 /to xcomp/explain prep_from/what det/the nsubj/mark ./on poss/my prep_on/arm ./, conj_and/ne 6 det/the amod/first ./and conj_and/third nsubj/hospital nsubj/I rcmod/be advmod/at root/have num 7 e dobj/tv mark/while det/the amod/second nsubj/hospital nsubj/I cop/be rcmod/IP prep/at pcomp/in 8 nsubj/Ben ./, mark/if nsubj/you cop/be advcl/unhap 9 h ./of prep_of/sleep advmod/when det/the nsubj/reality advcl/be ./, nsubj/everyone ccomp/need n ``` ### `Interrogation` The `corpus.interrogate()` method returns an `Interrogation` object. These have attributes: | Attribute | Contains | | ---------------|----------| | `interrogation.results` | Pandas DataFrame of counts in each subcorpus | | `interrogation.totals` | Pandas Series of totals for each subcorpus/result | | `interrogation.query` | a `dict` of values used to generate the interrogation | and methods: | Method | Purpose | |------------|---------| | `interrogation.edit()` | Get relative frequencies, merge/remove results/subcorpora, calculate keywords, sort using linear regression, etc. | | `interrogation.visualise()` | visualise results via *matplotlib* | | `interrogation.save()` | Save data as pickle | | `interrogation.quickview()` | Show top results and their absolute/relative frequency | These methods have been monkey-patched to Pandas' DataFrame and Series objects, as well, so any slice of a result can be edited or plotted easily. #### `edit()` method * Remove, keep or merge interrogation results or subcorpora using indices, words or regular expressions (see below) * Sort results by name or total frequency * Use linear regression to figure out the trajectories of results, and sort by the most increasing, decreasing or static values * Show the *p*-value for linear regression slopes, or exclude results above *p* * Work with absolute frequency, or determine ratios/percentage of another list: * determine the total number of verbs, or total number of verbs that are *be* * determine the percentage of verbs that are *be* * determine the percentage of *be* verbs that are *was* * determine the ratio of *was/were* ... * etc. * Plot more advanced kinds of relative frequency: for example, find all proper nouns that are subjects of clauses, and plot each word as a percentage of all instances of that word in the corpus (see below) #### `visualise()` method * Plot using *Matplotlib* * Plot anything you like: words, tags, counts for grammatical features ... * Create line charts, bar charts, pie charts, etc. with the `kind` argument * Use `subplots=True` to produce individual charts for each result * Customisable figure titles, axes labels, legends, image size, colormaps, etc. * Use `TeX` if you have it * Use log scales if you really want * Use a number of chart styles, such as `ggplot`, `fivethirtyeight` or `seaborn-talk` (if you've got `seaborn` installed) * Save images to file, as `.pdf` or `.png` * Experimental interactive plots (hover-over text, interactive legends) using *mpld3* ### Functions, lists, etc. There are quite a few helper functions for making regular expressions, making new projects, and so on, with more documentation forthcoming. Also included are some lists of words and dependency roles, which can be used to match functional linguistic categories. These are explained in more detail [here](#systemic-functional-stuff). ## Installation You can get *corpkit* running by downloading or cloning this repository, or via `pip`. ### By downloading the repository Hit 'Download ZIP' and unzip the file. Then `cd` into the newly created directory and install: ```shell cd corpkit-master # might need sudo: python setup.py install ``` ### By cloning the repository Clone the repo, `cd` into it and run the setup: ```shell git clone https://github.com/interrogator/corpkit.git cd corpkit # might need sudo: python setup.py install ``` ### Via `pip` ```shell # might need sudo: pip install corpkit # or, for a local install: # pip install --user corpkit ``` *corpkit* should install all the necessary dependencies, including *pandas*, *NLTK*, *matplotlib*, etc, as well as some NLTK data files. ## Quickstart Once you've got *corpkit*, and a folder containing text files, you're ready to go: ```python ### import everything >>> from corpkit import * ### Make corpus object from path to subcorpora/text files >>> unparsed = Corpus('data/nyt/years') ### parse it, return the new parsed corpus object >>> corpus = unparsed.parse() ### search corpus for modal auxiliaries and plot the top results >>> corpus.interroplot('MD') ``` Output:
## More detailed examples `interroplot()` is just a demo method that does three things in order: 1. uses `interrogate()` to search corpus for a (Regex- or Tregex-based) query 2. uses `edit()` to calculate the relative frequencies of each result 3. uses `visualise()` to show the top seven results Here's an example of the three methods at work: ```python ### make tregex query: head of NP in PP containing 'of' in NP headed by risk word: >>> q = r'/NN.?/ >># (NP > (PP <<# /(?i)of/ > (NP <<# (/NN.?/ < /(?i).?\brisk.?/))))' ### search trees, exclude 'risk of rain', output lemma >>> risk_of = corpus.interrogate({T: q}, exclude={W: '^rain$'}, show=L) ### alternative syntax which may be easier when there's only a single search criterion: # >>> risk_of = corpus.interrogate(T, q, exclude={W: '^rain$'}, show=L) ### use edit() to turn absolute into relative frequencies >>> to_plot = risk_of.edit('%', risk_of.totals) ### plot the results >>> to_plot.visualise('Risk of (noun)', y_label='Percentage of all results', ... style='fivethirtyeight') ``` Output:
### `search`, `exclude` and `show` In the example above, parse trees are searched, a particular match is excluded, and lemmata are shown. These three arguments (`search`, `exclude` and `show`) are the core of the `interrogate()` and `concordance()` methods. the `search` and `exclude` arguments need a `dict`, with the **thing to be searched as keys** and the **search pattern as values**. Here is a list of available keys for plaintext, tokenised and parsed corpora: | Key | Gloss | |-----|-------| | `W` | Word | | `L` | Lemma | | `I` | Index of token in sentence | | `N` | N-gram | For parsed corpora, there are many other possible keys: | Key | Gloss | |-----|-------| | `P` | Part of speech tag | | `X` | Word class | | `G` | Governor word | | `GL` | Governor lemma form | | `GP` | Governor POS | | `GF` | Governor function | | `D` | Dependent word | | `DL` | Dependent lemma form | | `DP` | Dependent POS | | `DF` | Dependent function | | `F` | Dependency function | | `R` | Distance from 'root' | | `T` | Tree | | `S` | Predefined general stats | Allowable combinations are subject to common sense. If you're searching trees, you can't also search governors or dependents. If you're searching an unparsed corpus, you can't search for information provided by the parser. Here are some example `search`/`exclude` values: | search/exclude | Gloss | |--------|-------| | `{W: r'^p'}` | Tokens starting with P | | `{L: r'any'}` | Any lemma (often equivalent to `r'.*'`) | | `{G: r'ing$'}` | Tokens with governor word ending in 'ing' | | `{F: funclist}` | Tokens whose dependency function matches a `str` in `funclist` | | `{D: r'^br', GL: r'$have$'}` | Tokens with dependent starting with 'br' and 'have' as governor lemma | | `{I: '0', F: '^nsubj$'}` | Sentence initial tokens with role of `nsubj` | | `{T: r'NP !<<# /NN.?'}` | NPs with non-nominal heads | If you'd prefer, you can make a `dict` to handle dependent and governor information, instead of using things like `GL` or `DF`. The following searches produce the same output: ```python >>> crit = {W: r'^friend$', ... D: {F: 'amod', ... W: 'great'}} >>> crit = {W: r'^friend$', DF: 'amod', D: 'great'} ``` By default, all `search` criteria must match, but any `exclude` criterion is enough to exclude a match. This beahviour can be changed with the `searchmode` and `excludemode` arguments: ```python ### get words that end in 'ing' OR are nominal: >>> out = corpus.interrogate({W: 'ing$', P: r'^N'}, searchmode='any') ### get any word, but exclude words that end in 'ing' AND are nominal: >>> out = corpus.interrogate({W: 'any'}, exclude={W: 'ing$', P: N}, excludemode='all') ``` The `show` argument wants a list of keys you'd like to return for each result. The order will be respected. If you only want one thing, a `str` is OK. One additional possibility is `C`, which returns the number of occurrences only. | `show` | return | |--------|--------| | `W` | `'champions'` | | `[W]` | `'champions'` | | `L` | `'champion'` | | `P` | `'NNS'` | | `X` | `'Noun'` | | `T` | `'(np (jj prevailing) (nns champions))'` (depending on Tregex query) | | `[P, W]` | `'NNS/champions'` | | `[W, P]` | `'champions/NNS'` | | `[I, L, R]` | `'2/champion/1'` | | `[L, D, F]` | `'champion/prevailing/nsubj'` | | `[G, GL, I]` | `'are/be/2'` | | `[GL, GF, GP]` | `'be/root/vb'` | | `[L, L]` | `'champion/champion'` | | `[C]` | `24` | Again, common sense dictates what is possible. When searching trees, only trees, words, lemmata, POS and counts can be returned. If showing trees, you can't show anything else. If you use `C`, you can't use anything else. ## Working with coreferences One major challenge in corpus linguistics is the fact that pronouns stand in for other words. Parsing provides coreference resolution, which maps pronouns to the things they denote. You can enable this kind of parsing by specifying the `dcoref` annotator: ```python >>> ops = 'tokenize,ssplit,pos,lemma,parse,ner,dcoref' >>> parsed = corpus.interrogate(operations=ops) ``` If you have done this, you can use `coref=True` while interrogating to allow coreferents to be mapped together: ```python >>> corpus.interrogate(query, coref=True) ``` So, if you wanted to find all the processes a certain entity is engaged in, you can get a more complete result with: ```python >>> from corpkit.dictionaries import roles >>> corpus.interrogate({W: 'clinton', GF: roles.process}, coref=True) ``` This will count `support` in `Clinton supported the independence of Kosovo`, and also potentially `authorize` in `He authorized the use of force`. You can also toggle the `representative=True` and `non_representative=True` arguments if you want to distinguish between copula and non-copula coreference. ```python >>> corpus.interrogate({W: 'clinton', GF: roles.process}, coref=True, representative=False) ``` ## Building corpora *corpkit*'s `Corpus()` class contains `parse()` and `tokenise()`, methods for created parsed and/or tokenised corpora. The main thing you need is **a folder, containing either text files, or subfolders that contain text files**. [Stanford CoreNLP](http://nlp.stanford.edu/software/corenlp.shtml) is required to parse corpora. If you don't have it, *corpkit* can download and install it for you. If you're tokenising, you'll need to make sure you have NLTK's tokeniser data. You can then run: ```python >>> unparsed = Corpus('path/to/unparsed/files') ### to parse, you can set a path to corenlp >>> corpus = unparsed.parse(corenlppath='Downloads/corenlp') ### to tokenise, point to nltk: # >>> corpus = unparsed.tokenise(nltk_data_path='Downloads/nltk_data') ``` which creates the parsed/tokenised corpora, and returns `Corpus()` objects representing them. When parsing, you can also optionally pass in a string of annotators, as per the [CoreNLP documentation](http://nlp.stanford.edu/software/corenlp.shtml): ```python >>> ans = 'tokenize,ssplit,pos' ### you can also set memory and turn off copula head parsing, ### or multiprocess the parsing job (though you'll want a big machine) >>> corpus = unparsed.parse(operations=ans, memory_mb=3000, ... copula_head=False, multiprocess=4) ``` #### Speaker IDs Something novel about *corpkit* is that it can work with corpora containing speaker IDs (scripts, transcripts, logs, etc.), like this: JOHN: Why did they change the signs above all the bins? SPEAKER23: I know why. But I'm not telling. If you use: ```python >>> corpus = unparsed.parse(speaker_segmentation=True) ``` This will: 1. Detect any IDs in any file 2. Create a duplicate version of the corpus with IDs removed 3. Parse this 'cleaned' corpus 4. Add an XML tag to each sentence with the name of the speaker 5. Return the parsed corpus as a `Corpus()` object When interrogating or concordancing, you can then pass in a keyword argument to restrict searches to one or more speakers: ```python >>> s = ['BRISCOE', 'LOGAN'] >>> npheads = interrogate(T, r'/NN.?/ >># NP', just_speakers=s) ``` This makes it possible to not only investigate individual speakers, but to form an understanding of the overall tenor/tone of the text as well: *Who does most of the talking? Who is asking the questions? Who issues commands?* ### Navigating parsed corpora When your data is parsed, `Corpus` objects draw on [CoreNLP XML](http://corenlp-xml-library.readthedocs.org/en/latest/) to keep everything seamlessly connected: ```python >>> corp = Corpus('data/CHT-parsed') >>> corp.subcorpora['2013'].files[1].document.sentences[4235].parse_string ### '(ROOT (FRAG (CC And) (NP (NP (RB not) (RB just)) (NP (NP (NNP Metrione) ... ' >>> corp.subcorpora['1997'].files[0].document.sentences[3509].tokens[30].word ### 'linguistics' ``` ### Getting general stats Once you have a parsed `Corpus()` object, enter `corpus.features` to interrogate the corpus for some basic frequencies: ```python >>> corpus = Corpus('data/sessions-parsed') >>> corpus.features ``` Output: ``` Characters Tokens Words Closed class words Open class words Clauses Sentences Unmodalised declarative Mental processes Relational processes Interrogative Passives Verbal processes Modalised declarative Open interrogative Imperative Closed interrogative 01 26873 8513 7308 4809 3704 2212 577 280 156 98 76 35 39 26 8 2 3 02 25844 7933 6920 4313 3620 2270 266 130 195 109 29 19 35 11 5 1 3 03 18376 5683 4877 3067 2616 1640 330 174 132 68 30 40 29 8 12 6 1 04 20066 6354 5366 3587 2767 1775 319 174 176 83 33 30 20 9 9 4 1 05 23461 7627 6217 4400 3227 1978 479 245 154 93 45 51 28 20 5 3 1 06 19164 6777 5200 4151 2626 1684 298 111 165 83 43 56 14 10 6 6 2 07 22349 7039 5951 4012 3027 1947 343 183 195 82 29 30 38 12 5 5 0 08 26494 8760 7124 4960 3800 2379 545 263 170 87 66 36 32 10 6 5 4 09 23073 7747 6193 4524 3223 2056 310 149 164 88 21 26 22 10 5 3 0 10 20648 6789 5608 3817 2972 1795 437 265 139 101 34 34 39 18 5 3 2 11 25366 8533 6899 4925 3608 2207 457 230 203 116 39 48 47 15 10 4 0 12 16976 5742 4624 3274 2468 1567 258 135 183 72 23 43 22 4 3 1 6 13 25807 8546 6966 4768 3778 2345 477 257 200 124 45 50 36 15 12 3 2 ``` Features such as *relational/mental/verbal* processes are difficult to locate automatically, so these counts are perhaps best seen as approximations. Even so, this data can be very helpful when using `edit()` to generate relative frequencies, for example. ## Concordancing Unlike most concordancers, which are based on plaintext corpora, *corpkit* can concordance grammatically, using the same kind of `search`, `exclude` and `show` values as `interrogate()`. ```python >>> subcorpus = corpus.subcorpora.c2005 ### C is added above to make a valid variable name from an int ### can also be accessed as corpus.subcorpora['2005'] ### or corpus.subcorpora[index] >>> query = r'/JJ.?/ > (NP <<# (/NN.?/ < /\brisk/))' ### T option for tree searching >>> lines = subcorpus.concordance(T, query, window=50, n=10, random=True) ``` Output (a `Pandas DataFrame`): ``` 0 hedge funds or high-risk stocks obviously poses a greater risk to the pension program than a portfolio of 1 contaminated water pose serious health and environmental risks 2 a cash break-even pace '' was intended to minimize financial risk to the parent company 3 Other major risks identified within days of the attack 4 One seeks out stocks ; the other monitors risks 5 men and women in Colorado Springs who were at high risk for H.I.V. infection , because of 6 by the marketing consultant Seth Godin , to taking calculated risks , in the opinion of two longtime business 7 to happen '' in premises '' where there was a high risk of fire 8 As this was match points , some of them took a slight risk at the second trick by finessing the heart 9 said that the agency 's continuing review of how Guidant treated patient risks posed by devices like the ``` You can also concordance via dependencies: ```python ### match words starting with 'st' filling function of nsubj >>> criteria = {W: r'^st', F: r'nsubj$'} ### show function, pos and lemma (in that order) >>> lines = subcorpus.concordance(criteria, show =[F,P,L]) >>> lines.format(window=30, n=10, columns=[L,M,R]) ``` Output: ``` 0 ime ./:/; cc/CC/and det/DT/the nsubj/NN/stock conj:and/VBZ/be advmod/RB/hist 1 vmod/RB/even compound/NN/sleep nsubj/NNS/study ./,/, appos/NNS/evaluation cas 2 od:poss/NNS/veteran case/POS/' nsubj/NN/study ccomp/VBZ/suggest mark/IN/that 3 det/DT/a nsubj/NN/study case/IN/in nmod:poss/NN/today 4 cc/CC/but det/DT/the nsubj/NN/study root/VBD/find mark/IN/that cas 5 pound/NN/a amod/JJ/preliminary nsubj/NN/study case/IN/of nmod:of/NNS/woman c 6 case/IN/for nmod:for/WDT/which nsubj/NNS/statistics acl:relcl/VBD/be xcomp/JJ/avai 7 amod/JJR/earlier nsubj/NNS/study aux/VBD/have root/VBN/show mar 8 ay det/DT/the amod/JJR/earlier nsubj/NNS/study aux/VBD/do neg/RB/not ccomp/VB 9 /there root/VBP/be det/DT/some nsubj/NNS/strategy ./:/- dep/JJS/most case/IN/of ``` You can search tokenised corpora or plaintext corpora for regular expressions or lists of words to match. The two queries below will return identical results: ```python >>> r_query = r'^fr?iends?$' >>> l_query = ['friend', 'friends', 'fiend', 'fiends'] >>> lines = subcorpus.concordance({W: r_query}) >>> lines = subcorpus.concordance({W: l_query}) ``` If you really wanted, you can then go on to use `concordance()` output as a dictionary, or extract keywords and ngrams from it, or keep or remove certain results with `edit()`. If you want to [give the GUI a try](http://interrogator.github.io/corpkit/), you can colour-code and create thematic categories for concordance lines as well. ## Systemic functional stuff Because I mostly use systemic functional grammar, there is also a simple tool for distinguishing between process types (relational, mental, verbal) when interrogating a corpus. If you add words to the lists in `dictionaries/process_types.py`, corpkit will get their inflections automatically. ```python >>> from corpkit.dictionaries import processes ### match nsubj with verbal process as governor >>> crit = {F: '^nsubj$', G: processes.verbal} ### return lemma of the nsubj >>> sayers = corpus.interrogate(crit, show=L) ### have a look at the top results >>> sayers.quickview(n=20) ``` Output: ``` 0: he (n=24530) 1: she (n=5558) 2: they (n=5510) 3: official (n=4348) 4: it (n=3752) 5: who (n=2940) 6: that (n=2665) 7: i (n=2062) 8: expert (n=2057) 9: analyst (n=1369) 10: we (n=1214) 11: report (n=1103) 12: company (n=1070) 13: which (n=1043) 14: you (n=987) 15: researcher (n=987) 16: study (n=901) 17: critic (n=826) 18: person (n=802) 19: agency (n=798) 20: doctor (n=770) ``` First, let's try removing the pronouns using `edit()`. The quickest way is to use the editable wordlists stored in `dictionaries/wordlists`: ```python >>> from corpkit.dictionaries import wordlists >>> prps = wordlists.pronouns # alternative approaches: # >>> prps = [0, 1, 2, 4, 5, 6, 7, 10, 13, 14, 24] # >>> prps = ['he', 'she', 'you'] # >>> prps = as_regex(wl.pronouns, boundaries='line') # or, by re-interrogating: # >>> sayers = corpus.interrogate(crit, show=L, exclude={W: wordlists.pronouns}) ### give edit() indices, words, wordlists or regexes to keep remove or merge >>> sayers_no_prp = sayers.edit(skip_entries=prps, skip_subcorpora=[1963]) >>> sayers_no_prp.quickview(n=10) ``` Output: ``` 0: official (n=4342) 1: expert (n=2055) 2: analyst (n=1369) 3: report (n=1098) 4: company (n=1066) 5: researcher (n=987) 6: study (n=900) 7: critic (n=825) 8: person (n=801) 9: agency (n=796) ``` Great. Now, let's sort the entries by trajectory, and then plot: ```python ### sort with edit() ### use scipy.linregress to sort by 'increase', 'decrease', 'static', 'turbulent' or P ### other sort_by options: 'name', 'total', 'infreq' >>> sayers_no_prp = sayers_no_prp.edit('%', sayers.totals, sort_by='increase') ### make an area chart with custom y label >>> sayers_no_prp.visualise('Sayers, increasing', kind='area', ... y_label='Percentage of all sayers') ``` Output:
We can also merge subcorpora. Let's look for changes in gendered pronouns: ```python >>> merges = {'1960s': r'^196', ... '1980s': r'^198', ... '1990s': r'^199', ... '2000s': r'^200', ... '2010s': r'^201'} >>> sayers = sayers.edit(merge_subcorpora=merges) ### now, get relative frequencies for he and she ### SELF calculates percentage after merging/removing etc has been performed, ### so that he and she will sum to 100%. Pass in `sayers.totals` to calculate ### he/she as percentage of all sayers >>> genders = sayers.edit('%', SELF, just_entries=['he','she']) ### and plot it as a series of pie charts, showing totals on the slices: >>> genders.visualise('Pronominal sayers in the NYT', kind='pie', ... subplots=True, figsize=(15,2.75), show_totals='plot') ``` Output:
Woohoo, a decreasing gender divide! ## Keywording As I see it, there are two main problems with keywording, as typically performed in corpus linguistics. First is the reliance on 'balanced'/'general' reference corpora, which are obviously a fiction. Second is the idea of stopwords. Essentially, when most people calculate keywords, they use stopword lists to automatically filter out words that they think will not be of interest to them. These words are generally closed class words, like determiners, prepositions, or pronouns. This is not a good way to go about things: the relative frequencies of *I*, *you* and *one* can tell us a lot about the kinds of language in a corpus. More seriously, stopwords mean adding subjective judgements about what is interesting language into a process that is useful precisely because it is not subjective or biased. So, what to do? Well, first, don't use 'general reference corpora' unless you really really have to. With *corpkit*, you can use your entire corpus as the reference corpus, and look for keywords in subcorpora. Second, rather than using lists of stopwords, simply do not send all words in the corpus to the keyworder for calculation. Instead, try looking for key *predicators* (rightmost verbs in the VP), or key *participants* (heads of arguments of these VPs): ```python ### just heads of participants' lemma form (no pronouns, though!) >>> part = r'/(NN|JJ).?/ >># (/(NP|ADJP)/ $ VP | > VP)' >>> p = corpus.interrogate(T, part, show=L) ``` When using `edit()` to calculate keywords, there are a few default parameters that can be easily changed: | Keyword argument | Function | Default setting | Type |---|---|---|---| | `threshold` | Remove words occurring fewer than `n` times in reference corpus | `False` | `'high/medium/low'`/ `True/False` / `int` | `calc_all` | Calculate keyness for words in both reference and target corpus, rather than just target corpus | `True` | `True/False` | `selfdrop` | Attempt to remove target data from reference data when calculating keyness | `True` | `True/False` Let's have a look at how these options change the output: ```python ### SELF as reference corpus uses p.results >>> options = {'selfdrop': False, ... 'calc_all': False, ... 'threshold': False} >>> for k, v in options.items(): ... key = p.edit('keywords', SELF, k=v) ... print key.results.ix['2011'].order(ascending=False) ``` Output: | #1: default | | #2: no `selfdrop` | | #3: no `calc_all` | | #4: no `threshold` | | |---|---:|---|---:|---|---:|---|---:| | risk | 1941.47 | risk | 1909.79 | risk | 1941.47 | bank | 668.19 | | bank | 1365.70 | bank | 1247.51 | bank | 1365.70 | crisis | 242.05 | | crisis | 431.36 | crisis | 388.01 | crisis | 431.36 | obama | 172.41 | | investor | 410.06 | investor | 387.08 | investor | 410.06 | demiraj | 161.90 | | rule | 316.77 | rule | 293.33 | rule | 316.77 | regulator | 144.91 | | | ... | | ... | | ... | | ... | | clinton | -37.80 | tactic | -35.09 | hussein | -25.42 | clinton | -87.33 | | vioxx | -38.00 | vioxx | -35.29 | clinton | -37.80 | today | -89.49 | | greenspan | -54.35 | greenspan | -51.38 | vioxx | -38.00 | risky | -125.76 | | bush | -153.06 | bush | -143.02 | bush | -153.06 | bush | -253.95 | | yesterday | -162.30 | yesterday | -151.71 | yesterday | -162.30 | yesterday | -268.29 | As you can see, slight variations on keywording give different impressions of the same corpus! A key strength of *corpkit*'s approach to keywording is that you can generate new keyword lists without re-interrogating the corpus. We can use some Pandas syntax to do this more quickly. ```python >>> yrs = ['2011', '2012', '2013', '2014'] >>> keys = p.results.ix[yrs].sum().edit('keywords', p.results.drop(yrs), ... threshold=False) >>> print keys.results ``` Output: ``` bank 1795.24 obama 722.36 romney 560.67 jpmorgan 527.57 rule 413.94 dimon 389.86 draghi 349.80 regulator 317.82 italy 282.00 crisis 243.43 putin 209.51 greece 208.80 snowden 208.35 mf 192.78 adoboli 161.30 ``` ... or track the keyness of a set of words over time: ```python >>> twords = ['terror', 'terrorism', 'terrorist'] >>> terr = p.edit(K, SELF, merge_entries={'terror': twords}) >>> print terr.results.terror ``` Output: ``` 1963 -2.51 1987 -3.67 1988 -16.09 1989 -6.24 1990 -16.24 ... ... Name: terror, dtype: float64 ``` ### Visualising keywords Naturally, we can use `visualise()` for our keywords too: ```python >>> pols.results.terror.visualise('Terror* as Participant in the \emph{NYT}', ... kind='area', stacked=False, y_label='L/L Keyness') >>> politicians = ['bush', 'obama', 'gore', 'clinton', 'mccain', ... 'romney', 'dole', 'reagan', 'gorbachev'] >>> k.results[politicans].visualise('Keyness of politicians in the \emph{NYT}', ... num_to_plot='all', y_label='L/L Keyness', kind='area', legend_pos='center left') ``` Output:
### Traditional reference corpora If you still want to use a standard reference corpus, you can do that (and a dictionary version of the BNC is included). For the reference corpus, `edit()` recognises `dicts`, `DataFrames`, `Series`, files containing `dicts`, or paths to plain text files or trees. ```python ### arbitrary list of common/boring words >>> from corpkit.dictionaries import stopwords >>> print p.results.ix['2013'].edit(K, 'bnc.p', skip_entries=stopwords).results >>> print p.results.ix['2013'].edit(K, 'bnc.p', calc_all=False).results ``` Output (not so useful): ``` #1 #2 bank 5568.25 bank 5568.25 person 5423.24 person 5423.24 company 3839.14 company 3839.14 way 3537.16 way 3537.16 state 2873.94 state 2873.94 ... ... three -691.25 ten -199.36 people -829.97 bit -205.97 going -877.83 sort -254.71 erm -2429.29 thought -255.72 yeah -3179.90 will -679.06 ``` ## Parallel processing `interrogate()` can also do parallel-processing. You can generally improve the speed of an interrogation by setting the `multiprocess` argument: ```python ### set num of parallel processes manually >>> data = corpus.interrogate({T: r'/NN.?/ >># NP'}, multiprocess=3) ### set num of parallel processes automatically >>> data = corpus.interrogate({T: r'/NN.?/ >># NP'}, multiprocess=True) ``` Multiprocessing is particularly useful, however, when you are interested in multiple corpora, speaker IDs, or search queries. The sections below explain how. #### Multiple corpora To parallel-process multiple corpora, first, wrap them up as a `Corpora()` object. To do this, you can pass in: 1. a list of paths 2. a list of `Corpus()` objects 3. A single path string that contains corpora ```python >>> from corpkit.corpus import Corpora >>> corpora = Corpora('./data') # path containing corpora >>> corpora ### ### interrogate by parallel processing, 4 at a time >>> output = corpora.interrogate(T, r'/NN.?/ < /(?i)^h/', show=L, multiprocess=4) ``` The output of a multiprocessed interrogation will generally be a `dict` with corpus/speaker/query names as keys. The main exception to this is if you use `show=C`, which will concatenate results from each query into a single `Interrogation` object, using corpus/speaker/query names as column names. #### Multiple speakers Passing in a list of speaker names will also trigger multiprocessing: ```python >>> from dictionary.wordlists import wordlists >>> spkrs = ['MEYER', 'JAY'] >>> each_speaker = corpus.interrogate(W, wordlists.closedclass, just_speakers=spkrs) ``` There is also `just_speakers='each'`, which will be automatically expanded to include every speaker name found in the corpus. #### Multiple queries You can also run a number of queries over the same corpus in parallel. There are two ways to do this. ```python ### method one >>> query = {'Noun phrases': r'NP', 'Verb phrases': r'VP'} >>> phrases = corpus.interrogate(T, query, show=C) ### method two >>> query = {'-ing words': {W: r'ing$'}, '-ed verbs': {P: r'^V', W: r'ed$'}} >>> patterns = corpus.interrogate(query, show=L) ``` Let's try multiprocessing with multiple queries, showing count (i.e. returning a single results DataFrame). We can look at different risk processes (e.g. *risk*, *take risk*, *run risk*, *pose risk*, *put at risk*) using constituency parses: ```python >>> q = {'risk': r'VP <<# (/VB.?/ < /(?i).?\brisk.?\b/)', ... 'take risk': r'VP <<# (/VB.?/ < /(?i)\b(take|takes|taking|took|taken)+\b/) < (NP <<# /(?i).?\brisk.?\b/)', ... 'run risk': r'VP <<# (/VB.?/ < /(?i)\b(run|runs|running|ran)+\b/) < (NP <<# /(?i).?\brisk.?\b/)', ... 'put at risk': r'VP <<# /(?i)(put|puts|putting)\b/ << (PP <<# /(?i)at/ < (NP <<# /(?i).?\brisk.?/))', ... 'pose risk': r'VP <<# (/VB.?/ < /(?i)\b(pose|poses|posed|posing)+\b/) < (NP <<# /(?i).?\brisk.?\b/)'} # show=C will collapse results from each search into single dataframe >>> processes = corpus.interrogate(T, q, show=C) >>> proc_rel = processes.edit('%', processes.totals) >>> proc_rel.visualise('Risk processes') ``` Output:
## More complex queries and plots Next, let's find out what kinds of noun lemmas are subjects of any of these risk processes: ```python ### a query to find heads of nps that are subjects of risk processes >>> query = r'/^NN(S|)$/ !< /(?i).?\brisk.?/ >># (@NP $ (VP <+(VP) (VP ( <<# (/VB.?/ < /(?i).?\brisk.?/) ' \ ... r'| <<# (/VB.?/ < /(?i)\b(take|taking|takes|taken|took|run|running|runs|ran|put|putting|puts)/) < ' \ ... r'(NP <<# (/NN.?/ < /(?i).?\brisk.?/))))))' >>> noun_riskers = c.interrogate(T, query, show=L) >>> noun_riskers.quickview(10) ``` Output: ``` 0: person (n=195) 1: company (n=139) 2: bank (n=80) 3: investor (n=66) 4: government (n=63) 5: man (n=51) 6: leader (n=48) 7: woman (n=43) 8: official (n=40) 9: player (n=39) ``` We can use `edit()` to make some thematic categories: ```python ### get everyday people >>> p = ['person', 'man', 'woman', 'child', 'consumer', 'baby', 'student', 'patient'] ### get business, gov, institutions >>> i = ['company', 'bank', 'investor', 'government', 'leader', 'president', 'officer', ... 'politician', 'institution', 'agency', 'candidate', 'firm'] >>> merges = {'Everyday people': p, Institutions: i} >>> them_cat = them_cat.edit('%', noun_riskers.totals, ... merge_entries=merges, ... sort_by='total', ... skip_subcorpora=1963, ... just_entries=merges.keys()) ### plot result >>> them_cat.visualise('Types of riskers', y_label='Percentage of all riskers') ``` Output:
Let's also find out what percentage of the time some nouns appear as riskers: ```python ### find any head of an np not containing risk >>> query = r'/NN.?/ >># NP !< /(?i).?\brisk.?/' >>> noun_lemmata = corpus.interrogate(T, query, show=L) ### get some key terms >>> people = ['man', 'woman', 'child', 'baby', 'politician', ... 'senator', 'obama', 'clinton', 'bush'] >>> selected = noun_riskers.edit('%', noun_lemmata.results, ... just_entries=people, just_totals=True, threshold=0, sort_by='total') ### make a bar chart: >>> selected.visualise('Risk and power', num_to_plot='all', kind='bar', ... x_label='Word', y_label='Risker percentage', fontsize=15) ``` Output:
### Visualisation options With a bit of creativity, you can do some pretty awesome data-viz, thanks to *Pandas* and *Matplotlib*. The following plots require only one interrogation: ```python >>> modals = corpus.interrogate(T, 'MD < __', show=L) ### simple stuff: make relative frequencies for individual or total results >>> rel_modals = modals.edit('%', modals.totals) ### trickier: make an 'others' result from low-total entries >>> low_indices = range(7, modals.results.shape[1]) >>> each_md = modals.edit('%', modals.totals, merge_entries={'other': low_indices}, ... sort_by='total', just_totals=True, keep_top=7) ### complex stuff: merge results >>> entries_to_merge = [r'(^w|\'ll|\'d)', r'^c', r'^m', r'^sh'] >>> modals = modals.edit(merge_entries=entries_to_merge) ### complex stuff: merge subcorpora >>> merges = {'1960s': r'^196', ... '1980s': r'^198', ... '1990s': r'^199', ... '2000s': r'^200', ... '2010s': r'^201'} >>> modals = sayers.edit(merge_subcorpora=merges) ### make relative, sort, remove what we don't want >>> modals = modals.edit('%', modals.totals, keep_stats=False, ... just_subcorpora=merges.keys(), sort_by='total', keep_top=4) ### show results >>> print rel_modals.results, each_md.results, modals.results ``` Output: ``` would will can could ... need shall dare shalt 1963 22.326833 23.537323 17.955615 6.590451 ... 0.000000 0.537996 0.000000 0 1987 24.750614 18.505132 15.512505 11.117537 ... 0.072286 0.260228 0.014457 0 1988 23.138986 19.257117 16.182067 11.219364 ... 0.091338 0.060892 0.000000 0 ... ... ... ... ... ... ... ... ... ... 2012 23.097345 16.283186 15.132743 15.353982 ... 0.029499 0.029499 0.000000 0 2013 22.136269 17.286522 16.349301 15.620351 ... 0.029753 0.029753 0.000000 0 2014 21.618357 17.101449 16.908213 14.347826 ... 0.024155 0.000000 0.000000 0 [29 rows x 17 columns] would 23.235853 will 17.484034 can 15.844070 could 13.243449 may 9.581255 should 7.292294 other 7.290155 Name: Combined total, dtype: float64 would/will/'ll... can/could/ca may/might/must should/shall/shalt 1960s 47.276395 25.016812 19.569603 7.800941 1980s 44.756285 28.050776 19.224476 7.566817 1990s 44.481957 29.142571 19.140310 6.892708 2000s 42.386571 30.710739 19.182867 7.485681 2010s 42.581666 32.045745 17.777845 7.397044 ``` Now, some intense plotting: ```python ### exploded pie chart >>> each_md.visualise('Pie chart of common modals in the NYT', explode=['other'], ... num_to_plot='all', kind='pie', colours='Accent', figsize=(11,11)) ### bar chart, transposing and reversing the data >>> modals.results.iloc[::-1].T.iloc[::-1].visualise('Modals use by decade', kind='barh', ... x_label='Percentage of all modals', y_label='Modal group') ### stacked area chart >>> rel_modals.results.drop('1963').visualise('An ocean of modals', kind='area', ... stacked=True, colours='summer', figsize =(8,10), num_to_plot='all', ... legend_pos='lower right', y_label='Percentage of all modals') ``` Output:

## Contact Twitter: [@interro_gator](https://twitter.com/interro_gator) ## Cite > `McDonald, D. (2015). corpkit: a toolkit for corpus linguistics. Retrieved from https://www.github.com/interrogator/corpkit. DOI: http://doi.org/10.5281/zenodo.28361` ================================================ FILE: Dockerfile ================================================ FROM alpine:latest MAINTAINER interro_gator # set up a workspace so we can cache python stuff RUN rm -rf /.src && mkdir /.src COPY requirements.txt /.src/requirements.txt # add corenlp # COPY ~/corenlp /.src # use the workspace for everything WORKDIR /.src # install the basics RUN apk add --update \ python3 \ python-dev \ py-pip \ build-base \ git \ libpng \ freetype \ pkgconf \ libxft-dev \ libxml2-dev \ readline # install java for parsing RUN apk --update add openjdk8-jre-base # needed for numpy RUN ln -s /usr/include/locale.h /usr/include/xlocale.h RUN ln -s /usr/include/libxml2/libxml/xmlversion.h /usr/include/xmlversion.h RUN mkdir /usr/include/libxml RUN ln -s /usr/include/libxml2/libxml/xmlversion.h /usr/include/libxml/xmlversion.h RUN ln -s /usr/include/libxml2/libxml/xmlexports.h /usr/include/xmlexports.h RUN ln -s /usr/include/libxml2/libxml/xmlexports.h /usr/include/libxml/xmlexports.h # stop pip from complaining RUN pip install --upgrade pip # python heavyweight stuff RUN pip install cython RUN pip install numpy RUN pip install colorama # remove old stuff --- not sure it does much RUN rm -rf /var/cache/apk/* # get matplotlib github version RUN git clone git://github.com/matplotlib/matplotlib.git RUN cd matplotlib && python setup.py install && cd .. # install corpkit requirements RUN pip install -r requirements.txt RUN pip install docker-py # add everything from corpkit to working dir COPY . /.src # install corpkit itself RUN python /.src/setup.py install # download might be needed for licence issues #RUN python -m corpkit.download.corenlp / CMD python -m corpkit.env docker=corpkit WORKDIR /projects ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2015 Daniel McDonald mcdonaldd, at, unimelb.edu 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 ================================================ # Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) endif # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " applehelp to make an Apple Help Book" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " xml to make Docutils-native XML files" @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" @echo " coverage to run coverage check of the documentation (if enabled)" clean: rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/corpkit.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/corpkit.qhc" applehelp: $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp @echo @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." @echo "N.B. You won't be able to view it unless you put it in" \ "~/Library/Documentation/Help or install it in your application" \ "bundle." devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/corpkit" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/corpkit" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." latexpdfja: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through platex and dvipdfmx..." $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." coverage: $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage @echo "Testing of coverage in the sources finished, look at the " \ "results in $(BUILDDIR)/coverage/python.txt." xml: $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml @echo @echo "Build finished. The XML files are in $(BUILDDIR)/xml." pseudoxml: $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." ================================================ FILE: README.md ================================================ # corpkit: sophisticated corpus linguistics [![Join the chat at https://gitter.im/interrogator/corpkit](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/interrogator/corpkit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![DOI](https://zenodo.org/badge/14568/interrogator/corpkit.svg)](https://zenodo.org/badge/latestdoi/14568/interrogator/corpkit) [![Travis](https://img.shields.io/travis/interrogator/corpkit.svg)](https://travis-ci.org/interrogator/corpkit) [![PyPI](https://img.shields.io/pypi/v/corpkit.svg)](https://pypi.python.org/pypi/corpkit) [![ReadTheDocs](https://readthedocs.org/projects/corpkit/badge/?version=latest)](http://corpkit.readthedocs.org/en/latest/) [![Docker Automated build](https://img.shields.io/docker/automated/interrogator/corpkit.svg)](https://hub.docker.com/r/interrogator/corpkit/) [![Anaconda-Server Badge](https://anaconda.org/asmeurer/conda/badges/installer/conda.svg)](https://anaconda.org/interro_gator/corpkit) ## **NOTICE: corpkit is now deprecated and unmaintained. It is superceded by [`buzz`](https://github.com/interrogator/buzz), which is better in every way.** > **corpkit** is a module for doing more sophisticated corpus linguistics. It links state-of-the-art natural language processing technologies to functional linguistic research aims, allowing you to easily build, search and visualise grammatically annotated corpora in novel ways. The basic workflow involves making corpora, parsing them, and searching them. The results of searches are [CONLL-U formatted](http://universaldependencies.org/format.html) files, represented as [pandas](http://pandas.pydata.org/) objects, which can be edited, visualised or exported in a lot of ways. The tool has three interfaces, each with its own documentation: 1. [A Python API](http://corpkit.readthedocs.io) 2. [A natural language interpreter](http://corpkit.readthedocs.io/en/latest/rst_docs/interpreter/corpkit.interpreter.overview.html) 3. [A graphical interface](http://interrogator.github.io/corpkit/) A quick demo for each interface is provided in this document. ## Feature summary From all three interfaces, you can do a lot of neat things. In general: ### Parsing > Corpora are stored as `Corpus` objects, with methods for viewing, parsing, interrogating and concordancing. * A very simple wrapper around the full Stanford CoreNLP pipeline * Automatically add annotations, speaker names and metadata to parser output * Detect speaker names and make these into metadata features * Multiprocessing * Store dependency parsed texts, parse trees and metadata in CONLL-U format ### Interrogating corpora > Interrogating a corpus produces an `Interrogation` object, with results as Pandas DataFrame attributes. * Search corpora using regular expressions, wordlists, CQL, Tregex, or a rich, purpose built dependency searching syntax * Interrogate any dataset in CONLL-U format (e.g. [the Universal Dependencies Treebanks](https://github.com/UniversalDependencies)) * Collocation, n-gramming * Restrict searches by metadata feature * Use metadata as symbolic subcorpora * Choose what search results return: show any combination of words, lemmata, POS, indices, distance from root node, syntax tree, etc. * Generate concordances alongside interrogations * Work with coreference annotation ### Editing results > `Interrogation` objects have `edit`, `visualise` and `save` methods, to name just a few. Editing creates a new `Interrogation` object. * Quickly delete, sort, merge entries and subcorpora * Make relative frequencies (e.g. calculate results as percentage of all words/clauses/nouns ...) * Use linear regression sorting to find increasing, decreasing, turbulent or static trajectories * Calculate p values, etc. * Keywording * Simple multiprocessing available for parsing and interrogating * Results are Pandas objects, so you can do fast, good statistical work on them ### Visualising results > The `visualise` method of `Interrogation` objects uses matplotlib and seaborn if installed to produce high quality figures. * Many chart types * Easily customise titles, axis labels, colours, sizes, number of results to show, etc. * Make subplots * Save figures in a number of formats ### Concordancing > When interrogating a corpus, concordances are also produced, which can allow you to check that your query matches what you want it to. * Colour, sort, delete lines using regular expressions * Recalculate results from edited concordance lines (great for removing false positives) * Format lines for publication with TeX ### Other stuff * Language modelling * Save and load results, images, concordances * Export data to other tools * Switch between API, GUI and interpreter whenever you like ## Installation Via pip: ```shell pip install corpkit ``` Via Git: ```shell git clone https://github.com/interrogator/corpkit cd corpkit python setup.py install ``` Via Anaconda: ```shell conda install -c interro_gator corpkit ``` ## Creating a project Once you've got everything installed, you'll want to create a project---this is just a folder hierarchy that stores your corpora, saved results, figures and so on. You can do this in a number of ways: ### Shell ```shell new_project junglebook cp -R chapters junglebook/data ``` ### Interpreter ```shell > new project named junglebook > add ../chapters ``` ### Python ```python >>> import shutil >>> from corpkit import new_project >>> new_project('junglebook') >>> shutil.copytree('../chapters', 'junglebook/data') ``` You can create projects and add data via the file menu of the graphical interface as well. ## Ways to use *corpkit* As explained earlier, there are three ways to use the tool. Each has unique strengths and weaknesses. To summarise them, the Python API is the most powerful, but has the steepest learning curve. The GUI is the least powerful, but easy to learn (though it is still arguably the most powerful linguistics GUI available). The interpreter strikes a happy middle ground, especially for those who are not familiar with Python. ## Interpreter The first way to use *corpkit* is by entering its natural language interpreter. To activate it, use the `corpkit` command: ```shell $ cd junglebook $ corpkit ``` You'll get a lovely new prompt into which you can type commands: ```none corpkit@junglebook:no-corpus> ``` Generally speaking, it has the comforts of home, such as history, search, backslash line breaking, variable creation and `ls` and `cd` commands. As in `IPython`, any command beginning with an exclamation mark will be executed by the shell. You can also write scripts and execute them with `corpkit script.ck`, or `./script.ck` if you have a shebang. ### Making projects and parsing corpora ```shell # make new project > new project named junglebook # add folder of (subfolders of) text files > add '../chapters' # specify corpus to work on > set chapters as corpus # parse the corpus > parse corpus with speaker_segmentation and metadata and multiprocess as 2 ``` ### Searching and concordancing ```shell # search and exclude > search corpus for governor-function matching 'root' \ ... excluding governor-lemma matching 'be' # show pos, lemma, index, (e.g. 'NNS/thing/3') > search corpus for pos matching '^N' showing pos and lemma and index # further arguments and dynamic structuring > search corpus for word matching any \ ... with subcorpora as pagenum and preserve_case # show concordance lines > show concordance with window as 50 and columns as LMR # colouring concordances > mark m matching 'have' blue # recalculate results > calculate result from concordance ``` ### Variables, editing results ```shell # variable naming > call result root_deps # skip some numerical subcorpora > edit root_deps by skipping subcorpora matching [1,2,3,4,5] # make relative frequencies > calculate edited as percentage of self # use scipy to calculate trends and sort by them > sort edited by decrease ``` ### Visualise edited results ```shell > plot edited as line chart \ ... with x_label as 'Subcorpus' and \ ... y_label as 'Frequency' and \ ... colours as 'summer' ``` ### Switching interfaces ```shell # open graphical interface > gui # enter ipython with current namespace > ipython # use a new/existing jupyter notebook > jupyter notebook findings.ipynb ``` ## API Straight Python is the most powerful way to use *corpkit*, because you can manipulate results with Pandas syntax, construct loops, make recursive queries, and so on. Here are some simple examples of the API syntax: ### Instantiate and search a parsed corpus ```python ### import everything >>> from corpkit import * >>> from corpkit.dictionaries import * ### instantiate corpus >>> corp = Corpus('chapters-parsed') ### search for anything participant with a governor that ### is a process, excluding closed class words, and ### showing lemma forms. also, generate a concordance. >>> sch = {GF: roles.process, F: roles.actor} >>> part = corp.interrogate(search=sch, ... exclude={W: wordlists.closedclass}, ... show=[L], ... conc=True) ``` You get an `Interrogation` object back, with a `results` attribute that is a Pandas DataFrame: ``` daisy gatsby tom wilson eye man jordan voice michaelis \ chapter1 13 2 6 0 3 3 0 2 0 chapter2 1 0 12 10 1 1 0 0 0 chapter3 0 3 0 0 3 8 6 1 0 chapter4 6 9 2 0 1 3 1 1 0 chapter5 8 14 0 0 3 3 0 2 0 chapter6 7 14 9 0 1 2 0 3 0 chapter7 26 20 35 10 12 3 16 9 5 chapter8 5 4 1 10 2 2 0 1 10 chapter9 1 1 1 0 3 3 1 1 0 ``` ### Edit and visualise the result Below, we make normalised frequencies and plot: ```python ### calculate and sort---this sort requires scipy >>> part = part.edit('%', SELF) ### make line subplots for the first nine results >>> plt = part.visualise('Processes, increasing', subplots=True, layout=(3,3)) >>> plt.show() ``` There are also some [more detailed API examples over here](https://github.com/interrogator/corpkit/blob/master/API-README.md). This document is fairly thorough, but now deprecated, because the official docs are now over at [ReadTheDocs](http://corpkit.readthedocs.io/en/latest/). ## Example figures


Shifting register of scientific English



Participants and processes in online forum talk



Riskers and mood role of risk words in print news journalism

## Graphical interface Screenshots coming soon! For now, just head [here](http://interrogator.github.io/corpkit/). ## Contact Twitter: [@interro_gator](https://twitter.com/interro_gator) ## Cite > `McDonald, D. (2015). corpkit: a toolkit for corpus linguistics. Retrieved from https://www.github.com/interrogator/corpkit. DOI: http://doi.org/10.5281/zenodo.28361` ================================================ FILE: bld.bat ================================================ "%PYTHON%" setup.py install if errorlevel 1 exit 1 :: Add more build steps here, if they are necessary. :: See :: http://docs.continuum.io/conda/build.html :: for a list of environment variables that are set during the build process. ================================================ FILE: build.sh ================================================ #!/bin/bash $PYTHON setup.py install # Add more build steps here, if they are necessary. # See # http://docs.continuum.io/conda/build.html # for a list of environment variables that are set during the build process. ================================================ FILE: conf.py ================================================ # -*- coding: utf-8 -*- # # corpkit documentation build configuration file, created by # sphinx-quickstart on Thu Nov 5. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. from sphinx.highlighting import PygmentsBridge from pygments.formatters.latex import LatexFormatter class CustomLatexFormatter(LatexFormatter): def __init__(self, **options): super(CustomLatexFormatter, self).__init__(**options) self.verboptions = r"formatcom=\footnotesize" PygmentsBridge.latex_formatter = CustomLatexFormatter import sys import os import shlex from recommonmark.parser import CommonMarkParser source_parsers = { '.md': CommonMarkParser, } source_suffix = ['.rst', '.md'] # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) sys.path.insert(0,"/Users/daniel/work/corpkit/corpkit") # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'alabaster' ] # Napoleon settings (all default) #napoleon_google_docstring = True #napoleon_numpy_docstring = True #napoleon_include_init_with_doc = False #napoleon_include_private_with_doc = False #napoleon_include_special_with_doc = False #napoleon_use_admonition_for_examples = False #napoleon_use_admonition_for_notes = False #napoleon_use_admonition_for_references = False #napoleon_use_ivar = False #napoleon_use_param = True #napoleon_use_rtype = True #napoleon_use_keyword = True # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'corpkit' copyright = u'2016, Daniel McDonald' author = u'Daniel McDonald' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '2.3.8' # The full version, including alpha/beta/rc tags. release = '2.3.8' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build', '*/build.py'] # The reST default role (used for this markup: `text`) to use for all # documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. #keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # import alabaster # # html_theme_path = [alabaster.get_path()] # html_theme = 'alabaster' # html_sidebars = { # '**': [ # 'about.html', # 'navigation.html', # 'relations.html', # 'searchbox.html', # 'donate.html', # ] # } # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = 'images/alpha_gator_small.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. #html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. html_show_sphinx = False # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' #html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value #html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. #html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. htmlhelp_basename = 'corpkitdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). 'papersize': 'a4paper', # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # This should help with line breaks in code cells 'preamble': '\\setcounter{tocdepth}{3} \\usepackage{pmboxdraw}', # Latex figure (float) alignment 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'corpkit.tex', u'corpkit documentation', u'Daniel McDonald', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. latex_logo = 'images/alpha_gator_small.png' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'corpkit', u'corpkit documentation', [author], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'corpkit', u'corpkit documentation', author, 'corpkit', 'Corpus linguistic tools.', 'Linguistics'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False autodoc_member_order = 'bysource' ================================================ FILE: corpkit/__init__.py ================================================ """ A toolkit for corpus linguistics """ from __future__ import print_function #metadata __version__ = "2.3.8" __author__ = "Daniel McDonald" __license__ = "MIT" # probably not needed, anymore but adds corpkit to path for tregex.sh import sys import os import inspect from corpkit.constants import LETTERS # asterisk import __all__ = [ "load", "loader", "load_all_results", "as_regex", "new_project", "Corpus", "File", "Corpora", "gui"] + LETTERS corpath = inspect.getfile(inspect.currentframe()) baspat = os.path.dirname(corpath) #dicpath = os.path.join(baspat, 'dictionaries') for p in [corpath, baspat]: if p not in sys.path: sys.path.append(p) if p not in os.environ["PATH"].split(':'): os.environ["PATH"] += os.pathsep + p # import classes from corpkit.corpus import Corpus, File, Corpora #from corpkit.model import MultiModel from corpkit.other import (load, loader, load_all_results, quickview, as_regex, new_project) from corpkit.lazyprop import lazyprop #from corpkit.dictionaries.process_types import Wordlist from corpkit.process import gui # monkeypatch editing and plotting to pandas objects from pandas import DataFrame, Series # monkey patch functions def _plot(self, *args, **kwargs): from corpkit.plotter import plotter return plotter(self, *args, **kwargs) def _edit(self, *args, **kwargs): from corpkit.editor import editor return editor(self, *args, **kwargs) def _save(self, savename, **kwargs): from corpkit.other import save save(self, savename, **kwargs) def _quickview(self, n=25): from corpkit.other import quickview quickview(self, n=n) def _format(self, *args, **kwargs): from corpkit.other import concprinter concprinter(self, *args, **kwargs) def _texify(self, *args, **kwargs): from corpkit.other import texify texify(self, *args, **kwargs) def _calculate(self, *args, **kwargs): from corpkit.process import interrogation_from_conclines return interrogation_from_conclines(self) def _multiplot(self, leftdict={}, rightdict={}, **kwargs): from corpkit.plotter import multiplotter return multiplotter(self, leftdict=leftdict, rightdict=rightdict, **kwargs) def _perplexity(self): """ Pythonification of the formal definition of perplexity. input: a sequence of chances (any iterable will do) output: perplexity value. from https://github.com/zeffii/NLP_class_notes """ def _perplex(chances): import math chances = [i for i in chances if i] N = len(chances) product = 1 for chance in chances: product *= chance return math.pow(product, -1/N) return self.apply(_perplex, axis=1) def _entropy(self): """ entropy(pos.edit(merge_entries=mergetags, sort_by='total').results.T """ from scipy.stats import entropy import pandas as pd escores = entropy(self.edit('/', SELF).results.T) ser = pd.Series(escores, index=self.index) ser.name = 'Entropy' return ser def _shannon(self): from corpkit.stats import shannon return shannon(self) def _shuffle(self, inplace=False): import random index = list(self.index) random.shuffle(index) shuffled = self.ix[index] shuffled.reset_index() if inplace: self = shuffled else: return shuffled def _top(self): """Show as many rows and cols as possible without truncation""" import pandas as pd max_row = pd.options.display.max_rows max_col = pd.options.display.max_columns return self.iloc[:max_row, :max_col] def _tabview(self, **kwargs): import pandas as pd import tabview tabview.view(self, **kwargs) def _rel(self, denominator='self', **kwargs): from corpkit.editor import editor return editor(self, '%', denominator, **kwargs) def _keyness(self, measure='ll', denominator='self', **kwargs): from corpkit.editor import editor return editor(self, 'k', denominator, **kwargs) def _plain(df): return ' '.join(df['w']) # monkey patching things DataFrame.entropy = _entropy DataFrame.perplexity = _perplexity DataFrame.shannon = _shannon DataFrame.edit = _edit Series.edit = _edit DataFrame.rel = _rel Series.rel = _rel DataFrame.keyness = _keyness Series.keyness = _keyness DataFrame.visualise = _plot Series.visualise = _plot DataFrame.tabview = _tabview DataFrame.multiplot = _multiplot Series.multiplot = _multiplot DataFrame.save = _save Series.save = _save DataFrame.quickview = _quickview Series.quickview = _quickview DataFrame.format = _format Series.format = _format Series.texify = _texify DataFrame.calculate = _calculate Series.calculate = _calculate DataFrame.shuffle = _shuffle DataFrame.top = _top DataFrame.plain = _plain # Defining letters module = sys.modules[__name__] for letter in LETTERS: if not letter.isalpha(): trans = letter.replace('A', '-', 1).replace('Z', '+', 1).lower() else: trans = letter.lower() setattr(module, letter, trans) # other methods: # globals()[letter] = letter.lower() # exec('%s = "%s"' % (letter, letter.lower())) ANYWORD = r'[A-Za-z0-9:_]' ================================================ FILE: corpkit/annotate.py ================================================ """ corpkit: add annotations to conll-u via concordancing """ def process_special_annotation(v, lin): """ If the user wants a fancy annotation, like 'add middle column', this gets processed here. it's potentially the place where the user could add entropy score, or something like that. """ if v.lower() not in ['i', 'index', 'm', 'scheme', 't', 'q']: return v if v == 'index': return lin.name elif v in ['m', 't']: return str(lin[v]) else: return v def make_string_to_add(annotation, lin, replace=False): """ Make a string representing metadata to add """ from corpkit.constants import STRINGTYPE if isinstance(annotation, STRINGTYPE): if replace: return annotation + '\n' else: return '# tags=' + annotation + '\n' start = str() for k, v in annotation.items(): # these are special names---add more? v = process_special_annotation(v, lin) if replace: start = '%s\n' % v else: start += '# %s=%s\n' % (k, v) return start def get_line_number_for_entry(data, si, ti, annotation): """ Find the place in filename at which to add the string """ partstart = '# sent_id %d' % si partend = '# sent_id %d' % (si + 1) # this way iterates over the lines # it could also just find the lnum = data.split(partstart)[0].count('\n') + 2 sent = data.split(partstart)[1].split(partend)[0] field = 'tags' if isinstance(annotation, str) else list(annotation.keys())[0] ixx = next((i for i, l in enumerate(sent.splitlines()) \ if l.startswith('# %s=' % field)), False) if ixx is False: return lnum, False else: return lnum + ixx - 2, True def update_contents(contents, place, text, do_replace=False): """ Open file, read lines, add or replace the line with the good one """ if do_replace: contents[place] = contents[place].rstrip('\n').replace(text + ';', '') + ';' + text else: contents.insert(place, text) return contents def dry_run_text(filepath, contents, place, colours): """ Show a dry run of what the annotations would be """ import os contents[place] = contents[place].rstrip('\n') + ' <==========\n' try: contents[place] = colours['green'] + contents[place] + colours['reset'] except: pass max_lines = next((i for i, l in enumerate(contents[place:]) if l == '\n'), 10) max_lines = 30 if max_lines > 30 else max_lines formline = ' Add metadata: %s \n' % (os.path.basename(filepath)) bars = '=' * len(formline) print(bars + '\n' + formline + bars) print(''.join(contents[place-3:max_lines+place])) def annotate(open_file, contents): """ Add annotation to a single file """ from corpkit.constants import PYTHON_VERSION contents = ''.join(contents) if PYTHON_VERSION == 2: contents = contents.encode('utf-8', errors='ignore') open_file.seek(0) open_file.write(contents) open_file.truncate() def delete_lines(corpus, annotation, dry_run=True, colour={}): """ Show or delete the necessary lines """ from corpkit.constants import OPENER, PYTHON_VERSION import re import os tagmode = True no_can_do = ['sent_id', 'parse'] if isinstance(annotation, dict): tagmode = False for k, v in annotation.items(): if k in no_can_do: print("You aren't allowed to delete '%s', sorry." % k) return if not v: v = r'.*?' regex = re.compile(r'(# %s=%s)\n' % (k, v), re.MULTILINE) else: if annotation in no_can_do: print("You aren't allowed to delete '%s', sorry." % k) return regex = re.compile(r'((# tags=.*?)%s;?(.*?))\n' % annotation, re.MULTILINE) fs = [] for (root, dirs, fls) in os.walk(corpus): for f in fls: fs.append(os.path.join(root, f)) for f in fs: if PYTHON_VERSION == 2: from corpkit.process import saferead data = saferead(f)[0] else: with open(f, 'rb') as fo: data = fo.read().decode('utf-8', errors='ignore') if dry_run: if tagmode: repl_str = r'\1 <=======\n%s\2\3 <=======\n' % colour.get('green', '') else: repl_str = r'\1 <=======\n' try: repl_str = colour['red'] + repl_str + colour['reset'] except: pass data, n = re.subn(regex, repl_str, data) nspl = 100 if tagmode else 50 delim = '<=======' data = re.split(delim, data, maxsplit=nspl) toshow = delim.join(data[:nspl+1]) toshow = toshow.rsplit('\n\n', 1)[0] print(toshow) if n > 50: n = n - 50 print('\n... and %d more changes ... ' % n) else: if tagmode: repl_str = r'\2\3\n' else: repl_str = '' data = re.sub(regex, repl_str, data) with OPENER(f, 'w') as fo: from corpkit.constants import PYTHON_VERSION if PYTHON_VERSION == 2: data = data.encode('utf-8', errors='ignore') fo.write(data) def annotator(df_or_corpus, annotation, dry_run=True, deletemode=False): """ Run the annotator pipeline over multiple files :param corpus: a Corpus object containing the files :param annotation: a str or dict containing annotation text """ import re import os from corpkit.constants import OPENER, STRINGTYPE, PYTHON_VERSION colour = {} try: from colorama import Fore, init, Style init(autoreset=True) colour = {'green': Fore.GREEN, 'reset': Style.RESET_ALL, 'red': Fore.RED} except ImportError: pass if deletemode: delete_lines(df_or_corpus.path, annotation, dry_run=dry_run, colour=colour) return file_sent_words = df_or_corpus.reset_index()[['index', 'f', 'i']].values.tolist() from collections import defaultdict outt = defaultdict(list) for index, fn, ix in file_sent_words: s, i = ix.split(',', 1) outt[fn].append((int(s), int(i), index)) for i, (fname, entries) in enumerate(sorted(outt.items()), start=1): with OPENER(fname, 'r+') as fo: data = fo.read() contents = [i + '\n' for i in data.split('\n')] for si, ti, index in list(reversed(sorted(set(entries)))): line_num, do_replace = get_line_number_for_entry(data, si, ti, annotation) anno_text = make_string_to_add(annotation, df_or_corpus.ix[index], replace=do_replace) contents = update_contents(contents, line_num, anno_text, do_replace=do_replace) if dry_run and i < 50: dry_run_text(fname, contents, line_num, colours=colour) if not dry_run: annotate(fo, contents=contents) if not dry_run: print('%d annotations made in %s' % (len(entries), fname)) if dry_run and i > 50: break if dry_run: if len(file_sent_words) > 50: n = len(file_sent_words) - 50 print('... and %d more changes ... ' % n) ================================================ FILE: corpkit/blanknotebook.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# blanknotebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Initialisation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, import `corpkit`:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import corpkit\n", "from corpkit import (\n", " interrogator, plotter, table, quickview, \n", " tally, surgeon, merger, conc, keywords, \n", " collocates, multiquery, report_display,\n", " save_result, load_result\n", " )\n", "# show figures in browser\n", "% matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, set a path to your corpus:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "corpus = 'data/corpus'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define a query to match any word:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# any token containing letters or numbers (i.e. no punctuation):\n", "allwords_query = r'/[A-Za-z0-9]/ !< __' " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interrogate the corpus with the `allwords_query`, and store the results as `allwords`:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "allwords = interrogator(annual_trees, '-C', allwords_query) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check that it worked:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "print allwords.query\n", "print allwords.totals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, plot something:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "plotter('Word count', allwords.total)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, save this result so that you can access it any time:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "save_result(allwords, 'allwords')\n", "\n", "# load it again with:\n", "# allwords = load_result('allwords')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Use the space below to interrogate and plot whatever you like!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.1" } }, "nbformat": 4, "nbformat_minor": 0 } ================================================ FILE: corpkit/build.py ================================================ from __future__ import print_function from corpkit.constants import STRINGTYPE, PYTHON_VERSION, INPUTFUNC """ This file contains a number of functions used in the corpus building process. None of them is intended to be called by the user him/herself. """ def download_large_file(proj_path, url, actually_download=True, root=False, **kwargs): """ Download something to proj_path, unless it's CoreNLP, which goes to ~/corenlp """ import os import shutil import glob import zipfile from time import localtime, strftime from corpkit.textprogressbar import TextProgressBar from corpkit.process import animator file_name = url.split('/')[-1] home = os.path.expanduser("~") customdir = kwargs.get('custom_corenlp_dir', False) # if it's corenlp, put it in home/corenlp # if that dir exists, check if for a zip file # if there's a zipfile and it works, move on # if there's a zipfile and it's broken, delete it if 'stanford' in url: if customdir: downloaded_dir = customdir else: downloaded_dir = os.path.join(home, 'corenlp') if not os.path.isdir(downloaded_dir): os.makedirs(downloaded_dir) else: poss_zips = glob.glob(os.path.join(downloaded_dir, 'stanford-corenlp-full*.zip')) if poss_zips: fullfile = poss_zips[-1] from zipfile import BadZipfile try: the_zip_file = zipfile.ZipFile(fullfile) ret = the_zip_file.testzip() if ret is None: return downloaded_dir, fullfile else: os.remove(fullfile) except BadZipfile: os.remove(fullfile) #else: # shutil.rmtree(downloaded_dir) else: downloaded_dir = os.path.join(proj_path, 'temp') try: os.makedirs(downloaded_dir) except OSError: pass fullfile = os.path.join(downloaded_dir, file_name) if actually_download: import __main__ as main if not root and not hasattr(main, '__file__'): txt = 'CoreNLP not found. Download latest version (%s)? (y/n) ' % url selection = INPUTFUNC(txt) if 'n' in selection.lower(): return None, None try: import requests # NOTE the stream=True parameter r = requests.get(url, stream=True, verify=False) file_size = int(r.headers['content-length']) file_size_dl = 0 block_sz = 8192 showlength = file_size / block_sz thetime = strftime("%H:%M:%S", localtime()) print('\n%s: Downloading ... \n' % thetime) par_args = {'printstatus': kwargs.get('printstatus', True), 'length': showlength} if not root: tstr = '%d/%d' % (file_size_dl + 1 / block_sz, showlength) p = animator(None, None, init=True, tot_string=tstr, **par_args) animator(p, file_size_dl + 1, tstr) with open(fullfile, 'wb') as f: for chunk in r.iter_content(chunk_size=block_sz): if chunk: # filter out keep-alive new chunks f.write(chunk) file_size_dl += len(chunk) #print file_size_dl * 100.0 / file_size if kwargs.get('note'): kwargs['note'].progvar.set(file_size_dl * 100.0 / int(file_size)) else: tstr = '%d/%d' % (file_size_dl / block_sz, showlength) animator(p, file_size_dl / block_sz, tstr, **par_args) if root: root.update() except Exception as err: import traceback print(traceback.format_exc()) thetime = strftime("%H:%M:%S", localtime()) print('%s: Download failed' % thetime) try: f.close() except: pass if root: root.update() return None, None if kwargs.get('note'): kwargs['note'].progvar.set(100) else: p.animate(int(file_size)) thetime = strftime("%H:%M:%S", localtime()) print('\n%s: Downloaded successully.' % thetime) try: f.close() except: pass return downloaded_dir, fullfile def extract_cnlp(fullfilepath, corenlppath=False, root=False): """ Extract corenlp zip file """ import zipfile import os from time import localtime, strftime time = strftime("%H:%M:%S", localtime()) print('%s: Extracting CoreNLP files ...' % time) if root: root.update() if corenlppath is False: home = os.path.expanduser("~") corenlppath = os.path.join(home, 'corenlp') from zipfile import BadZipfile try: with zipfile.ZipFile(fullfilepath) as zf: zf.extractall(corenlppath) except BadZipfile: os.remove(corenlppath) return False time = strftime("%H:%M:%S", localtime()) print('%s: CoreNLP extracted. ' % time) return True def get_corpus_filepaths(projpath=False, corpuspath=False, restart=False, out_ext='conll'): """ get a list of filepaths, a la find . -type f restart mode will look in restart dir and remove any existing files """ import fnmatch import os matches = [] # get a list of done files minus their paths and extensions # this handles if they have been moved to the right dir or not already_done = get_filepaths(restart, out_ext) if restart else [] already_done = [os.path.splitext(os.path.basename(x))[0] for x in already_done] for root, dirnames, filenames in os.walk(corpuspath): for filename in fnmatch.filter(filenames, '*.txt'): if filename not in already_done: matches.append(os.path.join(root, filename)) if len(matches) == 0: return False, False matchstring = '\n'.join(matches) # maybe not good: if projpath is False: projpath = os.path.dirname(os.path.abspath(corpuspath.rstrip('/'))) corpname = os.path.basename(corpuspath) fp = os.path.join(projpath, 'data', corpname + '-filelist.txt') # definitely not good. if os.path.join('data', 'data') in fp: fp = fp.replace(os.path.join('data', 'data'), 'data') with open(fp, "w") as f: f.write(matchstring + '\n') return fp, matchstring def check_jdk(): """ Check for a Java/OpenJDK """ import corpkit import subprocess from subprocess import PIPE, STDOUT, Popen # add any other version string to here javastrings = ['java version "1.8', 'openjdk version "1.8'] p = Popen(["java", "-version"], stdout=PIPE, stderr=PIPE) _, stderr = p.communicate() encoded = stderr.decode(encoding='utf-8').lower() return any(j in encoded for j in javastrings) def parse_corpus(proj_path=False, corpuspath=False, filelist=False, corenlppath=False, operations=False, root=False, stdout=False, memory_mb=2000, copula_head=True, multiprocessing=False, outname=False, coref=True, **kwargs ): """ Create a CoreNLP-parsed and/or NLTK tokenised corpus """ import subprocess from subprocess import PIPE, STDOUT, Popen from corpkit.process import get_corenlp_path import os import sys import re import chardet from time import localtime, strftime import time fileparse = kwargs.get('fileparse', False) from corpkit.constants import CORENLP_URL as url if not check_jdk(): print('Need latest Java.') return curdir = os.getcwd() note = kwargs.get('note', False) if proj_path is False: proj_path = os.path.dirname(os.path.abspath(corpuspath.rstrip('/'))) basecp = os.path.basename(corpuspath) if fileparse: new_corpus_path = os.path.dirname(corpuspath) else: if outname: new_corpus_path = os.path.join(proj_path, 'data', outname) else: new_corpus_path = os.path.join(proj_path, 'data', '%s-parsed' % basecp) new_corpus_path = new_corpus_path.replace('-stripped-', '-') # todo: # this is not stable if os.path.join('data', 'data') in new_corpus_path: new_corpus_path = new_corpus_path.replace(os.path.join('data', 'data'), 'data') # this caused errors when multiprocessing # it used to be isdir, but supposedly there was a file there # i don't see how it's possible ... # i think it is a 'race condition', so we'll also put a try/except there if not os.path.exists(new_corpus_path): try: os.makedirs(new_corpus_path) except OSError: pass else: if not os.path.isfile(new_corpus_path): fs = get_filepaths(new_corpus_path, ext=False) if not multiprocessing: if any([f.endswith('.conll') for f in fs]) or \ any([f.endswith('.conllu') for f in fs]): print('Folder containing .conll files already exists: %s' % new_corpus_path) return False corenlppath = get_corenlp_path(corenlppath) success = bool(corenlppath) if not corenlppath: from corpkit.constants import CORENLP_VERSION print("CoreNLP not found. Auto-installing CoreNLP v%s..." % CORENLP_VERSION) cnlp_dir = os.path.join(os.path.expanduser("~"), 'corenlp') corenlppath, fpath = download_large_file(cnlp_dir, url, root=root, note=note, actually_download=True, custom_corenlp_dir=corenlppath) # cleanup if corenlppath is None and fpath is None: import shutil shutil.rmtree(new_corpus_path) shutil.rmtree(new_corpus_path.replace('-parsed', '-stripped')) os.remove(new_corpus_path.replace('-parsed', '-filelist.txt')) raise ValueError('CoreNLP needed to parse texts.') success = extract_cnlp(fpath) if not success: raise ValueError('CoreNLP installation failed for some reason. Try deleting the ~/corenlp directory and starting over.') import glob globpath = os.path.join(corenlppath, 'stanford-corenlp*') corenlppath = [i for i in glob.glob(globpath) if os.path.isdir(i)] if corenlppath: corenlppath = corenlppath[-1] else: raise ValueError('CoreNLP installation failed for some reason. Try deleting the ~/corenlp directory and starting over.') # if not gui, don't mess with stdout if stdout is False: stdout = sys.stdout os.chdir(corenlppath) if root: root.update_idletasks() # not sure why reloading sys, but seems needed # in order to show files in the gui try: reload(sys) except NameError: import importlib importlib.reload(sys) pass if memory_mb is False: memory_mb = 2024 # you can pass in 'coref' as kwarg now cof = ',dcoref' if coref else '' if operations is False: operations = 'tokenize,ssplit,pos,lemma,parse,ner' + cof if isinstance(operations, list): operations = ','.join([i.lower() for i in operations]) with open(filelist, 'r') as fo: dat = fo.read() num_files_to_parse = len([l for l in dat.splitlines() if l]) # get corenlp version number reg = re.compile(r'stanford-corenlp-([0-9].[0-9].[0-9])-javadoc.jar') fver = next(re.search(reg, s).group(1) for s in os.listdir('.') if re.search(reg, s)) if fver == '3.6.0': extra_jar = 'slf4j-api.jar:slf4j-simple.jar:' else: extra_jar = '' out_form = 'xml' if kwargs.get('output_format') == 'xml' else 'json' out_ext = 'xml' if kwargs.get('output_format') == 'xml' else 'conll' arglist = ['java', '-cp', 'stanford-corenlp-%s.jar:stanford-corenlp-%s-models.jar:xom.jar:joda-time.jar:%sjollyday.jar:ejml-0.23.jar' % (fver, fver, extra_jar), '-Xmx%sm' % str(memory_mb), 'edu.stanford.nlp.pipeline.StanfordCoreNLP', '-annotators', operations, '-filelist', filelist, '-noClobber', '-outputExtension', '.%s' % out_ext, '-outputFormat', out_form, '-outputDirectory', new_corpus_path] if copula_head: arglist.append('--parse.flags') arglist.append(' -makeCopulaHead') print('Java command:') print(arglist) try: proc = subprocess.Popen(arglist, stdout=sys.stdout) # maybe a problem with stdout. sacrifice it if need be except: proc = subprocess.Popen(arglist) #p = TextProgressBar(num_files_to_parse) while proc.poll() is None: sys.stdout = stdout thetime = strftime("%H:%M:%S", localtime()) if not fileparse: num_parsed = len([f for f in os.listdir(new_corpus_path) if f.endswith(out_ext)]) if num_parsed == 0: if root: print('%s: Initialising parser ... ' % (thetime)) if num_parsed > 0 and (num_parsed + 1) <= num_files_to_parse: if root: print('%s: Parsing file %d/%d ... ' % \ (thetime, num_parsed + 1, num_files_to_parse)) if kwargs.get('note'): kwargs['note'].progvar.set((num_parsed) * 100.0 / num_files_to_parse) #p.animate(num_parsed - 1, str(num_parsed) + '/' + str(num_files_to_parse)) time.sleep(1) if root: root.update() #p.animate(num_files_to_parse) if kwargs.get('note'): kwargs['note'].progvar.set(100) sys.stdout = stdout thetime = strftime("%H:%M:%S", localtime()) print('%s: Parsing finished. Moving parsed files into place ...' % thetime) os.chdir(curdir) return new_corpus_path def move_parsed_files(proj_path, old_corpus_path, new_corpus_path, ext='conll', restart=False): """ Make parsed files follow existing corpus structure """ import corpkit import shutil import os import fnmatch cwd = os.getcwd() basecp = os.path.basename(old_corpus_path) dir_list = [] # go through old path, make file list for path, dirs, files in os.walk(old_corpus_path): for bit in dirs: # is the last bit of the line below windows safe? dir_list.append(os.path.join(path, bit).replace(old_corpus_path, '')[1:]) for d in dir_list: if not restart: os.makedirs(os.path.join(new_corpus_path, d)) else: try: os.makedirs(os.path.join(new_corpus_path, d)) except OSError: pass # make list of parsed filenames that haven't been moved already parsed_fs = [f for f in os.listdir(new_corpus_path) if f.endswith('.%s' % ext)] # make a dictionary of the right paths pathdict = {} for rootd, dirnames, filenames in os.walk(old_corpus_path): for filename in fnmatch.filter(filenames, '*.txt'): pathdict[filename] = rootd # move each file for f in parsed_fs: noxml = f.replace('.%s' % ext, '') right_dir = pathdict[noxml].replace(old_corpus_path, new_corpus_path) frm = os.path.join(new_corpus_path, f) tom = os.path.join(right_dir, f) # forgive errors on restart mode, because some files # might already have been moved into place if restart: try: os.rename(frm, tom) except OSError: pass else: os.rename(frm, tom) return new_corpus_path def corenlp_exists(corenlppath=False): import corpkit import os from corpkit.constants import CORENLP_VERSION important_files = ['stanford-corenlp-%s-javadoc.jar' % CORENLP_VERSION, 'stanford-corenlp-%s-models.jar' % CORENLP_VERSION, 'stanford-corenlp-%s-sources.jar' % CORENLP_VERSION, 'stanford-corenlp-%s.jar' % CORENLP_VERSION] if corenlppath is False: home = os.path.expanduser("~") corenlppath = os.path.join(home, 'corenlp') if os.path.isdir(corenlppath): find_install = [d for d in os.listdir(corenlppath) \ if os.path.isdir(os.path.join(corenlppath, d)) \ and os.path.isfile(os.path.join(corenlppath, d, 'jollyday.jar'))] if len(find_install) > 0: find_install = find_install[0] else: return False javalib = os.path.join(corenlppath, find_install) if len(javalib) == 0: return False if not any([f.endswith('-models.jar') for f in os.listdir(javalib)]): return False return True else: return False return True def get_filepaths(a_path, ext='txt'): """ Make list of txt files in a_path and remove non txt files """ import os files = [] if os.path.isfile(a_path): return [a_path] for (root, dirs, fs) in os.walk(a_path): for f in fs: if ext: if not f.endswith('.' + ext): continue if 'Unidentified' not in f \ and 'unknown' not in f \ and not f.startswith('.'): files.append(os.path.join(root, f)) #if ext: # if not f.endswith('.' + ext): # os.remove(os.path.join(root, f)) return files def make_no_id_corpus(pth, newpth, metadata_mode=False, speaker_segmentation=False): """ Make version of pth without ids """ import os import re import shutil from corpkit.process import saferead # define regex broadly enough to accept timestamps, locations if need be from corpkit.constants import MAX_SPEAKERNAME_SIZE idregex = re.compile(r'(^.{,%d}?):\s+(.*$)' % MAX_SPEAKERNAME_SIZE) try: shutil.copytree(pth, newpth) except OSError: shutil.rmtree(newpth) shutil.copytree(pth, newpth) files = get_filepaths(newpth) names = [] metadata = [] for f in files: good_data = [] fo, enc = saferead(f) data = fo.splitlines() # for each line in the file, remove speaker and metadata for datum in data: if speaker_segmentation: matched = re.search(idregex, datum) if matched: names.append(matched.group(1)) datum = matched.group(2) if metadata_mode: splitmet = datum.rsplit(' MAX_METADATA_FIELDS: break return list(fields) def get_names(filepath, speakid): """ Get a list of speaker names from a file """ import re from corpkit.process import saferead txt, enc = saferead(filepath) res = re.findall(speakid, txt) if res: return sorted(list(set([i.strip() for i in res]))) def get_speaker_names_from_parsed_corpus(corpus, feature='speaker'): """ Use regex to get speaker names from parsed data without parsing it """ import os import re from corpkit.constants import MAX_METADATA_VALUES path = corpus.path if hasattr(corpus, 'path') else corpus list_of_files = [] names = [] # i am not really sure why we need multiline here # is it because start of line char is just matching speakid = re.compile(r'^# %s=(.*)' % re.escape(feature), re.MULTILINE) # if passed a dir, do it for every file if os.path.isdir(path): for (root, dirs, fs) in os.walk(path): for f in fs: list_of_files.append(os.path.join(root, f)) elif os.path.isfile(path): list_of_files.append(path) for filepath in list_of_files: res = get_names(filepath, speakid) if not res: continue for i in res: if i not in names: names.append(i) if len(names) > MAX_METADATA_VALUES: break return list(sorted(set(names))) def rename_all_files(dirs_to_do): """ Get rid of the inserted dirname in filenames after parsing """ import os if isinstance(dirs_to_do, STRINGTYPE): dirs_to_do = [dirs_to_do] for d in dirs_to_do: if d.endswith('-parsed'): ext = 'txt.xml' elif d.endswith('-tokenised'): ext = '.p' else: ext = '.txt' fs = get_filepaths(d, ext) for f in fs: fname = os.path.basename(f) justdir = os.path.dirname(f) subcorpus = os.path.basename(justdir) newname = fname.replace('-%s.%s' % (subcorpus, ext), '.%s' % ext) os.rename(f, os.path.join(justdir, newname)) def flatten_treestring(tree): """ Turn bracketed tree string into something looking like English """ import re tree = re.sub(r'\(.*? ', '', tree).replace(')', '') tree = tree.replace('$ ', '$').replace('`` ', '``').replace(' ,', ',').replace(' .', '.').replace("'' ", "''").replace(" n't", "n't").replace(" 're","'re").replace(" 'm","'m").replace(" 's","'s").replace(" 'd","'d").replace(" 'll","'ll").replace(' ', ' ') return tree def can_folderise(folder): """ Check if corpus can be put into folders """ import os from glob import glob if os.path.isfile(folder): return False fs = glob(os.path.join(folder, '*.txt')) if len(fs) > 1: if not any(os.path.isdir(x) for x in glob(os.path.join(folder, '*'))): return True return False def folderise(folder): """ Move each file into a folder """ import os import shutil from glob import glob from corpkit.process import makesafe fs = glob(os.path.join(folder, '*.txt')) for f in fs: newname = makesafe(os.path.splitext(os.path.basename(f))[0]) newpath = os.path.join(folder, newname) if not os.path.exists(newpath): os.makedirs(newpath) shutil.move(f, os.path.join(newpath)) ================================================ FILE: corpkit/completer.py ================================================ class Completer(object): """ Tab completion for interpreter """ def __init__(self, words): self.words = words self.prefix = None def complete(self, prefix, index): """ Add paths etc to this """ if prefix != self.prefix: # we have a new prefix! # find all words that start with this prefix self.matching_words = [ w for w in self.words if w.startswith(prefix) ] self.prefix = prefix try: return self.matching_words[index] except IndexError: return None ================================================ FILE: corpkit/configurations.py ================================================ def configurations(corpus, search, **kwargs): """ Get summary of behaviour of a word see corpkit.corpus.Corpus.configurations() for docs """ from corpkit.dictionaries.wordlists import wordlists from corpkit.dictionaries.roles import roles from corpkit.interrogation import Interrodict from corpkit.interrogator import interrogator from collections import OrderedDict if search.get('l') and search.get('w'): raise ValueError('Search only for a word or a lemma, not both.') # are we searching words or lemmata? if search.get('l'): dep_word_or_lemma = 'dl' gov_word_or_lemma = 'gl' word_or_token = search.get('l') else: if search.get('w'): dep_word_or_lemma = 'd' gov_word_or_lemma = 'g' word_or_token = search.get('w') # make nested query dicts for each semantic role queries = {'participant': {'left_participant_in': {dep_word_or_lemma: word_or_token, 'df': roles.participant1, 'f': roles.event}, 'right_participant_in': {dep_word_or_lemma: word_or_token, 'df': roles.participant2, 'f': roles.event}, 'premodified': {'f': roles.premodifier, gov_word_or_lemma: word_or_token}, 'postmodified': {'f': roles.postmodifier, gov_word_or_lemma: word_or_token}, 'and_or': {'f': 'conj:(?:and|or)', 'gf': roles.participant, gov_word_or_lemma: word_or_token}, }, 'process': {'has_subject': {'f': roles.participant1, gov_word_or_lemma: word_or_token}, 'has_object': {'f': roles.participant2, gov_word_or_lemma: word_or_token}, 'modalised_by': {'f': r'aux', 'w': wordlists.modals, gov_word_or_lemma: word_or_token}, 'modulated_by': {'f': 'advmod', 'gf': roles.event, gov_word_or_lemma: word_or_token}, 'and_or': {'f': 'conj:(?:and|or)', 'gf': roles.event, gov_word_or_lemma: word_or_token}, }, 'modifier': {'modifies': {'df': roles.modifier, dep_word_or_lemma: word_or_token}, 'modulated_by': {'f': 'advmod', 'gf': roles.modifier, gov_word_or_lemma: word_or_token}, 'and_or': {'f': 'conj:(?:and|or)', 'gf': roles.modifier, gov_word_or_lemma: word_or_token}, } } # allow passing in of single function if search.get('f'): if search.get('f').lower().startswith('part'): queries = queries['participant'] elif search.get('f').lower().startswith('proc'): queries = queries['process'] elif search.get('f').lower().startswith('mod'): queries = queries['modifier'] else: newqueries = {} for k, v in queries.items(): for name, pattern in v.items(): newqueries[name] = pattern queries = newqueries queries['and_or'] = {'f': 'conj:(?:and|or)', gov_word_or_lemma: word_or_token} # count all queries to be done # total_queries = 0 # for k, v in queries.items(): # total_queries += len(v) kwargs['search'] = queries # do interrogation data = corpus.interrogate(**kwargs) # remove result itself # not ideal, but it's much more impressive this way. if isinstance(data, Interrodict): for k, v in data.items(): v.results = v.results.drop(word_or_token, axis=1, errors='ignore') v.totals = v.results.sum(axis=1) data[k] = v return Interrodict(data) else: return data ================================================ FILE: corpkit/conll.py ================================================ """ corpkit: process CONLL formatted data """ def parse_conll(f, first_time=False, just_meta=False, usecols=None): """ Make a pandas.DataFrame with metadata from a CONLL-U file Args: f (str): Filepath first_time (bool, optional): If True, add in sent index just_meta (bool, optional): Return only a metadata `dict` usecols (None, optional): Which columns must be parsed by pandas.read_csv Returns: pandas.DataFrame: DataFrame containing tokens and a ._metadata attribute """ import pandas as pd try: from StringIO import StringIO except ImportError: from io import StringIO from collections import defaultdict # go to corpkit.constants to modify the order of columns if yours are different from corpkit.constants import CONLL_COLUMNS as head with open(f, 'r') as fo: data = fo.read().strip('\n') splitdata = [] metadata = {} sents = data.split('\n\n') for count, sent in enumerate(sents, start=1): metadata[count] = defaultdict(set) for line in sent.split('\n'): if line and not line.startswith('#') \ and not just_meta: splitdata.append('\n%d\t%s' % (count, line)) else: line = line.lstrip('# ') if '=' in line: field, val = line.split('=', 1) metadata[count][field].add(val) metadata[count] = {k: ','.join(v) for k, v in metadata[count].items()} if just_meta: return metadata # happens with empty files if not splitdata: return # head can only be as long as the list of cols in the df num_tabs = splitdata[0].strip('\t').count('\t') head = head[:num_tabs] # introduce sentence index for multiindex #for i, d in enumerate(splitdata, start=1): # d = d.replace('\n', '\n%s\t' % str(i)) # splitdata[i-1] = d # turn into something pandas can read data = '\n'.join(splitdata) data = data.replace('\n\n', '\n') + '\n' # remove slashes as early as possible data = data.replace('/', '-slash-') # open with sent and token as multiindex try: df = pd.read_csv(StringIO(data), sep='\t', header=None, names=['s'] + head, index_col=['s', 'i'], usecols=usecols) #df.index = pd.MultiIndex.from_tuples([(1, i) for i in df.index]) except ValueError: return df._metadata = metadata return df def get_dependents_of_id(idx, df=False, repeat=False, attr=False, coref=False): """ Get dependents of a token """ sent_id, tok_id = getattr(idx, 'name', idx) deps = df.ix[sent_id, tok_id]['d'].split(',') out = [] for govid in deps: if attr: # might not exist... try: tok = getattr(df.ix[sent_id,int(govid)], attr, False) if tok: out.append(tok) except (KeyError, IndexError): pass else: out.append((sent_id, int(govid))) return out def get_governors_of_id(idx, df=False, repeat=False, attr=False, coref=False): """ Get governors of a token """ # it can be a series or a tuple sent_id, tok_id = getattr(idx, 'name', idx) # get the governor id govid = df['g'].loc[sent_id, tok_id] if attr: return getattr(df.loc[sent_id,govid], attr, 'root') return [(sent_id, govid)] def get_match(idx, df=False, repeat=False, attr=False, **kwargs): """ Dummy function, for the most part """ sent_id, tok_id = getattr(idx, 'name', idx) if attr: return df[attr].ix[sent_id, tok_id] return [(sent_id, tok_id)] def get_head(idx, df=False, repeat=False, attr=False, **kwargs): """ Get the head of a 'constituent'---' for 'corpus linguistics', if 'corpus' is searched, return 'linguistics' """ sent_id, tok_id = getattr(idx, 'name', idx) #sent = df.ix[sent_id] token = df.ix[sent_id, tok_id] if not hasattr(token, 'c'): # this should error, because the data isn't there at all lst_of_ixs = [(sent_id, tok_id)] elif token['c'] == '_': lst_of_ixs = [(sent_id, tok_id)] # if it is the head, return it elif token['c'].endswith('*'): lst_of_ixs = [(sent_id, tok_id)] else: # should be able to speed this one up! just_same_coref = df.loc[sent_id][df.loc[sent_id]['c'] == token['c'] + '*'] if not just_same_coref.empty: lst_of_ixs = [(sent_id, i) for i in just_same_coref.index] else: lst_of_ixs = [(sent_id, tok_id)] if attr: lst_of_ixs = [df.loc[i][attr] for i in lst_of_ixs] return lst_of_ixs def get_representative(idx, df=False, repeat=False, attr=False, **kwargs): """ Get the representative coref head """ sent_id, tok_id = getattr(idx, 'name', idx) token = df.ix[sent_id, tok_id] # if no corefs at all if not hasattr(token, 'c'): # this should error, because the data isn't there at all lst_of_ixs = [(sent_id, tok_id)] # if no coref available elif token['c'] == '_': lst_of_ixs = [(sent_id, tok_id)] else: just_same_coref = df.loc[df['c'] == token['c'] + '*'] if not just_same_coref.empty: lst_of_ixs = [just_same_coref.iloc[0].name] else: lst_of_ixs = [(sent_id, tok_id)] if attr: lst_of_ixs = [df.ix[i][attr] for i in lst_of_ixs] return lst_of_ixs def get_all_corefs(s, i, df, coref=False): # if not in coref mode, skip if not coref: return [(s, i)] # if the word was not a head, forget it if not df.ix[s,i]['c'].endswith('*'): return [(s, i)] try: # get any other mention head for this coref chain just_same_coref = df.loc[df['c'] == df.ix[s,i]['c']] return list(just_same_coref.index) except: return [(s, i)] def search_this(df, obj, attrib, pattern, adjacent=False, coref=False): """ Search the dataframe for a single criterion """ import re out = [] # if searching by head, they need to be heads if obj == 'h': df = df.loc[df['c'].endswith('*')] # cut down to just tokens with matching attr # but, if the pattern is 'any', don't bother if hasattr(pattern, 'pattern') and pattern.pattern == r'.*': matches = df else: matches = df[df[attrib].fillna('').str.contains(pattern)] # functions for getting the needed object revmapping = {'g': get_dependents_of_id, 'd': get_governors_of_id, 'm': get_match, 'h': get_all_corefs, 'r': get_representative} getfunc = revmapping.get(obj) for idx in list(matches.index): if adjacent: if adjacent[0] == '+': tomove = -int(adj[1]) elif adjacent[0] == '-': tomove = int(adj[1]) idx = (idx[0], idx[1] + tomove) for mindex in getfunc(idx, df=df, coref=coref): if mindex: out.append(mindex) return list(set(out)) def show_fix(show): """show everything""" objmapping = {'d': get_dependents_of_id, 'g': get_governors_of_id, 'm': get_match, 'h': get_head} out = [] for val in show: adj, val = determine_adjacent(val) obj, attr = val[0], val[-1] obj_getter = objmapping.get(obj) out.append(adj, val, obj, attr, obj_getter) return out def dummy(x, *args, **kwargs): return x def format_toks(to_process, show, df): """ Format matches by show values """ import pandas as pd objmapping = {'d': get_dependents_of_id, 'g': get_governors_of_id, 'm': get_match, 'h': get_head} sers = [] dmode = any(x.startswith('d') for x in show) if dmode: from collections import defaultdict dicts = defaultdict(dict) for val in show: adj, val = determine_adjacent(val) if adj: if adj[0] == '+': tomove = int(adj[1]) elif adj[0] == '-': tomove = -int(adj[1]) obj, attr = val[0], val[-1] func = objmapping.get(obj, dummy) out = defaultdict(dict) if dmode else [] for ix in list(to_process.index): piece = False if adj: ix = (ix[0], ix[1] + tomove) if ix not in df.index: piece = 'none' if not piece: if obj == 'm': piece = df.loc[ix][attr.replace('x', 'p')] if attr == 'x': from corpkit.dictionaries.word_transforms import taglemma piece = taglemma.get(piece.lower(), piece.lower()) piece = [piece] else: piece = func(ix, df=df, attr=attr) if not isinstance(piece, list): piece = [piece] if dmode: dicts[ix][val] = piece else: out.append(piece[0]) if not dmode: ser = pd.Series(out, index=to_process.index) ser.name = val sers.append(ser) if not dmode: dx = pd.concat(sers, axis=1) if len(dx.columns) == 1: return dx.iloc[:,0] else: return dx.apply('/'.join, axis=1) else: index = [] data = [] for ix, dct in dicts.items(): max_key, max_value = max(dct.items(), key=lambda x: len(x[1])) for val, pieces in dct.items(): if len(pieces) == 1: dicts[ix][val] = pieces * len(max_value) for tup in list(zip(*[i for i in dct.values()])): index.append(ix) data.append('/'.join(tup)) return pd.Series(data, index=pd.MultiIndex.from_tuples(index)) def make_series(ser, df=False, obj=False, att=False, adj=False): """ To apply to a DataFrame to add complex criteria, like 'gf' """ # distance mode if att == 'a': count = 0 if obj == 'g': if ser[obj] == 0: return '-1' ser = df.loc[ser.name[0], ser['g']] while count < 20: if ser['mf'].lower() == 'root': return str(count) ser = df.loc[ser.name[0], ser['g']] count += 1 return '20+' # h is head of this particular group if obj == 'h': cohead = ser['c'] if cohead.endswith('*'): return ser['m' + att] elif cohead == '_': return 'none' else: sent = df.loc[ser.name[0]] just_cof = sent[sent['c'] == cohead + '*'] if just_cof.empty: return ser['m' + att] else: return just_cof.iloc[0]['m' + att] # r is the representative mention head if obj == 'r': cohead = ser['c'] if cohead == '_': return 'none' if not cohead.endswith('*'): cohead = cohead + '*' # iterrows is slow, but we only need the first instance just_cof = df[df['c'] == cohead] if just_cof.empty: return ser['m' + att] else: return just_cof.iloc[0]['m' + att] if obj == 'g': if ser[obj] == 0: return 'root' else: try: return df[att][ser.name[0], ser[obj]] # this keyerror can happen if governor is punctuation, for example except KeyError: return # if dependent, we need to return a df-like thing instead elif obj == 'd': #import pandas as pd idxs = [(ser.name[0], int(i)) for i in ser[obj].split(',')] dat = df[att].ix[idxs] return dat # todo: fix everything below here elif obj == 'r': # get the representative cohead = ser['c'].rstrip('*') refs = df[df['c'] == cohead + '*'] return refs[att].ix[0] elif obj == 'h': # get head cohead = ser['c'] if cohead.endswith('*'): return ser[att] else: sent = df[att].loc[ser.name[0]] return sent[sent['c'] == cohead + '*'] # potential naming conflict with sent index ... elif obj == 's': # get whole phrase" cohead = ser['c'] sent = df[att].loc[ser.name[0]] return sent[sent['c'] == cohead.rstrip('*')].values def joiner(ser): return ser.str.cat(sep='/') def make_new_for_dep(dfmain, dfdep, name): """ If showind dependent, we have to make a whole new dataframe :param dfmain: dataframe with everything in it :param dfdep: dataframe with just dependent """ import pandas as pd import numpy as np new = [] newd = [] index = [] for (i, ml), (_, dl) in zip(dfmain.iterrows(), dfdep.iterrows()): if all(pd.isnull(i) for i in dl.values): index.append(i) new.append(ml) newd.append('none') continue else: for bit in dl: if pd.isnull(bit): continue index.append(i) new.append(ml) newd.append(bit) #todo: account for no matches index = pd.MultiIndex.from_tuples(index, names=['s', 'i']) newdf = pd.DataFrame(new, index=index) newdf[name] = newd return newdf def turn_pos_to_wc(ser, showval): if not showval: return ser import pandas as pd from corpkit.dictionaries.word_transforms import taglemma vals = [taglemma.get(piece.lower(), piece.lower()) for piece in ser.values] news = pd.Series(vals, index=ser.index) news.name = ser.name[:-1] + 'x' return news def concline_generator(matches, idxs, df, metadata, add_meta, category, fname, preserve_case=False): """ Get all conclines :param matches: a list of formatted matches :param idxs: their (sent, word) idx """ conc_res = [] # potential speedup: turn idxs into dict from collections import defaultdict mdict = defaultdict(list) # if remaking idxs here, don't need to do it earlier idxs = list(matches.index) for mid, (s, i) in zip(matches, idxs): #for s, i in matches: mdict[s].append((i, mid)) # shorten df to just relevant sents to save lookup time df = df.loc[list(mdict.keys())] # don't look up the same sentence multiple times for s, tup in sorted(mdict.items()): sent = df.loc[s] if not preserve_case: sent = sent.str.lower() meta = metadata[s] sname = meta.get('speaker', 'none') for i, mid in tup: if not preserve_case: mid = mid.lower() ix = '%d,%d' % (s, i) start = ' '.join(sent.loc[:i-1].values) end = ' '.join(sent.loc[i+1:].values) lin = [ix, category, fname, sname, start, mid, end] if add_meta: for k, v in sorted(meta.items()): if k in ['speaker', 'parse', 'sent_id']: continue if isinstance(add_meta, list): if k in add_meta: lin.append(v) elif add_meta is True: lin.append(v) conc_res.append(lin) return conc_res def p_series_to_x_series(val): return taglemma.get(val.lower(), val.lower()) def fast_simple_conc(dfss, idxs, show, metadata=False, add_meta=False, fname=False, category=False, only_format_match=True, conc=False, preserve_case=False, gramsize=1, window=None): """ Fast, simple concordancer, heavily conditional to save time. """ if dfss.empty: return [], [] import pandas as pd # best case, the user doesn't want any gov-dep stuff simple = all(i.startswith('m') and not i.endswith('a') for i in show) # worst case, the user wants something from dep dmode = any(x.startswith('d') for x in show) # make a quick copy if need be because we modify the df df = dfss.copy() if not simple else dfss # add text to df columns so that it resembles 'show' values lst = ['s', 'i', 'w', 'l', 'e', 'p', 'f'] # for ner, change O to 'none' if 'e' in df.columns: df['e'] = df['e'].str.replace('^O$', 'none') df.columns = ['m' + i if len(i) == 1 and i in lst \ else i for i in list(df.columns)] # this is the data needed for concordancing df_for_lr = df['mw'] if only_format_match else df just_matches = df.loc[idxs] # if the showing can't come straight out of the df, # we can add columns with the necessary information if not simple: formatted = [] import numpy as np for ind, i in enumerate(show): # nothing to do if it's an m feature if i.startswith('m') and not i.endswith('a'): continue # defaults for adjacent work adj, tomove, adjname = False, False, '' adj, i = determine_adjacent(i) adjname = ''.join(adj) if hasattr(adj, '__iter__') else '' # get number of places to shift left or right if adj: if adj[0] == '+': tomove = -int(adj[1]) elif adj[0] == '-': tomove = int(adj[1]) # cut df down to just needed bits for the sake of speed # i.e. if we want gov func, get only gov and func cols ob, att = i[0], i[-1] xmode = att == 'x' if xmode: att = 'p' show[ind] = show[ind][:-1] + 'p' # for corefs, we also need the coref data if ob in ['h', 'r']: dfx = df[['c', 'm' + att]] else: lst = ['s', 'i', 'w', 'l', 'f', 'p'] if att in lst and ob != 'm': att = 'm' + att if ob == 'm' and att != 'a': dfx = df[['m' + att]] elif att == 'a': dfx = df[['mf', 'g']] else: dfx = df[[ob, att]] # decide if we need to format everything if (not conc or only_format_match) and not adj: to_proc = just_matches else: to_proc = df # now we get or generate the new column if ob == 'm' and att != 'a': ser = to_proc['m' + att] else: ser = to_proc.apply(make_series, df=dfx, obj=ob, att=att, axis=1) if xmode: ser = ser.apply(p_series_to_x_series) # adjmode simply shifts series and index if adj: #todo: this shifts next sent into previous sent! ser = ser.shift(tomove) ser = ser.fillna('none') # dependent mode produces multiple matches # so, we have to make a new dataframe with duplicate indexes # todo: what about when there are two dep options? ser.name = adjname + i if ob != 'd': df[ser.name] = ser else: df = make_new_for_dep(df, ser, i) df = df.fillna('none') # x is wordclass. so, we just get pos and translate it nshow = [(i.replace('x', 'p'), i.endswith('x')) for i in show] # generate a series of matches with slash sep if multiple show vals if len(nshow) > 1: if conc and not only_format_match: first = turn_pos_to_wc(df[nshow[0][0]], nshow[0][1]) llist = [turn_pos_to_wc(df[sho], xmode) for sho, xmode in nshow[1:]] df = first.str.cat(others=llist, sep='/') matches = df[idxs] else: justm = df.loc[idxs] first = turn_pos_to_wc(justm[nshow[0][0]], nshow[0][1]) llist = [turn_pos_to_wc(justm[sho], xmode) for sho, xmode in nshow[1:]] matches = first.str.cat(others=llist, sep='/') if conc: df = df_for_lr else: if conc and not only_format_match: df = turn_pos_to_wc(df[nshow[0][0]], nshow[0][1]) matches = df[idxs] else: matches = turn_pos_to_wc(df[nshow[0][0]][idxs], nshow[0][1]) if conc: df = df_for_lr # get rid of (e.g.) nan caused by no_punct=True matches = matches.dropna(axis=0, how='all') if not preserve_case: matches = matches.str.lower() if not conc: # todo: is matches.values faster? return list(matches), [] else: conc_res = concline_generator(matches, idxs, df, metadata, add_meta, category, fname, preserve_case=preserve_case) return list(matches), conc_res def make_collocate_show(show, current): """ Turn show into a collocate showing thing """ out = [] for i in show: out.append(i) for i in show: newn = '%s%s' % (str(current), i) if not newn.startswith('-'): newn = '+' + newn out.append(newn) return out def show_this(df, matches, show, metadata, conc=False, coref=False, category=False, show_conc_metadata=False, **kwargs): only_format_match = kwargs.pop('only_format_match', True) ngram_mode = kwargs.get('ngram_mode', True) preserve_case = kwargs.get('preserve_case', False) gramsize = kwargs.get('gramsize', 1) window = kwargs.get('window', None) matches = sorted(list(matches)) # add index as column if need be if any(i.endswith('s') for i in show): df['ms'] = [str(i) for i in df.index.labels[0]] if any(i.endswith('i') for i in show): df['mi'] = [str(i) for i in df.index.labels[1]] # attempt to leave really fast if kwargs.get('countmode'): return len(matches), {} if len(show) == 1 and not conc and gramsize == 1 and not window: if show[0] in ['ms', 'mi', 'mw', 'ml', 'mp', 'mf']: get_fast = df.loc[matches][show[0][-1]] if not preserve_case: get_fast = get_fast.str.lower() return list(get_fast), {} # todo: make work for ngram, collocate and coref if all(i[0] in ['m', 'g', '+', '-', 'd', 'h', 'r'] for i in show): if gramsize == 1 and not window: return fast_simple_conc(df, matches, show, metadata, show_conc_metadata, kwargs.get('filename', ''), category, only_format_match, conc=conc, preserve_case=preserve_case, gramsize=gramsize, window=window) else: resbit = [] concbit = [] iterab = range(1, gramsize + 1) if gramsize > 1 else range(-window, window+1) for i in iterab: if i == 0: continue if window: nnshow = make_collocate_show(show, i) else: nnshow = show r, c = fast_simple_conc(df, matches, nnshow, metadata, show_conc_metadata, kwargs.get('filename', ''), category, only_format_match, conc=conc, preserve_case=preserve_case, gramsize=gramsize, window=window) resbit.append(r) concbit.append(c) if not window: df = df.shift(1) df = df.fillna('none') resbit = list(zip(*resbit)) concbit = list(zip(*concbit)) out = [] conc_out = [] # this is slow but keeps the order # remove it esp for resbit where it doesn't matter for r in resbit: for b in r: out.append(b) for c in concbit: for b in c: conc_out.append(b) return out, conc_out def remove_by_mode(matches, mode, criteria): """ If mode is all, remove any entry that occurs < len(criteria) """ if mode == 'any': return set(matches) if mode == 'all': from collections import Counter counted = Counter(matches) return set(k for k, v in counted.items() if v >= len(criteria)) def determine_adjacent(original): """ Figure out if we're doing an adjacent location, get the co-ordinates and return them and the stripped original """ if original[0] in ['+', '-']: adj = (original[0], original[1:-2]) original = original[-2:] else: adj = False return adj, original def cut_df_by_metadata(df, metadata, criteria, coref=False, feature='speaker', method='just'): """ Keep or remove parts of the DataFrame based on metadata criteria """ if not criteria: df._metadata = metadata return df # maybe could be sped up, but let's not for now: if coref: df._metadata = metadata return df import re good_sents = [] new_metadata = {} from corpkit.constants import STRINGTYPE # could make the below more elegant ... for sentid, data in sorted(metadata.items()): meta_value = data.get(feature, 'none') lst_met_vl = meta_value.split(';') if isinstance(criteria, (list, set, tuple)): criteria = [i.lower() for i in criteria] if method == 'just': if any(i.lower() in criteria for i in lst_met_vl): good_sents.append(sentid) new_metadata[sentid] = data elif method == 'skip': if not any(i in criteria for i in lst_met_vl): good_sents.append(sentid) new_metadata[sentid] = data elif isinstance(criteria, (re._pattern_type, STRINGTYPE)): if method == 'just': if any(re.search(criteria, i, re.IGNORECASE) for i in lst_met_vl): good_sents.append(sentid) new_metadata[sentid] = data elif method == 'skip': if not any(re.search(criteria, i, re.IGNORECASE) for i in lst_met_vl): good_sents.append(sentid) new_metadata[sentid] = data df = df.loc[good_sents] df = df.fillna('') df._metadata = new_metadata return df def cut_df_by_meta(df, just_metadata, skip_metadata): """ Reshape a DataFrame based on filters """ if df is not None: if just_metadata: for k, v in just_metadata.items(): df = cut_df_by_metadata(df, df._metadata, v, feature=k) if skip_metadata: for k, v in skip_metadata.items(): df = cut_df_by_metadata(df, df._metadata, v, feature=k, method='skip') return df def tgrep_searcher(f=False, metadata=False, from_df=False, search=False, searchmode=False, exclude=False, excludemode=False, translated_option=False, subcorpora=False, conc=False, root=False, preserve_case=False, countmode=False, show=False, lem_instance=False, lemtag=False, category=False, fname=False, show_conc_metadata=False, only_format_match=True, **kwargs): """ Use tgrep for constituency grammar search """ from corpkit.process import show_tree_as_per_option, tgrep matches = [] conc_out = [] # in case search was a dict srch = search.get('t') if isinstance(search, dict) else search metcat = category if category else '' for i, sent in metadata.items(): results = tgrep(sent['parse'], srch) sname = sent.get('speaker') metcat = category for res in results: tok_id, start, middle, end = show_tree_as_per_option(show, res, sent, df=from_df, sent_id=i, conc=conc, only_format_match=only_format_match) #middle, idx = show_tree_as_per_option(show, res, 'conll', sent, df=df, sent_id=i) matches.append(middle) if conc: form_ix = '%d,%d' % (i, tok_id) lin = [form_ix, metcat, fname, sname, start, middle, end] if show_conc_metadata: for k, v in sorted(sent.items()): if k in ['speaker', 'parse', 'sent_id']: continue if isinstance(show_conc_metadata, list): if k in show_conc_metadata: lin.append(v) elif show_conc_metadata is True: lin.append(v) conc_out.append(lin) return matches, conc_out def slow_tregex(metadata=False, search=False, searchmode=False, exclude=False, excludemode=False, translated_option=False, subcorpora=False, conc=False, root=False, preserve_case=False, countmode=False, show=False, lem_instance=False, lemtag=False, from_df=False, fname=False, category=False, only_format_match=False, **kwargs): """ Do the metadata specific version of tregex queries """ from corpkit.process import tregex_engine, format_tregex, make_conc_lines_from_whole_mid if isinstance(search, dict): search = list(search.values())[0] speak_tree = [(x.get(subcorpora, 'none'), x['parse']) for x in metadata.values()] if speak_tree: speak, tree = list(zip(*speak_tree)) else: speak, tree = [], [] if all(not x for x in speak): speak = False to_open = '\n'.join(tree) concs = [] if not to_open.strip('\n'): if subcorpora: return {}, {} ops = ['-%s' % i for i in translated_option] + ['-o', '-n'] res = tregex_engine(query=search, options=ops, corpus=to_open, root=root, preserve_case=preserve_case, speaker_data=False) res = format_tregex(res, show, exclude=exclude, excludemode=excludemode, translated_option=translated_option, lem_instance=lem_instance, countmode=countmode, speaker_data=False, lemtag=lemtag) if not res: if subcorpora: return [], [] if conc: ops += ['-w'] whole_res = tregex_engine(query=search, options=ops, corpus=to_open, root=root, preserve_case=preserve_case, speaker_data=speak) # format match too depending on option if not only_format_match: whole_res = format_tregex(whole_res, show, exclude=exclude, excludemode=excludemode, translated_option=translated_option, lem_instance=lem_instance, countmode=countmode, speaker_data=speak, whole=True, lemtag=lemtag) # make conc lines from conc results concs = make_conc_lines_from_whole_mid(whole_res, res, filename=fname, show=show) else: concs = [False for i in res] if len(res) > 0 and isinstance(res[0], tuple): res = [i[-1] for i in res] if countmode: if isinstance(res, int): return res, False else: return len(res), False else: return res, concs def get_stats(from_df=False, metadata=False, feature=False, root=False, **kwargs): """ Get general statistics for a DataFrame """ import re from corpkit.dictionaries.process_types import processes from collections import Counter, defaultdict from corpkit.process import tregex_engine def ispunct(s): import string return all(c in string.punctuation for c in s) tree = [x['parse'] for x in metadata.values()] tregex_qs = {'Imperative': r'ROOT < (/(S|SBAR)/ < (VP !< VBD !< VBG !$ NP !$ SBAR < NP !$-- S '\ '!$-- VP !$ VP)) !<< (/\?/ !< __) !<<- /-R.B-/ !<<, /(?i)^(-l.b-|hi|hey|hello|oh|wow|thank|thankyou|thanks|welcome)$/', 'Open interrogative': r'ROOT < SBARQ <<- (/\?/ !< __)', 'Closed interrogative': r'ROOT ( < (SQ < (NP $+ VP)) << (/\?/ !< __) | < (/(S|SBAR)/ < (VP $+ NP)) <<- (/\?/ !< __))', 'Unmodalised declarative': r'ROOT < (S < (/(NP|SBAR|VP)/ $+ (VP !< MD)))', 'Modalised declarative': r'ROOT < (S < (/(NP|SBAR|VP)/ $+ (VP < MD)))', 'Clauses': r'/^S/ < __', 'Interrogative': r'ROOT << (/\?/ !< __)', 'Processes': r'/VB.?/ >># (VP !< VP >+(VP) /^(S|ROOT)/)'} result = Counter() for name in tregex_qs.keys(): result[name] = 0 result['Sentences'] = len(set(from_df.index.labels[0])) result['Passives'] = len(from_df[from_df['f'] == 'nsubjpass']) result['Tokens'] = len(from_df) # the below has returned a float before. i assume actually a nan? result['Words'] = len([w for w in list(from_df['w']) if w and not ispunct(str(w))]) result['Characters'] = sum([len(str(w)) for w in list(from_df['w']) if w]) result['Open class'] = sum([1 for x in list(from_df['p']) if x and x[0] in ['N', 'J', 'V', 'R']]) result['Punctuation'] = result['Tokens'] - result['Words'] result['Closed class'] = result['Words'] - result['Open class'] to_open = '\n'.join(tree) if not to_open.strip('\n'): return {}, {} for name, q in sorted(tregex_qs.items()): options = ['-o', '-t'] if name == 'Processes' else ['-o'] # c option removed, could cause memory problems #ops = ['-%s' % i for i in translated_option] + ['-o', '-n'] res = tregex_engine(query=q, options=options, corpus=to_open, root=root) #res = format_tregex(res) if not res: continue concs = [False for i in res] for (_, met, r), line in zip(res, concs): result[name] = len(res) if name != 'Processes': continue non_mat = 0 for ptype in ['mental', 'relational', 'verbal']: reg = getattr(processes, ptype).words.as_regex(boundaries='l') count = len([i for i in res if re.search(reg, i[-1])]) nname = ptype.title() + ' processes' result[nname] = count if root: root.update() return result, {} def get_corefs(df, matches): """ Add corefs to a set of matches """ out = set() df = df['c'] for s, i in matches: # keep original out.add((s,i)) coline = df[(s, i)] if coline.endswith('*'): same_co = df[df == coline] for ix in same_co.index: out.add(ix) return out def pipeline(f=False, search=False, show=False, exclude=False, searchmode='all', excludemode='any', conc=False, coref=False, from_df=False, just_metadata=False, skip_metadata=False, category=False, show_conc_metadata=False, statsmode=False, search_trees=False, lem_instance=False, **kwargs): """ A basic pipeline for conll querying---some options still to do """ if isinstance(show, str): show = [show] all_matches = [] all_exclude = [] if from_df is False or from_df is None: df = parse_conll(f, usecols=kwargs.get('usecols')) # can fail here if df is none if df is None: print('Problem reading data from %s.' % f) return [], [] metadata = df._metadata else: df = from_df metadata = kwargs.pop('metadata') feature = kwargs.pop('by_metadata', False) df = cut_df_by_meta(df, just_metadata, skip_metadata) searcher = pipeline if statsmode: searcher = get_stats if search_trees == 'tregex': searcher = slow_tregex elif search_trees == 'tgrep': searcher = tgrep_searcher if feature: if df is None: print('Problem reading data from %s.' % f) return {}, {} # determine searcher resultdict = {} concresultdict = {} # get all the possible values in the df for the feature of interest all_cats = set([i.get(feature, 'none') for i in list(df._metadata.values())]) for category in all_cats: new_df = cut_df_by_metadata(df, df._metadata, category, feature=feature, method='just') r, c = searcher(f=False, fname=f, search=search, exclude=exclude, show=show, searchmode=searchmode, excludemode=excludemode, conc=conc, coref=coref, from_df=new_df, by_metadata=False, category=category, show_conc_metadata=show_conc_metadata, lem_instance=lem_instance, root=kwargs.pop('root', False), subcorpora=feature, metadata=new_df._metadata, **kwargs) resultdict[category] = r concresultdict[category] = c return resultdict, concresultdict if df is None: print('Problem reading data from %s.' % f) return [], [] kwargs['ngram_mode'] = any(x.startswith('n') for x in show) #df = cut_df_by_metadata(df, df._metadata, kwargs.get('just_speakers'), coref=coref) metadata = df._metadata try: df['w'].str except AttributeError: raise AttributeError("CONLL data doesn't match expectations. " \ "Try the corpus.conll_conform() method to " \ "convert the corpus to the latest format.") if kwargs.get('no_punct', True): df = df[df['w'].fillna('').str.contains(kwargs.get('is_a_word', r'[A-Za-z0-9]'))] # remove brackets --- could it be done in one regex? df = df[~df['w'].str.contains(r'^-.*B-$')] if kwargs.get('no_closed'): from corpkit.dictionaries import wordlists crit = wordlists.closedclass.as_regex(boundaries='l', case_sensitive=False) df = df[~df['w'].str.contains(crit)] if statsmode: return get_stats(df, metadata, False, root=kwargs.pop('root', False), **kwargs) elif search_trees: return searcher(from_df=df, search=search, searchmode=searchmode, exclude=exclude, excludemode=excludemode, conc=conc, by_metadata=False, metadata=metadata, root=kwargs.pop('root', False), fname=f, show=show, **kwargs) # do no searching if 'any' is requested if len(search) == 1 and list(search.keys())[0] == 'w' \ and hasattr(list(search.values())[0], 'pattern') \ and list(search.values())[0].pattern == r'.*': all_matches = list(df.index) else: for k, v in search.items(): adj, k = determine_adjacent(k) res = search_this(df, k[0], k[-1], v, adjacent=adj, coref=coref) for r in res: all_matches.append(r) all_matches = remove_by_mode(all_matches, searchmode, search) if exclude: for k, v in exclude.items(): adj, k = determine_adjacent(k) res = search_this(df, k[0], k[-1], v, adjacent=adj, coref=coref) for r in res: all_exclude.append(r) all_exclude = remove_by_mode(all_exclude, excludemode, exclude) all_matches = all_matches.difference(all_exclude) if coref: all_matches = get_corefs(df, all_matches) out, conc_out = show_this(df, all_matches, show, metadata, conc, coref=coref, category=category, show_conc_metadata=show_conc_metadata, **kwargs) return out, conc_out def load_raw_data(f): """ Loads the stripped and raw versions of a parsed file """ from corpkit.process import saferead # open the unparsed version of the file, read into memory stripped_txtfile = f.replace('.conll', '').replace('-parsed', '-stripped') stripped_txtdata, enc = saferead(stripped_txtfile) # open the unparsed version with speaker ids id_txtfile = f.replace('.conll', '').replace('-parsed', '') id_txtdata, enc = saferead(id_txtfile) return stripped_txtdata, id_txtdata def get_speaker_from_offsets(stripped, plain, sent_offsets, metadata_mode=False, speaker_segmentation=False): """ Take offsets and get a speaker ID or metadata from them """ if not stripped and not plain: return {} start, end = sent_offsets sent = stripped[start:end] # find out line number # sever at start of match cut_old_text = stripped[:start] line_index = cut_old_text.count('\n') # lookup this text with_id = plain.splitlines()[line_index] # parse xml tags in original file ... meta_dict = {'speaker': 'none'} if metadata_mode: metad = with_id.strip().rstrip('>').rsplit(' 1: speakerid = split_line[0] else: speakerid = 'UNIDENTIFIED' meta_dict['speaker'] = speakerid return meta_dict def convert_json_to_conll(path, speaker_segmentation=False, coref=False, metadata=False, just_files=False): """ take json corenlp output and convert to conll, with dependents, speaker ids and so on added. Path is for the parsed corpus, or a list of files within a parsed corpus Might need to fix if outname used? """ import json import re from corpkit.build import get_filepaths from corpkit.constants import CORENLP_VERSION, OPENER # todo: stabilise this #if CORENLP_VERSION == '3.7.0': # coldeps = 'enhancedPlusPlusDependencies' #else: # coldeps = 'collapsed-ccprocessed-dependencies' print('Converting files to CONLL-U...') if just_files: files = just_files else: if isinstance(path, list): files = path else: files = get_filepaths(path, ext='conll') for f in files: if speaker_segmentation or metadata: stripped, raw = load_raw_data(f) else: stripped, raw = None, None main_out = '' # if the file has already been converted, don't worry about it # untested? with OPENER(f, 'r') as fo: #try: try: data = json.load(fo) except ValueError: continue # todo: differentiate between json errors # rsc corpus had one json file with an error # outputted by corenlp, and the conversion # failed silently here #except ValueError: # continue for idx, sent in enumerate(data['sentences'], start=1): tree = sent['parse'].replace('\n', '') tree = re.sub(r'\s+', ' ', tree) # offsets for speaker_id sent_offsets = (sent['tokens'][0]['characterOffsetBegin'], \ sent['tokens'][-1]['characterOffsetEnd']) metad = get_speaker_from_offsets(stripped, raw, sent_offsets, metadata_mode=True, speaker_segmentation=speaker_segmentation) # currently there is no standard for sent_id, so i'm leaving it out, but # if https://github.com/UniversalDependencies/docs/issues/273 is updated # then i could switch it back #output = '# sent_id %d\n# parse=%s\n' % (idx, tree) output = '# parse=%s\n' % tree for k, v in sorted(metad.items()): output += '# %s=%s\n' % (k, v) for token in sent['tokens']: index = str(token['index']) # this got a stopiteration on rsc data governor, func = next(((i['governor'], i['dep']) \ for i in sent.get('enhancedPlusPlusDependencies', sent.get('collapsed-ccprocessed-dependencies')) \ if i['dependent'] == int(index)), ('_', '_')) if governor is '_': depends = False else: depends = [str(i['dependent']) for i in sent.get('enhancedPlusPlusDependencies', sent.get('collapsed-ccprocessed-dependencies')) if i['governor'] == int(index)] if not depends: depends = '0' #offsets = '%d,%d' % (token['characterOffsetBegin'], token['characterOffsetEnd']) line = [index, token['word'], token['lemma'], token['pos'], token.get('ner', '_'), '_', # this is morphology, which is unannotated always, but here to conform to conll u governor, func, ','.join(depends)] # no ints line = [str(l) if isinstance(l, int) else l for l in line] from corpkit.constants import PYTHON_VERSION if PYTHON_VERSION == 2: try: [unicode(l, errors='ignore') for l in line] except TypeError: pass output += '\t'.join(line) + '\n' main_out += output + '\n' # post process corefs if coref: import re dct = {} idxreg = re.compile('^([0-9]+)\t([0-9]+)') splitmain = main_out.split('\n') # add tab _ to each line, make dict of sent-token: line index for i, line in enumerate(splitmain): if line and not line.startswith('#'): splitmain[i] += '\t_' match = re.search(idxreg, line) if match: l, t = match.group(1), match.group(2) dct[(int(l), int(t))] = i # for each coref chain, if there are corefs for numstring, list_of_dicts in sorted(data.get('corefs', {}).items()): # for each mention for d in list_of_dicts: snum = d['sentNum'] # get head? # this has been fixed in dev corenlp: 'headIndex' --- could simply use that # ref : https://github.com/stanfordnlp/CoreNLP/issues/231 for i in range(d['startIndex'], d['endIndex']): try: ix = dct[(snum, i)] fixed_line = splitmain[ix].rstrip('\t_') + '\t%s' % numstring gv = fixed_line.split('\t')[6] try: gov_s = int(gv) except ValueError: continue if gov_s < d['startIndex'] or gov_s > d['endIndex']: fixed_line += '*' splitmain[ix] = fixed_line dct.pop((snum, i)) except KeyError: pass main_out = '\n'.join(splitmain) from corpkit.constants import OPENER with OPENER(f, 'w', encoding='utf-8') as fo: main_out = main_out.replace(u"\u2018", "'").replace(u"\u2019", "'") fo.write(main_out) ================================================ FILE: corpkit/constants.py ================================================ import sys import codecs # python 2/3 coompatibility PYTHON_VERSION = sys.version_info.major STRINGTYPE = str if PYTHON_VERSION == 3 else basestring INPUTFUNC = input if PYTHON_VERSION == 3 else raw_input OPENER = open if PYTHON_VERSION == 3 else codecs.open # quicker access to search, exclude, show types from itertools import product _starts = ['M', 'N', 'B', 'G', 'D', 'H', 'R'] _ends = ['W', 'L', 'I', 'S', 'P', 'X', 'R', 'F', 'E'] _others = ['A', 'ANY', 'ANYWORD', 'C', 'SELF', 'V', 'K', 'T'] _prod = list(product(_starts, _ends)) _prod = [''.join(i) for i in _prod] _letters = sorted(_prod + _starts + _ends + _others) _adjacent_start = ['A{}'.format(i) for i in range(1, 9)] + \ ['Z{}'.format(i) for i in range(1, 9)] _adjacent = [''.join(i) for i in list(product(_adjacent_start, _prod))] LETTERS = sorted(_letters + _adjacent) # translating search values intro words transshow = {'f': 'Function', 'l': 'Lemma', 'a': 'Distance from root', 'w': 'Word', 't': 'Trees', 'i': 'Index', 'n': 'N-grams', 'p': 'POS', 'e': 'NER', 'c': 'Count', 'x': 'Word class', 's': 'Sentence index'} transobjs = {'g': 'Governor', 'd': 'Dependent', 'm': 'Match', 'h': 'Head'} # below are the column names for the conll-u formatted data # corpkit's format is slightly different, but largely compatible. # Key differences: # # 1. 'e' is used for NER, rather than lang specific POS # 2. 'd' gives a comma-sep list of dependents, rather than head-deprel pairs # this is done for processing speed. # 3. 'c' is used for corefs, not 'misc comment'. it has an artibrary number # representing a dependency chain. head of a mention is marked with an asterisk. # 'm' does not have anything in it in corpkit, but denotes morphological features # default: index, word, lem, pos, ner, morph, gov, func, deps, coref CONLL_COLUMNS = ['i', 'w', 'l', 'p', 'e', 'v', 'g', 'f', 'd', 'c'] # what the longest possible speaker ID is. this prevents huge lines with colons # from getting matched unintentionally MAX_SPEAKERNAME_SIZE = 40 # parsing sometimes fails with a java error. if corpus.parse(restart=True), this will try # parsing n times before giving up REPEAT_PARSE_ATTEMPTS = 3 # location of the current corenlp and its version # old, stable #CORENLP_URL = 'http://nlp.stanford.edu/software/stanford-corenlp-full-2015-12-09.zip' #CORENLP_VERSION = '3.6.0' # newest, beta CORENLP_VERSION = '3.7.0' CORENLP_URL = 'http://nlp.stanford.edu/software/stanford-corenlp-full-2016-10-31.zip' # it can be very slow to load a bunch of unused metadata categories MAX_METADATA_FIELDS = 99 MAX_METADATA_VALUES = 99 ================================================ FILE: corpkit/corpkit ================================================ #!/usr/bin/env python """ A script to start the corpkit interpeter with options """ import sys import os # determine if we're running a script if len(sys.argv) > 1 and os.path.isfile(sys.argv[-1]): fromscript = sys.argv[-1] else: fromscript = False def install(name, loc): """ If we don't have a module, download it """ import pip import importlib try: importlib.import_module(name) except ImportError: pip.main(['install', loc]) tabview = ('tabview', 'git+https://github.com/interrogator/tabview@93644dd1f410de4e47466ea8083bb628b9ccc471#egg=tabview') colorama = ('colorama', 'colorama') # run a command a la python -c command = sys.argv[sys.argv.index('-c') + 1] if '-c' in sys.argv else False debug = any(i in sys.argv for i in ['--debug', '-d', 'debug']) quiet = any(i in sys.argv for i in ['--q', '--quiet']) load = any(i in sys.argv for i in ['--load', '-l']) profile = any(i in sys.argv for i in ['--profile', '-p']) version = any(i in sys.argv for i in ['--version', '-v']) if not any('noinstall' in arg.lower() for arg in sys.argv): install(*tabview) install(*colorama) if version: import corpkit print(corpkit.__version__) elif any(i in sys.argv for i in ['--help', '-h']): from corpkit.env import help_text import pydoc pydoc.pipepager(help_text, cmd='less -X -R -S') else: from corpkit.env import interpreter interpreter(debug=debug, fromscript=fromscript, quiet=quiet, python_c_mode=command, profile=profile, loadcurrent=load) ================================================ FILE: corpkit/corpkit.1 ================================================ .TH corpkit 1 .SH NAME corpkit \- corpus linguistics interface .SH SYNOPSIS .B corpkit [\fB\-c\fR \fICOMMAND\fR] [\fB\-d\fR] [\fB\-h\fR] [\fB\-l\fR] .IR [file] .SH DESCRIPTION .B corpkit builds and searches parsed and/or structured linguistic corpora. It also edits and visualises results, and manages projects. .SH OPTIONS .TP .BR " \-\-c COMMAND"\fR A quoted command or series of commands to pass to the corpkit interpreter. Use a semicolon to delimit each command. Disables interactivity and exits on completion. .TP .IR "file"\fR Pass in a script for the interpeter to run. .TP .BR "\-d, " \-\-debug\fR Debug mode: print info about how command was parsed. .TP .BR "\-l, " \-\-load\fR Load all saved results into store on startup. .TP .BR "\-h, " \-\-help\fR Show help. ================================================ FILE: corpkit/corpus.py ================================================ """ corpkit: Corpus and Corpus-like objects """ from __future__ import print_function from lazyprop import lazyprop from corpkit.process import classname from corpkit.constants import STRINGTYPE, PYTHON_VERSION class Corpus(object): """ A class representing a linguistic text corpus, which contains files, optionally within subcorpus folders. Methods for concordancing, interrogating, getting general stats, getting behaviour of particular word, etc. Unparsed, tokenised and parsed corpora use the same class, though some methods are available only to one or the other. Only unparsed corpora can be parsed, and only parsed/tokenised corpora can be interrogated. """ def __init__(self, path, **kwargs): import re import operator import glob import os from os.path import join, isfile, isdir, abspath, dirname, basename from corpkit.process import determine_datatype # levels are 'c' for corpus, 's' for subcorpus and 'f' for file. Which # one is determined automatically below, and processed accordingly. We # assume it is a full corpus to begin with. def get_symbolics(self): return {'skip': self.skip, 'just': self.just, 'symbolic': self.symbolic} self.data = None self._dlist = None self.level = kwargs.pop('level', 'c') self.datatype = kwargs.pop('datatype', None) self.print_info = kwargs.pop('print_info', True) self.symbolic = kwargs.get('subcorpora', False) self.skip = kwargs.get('skip', False) self.just = kwargs.get('just', False) self.kwa = get_symbolics(self) if isinstance(path, (list, Datalist)): self.path = abspath(dirname(path[0].path.rstrip('/'))) self.name = basename(self.path) self.data = path if self.level == 'd': self._dlist = path elif isinstance(path, STRINGTYPE): self.path = abspath(path) self.name = basename(path) elif hasattr(path, 'path') and path.path: self.path = abspath(path.path) self.name = basename(path.path) # this messy code figures out as quickly as possible what the datatype # and singlefile status of the path is. it's messy because it shortcuts # full checking where possible some of the shortcutting could maybe be # moved into the determine_datatype() funct. if self.level == 'd': self.singlefile = len(self._dlist) > 1 else: self.singlefile = False if os.path.isfile(self.path): self.singlefile = True else: if not isdir(self.path): if isdir(join('data', path)): self.path = abspath(join('data', path)) if self.path.endswith('-parsed') or self.path.endswith('-tokenised'): for r, d, f in os.walk(self.path): if not f: continue if isinstance(f, str) and f.startswith('.'): continue if f[0].endswith('conll') or f[0].endswith('conllu'): self.datatype = 'conll' break if len([d for d in os.listdir(self.path) if isdir(join(self.path, d))]) > 0: self.singlefile = False if len([d for d in os.listdir(self.path) if isdir(join(self.path, d))]) == 0: self.level = 's' else: if self.level == 'c': if not self.datatype: self.datatype, self.singlefile = determine_datatype( self.path) if isdir(self.path): if len([d for d in os.listdir(self.path) if isdir(join(self.path, d))]) == 0: self.level = 's' # if initialised on a file, process as file if self.singlefile and self.level == 'c': self.level = 'f' # load each interrogation as an attribute if kwargs.get('load_saved', False): from corpkit.other import load from corpkit.process import makesafe if os.path.isdir('saved_interrogations'): saved_files = glob.glob(r'saved_interrogations/*') for filepath in saved_files: filename = os.path.basename(filepath) if not filename.startswith(self.name): continue not_filename = filename.replace(self.name + '-', '') not_filename = os.path.splitext(not_filename)[0] if not_filename in ['features', 'wordclasses', 'postags']: continue variable_safe = makesafe(not_filename) try: setattr(self, variable_safe, load(filename)) if self.print_info: print( '\tLoaded %s as %s attribute.' % (filename, variable_safe)) except AttributeError: if self.print_info: print( '\tFailed to load %s as %s attribute. Name conflict?' % (filename, variable_safe)) if self.print_info: print('Corpus: %s' % self.path) @lazyprop def subcorpora(self): """ A list-like object containing a corpus' subcorpora. """ import re import os import operator from os.path import join, isdir if self.level == 'd': return if self.data.__class__ == Datalist or isinstance(self.data, (Datalist, list)): return self.data if self.level == 'c': variable_safe_r = re.compile(r'[\W0-9_]+', re.UNICODE) sbs = Datalist(sorted([Subcorpus(join(self.path, d), self.datatype, **self.kwa) for d in os.listdir(self.path) if isdir(join(self.path, d))], key=operator.attrgetter('name')), **self.kwa) for subcorpus in sbs: variable_safe = re.sub(variable_safe_r, '', subcorpus.name.lower().split(',')[0]) setattr(self, variable_safe, subcorpus) return sbs @lazyprop def speakerlist(self): """ A list of speakers in the corpus """ from corpkit.build import get_speaker_names_from_parsed_corpus return get_speaker_names_from_parsed_corpus(self) @lazyprop def files(self): """ A list-like object containing the files in a folder >>> corpus.subcorpora[0].files """ import re import os import operator from os.path import join, isdir if self.level == 's': fls = [f for f in os.listdir(self.path) if not f.startswith('.')] fls = [File(f, self.path, self.datatype, **self.kwa) for f in fls] fls = sorted(fls, key=operator.attrgetter('name')) return Datalist(fls, **self.kwa) elif self.level == 'd': return self._dlist @lazyprop def all_filepaths(self): """ Lazy-load a list of all filepaths in a corpus """ if self.level == 'f': return [self.path] if self.files: return [i.path for i in self.files] fs = [] for sc in self.subcorpora: for f in sc.files: fs.append(f.path) return fs def conll_conform(self, errors='raise'): """ This removes sent index column from old corpkit data """ from corpkit.constants import OPENER fs = self.all_filepaths for i, f in enumerate(fs, start=1): badfile = False print('Doing %s/%s' % (i, len(fs))) fdata = [] with OPENER(f, 'r', encoding='utf-8') as fo: lines = fo.read().splitlines() for line in lines: if line.startswith('# sent_id'): continue if line and not line.startswith('#'): try: splut = line.split('\t', 1)[1] except IndexError: raise IndexError('Failed on file %s' % f) if not splut[0].isdigit(): if errors == 'raise': raise ValueError('File %s does not appear to be in old format.' % f) else: if badfile: continue badfile = True continue else: line = splut # add v column with nothing in it line = line.split('\t') line.insert(5, '_') line = '\t'.join(line) fdata.append(line) if badfile and errors != 'raise': print('Skipping %s' % f) continue with OPENER(f, 'w', encoding='utf-8') as fo: fo.write('\n'.join(fdata)) @lazyprop def all_files(self): """ Lazy-load a list of all filepaths in a corpus """ if self.level == 'f': return Datalist([self]) if self.files: return self.files fs = [] for sc in self.subcorpora: for f in sc.files: fs.append(f) return Datalist(fs) def tfidf(self, search={'w': 'any'}, show=['w'], **kwargs): """ Generate TF-IDF vector representation of corpus using interrogate method. All args and kwargs go to :func:`~corpkit.corpus.Corpus.interrogate`. :returns: Tuple: the vectoriser and matrix """ from sklearn.feature_extraction.text import TfidfVectorizer vectoriser = TfidfVectorizer(input='content', tokenizer=lambda x: x.split()) res = self.interrogate(search=search, show=show, **kwargs).results # there is also a string repeat method which could be better def dupe_string(line): """Duplicate line name by line count and return string""" return ''.join([(w + ' ') * line[w] for w in line.index]) ser = res.apply(dupe_string, axis=1) vec = vectoriser.fit_transform(ser.values) #todo: subcorpora names are lost? return vectoriser, vec def __str__(self): """ String representation of corpus """ showing = 'subcorpora' if getattr(self, 'subcorpora', False): sclen = len(self.subcorpora) else: showing = 'files' sclen = len(self.files) show = 'Corpus at %s:\n\nData type: %s\nNumber of %s: %d\n' % ( self.path, self.datatype, showing, sclen) val = self.symbolic if self.symbolic else 'default' show += 'Subcorpora: %s\n' % val if self.singlefile: show += '\nCorpus is a single file.\n' #if getattr(self, 'symbolic'): # show += 'Symbolic subcorpora: %s\n' % str(self.symbolic) if getattr(self, 'skip'): show += 'Skip: %s\n' % str(self.skip) if getattr(self, 'just'): show += 'Just: %s\n' % str(self.just) return show def __repr__(self): """ Object representation of corpus """ import os if not self.subcorpora: ssubcorpora = '' else: ssubcorpora = self.subcorpora return "<%s instance: %s; %d subcorpora>" % ( classname(self), os.path.basename(self.path), len(ssubcorpora)) def __getitem__(self, key): """ Get attributes from corpus todo: symbolic stuff for item selection """ from corpkit.constants import STRINGTYPE from corpkit.process import makesafe if getattr(self, 'subcorpora', False): get_from = self.subcorpora elif getattr(self, 'files', False): get_from = self.files else: get_from = self.document try: return get_from.loc[key] except: return get_from.__getitem__(key) return get_from.__getitem__(key) def __delitem__(self, key): from corpkit.constants import STRINGTYPE from corpkit.process import makesafe if getattr(self, 'subcorpora', False): del_from = self.subcorpora elif getattr(self, 'files', False): del_from = self.files if isinstance(key, (int, slice)): del_from.__delitem__(key) elif isinstance(key, STRINGTYPE): del_from.__delitem__(del_from.index(key)) @lazyprop def features(self): """ Generate and show basic stats from the corpus, including number of sentences, clauses, process types, etc. :Example: >>> corpus.features SB Characters Tokens Words Closed class words Open class words Clauses 01 26873 8513 7308 4809 3704 2212 02 25844 7933 6920 4313 3620 2270 03 18376 5683 4877 3067 2616 1640 04 20066 6354 5366 3587 2767 1775 """ from corpkit.dictionaries.word_transforms import mergetags from corpkit.process import get_corpus_metadata, add_df_to_dotfile, make_df_json_name kwa = {'just_metadata': self.just, 'skip_metadata': self.skip, 'subcorpora': self.symbolic} md = get_corpus_metadata(self.path, generate=True) name = make_df_json_name('features', self.symbolic) if name in md: import pandas as pd try: return pd.DataFrame(md[name]) except ValueError: return pd.Series(md[name]) else: feat = self.interrogate('features', **kwa) from corpkit.interrogation import Interrodict if isinstance(feat, Interrodict): feat = feat.multiindex() feat = feat.results add_df_to_dotfile(self.path, feat, typ='features', subcorpora=self.symbolic) return feat def _get_postags_and_wordclasses(self): """ Called by corpus.postags and corpus.wordclasses internally """ from corpkit.dictionaries.word_transforms import mergetags from corpkit.process import get_corpus_metadata, add_df_to_dotfile, make_df_json_name kwa = {'just_metadata': self.just, 'skip_metadata': self.skip, 'subcorpora': self.symbolic} md = get_corpus_metadata(self.path, generate=True) pname = make_df_json_name('postags', self.symbolic) wname = make_df_json_name('wordclasses', self.symbolic) if pname in md and wname in md: import pandas as pd try: return pd.DataFrame(md[pname]), pd.DataFrame(md[wname]) except ValueError: return pd.Series(md[pname]), pd.Series(md[wname]) else: postags = self.interrogate('postags', **kwa) from corpkit.interrogation import Interrodict if isinstance(postags, Interrodict): postags = postags.multiindex() wordclasses = postags.edit(merge_entries=mergetags, sort_by='total').results.astype(int) postags = postags.results add_df_to_dotfile(self.path, postags, typ='postags', subcorpora=self.symbolic) add_df_to_dotfile(self.path, wordclasses, typ='wordclasses', subcorpora=self.symbolic) return postags, wordclasses @lazyprop def wordclasses(self): """ Generate and show basic stats from the corpus, including number of sentences, clauses, process types, etc. :Example: >>> corpus.wordclasses SB Verb Noun Preposition Determiner ... 01 26873 8513 7308 5508 ... 02 25844 7933 6920 3323 ... 03 18376 5683 4877 3137 ... 04 20066 6354 5366 4336 ... """ postags, wordclasses = self._get_postags_and_wordclasses() return wordclasses @lazyprop def postags(self): """ Generate and show basic stats from the corpus, including number of sentences, clauses, process types, etc. :Example: >>> corpus.postags SB NN VB JJ IN DT 01 26873 8513 7308 4809 3704 ... 02 25844 7933 6920 4313 3620 ... 03 18376 5683 4877 3067 2616 ... 04 20066 6354 5366 3587 2767 ... """ postags, wordclasses = self._get_postags_and_wordclasses() return postags @lazyprop def lexicon(self, **kwargs): """ Get a lexicon/frequency distribution from a corpus, and save to disk for next time. :returns: a `DataFrame` of tokens and counts """ from corpkit.process import get_corpus_metadata, add_df_to_dotfile, make_df_json_name kwa = {'just_metadata': self.just, 'skip_metadata': self.skip, 'subcorpora': self.symbolic} md = get_corpus_metadata(self.path, generate=True) name = make_df_json_name('lexicon', self.symbolic) if name in md: import pandas as pd return pd.DataFrame(md[name]) else: lexi = self.interrogate('lexicon', **kwa) from corpkit.interrogation import Interrodict if isinstance(lexi, Interrodict): lexi = lexi.multiindex() lexi = lexi.results add_df_to_dotfile(self.path, lexi, typ='lexicon', subcorpora=self.symbolic) return lexi def configurations(self, search, **kwargs): """ Get the overall behaviour of tokens or lemmas matching a regular expression. The search below makes DataFrames containing the most common subjects, objects, modifiers (etc.) of 'see': :param search: Similar to `search` in the :func:`~corpkit.corpus.Corpus.interrogate` method. Valid keys are: - `W`/`L` match word or lemma - `F`: match a semantic role (`'participant'`, `'process'` or `'modifier'`. If `F` not specified, each role will be searched for. :type search: `dict` :Example: >>> see = corpus.configurations({L: 'see', F: 'process'}, show=L) >>> see.has_subject.results.sum() i 452 it 227 you 162 we 111 he 94 :returns: :class:`corpkit.interrogation.Interrodict` """ if 'subcorpora' not in kwargs: kwargs['subcorpora'] = self.symbolic if 'just_metadata' not in kwargs: kwargs['just_metadata'] = self.just if 'skip_metadata' not in kwargs: kwargs['skip_metadata'] = self.skip from corpkit.configurations import configurations return configurations(self, search, **kwargs) def interrogate(self, search='w', *args, **kwargs): """ Interrogate a corpus of texts for a lexicogrammatical phenomenon. This method iterates over the files/folders in a corpus, searching the texts, and returning a :class:`corpkit.interrogation.Interrogation` object containing the results. The main options are `search`, where you specify search criteria, and `show`, where you specify what you want to appear in the output. :Example: >>> corpus = Corpus('data/conversations-parsed') ### show lemma form of nouns ending in 'ing' >>> q = {W: r'ing$', P: r'^N'} >>> data = corpus.interrogate(q, show=L) >>> data.results .. something anything thing feeling everything nothing morning 01 14 11 12 1 6 0 1 02 10 20 4 4 8 3 0 03 14 5 5 3 1 0 0 ... ... :param search: What part of the lexicogrammar to search, and what criteria to match. The `keys` are the thing to be searched, and values are the criteria. To search parse trees, use the `T` key, and a Tregex query as the value. When searching dependencies, you can use any of: +--------------------+-------+----------+-----------+-----------+ | | Match | Governor | Dependent | Head | +====================+=======+==========+===========+===========+ | Word | `W` | `G` | `D` | `H` | +--------------------+-------+----------+-----------+-----------+ | Lemma | `L` | `GL` | `DL` | `HL` | +--------------------+-------+----------+-----------+-----------+ | Function | `F` | `GF` | `DF` | `HF` | +--------------------+-------+----------+-----------+-----------+ | POS tag | `P` | `GP` | `DP` | `HP` | +--------------------+-------+----------+-----------+-----------+ | Word class | `X` | `GX` | `DX` | `HX` | +--------------------+-------+----------+-----------+-----------+ | Distance from root | `A` | `GA` | `DA` | `HA` | +--------------------+-------+----------+-----------+-----------+ | Index | `I` | `GI` | `DI` | `HI` | +--------------------+-------+----------+-----------+-----------+ | Sentence index | `S` | `SI` | `SI` | `SI` | +--------------------+-------+----------+-----------+-----------+ Values should be regular expressions or wordlists to match. :type search: `dict` :Example: >>> corpus.interrogate({T: r'/NN.?/ < /^t/'}) # T- nouns, via trees >>> corpus.interrogate({W: '^t': P: r'^v'}) # T- verbs, via dependencies :param searchmode: Return results matching any/all criteria :type searchmode: `str` -- `'any'`/`'all'` :param exclude: The inverse of `search`, removing results from search :type exclude: `dict` -- `{L: 'be'}` :param excludemode: Exclude results matching any/all criteria :type excludemode: `str` -- `'any'`/`'all'` :param query: A search query for the interrogation. This is only used when `search` is a `str`, or when multiprocessing. When `search` If `search` is a str, the search criteria can be passed in as `query, in order to allow the simpler syntax: >>> corpus.interrogate(GL, '(think|want|feel)') When multiprocessing, the following is possible: >>> q = {'Nouns': r'/NN.?/', 'Verbs': r'/VB.?/'} ### return an :class:`corpkit.interrogation.Interrogation` object with multiindex: >>> corpus.interrogate(T, q) ### return an :class:`corpkit.interrogation.Interrogation` object without multiindex: >>> corpus.interrogate(T, q, show=C) :type query: `str`, `dict` or `list` :param show: What to output. If multiple strings are passed in as a `list`, results will be colon-separated, in the suppled order. Possible values are the same as those for `search`, plus options n-gramming and getting collocates: +------+-----------------------+------------------------+ | Show | Gloss | Example | +======+=======================+========================+ | N | N-gram word | `The women were` | +------+-----------------------+------------------------+ | NL | N-gram lemma | `The woman be` | +------+-----------------------+------------------------+ | NF | N-gram function | `det nsubj root` | +------+-----------------------+------------------------+ | NP | N-gram POS tag | `DT NNS VBN` | +------+-----------------------+------------------------+ | NX | N-gram word class | `determiner noun verb` | +------+-----------------------+------------------------+ | B | Collocate word | `The_were` | +------+-----------------------+------------------------+ | BL | Collocate lemma | `The_be` | +------+-----------------------+------------------------+ | BF | Collocate function | `det_root` | +------+-----------------------+------------------------+ | BP | Collocate POS tag | `DT_VBN` | +------+-----------------------+------------------------+ | BX | Collocate word class | `determiner_verb` | +------+-----------------------+------------------------+ :type show: `str`/`list` of strings :param lemmatise: Force lemmatisation on results. **Deprecated: instead, output a lemma form with the `show` argument** :type lemmatise: `bool` :param lemmatag: When using a Tregex/Tgrep query, the tool will attempt to determine the word class of results from the query. Passing in a `str` here will tell the lemmatiser the expected POS of results to lemmatise. It only has an affect if trees are being searched and lemmata are being shown. :type lemmatag: `'n'`/`'v'`/`'a'`/`'r'`/`False` :param save: Save result as pickle to `saved_interrogations/` on completion :type save: `str` :param gramsize: Size of n-grams (default 1, i.e. unigrams) :type gramsize: `int` :param multiprocess: How many parallel processes to run :type multiprocess: `int`/`bool` (`bool` determines automatically) :param files_as_subcorpora: (**Deprecated, use subcorpora=files**). Treat each file as a subcorpus, ignoring actual subcorpora if present :type files_as_subcorpora: `bool` :param conc: Generate a concordance while interrogating, store as `.concordance` attribute :type conc: `bool`/`'only'` :param coref: Also get coreferents for search matches :type coref: `bool` :param tgrep: Use `TGrep` for tree querying. TGrep is less expressive than Tregex, and is slower, but can work without Java. This option may be turned on internally if Java is not found. :type tgrep: `bool` :param subcorpora: Use a metadata value as subcorpora. Passing a list will create a multiindex. `'file'` and `'folder'`/`'default'` are also possible values. :type subcorpora: `str`/`list` :param just_metadata: One or more metadata fields and criteria to filter sentences by. Only those matching will be kept. Criteria can be a list of words or a regular expression. Passing ``{'speaker': 'ENVER'}`` will search only sentences annotated with ``speaker=ENVER``. :type just_metadata: `dict` :param skip_metadata: A field and regex/list to filter sentences by. The inverse of ``just_metadata``. :type skip_metadata: `dict` :param discard: When returning many (i.e. millions) of results, memory can be a problem. Setting a discard value will ignore results occurring infrequently in a subcorpus. An ``int`` will remove any result occurring ``n`` times or fewer. A float will remove this proportion of results (i.e. 0.1 will remove 10 per cent) :type discard: ``int``/``float`` :returns: A :class:`corpkit.interrogation.Interrogation` object, with `.query`, `.results`, `.totals` attributes. If multiprocessing is invoked, result may be multiindexed. """ from corpkit.interrogator import interrogator import pandas as pd par = kwargs.pop('multiprocess', None) kwargs.pop('corpus', None) if self.datatype != 'conll': raise ValueError('You need to parse or tokenise the corpus before searching.') # handle symbolic structures subcorpora = kwargs.get('subcorpora', False) if self.level == 's': subcorpora = 'file' if self.symbolic: subcorpora = self.symbolic if 'subcorpora' in kwargs: subcorpora = kwargs.pop('subcorpora') if subcorpora in ['default', 'folder', 'folders']: subcorpora = False if subcorpora in ['file', 'files']: subcorpora = False kwargs['files_as_subcorpora'] = True if self.skip: if kwargs.get('skip_metadata'): kwargs['skip_metadata'].update(self.skip) else: kwargs['skip_metadata'] = self.skip if self.just: if kwargs.get('just_metadata'): kwargs['just_metadata'].update(self.just) else: kwargs['just_metadata'] = self.just kwargs.pop('subcorpora', False) if par and self.subcorpora: if isinstance(par, int): kwargs['multiprocess'] = par res = interrogator(self.subcorpora, search, subcorpora=subcorpora, *args, **kwargs) else: kwargs['multiprocess'] = par res = interrogator(self, search, subcorpora=subcorpora, *args, **kwargs) if kwargs.get('conc', False) == 'only': return res from corpkit.interrogation import Interrodict if isinstance(res, Interrodict) and kwargs.get('use_interrodict'): return res elif isinstance(res, Interrodict) and not kwargs.get('use_interrodict', False): return res.multiindex() else: if subcorpora: res.results.index.name = subcorpora # sort by total ind = list(res.results.index) if isinstance(res.results, pd.DataFrame): if not res.results.empty: res.results = res.results[list(res.results.sum().sort_values(ascending=False).index)] res.results = res.results.astype(int) if all(i == 'none' or str(i).isdigit() for i in ind): longest = max([len(str(i)) if str(i).isdigit() else 1 for i in ind]) res.results.index = [str(i).zfill(longest) for i in ind] res.results = res.results.sort_index().astype(int) else: show = res.query.get('show', []) outs = [] from corpkit.constants import transshow, transobjs for bit in show: name = transobjs.get(bit[0], bit[0]) + '-' + transshow.get(bit[-1], bit[-1]) name = name.replace('Match-', '').lower() outs.append(name) name = '/'.join(outs) if name: res.results.name = name return res def sample(self, n, level='f'): """ Get a sample of the corpus :param n: amount of data in the the sample. If an ``int``, get n files. if a ``float``, get float * 100 as a percentage of the corpus :type n: ``int``/``float`` :param level: sample subcorpora (``s``) or files (``f``) :type level: ``str`` :returns: a Corpus object """ import random if isinstance(n, int): if level.lower().startswith('s'): rs = random.sample(list(self.subcorpora), n) rs = sorted(rs, key=lambda x: x.name) return Corpus(Datalist(rs), print_info=False, datatype='conll') else: fps = list(self.all_files) dl = Datalist(random.sample(fps, n)) return Corpus(dl, level='d', print_info=False, datatype='conll') elif isinstance(n, float): if level.lower().startswith('s'): fps = list(self.subcorpora) n = len(fps) / n return Corpus(Datalist(random.sample(fps, n)), print_info=False, datatype='conll') else: fps = list(self.all_files) n = len(fps) / n return Corpus(Datalist(random.sample(fps, n)), level='d', print_info=False, datatype='conll') def delete_metadata(self): """ Delete metadata for corpus. May be needed if corpus is changed """ import os os.remove(os.path.join('data', '.%s.json' % self.name)) @lazyprop def metadata(self): """ Get metadata for a corpus """ from corpkit.process import get_corpus_metadata return get_corpus_metadata(self, generate=True) def parse(self, corenlppath=False, operations=False, copula_head=True, speaker_segmentation=False, memory_mb=False, multiprocess=False, split_texts=400, outname=False, metadata=False, coref=True, *args, **kwargs ): """ Parse an unparsed corpus, saving to disk :param corenlppath: Folder containing corenlp jar files (use if *corpkit* can't find it automatically) :type corenlppath: `str` :param operations: Which kinds of annotations to do :type operations: `str` :param speaker_segmentation: Add speaker name to parser output if your corpus is script-like :type speaker_segmentation: `bool` :param memory_mb: Amount of memory in MB for parser :type memory_mb: `int` :param copula_head: Make copula head in dependency parse :type copula_head: `bool` :param split_texts: Split texts longer than `n` lines for parser memory :type split_text: `int` :param multiprocess: Split parsing across n cores (for high-performance computers) :type multiprocess: `int` :param folderise: If corpus is just files, move each into own folder :type folderise: `bool` :param output_format: Save parser output as `xml`, `json`, `conll` :type output_format: `str` :param outname: Specify a name for the parsed corpus :type outname: `str` :param metadata: Use if you have XML tags at the end of lines contaning metadata :type metadata: `bool` :Example: >>> parsed = corpus.parse(speaker_segmentation=True) >>> parsed :returns: The newly created :class:`corpkit.corpus.Corpus` """ import os if outname: outpath = os.path.join('data', outname) if os.path.exists(outpath): raise ValueError('Path exists: %s' % outpath) from corpkit.make import make_corpus #from corpkit.process import determine_datatype #dtype, singlefile = determine_datatype(self.path) if self.datatype != 'plaintext': raise ValueError( 'parse method can only be used on plaintext corpora.') kwargs.pop('parse', None) kwargs.pop('tokenise', None) kwargs['output_format'] = kwargs.pop('output_format', 'conll') corp = make_corpus(unparsed_corpus_path=self.path, parse=True, tokenise=False, corenlppath=corenlppath, operations=operations, copula_head=copula_head, speaker_segmentation=speaker_segmentation, memory_mb=memory_mb, multiprocess=multiprocess, split_texts=split_texts, outname=outname, metadata=metadata, coref=coref, *args, **kwargs) if not corp: return if os.path.isfile(corp): return File(corp) else: return Corpus(corp) def tokenise(self, postag=True, lemmatise=True, *args, **kwargs): """ Tokenise a plaintext corpus, saving to disk :param nltk_data_path: Path to tokeniser if not found automatically :type nltk_data_path: `str` :Example: >>> tok = corpus.tokenise() >>> tok :returns: The newly created :class:`corpkit.corpus.Corpus` """ from corpkit.make import make_corpus #from corpkit.process import determine_datatype #dtype, singlefile = determine_datatype(self.path) if self.datatype != 'plaintext': raise ValueError( 'parse method can only be used on plaintext corpora.') kwargs.pop('parse', None) kwargs.pop('tokenise', None) c = make_corpus(self.path, parse=False, tokenise=True, postag=postag, lemmatise=lemmatise, *args, **kwargs) return Corpus(c) def concordance(self, *args, **kwargs): """ A concordance method for Tregex queries, CoreNLP dependencies, tokenised data or plaintext. :Example: >>> wv = ['want', 'need', 'feel', 'desire'] >>> corpus.concordance({L: wv, F: 'root'}) 0 01 1-01.txt.conll But , so I feel like i do that for w 1 01 1-01.txt.conll I felt a little like oh , i 2 01 1-01.txt.conll he 's a difficult man I feel like his work ethic 3 01 1-01.txt.conll So I felt like i recognized li ... ... Arguments are the same as :func:`~corpkit.corpus.Corpus.interrogate`, plus a few extra parameters: :param only_format_match: If `True`, left and right window will just be words, regardless of what is in `show` :type only_format_match: `bool` :param only_unique: Return only unique lines :type only_unique: `bool` :param maxconc: Maximum number of concordance lines :type maxconc: `int` :returns: A :class:`corpkit.interrogation.Concordance` instance, with columns showing filename, subcorpus name, speaker name, left context, match and right context. """ kwargs.pop('conc', None) kwargs.pop('conc', None) kwargs.pop('corpus', None) return self.interrogate(conc='only', *args, **kwargs) def interroplot(self, search, **kwargs): """ Interrogate, relativise, then plot, with very little customisability. A demo function. :Example: >>> corpus.interroplot(r'/NN.?/ >># NP') :param search: Search as per :func:`~corpkit.corpus.Corpus.interrogate` :type search: `dict` :param kwargs: Extra arguments to pass to :func:`~corpkit.corpus.Corpus.visualise` :type kwargs: `keyword arguments` :returns: `None` (but show a plot) """ if isinstance(search, STRINGTYPE): search = {'t': search} interro = self.interrogate(search=search, show=kwargs.pop('show', 'w')) edited = interro.edit('%', 'self', print_info=False) edited.visualise(self.name, **kwargs).show() def save(self, savename=False, **kwargs): """ Save corpus instance to file. There's not much reason to do this, really. >>> corpus.save(filename) :param savename: Name for the file :type savename: `str` :returns: `None` """ from corpkit.other import save if not savename: savename = self.name save(self, savename, savedir=kwargs.pop('savedir', 'data'), **kwargs) def make_language_model(self, name, search={'w': 'any'}, exclude=False, show=['w', '+1mw'], **kwargs): """ Make a language model for the corpus :param name: a name for the model :type name: `str` :param kwargs: keyword arguments for the interrogate() method :type kwargs: `keyword arguments` :returns: a :class:`corpkit.model.MultiModel` """ import os from corpkit.other import load from corpkit.model import MultiModel if not name.endswith('.p'): namep = name + '.p' else: namep = name # handle symbolic structures subcorpora = False if self.symbolic: subcorpora = self.symbolic if kwargs.get('subcorpora', False): subcorpora = kwargs.pop('subcorpora') kwargs.pop('subcorpora', False) jst = kwargs.pop('just_metadata') if 'just_metadata' in kwargs else self.just skp = kwargs.pop('skip_metadata') if 'skip_metadata' in kwargs else self.skip pth = os.path.join('models', namep) if os.path.isfile(pth): print('Returning saved model: %s' % pth) return load(name, loaddir='models') # set some defaults if not passed in as kwargs #langmod = not any(i.startswith('n') for i in search.keys()) res = self.interrogate(search, exclude, show, subcorpora=subcorpora, just_metadata=jst, skip_metadata=skp, **kwargs) return res.language_model(name, search=search, **kwargs) def annotate(self, conclines, annotation, dry_run=True): """ Annotate a corpus :param conclines: a Concordance or DataFrame containing matches to annotate :type annotation: Concordance/DataFrame :param annotation: a tag or field and value :type annotation: ``str``/``dict`` :param dry_run: Show the annotations to be made, but don't do them :type dry_run: ``bool`` :returns: ``None`` """ from corpkit.interrogation import Interrogation if isinstance(conclines, Interrogation): conclines = getattr(conclines, 'concordance', conclines) from corpkit.annotate import annotator annotator(conclines, annotation, dry_run=dry_run) # regenerate metadata afterward---could be a bit slow? if not dry_run: self.delete_metadata() from corpkit.process import make_dotfile make_dotfile(self) def unannotate(annotation, dry_run=True): """ Delete annotation from a corpus :param annotation: a tag or field and value :type annotation: ``str``/``dict`` :returns: ``None`` """ from corpkit.annotate import annotator annotator(self, annotation, dry_run=dry_run, deletemode=True) class Subcorpus(Corpus): """ Model a subcorpus, containing files but no subdirectories. Methods for interrogating, concordancing and configurations are the same as :class:`corpkit.corpus.Corpus`. """ def __init__(self, path, datatype, **kwa): self.path = path kwargs = {'print_info': False, 'level': 's', 'datatype': datatype} kwargs.update(kwa) self.kwargs = kwargs Corpus.__init__(self, self.path, **kwargs) def __str__(self): return self.path def __repr__(self): return "<%s instance: %s>" % (classname(self), self.name) def __getitem__(self, key): from corpkit.process import makesafe if isinstance(key, slice): # Get the start, stop, and step from the slice key = list(key.indices(len(self.files))) return Datalist(list(self.files)[slice(*key)]) #bits = [self[i] for i in range(*key.indices(len(self.files)))] #return [self[ii] for ii in range(*key.indices(len(self.files)))]) elif isinstance(key, int): return list(self.files)[key] else: try: return self.files.__getattribute__(key) except: from corpkit.process import is_number if is_number(key): return self.__getattribute__('c' + key) class File(Corpus): """ Models a corpus file for reading, interrogating, concordancing. Methods for interrogating, concordancing and configurations are the same as :class:`corpkit.corpus.Corpus`, plus methods for accessing the file contents directly as a `str`, or as a Pandas DataFrame. """ def __init__(self, path, dirname=False, datatype=False, **kwa): import os from os.path import join, isfile, isdir if dirname: self.path = join(dirname, path) else: self.path = path kwargs = {'print_info': False, 'level': 'f', 'datatype': datatype} kwargs.update(kwa) Corpus.__init__(self, self.path, **kwargs) if self.path.endswith('.conll') or self.path.endswith('.conllu'): self.datatype = 'conll' else: self.datatype = 'plaintext' def __repr__(self): return "<%s instance: %s>" % (classname(self), self.name) def __str__(self): return self.path def read(self, **kwargs): """ Read file data. If data is pickled, unpickle first :returns: `str`/unpickled data """ from corpkit.constants import OPENER with OPENER(self.path, 'r', **kwargs) as fo: return fo.read() @lazyprop def document(self): """ Return a version of the file that can be manipulated * For conll, this is a DataFrame * For tokens, this is a list of tokens * For plaintext, this is a string """ if self.datatype == 'conll': from corpkit.conll import parse_conll return parse_conll(self.path) else: from corpkit.process import saferead return saferead(self.path)[0] @lazyprop def trees(self): """ Get an OrderedDict of Tree objects in a File """ if self.datatype == 'conll': from nltk import Tree from collections import OrderedDict return OrderedDict({k: Tree.fromstring(v['parse']) \ for k, v in sorted(self.document._metadata.items())}) else: raise AttributeError('Data must be parsed to get trees.') @lazyprop def plain(self): """ Show the sentences in a File as plaintext """ text = [] if self.datatype == 'conll': doc = self.document for sent in list(doc.index.levels[0]): text.append('%d: ' % sent + ' '.join(list(doc.loc[sent]['w']))) else: self.read() return '\n'.join(text) class Datalist(list): def __init__(self, data, **kwargs): self.symbolic = kwargs.get('symbolic', False) self.just = kwargs.get('just', False) self.skip = kwargs.get('skip', False) super(Datalist, self).__init__(data) def __repr__(self): return "<%s instance: %d items>" % (classname(self), len(self)) def __getattr__(self, key): ix = next((i for i, d in enumerate(self) if d.name == key), None) if ix is not None: return self[ix] def __getitem__(self, key): from corpkit.constants import STRINGTYPE if isinstance(key, slice): return Datalist([self[i] for i in range(*key.indices(len(self)))]) elif isinstance(key, list): if isinstance(key[0], STRINGTYPE): dats = [i for i in self if i.name in key] else: dats = [x for i, x in enumerate(self) if i in key] return Datalist(dats) elif isinstance(key, int): return super(Datalist, self).__getitem__(key) elif isinstance(key, STRINGTYPE): ix = next((i for i, x in enumerate(self) if x.name == key), None) if ix is not None: return super(Datalist, self).__getitem__(ix) def __delitem__(self, key): from corpkit.constants import STRINGTYPE if isinstance(key, STRINGTYPE): key = next((i for i, d in enumerate(self) if d.name == key), None) if key is None: return super(Datalist, self).__delitem__(key) def interrogate(self, *args, **kwargs): """ Interrogate the corpus using :func:`~corpkit.corpus.Corpus.interrogate` """ kwargs['just'] = self.just kwargs['skip'] = self.skip kwargs['subcorpora'] = self.symbolic from corpkit.interrogator import interrogator interro = interrogator(self, *args, **kwargs) from corpkit.interrogation import Interrodict if isinstance(interro, Interrodict): interro = interro.multiindex(indexnames=['corpus', 'subcorpus']) return interro def concordance(self, *args, **kwargs): """ Concordance the corpus using :func:`~corpkit.corpus.Corpus.concordance` """ kwargs['just'] = self.just kwargs['skip'] = self.skip kwargs['subcorpora'] = self.symbolic from corpkit.interrogator import interrogator return interrogator(self, conc='only', *args, **kwargs) def configurations(self, search, **kwargs): """ Get a configuration using :func:`~corpkit.corpus.Corpus.configurations` """ kwargs['just'] = self.just kwargs['skip'] = self.skip kwargs['subcorpora'] = self.symbolic from corpkit.configurations import configurations return configurations(self, search, **kwargs) class Corpora(Datalist): """ Models a collection of Corpus objects. Methods are available for interrogating and plotting the entire collection. This is the highest level of abstraction available. :param data: Corpora to model. A `str` is interpreted as a path containing corpora. A `list` can be a list of corpus paths or :class:`corpkit.corpus.Corpus` objects. ) :type data: `str`/`list` """ def __init__(self, data=False, **kwargs): self.name = None # if no arg, load every corpus in data dir if not data: data = 'data' # handle a folder containing corpora if isinstance(data, STRINGTYPE): import os from os.path import join, isfile, isdir if not os.path.isdir(data): if not os.path.isdir(os.path.join('data', data)): raise ValueError('Corpora(str) needs to point to a directory.') else: data = os.path.join('data', data) self.name = os.path.basename(data) data = sorted([join(data, d) for d in os.listdir(data) if isdir(join(data, d)) and not d.startswith('.')]) # otherwise, make a list of Corpus objects if not self.name: self.name = ','.join([os.path.basename(str(i)) for i in data]) for index, i in enumerate(data): if isinstance(i, STRINGTYPE): data[index] = Corpus(i, **kwargs) # now turn it into a Datalist Datalist.__init__(self, data, **kwargs) def __repr__(self): return "<%s instance: %d items>" % (classname(self), len(self)) def parse(self, **kwargs): """ Parse multiple corpora :param kwargs: Arguments to pass to the :func:`~corpkit.corpus.Corpus.parse` method. :returns: :class:`corpkit.corpus.Corpora` """ from corpkit.corpus import Corpora objs = [] for v in list(self): objs.append(v.parse(**kwargs)) return Corpora(objs) ### the below not working yet @lazyprop def features(self): """ Generate features attribute for all corpora """ from corpkit.interrogation import Interrodict feats = [] for corpus in self: feats.append(corpus.features) feats = Interrodict(feats) return feats.multiindex() @lazyprop def postags(self): """ Generate postags attribute for all corpora """ for corpus in self: corpus.postags @lazyprop def wordclasses(self): """ Generate wordclasses attribute for all corpora """ for corpus in self: corpus.wordclasses @lazyprop def lexicon(self): """ Generate lexicon attribute for all corpora """ for corpus in self: corpus.lexicon ================================================ FILE: corpkit/cql.py ================================================ """ Translating between CQL and corpkit's native """ def remake_special(querybit, customs=False, return_list=False, **kwargs): """ Expand references to wordlists in queries """ import re from corpkit.dictionaries import roles, wordlists, processes from corpkit.other import as_regex def convert(d): """convert dict to named tuple""" from collections import namedtuple return namedtuple('outputnames', list(d.keys()))(**d) if customs: customs = convert(customs) mapped = {'ROLES': roles, 'WORDLISTS': wordlists, 'PROCESSES': processes, 'LIST': customs, 'CUSTOM': customs} if not any(x in querybit.upper() for x in mapped.keys()): return querybit thereg = r'(?i)(' + '|'.join(mapped.keys()) + r'):([A-Z0-9]+)' splitup = re.split(thereg, querybit) fixed = [] skipme = [] for i, bit in enumerate(splitup): if i in skipme: continue if mapped.get(bit.upper()): att = getattr(mapped[bit.upper()], splitup[i+1].lower()) if hasattr(att, 'words') and att.words: att = att.words if return_list: return att att = att.as_regex(**kwargs) fixed.append(att) skipme.append(i+1) else: fixed.append(bit) return ''.join(fixed) def parse_quant(quant): """ Normalise quanitifers """ if quant.startswith('}{'): quant = quant.strip('}{ ') if ',' in quant: return quant.replace(',', ':') else: return quant return quant def process_piece(piece, op='=', quant=False, **kwargs): """ Make a single search obj and value """ from corpkit.process import make_name_to_query_dict if op not in piece: return False, False translator = make_name_to_query_dict() target, criteria = piece.split(op, 1) criteria = criteria.strip('"') criteria = remake_special(criteria, **kwargs) if '-' in target: obj, show = target.split('-', 1) show = show.lower() if show == 'deprel': show = 'Function' elif show == 'pos': show = 'POS' form = '{} {}'.format(obj.title(), show.lower()) else: form = target.title() if form == 'Deprel': form = 'Function' elif form == 'Pos': form = 'POS' return translator.get(form), criteria def tokenise_cql(query): """ Take a cql query and return a list of tuples which is token, quantifer """ quantstarts = ['+', '{', ',', '}', '?', '*'] tokens = '' count = 0 for i, t in enumerate(query): if t == '[': count += 1 if t == ']': count -= 1 if count != 0: tokens += t else: if count == 0 and t == ']': try: if not query[i+1].isspace(): tokens += t tokens += '\n' else: tokens += t except IndexError: pass # separate on space between tokens elif t.isspace(): tokens += '\n' # if part of quantifier if t in quantstarts or t.isdigit(): tokens += t tokens = tokens.split('\n') skips = [] out = [] for i, t in enumerate(tokens): if i in skips: continue # get next token try: nextt = tokens[i+1] except IndexError: # if it's the last token, if not quantifier, add it if not t: continue if t[0] not in quantstarts: out.append([t, False]) continue if any(nextt.startswith(x) for x in quantstarts): out.append([t, nextt]) skips.append(i+1) else: out.append([t, False]) return out def to_corpkit(cstring, **kwargs): """ Turn CQL into corpkit (two dict) format """ sdict = {} edict = {} cstring = tokenise_cql(cstring) for i, (c, q) in enumerate(cstring): if q: i = parse_quant(q) c = c.strip('[] ') clist = c.split(' & ') for piece in clist: targ, crit = process_piece(piece, op='!=', quant=q, **kwargs) if targ is False and crit is False: targ, crit = process_piece(piece, op='=', quant=q, **kwargs) # assume it's just a word without operator if targ is False and crit is False: if i > 0 or isinstance(i, str): b = '+{}w'.format(i) sdict[b] = piece.strip('"') else: sdict['w'] = piece.strip('"') else: if i > 0 or isinstance(i, str): targ = '+%s%s' % (str(i), targ) sdict[targ] = crit else: if i > 0 or isinstance(i, str): targ = '+{}{}'.format(i, targ) edict[targ] = crit return sdict, edict def to_cql(dquery, exclude=False, **kwargs): """ Turn dictionary query into cql format """ qlist = [] from corpkit.constants import transobjs, transshow if exclude: operator = '!=' else: operator = '=' for k, v in dquery.items(): obj, show = transobjs.get(k[0]), transshow.get(k[1]) if obj == 'Match': form_bit = '{}{}'.format(show.lower(), operator) else: form_bit = '{}-{}{}'.format(obj.lower(), show.lower(), operator) v = getattr(v, 'pattern', v) if isinstance(v, list): v = as_regex(v, **kwargs) form_bit += '"{}"'.format(v) qlist.append(form_bit) return '[' + ' & '.join(qlist) + ']' ================================================ FILE: corpkit/dictionaries/__init__.py ================================================ __all__ = ["wordlists", "roles", "bnc", "processes", "verbs", "uktous", "tagtoclass", "queries", "mergetags"] from corpkit.dictionaries.bnc import _get_bnc from corpkit.dictionaries.process_types import processes from corpkit.dictionaries.process_types import verbs from corpkit.dictionaries.roles import roles from corpkit.dictionaries.wordlists import wordlists from corpkit.dictionaries.queries import queries from corpkit.dictionaries.word_transforms import taglemma from corpkit.dictionaries.word_transforms import mergetags from corpkit.dictionaries.word_transforms import usa_convert roles = roles wordlists = wordlists processes = processes bnc = _get_bnc queries = queries tagtoclass = taglemma uktous = usa_convert mergetags = mergetags verbs = verbs ================================================ FILE: corpkit/dictionaries/bnc.p ================================================ ccopy_reg _reconstructor p0 (ccollections Counter p1 c__builtin__ dict p2 (dp3 Vsecondly p4 I29 sVwritings p5 I11 sVpardon p6 I17 sVfig. p7 I59 sVfig* p8 I16 sVyellow p9 I41 sVnato p10 I15 sVfour p11 I461 sVnottingham p12 I21 sVprotest p13 I28 sVwoods p14 I15 sVasian p15 I19 sVhanging p16 I23 sVconsists p17 I26 sVcaptain p18 I54 sVaggression p19 I13 sVlooking p20 I264 sVcalculate p21 I10 sVeligible p22 I13 sVelectricity p23 I38 sVdisability p24 I15 sVpensions p25 I19 sVpresents p26 I16 sVtrousers p27 I23 sVlord p28 I20 sVsorry p29 I114 sVpact p30 I11 sVrescue p31 I17 sVco-operation p32 I35 sVdynamic p33 I16 sVregional p34 I78 sVrailways p35 I19 sVreforms p36 I28 sVaffect p37 I48 sVbringing p38 I49 sVvast p39 I47 sVlook p40 I110 sVno-one* p41 I21 sVprize p42 I31 sVwooden p43 I35 sVcompanies p44 I178 sVwednesday p45 I44 sV000 p46 I15 sVherbert p47 I12 sVcoventry p48 I12 sVsuccession p49 I19 sVenhance p50 I14 sVcommented p51 I20 sVclothes p52 I73 sVfavoured p53 I13 sVher* p54 I1085 sVcharter p55 I22 sVexpanded p56 I14 sVforce p57 I22 sVspecially p58 I20 sVtired p59 I40 sVmiller p60 I20 sVjapanese p61 I11 sVpulse p62 I11 sVme* p63 I23 sVelegant p64 I18 sVsecond p65 I56 sVe. p66 I18 sVimplemented p67 I17 sVcolourful p68 I11 sVeven p69 I15 sVerrors p70 I21 sVpace p71 I31 sVhate p72 I27 sVcooking p73 I11 sVcontributed p74 I23 sVfingers p75 I58 sVasia p76 I30 sVspokesman p77 I40 sVlights p78 I46 sVdr. p79 I12 sVnew p80 I1145 sVtips p81 I11 sVincreasing p82 I26 sVever p83 I259 sVspecialist p84 I37 sVdeemed p85 I14 sVhero p86 I23 sVreporter p87 I12 sVseventh p88 I15 sVmen p89 I389 sVhere p90 I699 sVatoms p91 I11 sVreported p92 I114 sVchina p93 I46 sVpossibility p94 I71 sVhers p95 I25 sV100 p96 I69 sVinterpret p97 I13 sVdry p98 I12 sVkids p99 I44 sVtapes p100 I14 sVmitchell p101 I10 sVelaborate p102 I13 sVclimbed p103 I24 sVin~* p104 I20 sVreports p105 I35 sVcontroversy p106 I19 sVcredit p107 I71 sVpermit p108 I14 sVmilitary p109 I108 sVsuitable p110 I61 sVdecision-making p111 I14 sVcriticism p112 I48 sVgolden p113 I39 sVfantastic p114 I12 sVdivide p115 I12 sVclassification p116 I17 sVmobility p117 I15 sVexplained p118 I71 sVreagan p119 I11 sVreplace p120 I34 sVbrought p121 I204 sVunix p122 I42 sVninety p123 I42 sVmoral p124 I52 sVguests p125 I34 sVcounts p126 I12 sVunit p127 I109 sVopponents p128 I16 sVdna p129 I33 sVspoke p130 I70 sVarmy p131 I114 sVremainder p132 I17 sV42 p133 I14 sVarms p134 I110 sVinevitable p135 I28 sVedward p136 I69 sVmusic p137 I150 sVtherefore p138 I232 sVrecommend p139 I18 sVstrike p140 I18 sVsurvive p141 I35 sVtype p142 I170 sVuntil p143 I167 sVfemales p144 I20 sVsupporters p145 I37 sVholy p146 I30 sVrelax p147 I18 sVsuccessful p148 I108 sVbrings p149 I32 sVwars p150 I19 sVhurt p151 I38 sVwarn p152 I11 sVglass p153 I95 sVberlin p154 I27 sVwarm p155 I64 sVadult p156 I45 sVteaching p157 I33 sV90 p158 I23 sVhole p159 I46 sVhold p160 I30 sVcircumstances p161 I104 sVvat/vat p162 I24 sVlocked p163 I26 sVroom p164 I309 sVrights p165 I130 sVpursue p166 I20 sVblade p167 I11 sVroof p168 I41 sVmovies p169 I10 sVtemperatures p170 I14 sVconcepts p171 I27 sVexceptions p172 I15 sVrevenues p173 I12 sVroot p174 I20 sVexample p175 I125 sVtransition p176 I23 sVgive p177 I451 sVhousehold p178 I39 sVorganized p179 I20 sVdevelopments p180 I51 sVhoney p181 I11 sVcurrency p182 I35 sVfoods p183 I21 sVcaution p184 I13 sVwant p185 I572 sVabsolute p186 I35 sVprovincial p187 I16 sVautonomy p188 I18 sVtravel p189 I36 sVdamage p190 I13 sVmachine p191 I84 sVhow p192 I1016 sVhot p193 I91 sVsignificance p194 I47 sVanswer p195 I52 sVgordon p196 I26 sVminority p197 I34 sVbeauty p198 I42 sVreplacing p199 I15 sVinvitation p200 I19 sVloyalty p201 I17 sVdiagram p202 I13 sVwrong p203 I149 sVcoup p204 I17 sVcuriosity p205 I12 sVpresident p206 I164 sVtypes p207 I89 sVpurchase p208 I14 sVattempt p209 I26 sVeffective p210 I99 sVgrant p211 I13 sVheadquarters p212 I28 sVcapitalism p213 I19 sVcigarettes p214 I13 sV18th p215 I10 sVfrequent p216 I24 sVgoodbye p217 I10 sVkeeps p218 I26 sVdemocratic p219 I59 sVwing p220 I28 sVwind p221 I71 sVwine p222 I63 sVoperations p223 I60 sVrestriction p224 I12 sVbelong p225 I21 sVfeedback p226 I13 sVdeck p227 I14 sVwelcomed p228 I23 sVvary p229 I30 sVmurray p230 I12 sVjournals p231 I10 sVbefore p232 I143 sVposition p233 I228 sVfit p234 I30 sVpersonal p235 I176 sVscreaming p236 I12 sVfix p237 I12 sVstriking p238 I17 sVauditors p239 I12 sVcrew p240 I30 sVbetter p241 I143 sVdifferently p242 I15 sVwales p243 I93 sVhidden p244 I13 sVeasier p245 I12 sVovercome p246 I26 sVdec. p247 I28 sVcombination p248 I44 sVweakness p249 I17 sVunemployed p250 I28 sVgrand p251 I46 sVschool p252 I375 sVmodification p253 I10 sVtherapy p254 I19 sVeffects p255 I108 sVschools p256 I154 sVsixteen p257 I27 sVsilver p258 I39 sVstructural p259 I27 sVrepresents p260 I33 sVgrammar p261 I24 sVmeat p262 I36 sVdebut p263 I16 sVarrested p264 I35 sVlucy p265 I27 sVcrops p266 I16 sVleaned p267 I23 sVarrow p268 I10 sVwent p269 I483 sVmeal p270 I43 sVbone p271 I24 sVluck p272 I32 sVfinancial p273 I165 sVseries p274 I144 sVallan p275 I10 sVcommons p276 I33 sVvote p277 I23 sVtaught p278 I38 sVtrading p279 I12 sVfortnight p280 I14 sVforgot p281 I16 sVsubstantially p282 I17 sVcathedral p283 I24 sVdawn p284 I15 sVcollector p285 I11 sVring p286 I29 sVborne p287 I11 sVmerchants p288 I10 sVdrove p289 I37 sVrestricted p290 I21 sVtales p291 I13 sVcrucial p292 I45 sVtomorrow p293 I93 sVparticles p294 I17 sVencourage p295 I51 sVadapt p296 I10 sVreader p297 I41 sVsurprise p298 I48 sVaccessible p299 I16 sVengineer p300 I22 sVfoundation p301 I37 sVturning p302 I58 sVlinear p303 I13 sVassured p304 I18 sVthreatened p305 I37 sVgiven p306 I31 sVmanagerial p307 I13 sVnecessarily p308 I57 sVstruggle p309 I37 sVelsewhere p310 I57 sVchecked p311 I25 sVestimate p312 I17 sVknit p313 I11 sVswimming p314 I18 sVenormous p315 I42 sVate p316 I18 sVshelves p317 I12 sVstarts p318 I39 sVmessages p319 I20 sVheading p320 I10 sVmusicians p321 I12 sV1970s p322 I34 sVkingdom p323 I22 sVarrived p324 I88 sVr. p325 I19 sVloud p326 I16 sVstewart p327 I21 sVnigel p328 I34 sVfeatures p329 I81 sVgrade p330 I19 sVchannels p331 I18 sVwash p332 I17 sVfeatured p333 I13 sVfloors p334 I12 sVclarity p335 I11 sVfeb. p336 I27 sVbrussels p337 I15 sVservice p338 I300 sVsimilarly p339 I45 sVengagement p340 I12 sVhistorian p341 I14 sVtwisted p342 I11 sVneeded p343 I165 sVmaster p344 I62 sVlisted p345 I25 sVgilbert p346 I11 sVlegs p347 I65 sVbitter p348 I24 sVranging p349 I15 sVlisten p350 I57 sVrewards p351 I11 sVcollapse p352 I21 sVgeneva p353 I10 sVvillages p354 I28 sVfrowned p355 I13 sVwisdom p356 I15 sVsomewhat p357 I46 sVhelen p358 I27 sVyours p359 I42 sVpeculiar p360 I14 sVpositively p361 I13 sVbegins p362 I33 sVdistance p363 I66 sVanxiety p364 I27 sVshowed p365 I107 sVbits p366 I34 sVdatabase p367 I34 sVtree p368 I64 sVlikely p369 I227 sVnations p370 I41 sVpreparation p371 I33 sVmatter p372 I38 sVpersuade p373 I24 sVsilly p374 I28 sVwilliams p375 I33 sVfeeling p376 I58 sVacquisition p377 I26 sVsees p378 I35 sVwillingness p379 I12 sVmodern p380 I131 sVmind p381 I72 sVspectrum p382 I16 sVseed p383 I16 sVseen p384 I376 sVseem p385 I170 sVobviously p386 I110 sVseek p387 I54 sVtells p388 I37 sValive p389 I43 sVdozen p390 I27 sVaffairs p391 I73 sVabroad p392 I39 sVperson p393 I250 sVclimate p394 I28 sVresponsible p395 I94 sVrecommended p396 I32 sVcausing p397 I33 sVabsorbed p398 I15 sVmachines p399 I48 sVdoors p400 I48 sVltd. p401 I13 sVlion p402 I12 sVshall p403 I202 sVtoxic p404 I12 sVobject p405 I10 sVvictoria p406 I26 sVkelly p407 I21 sVregular p408 I75 sVmouth p409 I93 sVcornwall p410 I13 sVletter p411 I136 sVorganization p412 I63 sVmarie p413 I18 sVmorality p414 I12 sVbradford p415 I12 sVsinger p416 I13 sVepisode p417 I13 sVobservation p418 I29 sVprofessor p419 I52 sVcamp p420 I31 sVm p421 I13 sVdog p422 I80 sVcompetitors p423 I16 sVdefinitely p424 I32 sVprinciple p425 I82 sVnineteenth p426 I33 sVlancashire p427 I17 sVcame p428 I472 sVsaying p429 I180 sVbeaten p430 I19 sVbomb p431 I27 sVhunger p432 I11 sVinsects p433 I14 sVorchestra p434 I15 sVmeetings p435 I54 sVretire p436 I11 sVzealand nop- p437 I26 sVdevised p438 I13 sVending p439 I14 sVattempts p440 I47 sVabilities p441 I13 sVliberty p442 I14 sVparticipate p443 I17 sVhungary p444 I15 sVtempted p445 I12 sVlessons p446 I23 sVjudges p447 I25 sVbusy p448 I50 sVlayout p449 I12 sVlouise p450 I15 sVmenu p451 I16 sVweekends p452 I10 sVdebts p453 I19 sVsugar p454 I36 sVtheme p455 I39 sVtouched p456 I30 sVrich p457 I67 sVrice p458 I16 sVwearing p459 I50 sVplate p460 I41 sVexports p461 I19 sVabove p462 I27 sVprofessionals p463 I23 sVstop p464 I20 sVpsychiatric p465 I11 sVcoast p466 I46 sVpocket p467 I35 sVchristopher p468 I23 sVspirit p469 I65 sValtogether p470 I32 sVreviewed p471 I15 sVnet p472 I25 sVcomply p473 I14 sVsocieties p474 I44 sVearl p475 I23 sVearn p476 I20 sVbar p477 I77 sVfields p478 I58 sVpatch p479 I16 sVbag p480 I53 sVbad p481 I153 sVsoftly p482 I25 sVarchitecture p483 I28 sVrival p484 I14 sVrelease p485 I18 sVfertility p486 I12 sVears p487 I30 sVrespond p488 I35 sVethical p489 I11 sVblew p490 I13 sVdisaster p491 I28 sVfair p492 I84 sVsensitivity p493 I16 sVtesting p494 I14 sVzones p495 I12 sVdecided p496 I151 sVresult p497 I34 sVfail p498 I33 sVresigned p499 I20 sVbest p500 I81 sVjuliet p501 I12 sVpete p502 I13 sV01 p503 I11 sVambitions p504 I10 sVlots p505 I45 sVrings p506 I12 sVartificial p507 I20 sVcontinent p508 I16 sVpressures p509 I27 sVscore p510 I14 sVconceptual p511 I10 sVira p512 I18 sVoccupational p513 I17 sVglasgow p514 I42 sVpreserve p515 I15 sVwage p516 I31 sVnever p517 I559 sVextend p518 I31 sVnature p519 I181 sVrolled p520 I20 sVignorance p521 I11 sVdrew p522 I46 sVextent p523 I100 sVcarbon p524 I25 sVpicking p525 I21 sV10% p526 I13 sVpity p527 I17 sVaccident p528 I64 sVmet p529 I138 sVcountry p530 I319 sVconclusions p531 I24 sVheating p532 I20 sVdemanded p533 I37 sVlot* p534 I246 sVestates p535 I20 sVplanned p536 I14 sVlogic p537 I23 sVdistinction p538 I41 sVcontribution p539 I54 sVargue p540 I43 sVadapted p541 I14 sVasked p542 I334 sVpresumably p543 I33 sVappeared p544 I107 sVheight p545 I38 sVactive p546 I73 sVinitiative p547 I36 sVpregnancy p548 I16 sVloaded p549 I11 sV250 p550 I12 sVorganisational p551 I10 sVproceeded p552 I11 sVangel p553 I14 sVasks p554 I20 sVeager p555 I14 sVunion p556 I166 sVremained p557 I91 sVcriticised p558 I13 sVtiny p559 I55 sVhamilton p560 I15 sVcommission p561 I102 sVmuch p562 I390 sVinterest p563 I272 sVbasic p564 I109 sVprivilege p565 I16 sVparents p566 I163 sVbasin p567 I12 sVlovely p568 I63 sVpreston p569 I13 sVthrew p570 I31 sVlife p571 I566 sVdeeper p572 I12 sVeastern p573 I59 sVquantities p574 I19 sVsunshine p575 I13 sVworker p576 I36 sVlocations p577 I15 sVdave p578 I27 sVsubstance p579 I22 sVchild p580 I244 sVworked p581 I127 sVsad p582 I34 sVcarriage p583 I20 sVcommerce p584 I16 sVexception p585 I29 sVtank p586 I33 sVpresidency p587 I12 sVadministrative p588 I35 sVorganisers p589 I11 sVeconomies p590 I19 sVremaining p591 I12 sVemploy p592 I17 sVcalcium p593 I13 sVnear p594 I16 sVneat p595 I17 sVcats p596 I16 sVbalance p597 I81 sVstudy p598 I30 sVremembering p599 I15 sVseven p600 I173 sVeconomics p601 I29 sVmetropolitan p602 I17 sVplayed p603 I112 sVrepairs p604 I11 sVis p605 I9982 sVit p606 I14 sVdefeated p607 I15 sViv p608 I28 sVii p609 I88 sVplayer p610 I57 sVeighteen p611 I30 sVlate p612 I41 sVin p613 I13 sVmarch p614 I11 sVignoring p615 I12 sVmouse p616 I18 sVdisappear p617 I14 sVif p618 I2369 sVgrown p619 I43 sVdamaged p620 I20 sVbottles p621 I18 sVthings p622 I424 sVmake p623 I791 sVdemands p624 I51 sVpotentially p625 I24 sVdamages p626 I22 sVbabies p627 I25 sVgrows p628 I13 sVeuropean p629 I195 sVfairly p630 I67 sVsmoke p631 I12 sVgovernors p632 I17 sVqualifications p633 I23 sVworkforce p634 I15 sVkit p635 I18 sVdelight p636 I18 sVrenaissance p637 I11 sVownership p638 I31 sVsupper p639 I15 sVopportunity p640 I103 sVtune p641 I14 sVkid p642 I16 sVbutter p643 I21 sVprograms p644 I18 sVsettled p645 I39 sVvice-president p646 I11 sVhon. p647 I105 sVechoed p648 I10 sVacademic p649 I47 sVmaterials p650 I68 sVqualities p651 I25 sVconflict p652 I56 sVclaims p653 I37 sVcorporate p654 I46 sVinvestments p655 I15 sVleft p656 I34 sVopinions p657 I18 sVprotocol p658 I10 sVconsciousness p659 I26 sVreckoned p660 I10 sVsporting p661 I11 sVunfair p662 I19 sVassigned p663 I12 sVbirmingham p664 I34 sVhuman p665 I13 sVfacts p666 I53 sVyep p667 I13 sVyes p668 I606 sVyet p669 I337 sVprevious p670 I123 sVbuyers p671 I17 sVbelfast p672 I36 sVcampaign p673 I91 sVcandidate p674 I40 sVphillips p675 I12 sVease p676 I11 sVhad p677 I4452 sVemphasis p678 I55 sVmagistrates p679 I21 sVmacdonald p680 I10 sVsquad p681 I25 sVcollections p682 I18 sVinnocent p683 I21 sVprison p684 I64 sVeast p685 I128 sVhat p686 I31 sVsurvival p687 I31 sVposed p688 I13 sVpossible p689 I342 sVpossibly p690 I73 sVbirth p691 I52 sVwanting p692 I24 sVshadow p693 I30 sVunique p694 I43 sVdreams p695 I25 sVoccurring p696 I13 sVdesire p697 I51 sVpsychological p698 I28 sVvisible p699 I29 sVperforming p700 I13 sVmanual p701 I12 sValice p702 I25 sVremind p703 I17 sVpavement p704 I14 sVsteps p705 I67 sVbeneficial p706 I14 sVright p707 I169 sVold p708 I544 sVcrowd p709 I43 sVpeople p710 I1241 sVcrown p711 I51 sVsomehow p712 I45 sVelderly p713 I50 sVconsultants p714 I16 sVdear p715 I16 sValtered p716 I16 sVenemies p717 I15 sVchorus p718 I10 sVsociology p719 I20 sVtrace p720 I11 sVfor p721 I13 sVbottom p722 I18 sVopposite p723 I12 sVfox p724 I14 sVcreative p725 I25 sVarguing p726 I18 sVcontinue p727 I118 sVlandscape p728 I33 sVknew p729 I261 sVmeanings p730 I15 sVbold p731 I12 sVburn p732 I12 sVpopular p733 I106 sVconfrontation p734 I10 sVdefensive p735 I13 sVlosing p736 I35 sVmanufacturing p737 I42 sVsuper p738 I16 sVfruit p739 I41 sVdollars p740 I17 sVcitizens p741 I33 sVmagazine p742 I47 sVdespair p743 I13 sVafternoon p744 I84 sVcommit p745 I14 sVlacked p746 I12 sVslightly p747 I89 sVautomatically p748 I28 sVfunctions p749 I51 sVnerve p750 I13 sVraised p751 I95 sVm. p752 I26 sVstatements p753 I41 sVformerly p754 I20 sVfacility p755 I22 sVmaxwell p756 I13 sVmarshall p757 I15 sVintellectual p758 I25 sVson p759 I131 sVdown p760 I98 sVrespectable p761 I12 sVbeings p762 I18 sVmagazines p763 I17 sVraises p764 I14 sVdoctrine p765 I17 sVcardiff p766 I18 sV1990s p767 I10 sVreducing p768 I29 sVdefendants p769 I16 sVmethods p770 I89 sVcommunists p771 I12 sVamerica p772 I103 sVfabric p773 I21 sVsupport p774 I97 sVsolicitors p775 I26 sVwidth p776 I12 sVjoseph p777 I30 sVeditor p778 I39 sVfraction p779 I15 sVspring p780 I55 sVjane p781 I42 sVcall p782 I60 sVhappy p783 I117 sVflying p784 I19 sVoffering p785 I42 sVoffer p786 I60 sVforming p787 I18 sVlancaster p788 I12 sVanalyse p789 I13 sVlanding p790 I18 sVford p791 I22 sVtiming p792 I17 sVfailure p793 I78 sVyo p794 I11 sVapproval p795 I39 sVpowder p796 I13 sVnov. p797 I29 sVprotestant p798 I11 sVurgent p799 I22 sVinside p800 I12 sVattached p801 I36 sVlips p802 I50 sVdevices p803 I22 sVtell p804 I307 sVjan. p805 I31 sVgould p806 I12 sVjan* p807 I14 sVpanels p808 I12 sVpropaganda p809 I12 sVpassenger p810 I20 sVadopt p811 I25 sVproved p812 I69 sVclassic p813 I26 sVsteady p814 I25 sVtournament p815 I16 sVcovers p816 I19 sVdrive p817 I44 sVpredominantly p818 I12 sVexist p819 I54 sVaccounting p820 I12 sVship p821 I43 sVdealer p822 I18 sVnegotiations p823 I37 sVmerseyside p824 I11 sVprotested p825 I12 sVeventual p826 I10 sVfloor p827 I115 sVpopulations p828 I15 sVgenerally p829 I116 sVactor p830 I20 sVflood p831 I12 sVrole p832 I182 sVambitious p833 I15 sVdigital p834 I20 sVdevelopers p835 I12 sVsmell p836 I12 sVroll p837 I15 sV's p838 I3490 sVmodels p839 I53 sVdies p840 I10 sVfelt p841 I278 sVdiet p842 I41 sVfell p843 I101 sVinvested p844 I13 sVand/or p845 I19 sVprofessional p846 I105 sVvariable p847 I13 sV'm p848 I658 sVweekend p849 I63 sVdied p850 I140 sVbillion p851 I48 sVhappening p852 I40 sVassume p853 I41 sVdaily p854 I14 sVjacket p855 I30 sVmummy p856 I26 sVtime p857 I1542 sVpush p858 I30 sVprofits p859 I58 sVshop p860 I102 sVmanaged p861 I75 sVchain p862 I37 sVwhoever p863 I15 sVeldest p864 I10 sVai~* p865 I36 sVlaura p866 I25 sVmild p867 I16 sVmile p868 I32 sVskin p869 I69 sVchair p870 I77 sVinvolved p871 I96 sV93 p872 I13 sVballet p873 I12 sVsuicide p874 I18 sVdepend p875 I35 sVtechnique p876 I46 sVfather p877 I239 sV0 p878 I26 sVfinally p879 I130 sVunpleasant p880 I13 sVmarks p881 I28 sVsovereignty p882 I12 sVretreat p883 I10 sVshoot p884 I15 sVstring p885 I27 sVcheap p886 I39 sVtends p887 I24 sVintake p888 I12 sVchoice p889 I120 sVadvised p890 I25 sVword p891 I193 sVexact p892 I22 sVfragments p893 I14 sVminute p894 I82 sVwore p895 I30 sVdid p896 I1434 sVdie p897 I53 sVproposals p898 I68 sVleave p899 I22 sVsolved p900 I12 sVsettle p901 I25 sVminimal p902 I14 sVteam p903 I186 sVspeculation p904 I17 sVround p905 I28 sVunaware p906 I12 sVshoe p907 I11 sVprevent p908 I68 sVspiritual p909 I23 sVtalked p910 I44 sVoccurrence p911 I11 sVfindings p912 I33 sVsigh p913 I11 sVsign p914 I25 sVuk p915 I173 sVrun p916 I47 sVtargets p917 I26 sVadds p918 I22 sVtroops p919 I48 sVhewlett-packard p920 I10 sVcelebrated p921 I10 sVfavour p922 I24 sVcurrent p923 I133 sVremembered p924 I54 sVsuspect p925 I20 sVinternational p926 I221 sVfalling p927 I44 sVground p928 I154 sVboost p929 I10 sVfilled p930 I52 sVera p931 I21 sVprocessing p932 I30 sVjury p933 I23 sVbloke p934 I13 sVhonour p935 I22 sVfuneral p936 I21 sVhenry p937 I74 sVfrench p938 I35 sVunderstanding p939 I19 sVyards p940 I37 sVaddress p941 I20 sValone p942 I54 sValong p943 I51 sVwait p944 I84 sVbox p945 I88 sVpassengers p946 I26 sVcanadian p947 I14 sVbrilliant p948 I35 sVshift p949 I15 sVstudied p950 I39 sVwherever p951 I23 sVcommonly p952 I26 sVbow p953 I10 sVexploitation p954 I13 sVsuggestion p955 I31 sV~na* p956 I150 sVbob p957 I40 sVstudies p958 I136 sVgenuinely p959 I14 sVteenage p960 I11 sVtasks p961 I37 sVlove p962 I86 sVmerely p963 I76 sVprefer p964 I37 sVlogical p965 I23 sVbloody p966 I20 sVreferee p967 I11 sVflexibility p968 I20 sVcarol p969 I10 sVhotels p970 I24 sVsympathetic p971 I15 sVwealth p972 I38 sVworking p973 I38 sVsake p974 I32 sVpositive p975 I83 sVangry p976 I42 sVvisit p977 I50 sVtightly p978 I17 sVfrance p979 I123 sVexplicitly p980 I13 sVopposed p981 I19 sVwondering p982 I25 sVfilms p983 I35 sVscope p984 I34 sVtheoretical p985 I30 sVwicked p986 I11 sVintroducing p987 I18 sVsharing p988 I21 sVafford p989 I45 sVacceptable p990 I36 sVapparent p991 I53 sVooh p992 I46 sVvalidity p993 I14 sVvisual p994 I34 sVappendix p995 I18 sVeverywhere p996 I32 sVvirtue p997 I19 sVeffort p998 I78 sVbehalf p999 I13 sVfly p1000 I29 sVinvolve p1001 I42 sVvalued p1002 I13 sV10,000 p1003 I12 sVavoiding p1004 I14 sVoriginally p1005 I45 sVpretend p1006 I12 sVabortion p1007 I12 sVsoul p1008 I30 sVbelieves p1009 I40 sVreviews p1010 I10 sVsoup p1011 I14 sVprinting p1012 I13 sVvalues p1013 I75 sVroyal p1014 I147 sVfollowing p1015 I12 sVmaking p1016 I14 sVarrive p1017 I29 sVadmired p1018 I11 sVcrazy p1019 I18 sVkenneth p1020 I16 sVpredict p1021 I14 sVconfused p1022 I19 sVagent p1023 I43 sVsample p1024 I44 sVcouncil p1025 I313 sVallowed p1026 I143 sVdennis p1027 I15 sVevidently p1028 I15 sVpink p1029 I30 sVmonitoring p1030 I11 sVwinter p1031 I71 sVdivided p1032 I40 sVpine p1033 I10 sVchemical p1034 I11 sVtill p1035 I24 sVsunday p1036 I93 sVs. p1037 I19 sVpure p1038 I34 sVpint p1039 I12 sVedinburgh p1040 I60 sVstaying p1041 I28 sVdesigner p1042 I19 sVcoming p1043 I11 sVcritics p1044 I27 sVmax p1045 I13 sVspot p1046 I41 sVapplications p1047 I63 sVmembership p1048 I53 sVexplored p1049 I12 sVmad p1050 I31 sVdate p1051 I158 sVsuch p1052 I321 sVrevealed p1053 I53 sVgrow p1054 I55 sVman p1055 I614 sVstress p1056 I10 sVnatural p1057 I142 sVvarieties p1058 I15 sVsectors p1059 I23 sVconscious p1060 I31 sVmaybe p1061 I105 sVapplicant p1062 I12 sVborrowing p1063 I10 sVst p1064 I13 sVtale p1065 I21 sVenquiry p1066 I18 sVswitch p1067 I16 sVso p1068 I17 sVdeposit p1069 I17 sVafrican p1070 I43 sVbasket p1071 I13 sVdefinitions p1072 I13 sVpulled p1073 I70 sVgesture p1074 I20 sVshield p1075 I10 sVseeing p1076 I61 sVgradual p1077 I11 sVpointed p1078 I58 sVwishing p1079 I15 sVunacceptable p1080 I12 sVyears p1081 I902 sVstability p1082 I21 sVcourse p1083 I187 sVexperiments p1084 I29 sVterrace p1085 I18 sVpitch p1086 I27 sVargued p1087 I65 sVtendency p1088 I29 sVconstituted p1089 I10 sVlimbs p1090 I11 sVpolice p1091 I278 sVthumb p1092 I11 sVinteresting p1093 I96 sVjim p1094 I43 sVamazing p1095 I19 sVcouncillor p1096 I25 sVyorkshire p1097 I44 sVattraction p1098 I15 sVsuspicion p1099 I16 sVconstitutes p1100 I10 sVpolicy p1101 I260 sVmail p1102 I33 sVmain p1103 I245 sVtory p1104 I34 sVpetition p1105 I12 sVinstantly p1106 I16 sVfinance p1107 I20 sVthereby p1108 I27 sVcivilian p1109 I12 sVmatches p1110 I23 sVkiller p1111 I14 sVsooner p1112 I18 sVnation p1113 I44 sVrecords p1114 I71 sVtouching p1115 I10 sVarriving p1116 I16 sVsorted p1117 I13 sVkilled p1118 I86 sVmaintaining p1119 I21 sVmatched p1120 I14 sVshouted p1121 I29 sVbeach p1122 I38 sVartist p1123 I41 sVproteins p1124 I13 sVestablishing p1125 I21 sVpeasant p1126 I16 sVrock p1127 I64 sVamnesty p1128 I11 sVquarter p1129 I74 sVdata/datum p1130 I182 sVsquare p1131 I26 sVlatin p1132 I22 sVreceipt p1133 I12 sVft p1134 I12 sVconventions p1135 I12 sVentering p1136 I22 sVsexually p1137 I10 sVgirl p1138 I158 sVsummary p1139 I28 sVneighbourhood p1140 I15 sVelizabeth p1141 I36 sVcanada p1142 I29 sVliving p1143 I36 sVcanvas p1144 I11 sVjackson p1145 I20 sVinterference p1146 I14 sVrational p1147 I23 sVlad p1148 I20 sVseriously p1149 I57 sVinvestigation p1150 I51 sVemerged p1151 I38 sVdioxide p1152 I14 sVsuggesting p1153 I25 sVformula p1154 I27 sVcorrect p1155 I59 sVassurance p1156 I18 sVexactly p1157 I107 sVafter p1158 I233 sVmonster p1159 I13 sVsheffield p1160 I21 sVmillion p1161 I245 sVincentives p1162 I10 sVgoverning p1163 I10 sVquite p1164 I412 sVrecordings p1165 I11 sVstatistics p1166 I32 sVcomplicated p1167 I29 sVlump p1168 I11 sVbesides p1169 I18 sVpoems p1170 I16 sVkeith p1171 I28 sVseventy p1172 I29 sVadvance p1173 I36 sVtraining p1174 I11 sVlanguage p1175 I188 sVministry p1176 I50 sVprogramming p1177 I11 sVmodest p1178 I23 sVthing p1179 I352 sVmassive p1180 I44 sVroutes p1181 I21 sVstar p1182 I61 sVthink p1183 I916 sVwaited p1184 I40 sVfirst p1185 I1193 sVemotion p1186 I15 sVcheese p1187 I26 sVsaving p1188 I10 sVreveals p1189 I16 sVspoken p1190 I28 sVclause p1191 I36 sVrachel p1192 I22 sVsafety p1193 I86 sVone p1194 I953 sVamericans p1195 I28 sVsubmit p1196 I12 sVsuspended p1197 I18 sVspanish p1198 I34 sVcarry p1199 I101 sVcorporations p1200 I10 sVsounds p1201 I26 sVopen p1202 I76 sVcity p1203 I231 sVlittle p1204 I45 sVlap p1205 I13 sVslept p1206 I18 sVanyone p1207 I150 sVindicate p1208 I41 sV2 p1209 I344 sVdraft p1210 I26 sValfred p1211 I12 sVstructures p1212 I44 sVspeaking p1213 I54 sVmining p1214 I15 sVallegedly p1215 I10 sVmoscow p1216 I30 sVcontinuous p1217 I26 sVproving p1218 I11 sVaccurately p1219 I14 sVharbour p1220 I18 sVridiculous p1221 I19 sVspecialists p1222 I14 sVrepresenting p1223 I23 sVboyfriend p1224 I11 sV11 p1225 I92 sV10 p1226 I186 sV13 p1227 I76 sV12 p1228 I121 sV15 p1229 I109 sVbit* p1230 I137 sV17 p1231 I63 sV16 p1232 I81 sVdepressed p1233 I15 sV18 p1234 I81 sVvictorian p1235 I25 sVprotected p1236 I20 sVventure p1237 I19 sVwere p1238 I3227 sVasleep p1239 I25 sVsophie p1240 I13 sVrussia p1241 I43 sVprospect p1242 I32 sVmanufacture p1243 I13 sVaddressing p1244 I11 sVillness p1245 I33 sVsam p1246 I31 sVappreciate p1247 I26 sVtopics p1248 I19 sVturned p1249 I246 sVargument p1250 I83 sVvoices p1251 I24 sVsay p1252 I679 sVconspiracy p1253 I11 sVburied p1254 I24 sVallen p1255 I18 sVturner p1256 I11 sVborough p1257 I19 sVsaw p1258 I261 sVsurgery p1259 I27 sVkevin p1260 I23 sVsat p1261 I121 sVcoach p1262 I29 sVspeakers p1263 I22 sVfashionable p1264 I12 sVefficient p1265 I40 sVaside p1266 I36 sVshocked p1267 I15 sVinstructed p1268 I12 sVnote p1269 I46 sVintends p1270 I11 sVpotential p1271 I46 sVtake p1272 I715 sVinterior p1273 I13 sVdestroy p1274 I20 sVconcern p1275 I96 sVcollapsed p1276 I16 sVchannel p1277 I40 sV200 p1278 I35 sVprinter p1279 I17 sVpain p1280 I73 sVcapitalist p1281 I21 sVtheatre p1282 I59 sVinvestigations p1283 I17 sVtrack p1284 I57 sVincidence p1285 I17 sVresulted p1286 I29 sVpaid p1287 I144 sVassault p1288 I22 sV20% p1289 I11 sVprinted p1290 I13 sVsheets p1291 I24 sVremarks p1292 I19 sVknee p1293 I20 sVpages p1294 I44 sVlawn p1295 I11 sVoperate p1296 I40 sVespecially p1297 I177 sVsurprising p1298 I35 sV~n~* p1299 I42 sVaverage p1300 I36 sVphil p1301 I20 sVconstable p1302 I18 sVsale p1303 I88 sVmanaging p1304 I11 sVjumped p1305 I24 sVatlantic p1306 I22 sVsalt p1307 I29 sVsurface p1308 I90 sVlaws p1309 I48 sVprecise p1310 I29 sVwalking p1311 I17 sVshot p1312 I33 sVsurplus p1313 I13 sVshow p1314 I87 sVcontemporary p1315 I44 sVsites p1316 I58 sVbright p1317 I54 sVdrawings p1318 I23 sVcorner p1319 I75 sVaggressive p1320 I19 sVlabel p1321 I17 sVimagined p1322 I17 sVfibre p1323 I15 sVslow p1324 I48 sVcommittee p1325 I190 sVdick p1326 I13 sVbehind p1327 I34 sVdull p1328 I18 sVliberation p1329 I18 sVtears p1330 I43 sVblack p1331 I11 sVequipped p1332 I16 sVenthusiasm p1333 I30 sVcaroline p1334 I19 sVawareness p1335 I36 sVdispute p1336 I30 sVget p1337 I995 sVcontracts p1338 I44 sVassistant p1339 I18 sVemployers p1340 I42 sVnearly p1341 I115 sVsecondary p1342 I43 sVprime p1343 I121 sVresource p1344 I22 sVskull p1345 I11 sVsettings p1346 I10 sVmiddle-class p1347 I13 sVborrow p1348 I15 sVyield p1349 I11 sVmorning p1350 I211 sVstupid p1351 I33 sVroger p1352 I26 sVsource p1353 I91 sVbombs p1354 I12 sVliable p1355 I22 sVwhere p1356 I458 sVworrying p1357 I11 sVvision p1358 I42 sVdeclared p1359 I43 sVthesis p1360 I13 sVeighteenth p1361 I20 sVseat p1362 I62 sVrelative p1363 I10 sVj. p1364 I42 sVjapan p1365 I65 sVcalendar p1366 I11 sVdeliberate p1367 I13 sVwonder p1368 I19 sVvertical p1369 I18 sVharvey p1370 I12 sVrepresentatives p1371 I43 sVsponsorship p1372 I12 sVboundaries p1373 I24 sVenough p1374 I82 sVun p1375 I44 sVbureau p1376 I14 sVaffecting p1377 I17 sVreading p1378 I12 sVacross p1379 I35 sVwhispered p1380 I25 sVjobs p1381 I97 sVaugust p1382 I79 sVparent p1383 I37 sVparental p1384 I13 sVscreen p1385 I48 sVsupermarket p1386 I11 sVkilling p1387 I11 sVconcentrate p1388 I31 sVawards p1389 I23 sVconcentrated p1390 I24 sVblame p1391 I23 sVdates p1392 I19 sVrugby p1393 I29 sVmany p1394 I902 sVcars p1395 I75 sVtrades p1396 I12 sVaccording p1397 I157 sVsweat p1398 I11 sVs p1399 I10 sVloudly p1400 I11 sVdisappointment p1401 I15 sVspare p1402 I10 sVholders p1403 I12 sVexpression p1404 I75 sVallowance p1405 I22 sVstance p1406 I17 sVamong p1407 I229 sVcancer p1408 I42 sVchristie p1409 I12 sVtwin p1410 I16 sVgrants p1411 I19 sVstretched p1412 I20 sVarticle p1413 I68 sVordered p1414 I49 sVconsiders p1415 I12 sVboat p1416 I54 sVadults p1417 I33 sVconsidering p1418 I26 sVsensible p1419 I28 sVarts p1420 I53 sVcapable p1421 I49 sVstretch p1422 I12 sVwest p1423 I127 sVlocally p1424 I18 sVmark p1425 I25 sVbreath p1426 I51 sVworkshop p1427 I18 sVpractised p1428 I10 sVcombined p1429 I17 sVmotives p1430 I10 sVborders p1431 I12 sVcovering p1432 I29 sVmarx p1433 I19 sVmary p1434 I71 sVwants p1435 I89 sVenable p1436 I48 sVshopping p1437 I29 sVthousand p1438 I104 sVformed p1439 I70 sVobserve p1440 I17 sVwake p1441 I12 sVdeclaration p1442 I20 sVconsequently p1443 I25 sVformer p1444 I170 sVthose p1445 I888 sVsound p1446 I12 sVconsultant p1447 I16 sVworried p1448 I38 sVconsulted p1449 I12 sVn't p1450 I3328 sVpolicies p1451 I88 sVresidence p1452 I17 sVnewspaper p1453 I50 sVsituation p1454 I160 sVconstituency p1455 I19 sVmargin p1456 I15 sValuminium p1457 I10 sVconferences p1458 I12 sVthen p1459 I12 sVcharacteristics p1460 I38 sVengaged p1461 I27 sVthem p1462 I1733 sVsleeping p1463 I11 sVmiddle p1464 I59 sVsudden p1465 I39 sVhis* p1466 I49 sVprotein p1467 I28 sVtechnology p1468 I118 sVfame p1469 I12 sVmovements p1470 I44 sVspaces p1471 I15 sVbags p1472 I22 sVdifferent p1473 I484 sVmissiles p1474 I10 sVpat p1475 I18 sVharsh p1476 I15 sVdoctor p1477 I105 sVpay p1478 I45 sVparliament p1479 I97 sVwoodland p1480 I10 sVtour p1481 I57 sVsame p1482 I615 sVenquiries p1483 I17 sVspeech p1484 I78 sVarguments p1485 I38 sVstepped p1486 I29 sVwimbledon p1487 I13 sVdated p1488 I13 sVbreakdown p1489 I15 sVoil p1490 I102 sVsickness p1491 I12 sVassist p1492 I25 sVcompanion p1493 I17 sVallocation p1494 I18 sVrunning p1495 I14 sVedges p1496 I17 sVadvertisement p1497 I12 sVclimbing p1498 I13 sVtotally p1499 I58 sVwheels p1500 I16 sVpupil p1501 I23 sVlargely p1502 I73 sVroughly p1503 I23 sVamounts p1504 I25 sVcosts p1505 I32 sVsolve p1506 I19 sVbottle p1507 I41 sVtrains p1508 I19 sVdimension p1509 I16 sVconsisted p1510 I13 sVsummer p1511 I113 sVoutdoor p1512 I11 sVaffair p1513 I33 sVbeing p1514 I28 sVmoney p1515 I374 sVrest p1516 I20 sVaspect p1517 I43 sVexhibitions p1518 I13 sVweekly p1519 I23 sVrover p1520 I13 sVapplication p1521 I100 sVinstrument p1522 I26 sVsamuel p1523 I13 sVpile p1524 I17 sV4 p1525 I201 sVboards p1526 I28 sVextensive p1527 I41 sVcareers p1528 I17 sVgrip p1529 I17 sVaspects p1530 I73 sVaround p1531 I215 sVjeans p1532 I13 sVsums p1533 I15 sVdark p1534 I31 sVtraffic p1535 I67 sVpreference p1536 I22 sVfound* p1537 I489 sVworld p1538 I590 sVaiming p1539 I10 sVdisappointed p1540 I21 sVvague p1541 I15 sVdare p1542 I12 sVsatisfaction p1543 I29 sVintel p1544 I12 sVstranger p1545 I13 sVidentifying p1546 I15 sVmaintained p1547 I39 sVserves p1548 I17 sV've p1549 I891 sVfacing p1550 I38 sVchamber p1551 I29 sVaudience p1552 I55 sVeither p1553 I58 sVclay p1554 I15 sVserved p1555 I64 sV65 p1556 I17 sVfulfil p1557 I12 sVsatisfactory p1558 I22 sVsuperintendent p1559 I10 sVjews p1560 I18 sVimprisonment p1561 I15 sVlebanon p1562 I11 sVspecified p1563 I12 sVimages p1564 I36 sVracial p1565 I14 sVdivine p1566 I13 sVjoan p1567 I19 sVthinks p1568 I39 sVgross p1569 I23 sVclare p1570 I21 sVdimensions p1571 I14 sVconfirm p1572 I26 sVmemories p1573 I26 sVtube p1574 I20 sVdisciplinary p1575 I11 sVcritical p1576 I58 sVexit p1577 I10 sVcustody p1578 I15 sVexpressing p1579 I14 sVmoderate p1580 I14 sVknife p1581 I27 sVrefer p1582 I38 sVmeasuring p1583 I14 sVmuttered p1584 I16 sVscientific p1585 I59 sVpower p1586 I318 sVintimate p1587 I11 sVseconds p1588 I42 sVwhose p1589 I198 sVfitness p1590 I16 sVnotable p1591 I16 sVunusual p1592 I41 sVnotably p1593 I24 sVbroken p1594 I29 sVleadership p1595 I48 sVrefers p1596 I20 sVmanufacturer p1597 I18 sVhelping p1598 I39 sVstone p1599 I79 sVorigins p1600 I18 sVpackage p1601 I57 sVisland p1602 I66 sVindustry p1603 I198 sVviolence p1604 I56 sVmeaning p1605 I15 sVside p1606 I335 sVpractical p1607 I77 sVairline p1608 I11 sVpockets p1609 I16 sVact p1610 I59 sVmixed p1611 I20 sVmean p1612 I25 sVroad p1613 I273 sVquietly p1614 I41 sVlands p1615 I21 sVburning p1616 I13 sVimage p1617 I75 sVskilled p1618 I18 sVessex p1619 I23 sVreferences p1620 I20 sVlively p1621 I15 sVhomeless p1622 I11 sVparties p1623 I127 sVvaluable p1624 I39 sVtechnically p1625 I10 sVcared p1626 I13 sVlegacy p1627 I11 sVhey p1628 I18 sVmeals p1629 I24 sVcouncils p1630 I35 sVslopes p1631 I10 sVgain p1632 I15 sVemergence p1633 I12 sVcomplete p1634 I34 sVdangers p1635 I16 sVstrikes p1636 I11 sVprinciples p1637 I57 sVmick p1638 I15 sVsurvived p1639 I27 sVlinguistic p1640 I25 sVtechnologies p1641 I15 sVlevel p1642 I25 sVwith p1643 I6575 sVbuying p1644 I41 sVhandsome p1645 I17 sVpull p1646 I40 sVrush p1647 I13 sVoctober p1648 I106 sVarranged p1649 I40 sVromantic p1650 I21 sVmonopoly p1651 I16 sVnearest p1652 I20 sVlocal p1653 I18 sVdirty p1654 I26 sVpolitically p1655 I17 sVagree p1656 I82 sVaffection p1657 I14 sVdetailed p1658 I60 sVgone p1659 I195 sVjohnny p1660 I15 sVcertain p1661 I220 sVam p1662 I256 sVal p1663 I10 sVwartime p1664 I10 sVgeneral p1665 I43 sVnavy p1666 I20 sVas p1667 I13 sVeducated p1668 I13 sVat p1669 I29 sVfile p1670 I56 sVlaboratory p1671 I27 sVgirlfriend p1672 I12 sVwatched p1673 I67 sVgon~ p1674 I125 sVhorse p1675 I77 sVeliot p1676 I19 sVfilm p1677 I101 sVcream p1678 I31 sVagain p1679 I561 sVassessing p1680 I14 sVideally p1681 I12 sVpersonnel p1682 I33 sVdrivers p1683 I26 sVvocational p1684 I10 sVtight p1685 I11 sVsummit p1686 I25 sVspatial p1687 I12 sVoffered p1688 I106 sVgloucestershire p1689 I15 sVcongress p1690 I55 sVstudents p1691 I146 sVreached p1692 I124 sVa. p1693 I28 sVgifts p1694 I17 sVimportant p1695 I392 sVaccounts p1696 I65 sVterry p1697 I25 sVtackle p1698 I16 sVdecorated p1699 I11 sVgastric p1700 I21 sVremote p1701 I29 sVassets p1702 I43 sVacids p1703 I10 sVmask p1704 I11 sVhaving p1705 I353 sVinvestigated p1706 I15 sVdramatic p1707 I39 sVmass p1708 I35 sVadam p1709 I35 sVkuwait p1710 I16 sVresolution p1711 I37 sVoriginal p1712 I108 sVexternal p1713 I49 sVrepresent p1714 I46 sVcolleges p1715 I25 sVconsider p1716 I117 sVfounder p1717 I12 sVaids p1718 I32 sVcaused p1719 I96 sVhands p1720 I188 sVdollar p1721 I20 sVfounded p1722 I27 sVtours p1723 I10 sVwelfare p1724 I48 sVtalks p1725 I60 sVpartial p1726 I18 sVexpressions p1727 I13 sVallowances p1728 I13 sVreasoning p1729 I10 sVcauses p1730 I20 sVreluctant p1731 I20 sVcontent p1732 I16 sVhunting p1733 I18 sVtv p1734 I65 sVlaughing p1735 I24 sVto p1736 I9343 sVtail p1737 I27 sVaward p1738 I148 sVpreserved p1739 I16 sV14 p1740 I80 sVsmile p1741 I11 sVenjoying p1742 I22 sVpassed p1743 I107 sVpaying p1744 I46 sVappointment p1745 I45 sVreturned p1746 I103 sVstraightforward p1747 I20 sVpuzzled p1748 I10 sVhughes p1749 I17 sVsaved p1750 I32 sVdiary p1751 I20 sVfall p1752 I41 sVdifference p1753 I113 sVcondition p1754 I83 sVcheerful p1755 I12 sVnorfolk p1756 I14 sVcable p1757 I18 sVmothers p1758 I33 sVmarvellous p1759 I18 sVlaying p1760 I13 sVjoined p1761 I72 sVlarge p1762 I337 sVsang p1763 I12 sVsand p1764 I30 sVadjust p1765 I11 sVharry p1766 I46 sVsmall p1767 I435 sVbiological p1768 I20 sVsank p1769 I11 sVmaggie p1770 I27 sVpolls p1771 I11 sVpenalties p1772 I11 sVpast p1773 I21 sV19 p1774 I53 sVzero p1775 I15 sVtitles p1776 I21 sVdisplays p1777 I11 sVlawyer p1778 I22 sVpass p1779 I18 sVfurther p1780 I144 sVmarginal p1781 I22 sVinvestment p1782 I109 sVcreatures p1783 I21 sVhandicapped p1784 I10 sVmaterial p1785 I131 sVdefence p1786 I116 sVstood p1787 I133 sVrichard p1788 I100 sVclock p1789 I29 sVsection p1790 I186 sViraqi p1791 I17 sVscientists p1792 I35 sVnurse p1793 I32 sVchelsea p1794 I15 sVmethod p1795 I91 sVcontrast p1796 I62 sVmovement p1797 I135 sVfull p1798 I281 sVpromising p1799 I13 sVcomponent p1800 I26 sVrevenge p1801 I11 sVhours p1802 I189 sVcancelled p1803 I12 sVdisastrous p1804 I11 sVoperating p1805 I27 sVinvestigating p1806 I14 sVtreasury p1807 I26 sVnovember p1808 I94 sVstandard p1809 I56 sVlegend p1810 I12 sVadmits p1811 I13 sVsearch p1812 I12 sVbible p1813 I20 sVcompliance p1814 I13 sVexperience p1815 I25 sVsignificantly p1816 I42 sVprior p1817 I12 sVairport p1818 I29 sVsimply p1819 I177 sVmisery p1820 I13 sVaction p1821 I221 sVcorps p1822 I12 sVnarrow p1823 I49 sVvia p1824 I45 sVfollowed p1825 I149 sVours p1826 I17 sVbuses p1827 I15 sVafrica p1828 I78 sVregiment p1829 I12 sVmanage p1830 I41 sVarmed p1831 I11 sVmistress p1832 I12 sVselect p1833 I12 sVreadily p1834 I28 sVliterary p1835 I34 sVshareholders p1836 I31 sVattendance p1837 I18 sVeye p1838 I95 sVoxfordshire p1839 I16 sVobjectives p1840 I43 sVdestination p1841 I11 sVtwo p1842 I1561 sVcomparing p1843 I11 sVde* p1844 I19 sV6 p1845 I134 sVkick p1846 I13 sVachieving p1847 I18 sVmore p1848 I699 sVdiamond p1849 I11 sVdoor p1850 I254 sVinitiated p1851 I12 sVsubstances p1852 I13 sVcompany p1853 I401 sVleonard p1854 I10 sVtested p1855 I26 sVlanded p1856 I18 sVcontrolling p1857 I17 sVparticular p1858 I223 sVfoundations p1859 I14 sVobjections p1860 I13 sVnineteen p1861 I48 sVtown p1862 I180 sVkeeping p1863 I60 sVgravel p1864 I12 sVdrank p1865 I14 sVhour p1866 I113 sVstrain p1867 I22 sVscience p1868 I106 sVdes p1869 I12 sVfriendly p1870 I39 sVguards p1871 I15 sVremain p1872 I90 sVparagraph p1873 I26 sVindicating p1874 I15 sVevolved p1875 I12 sVlearn p1876 I83 sVknocked p1877 I23 sVstrategies p1878 I27 sVmale p1879 I22 sVmarble p1880 I14 sVbeautiful p1881 I87 sVimperial p1882 I24 sVcompare p1883 I24 sVmedical p1884 I93 sVstated p1885 I48 sVlives p1886 I27 sVgalleries p1887 I12 sVsuggestions p1888 I21 sVaccept p1889 I98 sVautumn p1890 I39 sVsphere p1891 I13 sVminimum p1892 I20 sVnumbers p1893 I113 sVpurchased p1894 I16 sVsense p1895 I213 sVsharp p1896 I44 sVdress p1897 I42 sVaxis p1898 I10 sVhuge p1899 I79 sVrespective p1900 I12 sVunexpected p1901 I21 sVawkward p1902 I16 sVacts p1903 I14 sVhugh p1904 I21 sVdismissed p1905 I30 sVeveryday p1906 I21 sVmaps p1907 I17 sVdisturbed p1908 I12 sVearnings p1909 I32 sVsacred p1910 I13 sVoccur p1911 I56 sVcreature p1912 I19 sVwaved p1913 I15 sVplant p1914 I74 sVbedrooms p1915 I16 sVplans p1916 I20 sVcountryside p1917 I39 sVsuppose p1918 I107 sVadvice p1919 I104 sVsignature p1920 I11 sVplane p1921 I34 sVdirector p1922 I122 sVblood p1923 I101 sVfaculty p1924 I13 sVgates p1925 I19 sVappealed p1926 I14 sVresponse p1927 I100 sVrefuse p1928 I22 sVcoat p1929 I34 sVregister p1930 I10 sVcoal p1931 I51 sVbroadcasting p1932 I16 sVresponsibility p1933 I93 sVfundamental p1934 I45 sVpleasure p1935 I52 sVneed* p1936 I33 sVplaying p1937 I101 sVreplied p1938 I56 sVinfant p1939 I17 sVpassages p1940 I11 sVbowl p1941 I23 sVinstalled p1942 I20 sVperformance p1943 I130 sVattitude p1944 I60 sVpaper p1945 I173 sVscott p1946 I32 sVdestruction p1947 I24 sVsigns p1948 I47 sVexistence p1949 I66 sVsmiling p1950 I22 sVsuffer p1951 I35 sVits p1952 I1632 sVroots p1953 I25 sV24 p1954 I65 sV25 p1955 I77 sV26 p1956 I44 sV27 p1957 I43 sVrapidly p1958 I46 sV21 p1959 I56 sV22 p1960 I53 sV23 p1961 I48 sVgreatly p1962 I33 sV28 p1963 I50 sV29 p1964 I40 sVsymptoms p1965 I31 sVdetected p1966 I16 sVfollowers p1967 I10 sVtravelling p1968 I24 sVsauce p1969 I14 sVlandlord p1970 I27 sVcolleague p1971 I17 sVsomeone p1972 I187 sVsisters p1973 I20 sVseeking p1974 I46 sVpropose p1975 I14 sVmales p1976 I22 sVsocially p1977 I15 sVencouraging p1978 I21 sVwalls p1979 I60 sVcompound p1980 I11 sVoxford p1981 I86 sVseparately p1982 I18 sVcomplain p1983 I14 sVassociation p1984 I115 sVmystery p1985 I22 sVeasily p1986 I99 sVdocument p1987 I51 sVclergy p1988 I14 sVhook p1989 I11 sValways p1990 I462 sVisle p1991 I14 sVcourses p1992 I80 sVhabits p1993 I17 sVpan p1994 I12 sVpositions p1995 I39 sVbiscuits p1996 I10 sVports p1997 I11 sVreactions p1998 I21 sVharm p1999 I23 sVeveryone p2000 I133 sVengland p2001 I231 sVmental p2002 I58 sVhouse p2003 I501 sVfish p2004 I103 sVhard p2005 I71 sVreduce p2006 I71 sVidea p2007 I217 sVextended p2008 I14 sVmeasurement p2009 I17 sVoperation p2010 I100 sVinsurance p2011 I71 sVreally p2012 I481 sVtry p2013 I11 sVinitiatives p2014 I19 sVflower p2015 I22 sVfunding p2016 I39 sVpsychology p2017 I26 sVblacks p2018 I14 sVshah p2019 I10 sVresearch p2020 I14 sVparticipants p2021 I22 sVministerial p2022 I10 sVprint p2023 I10 sVdarling p2024 I23 sVevaluation p2025 I28 sVoccurs p2026 I33 sVbelief p2027 I51 sVrisen p2028 I17 sVlawrence p2029 I22 sV1920s p2030 I11 sVpleasant p2031 I27 sVdifficulty p2032 I63 sVqualify p2033 I13 sVmembers p2034 I297 sVimagine p2035 I61 sVbacked p2036 I25 sVbeginning p2037 I53 sVdefinition p2038 I48 sVpairs p2039 I21 sVretained p2040 I24 sVbarbara p2041 I17 sVcomputers p2042 I36 sVenforce p2043 I10 sVconducted p2044 I30 sVharris p2045 I19 sVtestament p2046 I12 sVcastle p2047 I47 sVpilots p2048 I11 sVreinforced p2049 I13 sVcopper p2050 I18 sVmajor p2051 I11 sVgazed p2052 I11 sVslipped p2053 I26 sVgirls p2054 I96 sVthereafter p2055 I14 sVnumber p2056 I493 sVpreservation p2057 I11 sVinstances p2058 I17 sVpop p2059 I10 sVmurmured p2060 I19 sVdone p2061 I354 sVwages p2062 I37 sVcups p2063 I12 sVguess p2064 I24 sVheads p2065 I52 sVguest p2066 I23 sVjet p2067 I13 sVintroduction p2068 I66 sVdivorce p2069 I17 sVbay p2070 I34 sVthreatening p2071 I17 sVleast p2072 I45 sVpaint p2073 I13 sVregulation p2074 I26 sVassumption p2075 I31 sVmentally p2076 I20 sVcalculations p2077 I12 sVcompromise p2078 I16 sVmolecular p2079 I13 sVlease p2080 I21 sVmuscles p2081 I20 sVrelationship p2082 I129 sVjohnson p2083 I32 sVneedle p2084 I13 sVpark p2085 I103 sVinterviewed p2086 I15 sVimmediate p2087 I61 sVappreciation p2088 I13 sVpart p2089 I496 sVdemonstrations p2090 I15 sVlos nop- p2091 I12 sVconsult p2092 I12 sVbelieve p2093 I212 sVstairs p2094 I36 sVgrace p2095 I15 sVjohn p2096 I328 sVfreud p2097 I16 sVrecording p2098 I16 sVimmense p2099 I14 sVdetermined p2100 I16 sVmarriage p2101 I79 sVsupposed p2102 I11 sVtreated p2103 I69 sVaug. p2104 I26 sVcurtains p2105 I20 sVorganisations p2106 I51 sVaged p2107 I14 sVorders p2108 I52 sVsell p2109 I76 sVmountain p2110 I39 sVbuilt p2111 I129 sVdancing p2112 I12 sVself p2113 I36 sVsevere p2114 I46 sValso p2115 I1248 sVinternal p2116 I67 sVbuild p2117 I68 sVprovince p2118 I22 sVplay p2119 I67 sValbert p2120 I22 sVeggs p2121 I37 sVswiftly p2122 I12 sVsalmon p2123 I13 sVchart p2124 I15 sVdepths p2125 I11 sVmost p2126 I422 sVvirus p2127 I15 sVcharm p2128 I13 sVplan p2129 I26 sVsignificant p2130 I121 sVservices p2131 I249 sVaccepting p2132 I17 sVextremely p2133 I68 sVrevolutionary p2134 I24 sVsouthampton p2135 I12 sVlaboratories p2136 I10 sVapparatus p2137 I11 sVcrossing p2138 I10 sVsometimes p2139 I205 sVcover p2140 I47 sVkm p2141 I14 sVlounge p2142 I14 sVorganise p2143 I13 sVartistic p2144 I16 sVthank p2145 I122 sVcharged p2146 I46 sVdragged p2147 I17 sVjoining p2148 I22 sVsector p2149 I87 sVthomas p2150 I68 sVgolf p2151 I34 sVrebels p2152 I12 sVgold p2153 I74 sVcheltenham p2154 I14 sVobligations p2155 I19 sVscattered p2156 I11 sVsession p2157 I44 sVbusinesses p2158 I37 sVcarefully p2159 I72 sVdefender p2160 I12 sVfine p2161 I127 sVfind p2162 I420 sVoccupation p2163 I23 sVimpact p2164 I74 sVcell p2165 I55 sVgiant p2166 I18 sVregulations p2167 I42 sVdepended p2168 I12 sVmerger p2169 I14 sVnervous p2170 I31 sVwrites p2171 I26 sVwriter p2172 I37 sVdistributed p2173 I20 sV19th p2174 I12 sVunhappy p2175 I19 sVfailed p2176 I89 sVfactor p2177 I63 sV8 p2178 I97 sVcolumns p2179 I16 sVpermission p2180 I32 sVdependent p2181 I37 sVluke p2182 I35 sVbanned p2183 I16 sVexpress p2184 I11 sVcheaper p2185 I23 sVremedy p2186 I13 sVcourage p2187 I19 sVpreparing p2188 I26 sVclosely p2189 I55 sVsilk p2190 I22 sVenemy p2191 I34 sVresolve p2192 I15 sVprogressive p2193 I17 sVcry p2194 I16 sVremove p2195 I39 sVbanking p2196 I21 sVcommon p2197 I182 sVcease p2198 I10 sVgospel p2199 I11 sVriver p2200 I94 sVapproaching p2201 I17 sVset p2202 I112 sVenabled p2203 I18 sVtended p2204 I27 sVsex p2205 I83 sVsee p2206 I1186 sVindividual p2207 I55 sVmigration p2208 I13 sVsea p2209 I130 sVtender p2210 I13 sVforthcoming p2211 I16 sVaberdeen p2212 I14 sVfeared p2213 I19 sVproject p2214 I141 sVspirits p2215 I19 sVexpert p2216 I40 sVvisiting p2217 I11 sVmovie p2218 I18 sVcurrently p2219 I70 sVelectoral p2220 I22 sVfans p2221 I33 sVsmallest p2222 I11 sVguilt p2223 I18 sVburned p2224 I14 sVchampagne p2225 I19 sVavailable p2226 I272 sVhistorical p2227 I56 sVpremises p2228 I39 sVdividends p2229 I10 sVlunch p2230 I54 sVincident p2231 I37 sVrenewed p2232 I11 sVinterface p2233 I17 sVdividend p2234 I15 sVprospects p2235 I22 sVenables p2236 I21 sVlast p2237 I28 sVrestaurant p2238 I35 sVinfluential p2239 I18 sVpowers p2240 I68 sVbarely p2241 I23 sVforeign p2242 I161 sVconnection p2243 I35 sVsterling p2244 I16 sVlong-term p2245 I41 sVlet p2246 I13 sVwhole p2247 I91 sVload p2248 I26 sVmajesty p2249 I11 sVbell p2250 I16 sVsimple p2251 I140 sVloan p2252 I38 sVoxygen p2253 I19 sVcommunity p2254 I231 sVagents p2255 I37 sVchurch p2256 I203 sVdesktop p2257 I15 sVexpensive p2258 I59 sVbelt p2259 I21 sVdevil p2260 I17 sVpublishing p2261 I22 sVmonthly p2262 I19 sVcreate p2263 I82 sVacceptance p2264 I27 sVconvicted p2265 I12 sVgeoffrey p2266 I17 sVsecret p2267 I22 sVdropping p2268 I13 sVensured p2269 I10 sVireland p2270 I96 sVcontained p2271 I49 sVmeeting p2272 I46 sVfirm p2273 I35 sVchampion p2274 I32 sVcounselling p2275 I13 sVfire p2276 I133 sVgas p2277 I73 sVgreat p2278 I442 sVmine p2279 I17 sVfund p2280 I55 sVraces p2281 I16 sVawake p2282 I13 sVrepresentative p2283 I15 sVsystematic p2284 I17 sVprices p2285 I101 sVtowns p2286 I41 sVchester p2287 I11 sVbile p2288 I12 sVhandling p2289 I14 sVuncertain p2290 I20 sVraw p2291 I25 sVsolid p2292 I35 sVjudicial p2293 I25 sVstraight p2294 I31 sVbill p2295 I47 sVempirical p2296 I15 sVtechnical p2297 I68 sVsexuality p2298 I14 sVreplaced p2299 I57 sVpressed p2300 I29 sVerror p2301 I38 sVfurther* p2302 I216 sVrobin p2303 I19 sVowed p2304 I16 sVpound p2305 I61 sVhoping p2306 I35 sVportugal p2307 I11 sVcentury p2308 I197 sVbacking p2309 I12 sVowen p2310 I22 sVbinding p2311 I10 sVencountered p2312 I17 sVitself p2313 I237 sVbeautifully p2314 I12 sVfunny p2315 I45 sVitaly p2316 I51 sVbarnes p2317 I13 sVshorter p2318 I18 sVrules p2319 I105 sVdiscourse p2320 I23 sVused (to) p2321 I156 sVvirtually p2322 I44 sVcorridor p2323 I21 sVresulting p2324 I14 sVruth p2325 I30 sVdevelopment p2326 I324 sVsophisticated p2327 I25 sVknitting p2328 I10 sVkeys p2329 I23 sVcomprehensive p2330 I35 sVderby p2331 I12 sVyesterday p2332 I195 sVhusbands p2333 I10 sVmoment p2334 I221 sVlevels p2335 I121 sVpurpose p2336 I93 sVnecessity p2337 I18 sVaggregate p2338 I11 sVgenuine p2339 I33 sVimplement p2340 I15 sVrecent p2341 I158 sVrecognized p2342 I30 sVtask p2343 I92 sVbarry p2344 I19 sVspent p2345 I116 sVcounty p2346 I113 sVconcrete p2347 I18 sVwithdraw p2348 I16 sVthoroughly p2349 I21 sVswiss p2350 I14 sVentry p2351 I52 sVchemistry p2352 I20 sVrates p2353 I115 sVspend p2354 I74 sVprevention p2355 I15 sVlads p2356 I15 sVexotic p2357 I11 sVobserved p2358 I46 sVsuffolk p2359 I12 sVshape p2360 I62 sVopenly p2361 I12 sVtennis p2362 I28 sVatomic p2363 I11 sValternative p2364 I36 sV1963 p2365 I14 sVinjuries p2366 I26 sVtimber p2367 I23 sVdiscipline p2368 I55 sVcut p2369 I29 sVreaders p2370 I47 sVhated p2371 I17 sVadmission p2372 I23 sVdanger p2373 I60 sVadvertisements p2374 I10 sVchest p2375 I38 sVdc p2376 I15 sVgrim p2377 I11 sVsignals p2378 I19 sVshouting p2379 I17 sVsubjects p2380 I77 sVdeliberately p2381 I28 sVlocation p2382 I40 sVcrying p2383 I14 sVrelevance p2384 I17 sVinput p2385 I32 sVruled p2386 I24 sVeaster p2387 I18 sVexcited p2388 I16 sVsurprised p2389 I47 sVaustralia p2390 I50 sVvictims p2391 I29 sVemergency p2392 I40 sVformat p2393 I21 sVbig p2394 I255 sVbid p2395 I31 sVwives p2396 I19 sVjudgement p2397 I25 sVmatters p2398 I80 sVsuffering p2399 I13 sVbit p2400 I11 sVcarers p2401 I12 sVprojects p2402 I55 sVformal p2403 I64 sVknock p2404 I12 sVimposed p2405 I34 sVcognitive p2406 I12 sVfollows p2407 I100 sVpounds p2408 I123 sVaddressed p2409 I27 sVconsensus p2410 I18 sVcommunications p2411 I35 sVindividuals p2412 I80 sVindication p2413 I23 sVfoolish p2414 I12 sVdisorder p2415 I16 sVreduces p2416 I12 sVprivately p2417 I12 sVoften p2418 I376 sVsenate p2419 I13 sVobliged p2420 I17 sVb. p2421 I19 sVmagnificent p2422 I20 sVback p2423 I11 sVdelegation p2424 I16 sVstrongest p2425 I10 sVpalm p2426 I13 sVexamples p2427 I71 sVsight p2428 I66 sVmirror p2429 I37 sVcurious p2430 I22 sVserver p2431 I15 sVpale p2432 I35 sVourselves p2433 I45 sVscale p2434 I74 sVcontacts p2435 I21 sVpet p2436 I13 sVaffects p2437 I14 sVdecision p2438 I168 sVmeasurements p2439 I14 sVintegration p2440 I24 sVper p2441 I135 sVreligion p2442 I44 sVpen p2443 I20 sVbehave p2444 I17 sVeliminate p2445 I11 sVgood* p2446 I25 sVtemple p2447 I14 sVnose p2448 I43 sVpatient p2449 I14 sV300 p2450 I24 sVoffenders p2451 I13 sVcontinuing p2452 I19 sVagreement p2453 I133 sVfeelings p2454 I53 sVnowhere p2455 I24 sVbr p2456 I13 sVrelating p2457 I37 sVby p2458 I22 sVwildlife p2459 I20 sVgoods p2460 I101 sVusa p2461 I50 sVanything p2462 I288 sVtruck p2463 I12 sVmrs. p2464 I23 sVreduced p2465 I14 sVdrama p2466 I36 sVdu~* p2467 I20 sVwhisky p2468 I17 sVbeans p2469 I13 sVstuart p2470 I21 sVtenants p2471 I20 sVpollution p2472 I41 sVrepair p2473 I15 sVjimmy p2474 I24 sVclinton p2475 I20 sVinto p2476 I1634 sVgood p2477 I795 sVintegral p2478 I12 sVministers p2479 I68 sVphase p2480 I46 sVappropriate p2481 I113 sVprimarily p2482 I31 sVsteven p2483 I12 sVlesson p2484 I23 sVcriticisms p2485 I12 sVverbal p2486 I15 sVspending p2487 I29 sVbargaining p2488 I12 sVspecifically p2489 I38 sVcustom p2490 I15 sVoccupy p2491 I11 sVgermans p2492 I25 sVsuit p2493 I20 sVforward p2494 I12 sVbored p2495 I14 sVopens p2496 I17 sVopponent p2497 I15 sVconsiderably p2498 I29 sVinvite p2499 I12 sVinches p2500 I23 sVjewish p2501 I22 sVrelaxed p2502 I11 sVvehicle p2503 I42 sVimmigration p2504 I11 sVhoped p2505 I51 sVboys p2506 I80 sVlink p2507 I13 sVpacific p2508 I27 sVhopes p2509 I18 sVsubsidiary p2510 I12 sVline p2511 I221 sVwedding p2512 I33 sVconsiderable p2513 I96 sVdirected p2514 I34 sVjonathan p2515 I16 sVrejection p2516 I15 sVup p2517 I83 sVus p2518 I158 sVplanet p2519 I18 sVmaturity p2520 I14 sV're p2521 I835 sVexploration p2522 I15 sVmature p2523 I15 sVplanes p2524 I11 sVautonomous p2525 I11 sVwoke p2526 I14 sValarm p2527 I21 sVwell-known p2528 I15 sVsort p2529 I19 sVconstant p2530 I47 sVexpedition p2531 I11 sVdefined p2532 I54 sVlikewise p2533 I12 sVinfluence p2534 I25 sV~ta* p2535 I36 sVchap p2536 I16 sVdiverse p2537 I13 sVrolling p2538 I10 sVnationalism p2539 I10 sVecho p2540 I12 sVcodes p2541 I13 sVedwards p2542 I13 sVthanks p2543 I62 sVde* nop- p2544 I107 sVoccasional p2545 I26 sVpoints p2546 I30 sVactors p2547 I16 sVellen p2548 I10 sVrevision p2549 I11 sVexplaining p2550 I18 sVelements p2551 I64 sVlend p2552 I13 sVfavourite p2553 I15 sVprosecution p2554 I21 sVprepared p2555 I52 sVrestoration p2556 I20 sVutterly p2557 I13 sVdesert p2558 I18 sVago p2559 I198 sVlane p2560 I43 sVland p2561 I13 sVimplies p2562 I20 sVconsumer p2563 I44 sVage p2564 I216 sVvehicles p2565 I31 sVholes p2566 I27 sVwalked p2567 I94 sVappalling p2568 I11 sV2000 p2569 I16 sVimplied p2570 I16 sVpresenting p2571 I14 sVcolonial p2572 I15 sVwalker p2573 I21 sVfresh p2574 I68 sVinevitably p2575 I31 sVhello p2576 I38 sVlabelled p2577 I12 sVessay p2578 I16 sVcode p2579 I52 sVjason p2580 I11 sVrubbish p2581 I23 sVillustrates p2582 I11 sVhint p2583 I14 sVresults p2584 I147 sVexisting p2585 I94 sVillustrated p2586 I26 sVmaastricht p2587 I12 sVstops p2588 I12 sVbroader p2589 I14 sVshrugged p2590 I24 sVseemed p2591 I238 sVcontacted p2592 I11 sVturkish p2593 I14 sVconcerned p2594 I158 sVyoung p2595 I21 sVsend p2596 I80 sVintensive p2597 I18 sVhelps p2598 I28 sVvisitor p2599 I22 sVfatal p2600 I14 sVresources p2601 I105 sVbrigade p2602 I12 sVjurisdiction p2603 I19 sVgarden p2604 I108 sVcontinues p2605 I40 sVgrid p2606 I11 sVputting p2607 I76 sVspecific p2608 I113 sVsurgeon p2609 I11 sVcontinued p2610 I21 sVminerals p2611 I11 sVcategories p2612 I34 sVarrange p2613 I23 sVentire p2614 I48 sVmagic p2615 I15 sVtransmission p2616 I15 sVmarry p2617 I27 sVshock p2618 I42 sVfewer p2619 I31 sVanxious p2620 I31 sVthis p2621 I4623 sVrace p2622 I74 sVride p2623 I17 sVclients p2624 I49 sVulster p2625 I24 sVcrop p2626 I15 sVmaintain p2627 I54 sVrecruitment p2628 I16 sVimply p2629 I15 sVvideo p2630 I65 sVuncomfortable p2631 I14 sVsubtle p2632 I18 sVincidentally p2633 I11 sVodd p2634 I45 sVdepression p2635 I23 sVindex p2636 I45 sVsuppliers p2637 I18 sVdirective p2638 I17 sVchicago p2639 I11 sVgiving p2640 I125 sVpipes p2641 I12 sVexpressed p2642 I69 sVpractices p2643 I45 sVaccess p2644 I100 sVconsistently p2645 I16 sVindian p2646 I38 sVtwins p2647 I11 sVfirms p2648 I75 sVbird p2649 I36 sVexercise p2650 I24 sVthin p2651 I51 sVbody p2652 I255 sVjustification p2653 I18 sVled p2654 I154 sVlee p2655 I36 sVleg p2656 I53 sVrespectively p2657 I32 sVgathered p2658 I26 sVjointly p2659 I11 sVhighly p2660 I91 sVdressed p2661 I37 sVobjects p2662 I45 sVpoverty p2663 I31 sVsink p2664 I11 sVlicence p2665 I36 sVothers p2666 I282 sVconsideration p2667 I54 sVinvented p2668 I12 sVfifteen p2669 I54 sVimplicit p2670 I12 sVextreme p2671 I33 sV39 p2672 I13 sV38 p2673 I15 sVtalent p2674 I21 sV33 p2675 I17 sV32 p2676 I20 sV31 p2677 I51 sV30 p2678 I114 sV37 p2679 I14 sV36 p2680 I17 sV35 p2681 I25 sV34 p2682 I15 sVsurvey p2683 I79 sVdefeat p2684 I30 sVopinion p2685 I75 sVresidents p2686 I35 sVmakes p2687 I166 sVmaker p2688 I10 sVinvolves p2689 I41 sVcomposed p2690 I20 sVnamed p2691 I44 sVprivate p2692 I173 sVnames p2693 I76 sVscandal p2694 I15 sVtools p2695 I32 sVcausal p2696 I12 sVstanding p2697 I28 sVconfidence p2698 I70 sVexciting p2699 I33 sVcertificate p2700 I29 sVillegal p2701 I24 sVbush p2702 I29 sVnext p2703 I30 sVeleven p2704 I38 sVdoubt p2705 I21 sVbutler p2706 I10 sVthemselves p2707 I237 sVloch p2708 I13 sVdefendant p2709 I33 sVjudged p2710 I17 sVpencil p2711 I12 sVcomparison p2712 I33 sVachieve p2713 I68 sVoccurred p2714 I55 sVtrail p2715 I12 sVcarrying p2716 I56 sVprizes p2717 I11 sVashamed p2718 I11 sVbaby p2719 I91 sVcentral p2720 I193 sViii p2721 I50 sVcharity p2722 I35 sVcustomer p2723 I47 sVaccount p2724 I24 sVballs p2725 I15 sVanimals p2726 I86 sVace p2727 I11 sVtunnel p2728 I24 sVgabriel p2729 I13 sVchallenge p2730 I16 sVstations p2731 I37 sVpour p2732 I11 sVobvious p2733 I85 sVpublications p2734 I20 sVpraise p2735 I12 sVindustrial p2736 I116 sVtrevor p2737 I12 sVclosing p2738 I14 sVgrin p2739 I11 sVcoffin p2740 I14 sVborrowed p2741 I10 sVslid p2742 I16 sVreserved p2743 I11 sVbent p2744 I21 sVe.g. p2745 I49 sVprocess p2746 I11 sVlock p2747 I15 sVproportions p2748 I15 sVslim p2749 I12 sVrode p2750 I11 sVpurposes p2751 I58 sVpieces p2752 I56 sVhigh p2753 I11 sVeffectively p2754 I51 sVreserves p2755 I20 sVslip p2756 I14 sVbones p2757 I23 sVreynolds p2758 I11 sVcontempt p2759 I13 sVnative p2760 I24 sVlamb p2761 I10 sVeducational p2762 I59 sVvaried p2763 I13 sVdemocracy p2764 I42 sVboxing p2765 I12 sVhampshire p2766 I12 sVdelay p2767 I23 sVlamp p2768 I14 sVwinners p2769 I20 sVpair p2770 I60 sVforest p2771 I70 sVanimal p2772 I67 sVcomedy p2773 I14 sVestablishment p2774 I40 sVstock p2775 I76 sVprofile p2776 I23 sVbuildings p2777 I66 sVblocks p2778 I21 sVwaters p2779 I22 sVphilosophy p2780 I35 sVtied p2781 I25 sVbothered p2782 I15 sVpigs p2783 I12 sVpreferred p2784 I11 sVties p2785 I13 sVsolidarity p2786 I11 sVefficiently p2787 I11 sVrealized p2788 I31 sVcounter p2789 I17 sVlines p2790 I102 sVredundant p2791 I12 sVelement p2792 I56 sVchief p2793 I38 sVlose p2794 I65 sVallow p2795 I115 sVfurious p2796 I13 sVsubsequently p2797 I37 sVvolunteers p2798 I19 sVcounted p2799 I13 sVha p2800 I30 sVevolutionary p2801 I11 sVproducer p2802 I18 sVproduces p2803 I25 sVinstitutional p2804 I20 sVmove p2805 I68 sVoutlook p2806 I12 sVdoubtful p2807 I13 sVproduced p2808 I129 sVagricultural p2809 I41 sVarrangement p2810 I33 sVbunch p2811 I12 sVperfect p2812 I56 sVregions p2813 I42 sVle p2814 I11 sVla p2815 I19 sVchosen p2816 I11 sVvaries p2817 I13 sVacres p2818 I16 sVmeantime p2819 I14 sVwilling p2820 I39 sVdegrees p2821 I31 sVinstruments p2822 I29 sVcriminal p2823 I44 sVdad p2824 I73 sVdesigns p2825 I28 sVmechanisms p2826 I20 sVgreater p2827 I141 sVoutlined p2828 I20 sVspell p2829 I13 sVnewman p2830 I10 sVdock p2831 I12 sVcutting p2832 I10 sVkiss p2833 I12 sVcage p2834 I10 sVrealize p2835 I22 sVpresidential p2836 I21 sVapplicants p2837 I12 sVpersonally p2838 I27 sVelite* p2839 I12 sVintelligent p2840 I19 sVtraced p2841 I10 sVidentified p2842 I62 sVsufficiently p2843 I26 sVdelightful p2844 I11 sVbetty p2845 I13 sVtruth p2846 I83 sVshortage p2847 I15 sVcouncillors p2848 I20 sVbeneath p2849 I48 sVglasses p2850 I25 sVshower p2851 I15 sVdoing p2852 I279 sVstrip p2853 I16 sVsociety p2854 I238 sVbooks p2855 I131 sVstatic p2856 I12 sVthirteen p2857 I22 sVprogrammes p2858 I65 sVsexual p2859 I69 sVwitness p2860 I18 sVmatrix p2861 I14 sV' p2862 I479 sVdismissal p2863 I15 sVwholly p2864 I22 sVmate p2865 I17 sVlecture p2866 I17 sVelectronics p2867 I15 sVintervention p2868 I32 sVref p2869 I39 sVred p2870 I23 sVshut p2871 I47 sVapproached p2872 I29 sVinteractions p2873 I11 sVfrank p2874 I37 sVfourteen p2875 I27 sVban p2876 I24 sVapproaches p2877 I26 sVsurely p2878 I63 sVcollection p2879 I78 sVthrust p2880 I12 sVlikelihood p2881 I12 sVdefining p2882 I10 sVbackwards p2883 I18 sVmainland p2884 I11 sVq.v. p2885 I23 sVcould p2886 I1683 sVarea p2887 I351 sVput p2888 I596 sVnew nop- p2889 I106 sVdavid p2890 I157 sVlength p2891 I72 sVallied p2892 I14 sVqualification p2893 I13 sVremoving p2894 I14 sVdavis p2895 I14 sVretain p2896 I25 sVretail p2897 I20 sVfacilitate p2898 I10 sVstimulate p2899 I10 sVsouth p2900 I165 sVfinest p2901 I18 sVblown p2902 I12 sVthird p2903 I211 sV2,000 p2904 I13 sVscene p2905 I68 sVowned p2906 I36 sVjesus p2907 I55 sVembarrassed p2908 I13 sVimprovements p2909 I24 sVowner p2910 I50 sVhave* p2911 I4735 sVreliable p2912 I22 sVlegislative p2913 I19 sVexplain p2914 I79 sVancient p2915 I50 sVsadly p2916 I19 sVfascinating p2917 I17 sVstart p2918 I85 sVfestival p2919 I31 sVdemonstration p2920 I19 sVsystem p2921 I447 sVintermediate p2922 I13 sVsergeant p2923 I26 sVtravelled p2924 I22 sVpainful p2925 I19 sVinterests p2926 I104 sVenforcement p2927 I13 sVstomach p2928 I30 sVgear p2929 I19 sVcompleted p2930 I55 sVacquire p2931 I20 sVlamont p2932 I12 sVenvironmental p2933 I84 sVdeeply p2934 I37 sVdecisive p2935 I12 sVsteel p2936 I37 sVloved p2937 I46 sVcolleagues p2938 I56 sVsplit p2939 I25 sVbother p2940 I22 sVroberts p2941 I15 sVsweden p2942 I17 sVreproduction p2943 I11 sVlover p2944 I18 sVvisited p2945 I43 sVabolished p2946 I11 sVsteep p2947 I16 sVcollecting p2948 I15 sVimaginative p2949 I10 sVfalse p2950 I36 sVpartnership p2951 I35 sVgently p2952 I40 sVcomfortable p2953 I40 sVtonight p2954 I69 sVgentle p2955 I29 sVunlikely p2956 I56 sVmiserable p2957 I12 sVthroat p2958 I32 sVapparently p2959 I78 sVclearly p2960 I153 sVviewed p2961 I21 sVdocuments p2962 I44 sVdishes p2963 I14 sVstudying p2964 I24 sVgravity p2965 I12 sVparks p2966 I14 sVmix p2967 I12 sVconcerns p2968 I13 sVprovoked p2969 I11 sVlinda p2970 I12 sVkorean p2971 I12 sVsubject p2972 I51 sVlily p2973 I14 sVcompetence p2974 I15 sVaccuracy p2975 I17 sVworldwide p2976 I10 sVbrazil p2977 I17 sVunless p2978 I110 sVmanor p2979 I13 sVshaped p2980 I11 sVcourtesy p2981 I11 sVsaid p2982 I2087 sVeight p2983 I173 sVpreliminary p2984 I18 sVdevice p2985 I29 sVdraws p2986 I11 sVstriker p2987 I13 sVmedal p2988 I11 sVpayment p2989 I54 sVso-called p2990 I27 sVlined p2991 I12 sVenthusiastic p2992 I14 sVinappropriate p2993 I13 sVclive p2994 I10 sVdisease p2995 I89 sVface p2996 I67 sV1,000 p2997 I19 sVmechanical p2998 I20 sVoccasion p2999 I53 sVpainting p3000 I38 sVfact p3001 I374 sVatmosphere p3002 I49 sVselection p3003 I60 sVtext p3004 I77 sVcharles p3005 I91 sVless than* p3006 I40 sVbring p3007 I154 sVmanchester p3008 I50 sVlloyd p3009 I23 sVbedroom p3010 I44 sVportfolio p3011 I16 sVrough p3012 I34 sVmice p3013 I10 sVdecade p3014 I37 sVstaff p3015 I226 sVpause p3016 I16 sVgrabbed p3017 I15 sVknowledge p3018 I146 sVcomfort p3019 I26 sVjaw p3020 I11 sVcontrols p3021 I11 sVshould p3022 I1112 sVbernard p3023 I21 sVplanted p3024 I14 sVtape p3025 I46 sVmolecules p3026 I15 sVriding p3027 I17 sVcommunist p3028 I42 sVhope p3029 I55 sVequilibrium p3030 I17 sVmeant p3031 I113 sVinsight p3032 I14 sVadvisory p3033 I16 sVlistened p3034 I24 sVexceptional p3035 I17 sVbeat p3036 I11 sVfamiliar p3037 I57 sVczechoslovakia p3038 I11 sVlucky p3039 I41 sVbear p3040 I12 sVdivisions p3041 I22 sVbeam p3042 I11 sVexchanges p3043 I11 sVrichards p3044 I11 sVsorts p3045 I30 sVareas p3046 I234 sVsymbols p3047 I13 sVcommittees p3048 I27 sVorgan p3049 I13 sVoffences p3050 I24 sVdenmark p3051 I13 sVrage p3052 I12 sVcomprising p3053 I11 sVtaxes p3054 I28 sVcalling p3055 I41 sVreid p3056 I10 sVstuff p3057 I69 sVpainter p3058 I12 sVfixed p3059 I28 sVgibson p3060 I10 sVstrengthened p3061 I10 sVtemporarily p3062 I13 sVexists p3063 I32 sVframe p3064 I32 sVpacket p3065 I12 sVedition p3066 I25 sVintensity p3067 I16 sVenhanced p3068 I11 sVgreece p3069 I17 sVdiscretion p3070 I19 sVpacked p3071 I18 sVphases p3072 I10 sVwire p3073 I22 sVreform p3074 I54 sVnuclear p3075 I81 sVralph p3076 I12 sVdifficulties p3077 I68 sVroutine p3078 I29 sVprogress p3079 I76 sVboundary p3080 I20 sVemissions p3081 I15 sVindustries p3082 I43 sVends p3083 I15 sVdeliver p3084 I22 sVhistorians p3085 I16 sVconfiguration p3086 I10 sVstaring p3087 I29 sVrestrictions p3088 I27 sVsharply p3089 I25 sVjoke p3090 I21 sVinvited p3091 I42 sVequal p3092 I61 sVdrug p3093 I50 sVtrips p3094 I11 sVetc p3095 I50 sVdoorway p3096 I17 sVfigures p3097 I112 sVbristol p3098 I29 sVpassing p3099 I12 sVheart p3100 I137 sVglorious p3101 I11 sVotherwise p3102 I88 sVcomment p3103 I19 sVadjusted p3104 I11 sVrelevant p3105 I79 sVcm p3106 I21 sVconclude p3107 I15 sVmalcolm p3108 I18 sVcd p3109 I10 sVlaugh p3110 I17 sVcousin p3111 I18 sVallocated p3112 I17 sVwinning p3113 I31 sVearning p3114 I12 sVdebt p3115 I54 sVvideos p3116 I11 sVmidland p3117 I15 sVtremendous p3118 I20 sVcopies p3119 I35 sVgenetic p3120 I18 sVgaze p3121 I21 sViran p3122 I20 sVah p3123 I99 sVindicators p3124 I11 sVcurtain p3125 I14 sVproposal p3126 I42 sVwaste p3127 I14 sVdefine p3128 I24 sVsuggested p3129 I106 sVarises p3130 I18 sVc. p3131 I22 sVessentially p3132 I36 sVneighbour p3133 I18 sVpensioners p3134 I14 sVfinished p3135 I79 sVdeep p3136 I27 sVangles p3137 I13 sVgraphics p3138 I20 sVassessments p3139 I11 sVan p3140 I3430 sVspain p3141 I45 sVhomes p3142 I61 sVholiday p3143 I76 sVcouple p3144 I123 sVimagination p3145 I27 sVplain p3146 I11 sVappearance p3147 I54 sVexamine p3148 I37 sVvalue p3149 I175 sVpromoted p3150 I16 sVuncertainty p3151 I22 sValmost p3152 I316 sVwalks p3153 I12 sVsurprisingly p3154 I26 sVhardware p3155 I21 sVarrangements p3156 I58 sVagainst p3157 I562 sVlifetime p3158 I18 sVclaimed p3159 I83 sVjunction p3160 I18 sVinspector p3161 I29 sVsits p3162 I12 sVproductivity p3163 I20 sVof* p3164 I17 sVadministration p3165 I66 sVhighlighted p3166 I11 sVmatthew p3167 I26 sVfill p3168 I39 sVpaula p3169 I11 sVinjured p3170 I11 sVball p3171 I74 sVnovels p3172 I13 sVend nop- p3173 I12 sVdrink p3174 I32 sVupon p3175 I234 sVv. p3176 I54 sVforehead p3177 I13 sVdust p3178 I26 sVjudgment p3179 I33 sVscholars p3180 I11 sVexpand p3181 I18 sVaudit p3182 I22 sVpriest p3183 I21 sVoff p3184 I214 sVmention p3185 I16 sVnevertheless p3186 I72 sVconfronted p3187 I12 sVcolour p3188 I111 sVthought p3189 I95 sVpatterns p3190 I58 sVcommand p3191 I34 sVsets p3192 I22 sVcomparisons p3193 I13 sVmuscle p3194 I18 sVarising p3195 I22 sVdrawing p3196 I25 sVlatest p3197 I65 sVstores p3198 I23 sVnegligence p3199 I13 sVcoins p3200 I14 sVflesh p3201 I25 sVmoments p3202 I32 sVexecutive p3203 I78 sVdomestic p3204 I69 sVgoing* p3205 I658 sVclinic p3206 I15 sVunderlying p3207 I22 sVrooms p3208 I55 sVseats p3209 I47 sVprotecting p3210 I12 sVpaul p3211 I114 sVgenerous p3212 I23 sVwee p3213 I12 sVfield p3214 I143 sVresidential p3215 I29 sVengage p3216 I12 sVregulatory p3217 I12 sVlake p3218 I39 sVday p3219 I12 sVarrest p3220 I16 sVadd p3221 I82 sVcombine p3222 I16 sVwet p3223 I36 sVpractise p3224 I12 sVought p3225 I61 sVresolved p3226 I21 sVtests p3227 I50 sVincreased p3228 I57 sVarticles p3229 I29 sVchecking p3230 I16 sVchancellor p3231 I37 sVfebruary p3232 I84 sVincreases p3233 I20 sVfive p3234 I407 sVdesk p3235 I45 sVbelgium p3236 I14 sVles* p3237 I13 sVmhm p3238 I75 sVemma p3239 I15 sVlike p3240 I16 sVsuccess p3241 I134 sVchairs p3242 I20 sVsofa p3243 I10 sVtons p3244 I12 sVadmitted p3245 I56 sVozone p3246 I13 sVgarage p3247 I21 sVjournalist p3248 I14 sVwarned p3249 I40 sVbecome p3250 I304 sVworks p3251 I63 sVsoft p3252 I61 sVreplacement p3253 I26 sVamendment p3254 I18 sVgaining p3255 I12 sVclassical p3256 I33 sVauthority p3257 I183 sVhair p3258 I144 sVtony p3259 I50 sVsunderland p3260 I14 sVmiss* p3261 I91 sVconvey p3262 I12 sVrecommendation p3263 I14 sVproper p3264 I65 sVfaint p3265 I15 sVrecognition p3266 I58 sVhappens p3267 I58 sVvocabulary p3268 I12 sVliterally p3269 I20 sVavoid p3270 I80 sVmorris p3271 I18 sVshelter p3272 I14 sVdoes p3273 I687 sVpassion p3274 I23 sVassuming p3275 I19 sVchains p3276 I13 sVmode p3277 I27 sVdeciding p3278 I19 sVbiology p3279 I11 sVblowing p3280 I10 sVproud p3281 I32 sVschedule p3282 I24 sVpressure p3283 I119 sVhost p3284 I27 sValthough p3285 I436 sVaccompanied p3286 I33 sVsnapped p3287 I19 sVloans p3288 I27 sVtrials p3289 I21 sVcounties p3290 I16 sVstage p3291 I162 sVgained p3292 I37 sVsister p3293 I75 sVlifestyle p3294 I11 sVputs p3295 I29 sVshaking p3296 I18 sVwithdrew p3297 I10 sVbasis p3298 I145 sVholdings p3299 I12 sVseeds p3300 I16 sVinsufficient p3301 I13 sVconstraints p3302 I19 sVsoftware p3303 I94 sValliance p3304 I31 sVletters p3305 I79 sVrecognise p3306 I36 sVcatherine p3307 I16 sVcommitment p3308 I57 sVthree p3309 I797 sVassess p3310 I27 sVchronic p3311 I17 sVguard p3312 I25 sVfemale p3313 I21 sVjoyce p3314 I13 sVroads p3315 I39 sVmere p3316 I34 sV1986 p3317 I79 sV1987 p3318 I85 sV1984 p3319 I58 sVprocessor p3320 I15 sVridge p3321 I13 sV1983 p3322 I57 sV1980 p3323 I52 sV1981 p3324 I56 sVhousing p3325 I28 sVoutline p3326 I14 sVspots p3327 I12 sVawarded p3328 I25 sVrecognised p3329 I43 sVfrustration p3330 I14 sVbiggest p3331 I46 sVspecimens p3332 I15 sVnaturally p3333 I43 sVfunction p3334 I78 sVfiscal p3335 I13 sVbuy p3336 I124 sVbus p3337 I54 sVbrand p3338 I13 sVnt p3339 I14 sVpreparations p3340 I10 sVdelivery p3341 I36 sVrepeated p3342 I32 sVconstruction p3343 I63 sVconservative* p3344 I64 sVvaluation p3345 I11 sVentered p3346 I59 sVpartially p3347 I13 sVcount p3348 I21 sVwise p3349 I20 sVglory p3350 I17 sVdangerous p3351 I58 sVofficial p3352 I21 sVsmooth p3353 I28 sVexcitement p3354 I26 sVplaced p3355 I86 sVfrequency p3356 I28 sVonwards p3357 I14 sVfetch p3358 I12 sVdistribution p3359 I63 sVminutes p3360 I183 sVbearing p3361 I22 sVirish p3362 I59 sVrabbits p3363 I10 sVdeaths p3364 I25 sVnurses p3365 I25 sVrecognize p3366 I21 sVcontribute p3367 I27 sVpie p3368 I12 sVpig p3369 I13 sVinn p3370 I15 sVperiods p3371 I40 sVour p3372 I950 sVcommentators p3373 I10 sVshooting p3374 I11 sVpit p3375 I17 sVproceeds p3376 I11 sVinc p3377 I57 sVcompared p3378 I88 sVpicked p3379 I63 sV48 p3380 I15 sVvariety p3381 I87 sV46 p3382 I11 sVcorporation p3383 I35 sV44 p3384 I12 sV45 p3385 I22 sVclaiming p3386 I22 sVforests p3387 I20 sV40 p3388 I57 sV41 p3389 I12 sVdetails p3390 I117 sVnelson p3391 I10 sVrepeat p3392 I27 sVmonday p3393 I53 sVvariation p3394 I27 sVbladder p3395 I10 sVchance p3396 I130 sVcheque p3397 I20 sVchristians p3398 I16 sVexposure p3399 I23 sVghost p3400 I14 sVmozart p3401 I12 sVoral p3402 I21 sVbaker p3403 I20 sVlasted p3404 I14 sVrule p3405 I12 sVlift p3406 I19 sVcompete p3407 I19 sVpension p3408 I45 sVsearched p3409 I11 sVrural p3410 I63 sVaccidents p3411 I20 sVgardens p3412 I37 sVlimited p3413 I40 sVmagnetic p3414 I15 sVcomparatively p3415 I12 sVdesirable p3416 I21 sVfacilities p3417 I75 sVnursery p3418 I18 sVsleep p3419 I37 sVcontroversial p3420 I21 sVclimb p3421 I16 sVoldest p3422 I15 sVintegrity p3423 I15 sVforget p3424 I62 sVrelationships p3425 I60 sVvotes p3426 I31 sVfeeding p3427 I18 sVpointing p3428 I22 sVparis p3429 I61 sVneighbours p3430 I31 sVbike p3431 I18 sVvoted p3432 I23 sVunder p3433 I56 sVpride p3434 I27 sVworth p3435 I21 sVmerchant p3436 I18 sVrisk p3437 I15 sVblanket p3438 I11 sVrise p3439 I34 sVinvisible p3440 I13 sVevery p3441 I401 sVjack p3442 I57 sVencounter p3443 I10 sVchapel p3444 I20 sVtickets p3445 I26 sVbelieved p3446 I82 sVdoubts p3447 I20 sVcause p3448 I58 sVvenue p3449 I12 sVannounced p3450 I105 sVswallowed p3451 I13 sVharriet p3452 I17 sVtriumph p3453 I17 sVenjoy p3454 I66 sVkilometres p3455 I11 sVleaders p3456 I72 sVdisciplines p3457 I11 sVconsistent p3458 I31 sVinvariably p3459 I16 sVestimates p3460 I19 sVdirect p3461 I13 sVsurrounding p3462 I14 sVstreet p3463 I194 sVestimated p3464 I17 sVphoned p3465 I13 sVblue p3466 I12 sVestablished p3467 I20 sVsettlement p3468 I46 sVhide p3469 I23 sVchrist p3470 I47 sVorganisms p3471 I10 sVugly p3472 I14 sVreligious p3473 I66 sVspecification p3474 I13 sVselected p3475 I14 sVsupplied p3476 I33 sVchildren p3477 I466 sVreconstruction p3478 I11 sVconduct p3479 I12 sVsupplier p3480 I14 sVsupplies p3481 I25 sVemily p3482 I20 sVofficially p3483 I18 sVconsisting p3484 I13 sVseeks p3485 I15 sVtold p3486 I372 sVkicked p3487 I16 sVsimultaneously p3488 I18 sVstared p3489 I46 sVhundreds p3490 I40 sVprotection p3491 I80 sVstudio p3492 I76 sVpursuit p3493 I13 sVrepresented p3494 I54 sVpath p3495 I62 sVgrinned p3496 I18 sVcelebration p3497 I12 sVobtained p3498 I63 sVproperty p3499 I125 sVdaughter p3500 I94 sVforum p3501 I18 sVauction p3502 I13 sVitems p3503 I67 sVemployees p3504 I58 sVchanged p3505 I109 sVmuseums p3506 I14 sVanalysts p3507 I11 sVabolition p3508 I12 sVstressed p3509 I22 sVchanges p3510 I183 sVpunishment p3511 I23 sVdiameter p3512 I13 sVprints p3513 I12 sVsecure p3514 I18 sVstraw p3515 I14 sVjulie p3516 I14 sVangrily p3517 I11 sVjulia p3518 I15 sVerected p3519 I10 sVpatience p3520 I12 sVmiddlesbrough p3521 I36 sVopportunities p3522 I58 sVglance p3523 I23 sVtotal p3524 I51 sVsarah p3525 I35 sVplot p3526 I18 sVold-fashioned p3527 I12 sVwould p3528 I2551 sVpalestinian p3529 I10 sVhospital p3530 I151 sVindians p3531 I12 sVnegative p3532 I45 sV1930s p3533 I17 sVasset p3534 I20 sVshed p3535 I12 sVassessment p3536 I67 sVlorry p3537 I13 sVhollywood p3538 I16 sVseparated p3539 I21 sVremark p3540 I12 sVisabel p3541 I13 sVreign p3542 I18 sVaware p3543 I108 sVgrief p3544 I14 sVphone p3545 I14 sVchampionships p3546 I15 sVexcellent p3547 I67 sVyard p3548 I33 sVmust p3549 I723 sVme p3550 I1364 sV1990 p3551 I150 sV1993 p3552 I57 sV1992 p3553 I102 sVjoin p3554 I74 sV1994 p3555 I16 sVshame p3556 I19 sVmm p3557 I17 sVml p3558 I11 sVwork p3559 I260 sVrefusing p3560 I14 sVworn p3561 I19 sVtheories p3562 I37 sVmp p3563 I32 sVms p3564 I17 sVmr p3565 I524 sVelbow p3566 I11 sVerm p3567 I627 sVappraisal p3568 I11 sVshook p3569 I53 sVindicated p3570 I44 sVcited p3571 I14 sVflung p3572 I11 sVindia p3573 I47 sVindicates p3574 I23 sVwoman p3575 I232 sVharold p3576 I12 sVpremium p3577 I12 sVchapman p3578 I11 sVattract p3579 I25 sVguarantee p3580 I14 sVceremony p3581 I18 sVend p3582 I55 sVrecovery p3583 I38 sVkeen p3584 I37 sVinhabitants p3585 I15 sVie p3586 I15 sVreturning p3587 I33 sVvery p3588 I65 sVwriters p3589 I36 sVadjacent p3590 I11 sVboats p3591 I20 sVgate p3592 I35 sVordinary p3593 I68 sVresignation p3594 I22 sVbadly p3595 I43 sVfever p3596 I11 sVdescription p3597 I51 sVmess p3598 I20 sVladder p3599 I13 sVearlier p3600 I70 sVmemorial p3601 I15 sVdemanding p3602 I18 sVcustoms p3603 I23 sVbarriers p3604 I15 sVlay p3605 I92 sVmidlands p3606 I17 sVlaw p3607 I270 sVmeaningful p3608 I10 sVparallel p3609 I11 sVsuspected p3610 I16 sVsplendid p3611 I17 sVamid p3612 I11 sVacknowledged p3613 I19 sVgreek p3614 I29 sVcomplexity p3615 I17 sVdavies p3616 I21 sVultimate p3617 I25 sVparish p3618 I39 sVfan p3619 I15 sVorder p3620 I18 sVexecuted p3621 I13 sVinterpretation p3622 I43 sVoffice p3623 I257 sVconsent p3624 I32 sVover p3625 I18 sVsatisfied p3626 I31 sVlondon p3627 I351 sVoven p3628 I13 sVinnovative p3629 I10 sVhereford p3630 I11 sVmayor p3631 I21 sVexchange p3632 I82 sVsciences p3633 I21 sVimf p3634 I11 sVsomewhere p3635 I70 sVexpectations p3636 I33 sVwriting p3637 I53 sVdestroyed p3638 I31 sVproduction p3639 I156 sV400 p3640 I17 sVharmony p3641 I12 sVeventually p3642 I91 sVcoffee p3643 I67 sVaffected p3644 I54 sVtourist p3645 I20 sVprevented p3646 I19 sVsafe p3647 I66 sVbreak p3648 I36 sVband p3649 I67 sVreaches p3650 I12 sVthey p3651 I4332 sVwashing p3652 I11 sVstrategic p3653 I30 sVtourism p3654 I15 sVbank p3655 I168 sVbread p3656 I38 sVshadows p3657 I15 sVnetherlands p3658 I15 sValex p3659 I19 sVbosnia p3660 I10 sVpotatoes p3661 I16 sVreasonably p3662 I31 sVclassified p3663 I10 sVrocks p3664 I29 sVchoir p3665 I10 sVfilling p3666 I15 sVvictory p3667 I56 sVreasonable p3668 I61 sVeach p3669 I508 sVentitled p3670 I23 sVlifted p3671 I38 sVschemes p3672 I51 sVmeets p3673 I14 sVdiana p3674 I23 sVtrain p3675 I16 sVcrimes p3676 I18 sVapplicable p3677 I14 sVdefences p3678 I11 sVward p3679 I15 sVsaturday p3680 I83 sVt. p3681 I12 sVprecisely p3682 I35 sVnetwork p3683 I72 sVdriving p3684 I13 sVgod p3685 I36 sVcameras p3686 I12 sVdiesel p3687 I13 sVforty p3688 I66 sVvessels p3689 I15 sVlaid p3690 I59 sVdaniel p3691 I15 sVwrite p3692 I109 sVmedicine p3693 I28 sVgot p3694 I932 sVnewly p3695 I27 sVtwenty-five p3696 I12 sVforth p3697 I13 sVindependence p3698 I45 sVprovide p3699 I223 sVbarrier p3700 I16 sVhang p3701 I31 sVfree p3702 I10 sVfred p3703 I21 sVcampaigns p3704 I14 sVgaulle p3705 I10 sVappointments p3706 I15 sVdisputes p3707 I14 sVformation p3708 I40 sVevil p3709 I13 sVwanted p3710 I234 sVwidespread p3711 I32 sVlothian p3712 I11 sVcreated p3713 I85 sVdays p3714 I331 sVpriorities p3715 I20 sVeconomically p3716 I10 sVpence p3717 I13 sVcanterbury p3718 I12 sVincorporated p3719 I19 sVunknown p3720 I43 sVonto p3721 I62 sVgloucester p3722 I32 sVrang p3723 I27 sVappeals p3724 I15 sVkim p3725 I13 sVresearcher p3726 I11 sVi. p3727 I11 sVprimary p3728 I86 sVrank p3729 I18 sVhearing p3730 I23 sVrestrict p3731 I11 sVfantasy p3732 I13 sVphilosophical p3733 I13 sVadopted p3734 I51 sVanother p3735 I581 sVtel p3736 I12 sVthick p3737 I46 sVelectronic p3738 I34 sVillustrate p3739 I16 sVagriculture p3740 I39 sVfence p3741 I17 sVrevival p3742 I12 sVguinness p3743 I13 sVtop p3744 I112 sVneck p3745 I56 sVapproximately p3746 I28 sVfiction p3747 I20 sVcalifornia p3748 I22 sVtoo p3749 I701 sVtom p3750 I55 sVpercentage p3751 I28 sVfarming p3752 I22 sVdogs p3753 I44 sVurban p3754 I54 sVceiling p3755 I23 sVmurder p3756 I54 sVhappily p3757 I18 sVtool p3758 I22 sVserve p3759 I53 sVtook p3760 I391 sVrejected p3761 I39 sVsolicitor p3762 I32 sVguidelines p3763 I23 sVwestern p3764 I99 sVwasted p3765 I10 sVkept p3766 I143 sVmusical p3767 I29 sVcolitis p3768 I10 sVmercy p3769 I11 sVtarget p3770 I65 sVroles p3771 I28 sVscenes p3772 I21 sVtourists p3773 I15 sVclasses p3774 I61 sVflame p3775 I11 sVcabin p3776 I11 sViron p3777 I45 sVbudget p3778 I82 sVsolely p3779 I17 sVminus p3780 I13 sVperspective p3781 I31 sVraf p3782 I19 sVbridge p3783 I58 sVfashion p3784 I45 sVran p3785 I87 sVreturn p3786 I78 sVtalking p3787 I128 sVrat p3788 I11 sVmanner p3789 I61 sV1970 p3790 I26 sVseminar p3791 I12 sVrelatively p3792 I79 sVforced p3793 I74 sVstrength p3794 I72 sVrealm p3795 I11 sV1969 p3796 I20 sV1964 p3797 I18 sV1965 p3798 I16 sVlatter p3799 I78 sV1967 p3800 I21 sV1960 p3801 I15 sVisolated p3802 I12 sVthorough p3803 I11 sVsituated p3804 I20 sVexplanations p3805 I17 sVrome p3806 I34 sVderek p3807 I20 sVforces p3808 I114 sVlaughed p3809 I49 sVeffectiveness p3810 I21 sVexplanation p3811 I47 sVcircles p3812 I17 sVnobody p3813 I62 sVthough p3814 I99 sVbruce p3815 I17 sVcentres p3816 I52 sVwhat p3817 I2493 sVexercised p3818 I15 sVextending p3819 I16 sVinvolving p3820 I43 sVgermany p3821 I106 sVplenty p3822 I46 sVexercises p3823 I16 sVassessed p3824 I22 sVcoin p3825 I12 sS'the' p3826 I61847 sVgrave p3827 I13 sVelections p3828 I59 sVcalculated p3829 I24 sVmetal p3830 I46 sVtreaty p3831 I50 sVleaflet p3832 I12 sVaccounted p3833 I14 sVaunt p3834 I31 sVenterprise p3835 I42 sVchris p3836 I45 sVvoting p3837 I15 sVnotion p3838 I36 sVfitted p3839 I33 sVreserve p3840 I14 sVd. p3841 I15 sVpope p3842 I19 sVreductions p3843 I13 sVlewis p3844 I37 sVsan nop- p3845 I25 sVlabels p3846 I12 sVbrief p3847 I47 sVradio p3848 I87 sVsolutions p3849 I26 sVearth p3850 I97 sVavailability p3851 I19 sVtraditions p3852 I16 sVexecution p3853 I14 sVpolitician p3854 I11 sVjust p3855 I14 sVpeasants p3856 I17 sVimplementation p3857 I28 sVsituations p3858 I39 sVguidance p3859 I32 sVsentence p3860 I58 sVpursuing p3861 I10 sVannounce p3862 I11 sVadequate p3863 I36 sVpersonality p3864 I29 sVcontinuity p3865 I13 sVdo p3866 I2802 sVmixture p3867 I33 sVetc. p3868 I24 sVhostility p3869 I14 sVwatch p3870 I29 sVfluid p3871 I15 sVleisure p3872 I29 sVcriticized p3873 I11 sVwatson p3874 I12 sVdespite p3875 I146 sVreport p3876 I29 sVnasty p3877 I18 sVdu p3878 I12 sVdr p3879 I112 sVtribute p3880 I15 sVhall p3881 I118 sVruns p3882 I13 sVcountries p3883 I168 sVexchanged p3884 I10 sVpublic p3885 I96 sVtwice p3886 I63 sVshots p3887 I18 sVboring p3888 I16 sVidentify p3889 I50 sVimplication p3890 I13 sVsquadron p3891 I13 sVautomatic p3892 I23 sVsteam p3893 I28 sVsecretary p3894 I154 sVobserver p3895 I17 sVhabit p3896 I23 sVw. p3897 I16 sVkinnock p3898 I15 sV1960s p3899 I30 sVresist p3900 I20 sVdepends p3901 I50 sVsubmitted p3902 I22 sVcattle p3903 I26 sVdiscussions p3904 I31 sVdisturbing p3905 I10 sVtechniques p3906 I59 sVcapacity p3907 I59 sVtemptation p3908 I11 sVaway p3909 I120 sVgentleman p3910 I52 sVcompensation p3911 I31 sVbecause* p3912 I852 sVcontinually p3913 I13 sVgrandmother p3914 I14 sVmud p3915 I19 sVcatalogue p3916 I24 sVunable p3917 I64 sVfinger p3918 I32 sVcooperation p3919 I12 sVhopefully p3920 I19 sVmum p3921 I86 sVdrawn p3922 I75 sVapproach p3923 I17 sVdiscovery p3924 I28 sVwe p3925 I3578 sVloose p3926 I26 sVterms p3927 I165 sVloves p3928 I12 sVconfusion p3929 I29 sVhandful p3930 I14 sVweak p3931 I36 sVhowever p3932 I605 sVboss p3933 I32 sVrivers p3934 I20 sVwear p3935 I43 sVtravellers p3936 I16 sVnews p3937 I145 sVpackages p3938 I15 sVholds p3939 I26 sVkitchen p3940 I82 sVfaced p3941 I45 sVreceived p3942 I130 sVprotect p3943 I51 sVaccused p3944 I11 sVcow p3945 I14 sVfavourable p3946 I15 sVfault p3947 I34 sVill p3948 I46 sVmuseum p3949 I68 sVplayers p3950 I82 sVgames p3951 I62 sVbet p3952 I21 sVreceives p3953 I13 sVreceiver p3954 I16 sVrequests p3955 I13 sVexpense p3956 I27 sVregarded p3957 I70 sVnegotiation p3958 I12 sVtough p3959 I32 sVcharacter p3960 I86 sVexcess p3961 I11 sVkaren p3962 I16 sVwider p3963 I49 sVtrust p3964 I28 sVtelecommunications p3965 I13 sVhitler p3966 I17 sVspeak p3967 I94 sVconference p3968 I101 sVbathroom p3969 I25 sVstrong p3970 I160 sVengines p3971 I19 sVcondemned p3972 I14 sVbeen p3973 I2686 sVquickly p3974 I124 sVconfident p3975 I32 sVbeer p3976 I33 sVspread p3977 I17 sVexpected p3978 I21 sVflexible p3979 I24 sVwarmth p3980 I20 sVduties p3981 I39 sVfamilies p3982 I83 sVeasy p3983 I143 sVattacked p3984 I29 sVdrugs p3985 I53 sVconcerning p3986 I31 sVspeeches p3987 I10 sVenterprises p3988 I17 sVcoherent p3989 I11 sVcraft p3990 I20 sVcorruption p3991 I14 sVcatch p3992 I43 sVapplied p3993 I66 sVtide p3994 I18 sVhas p3995 I2593 sVahead p3996 I26 sVpublicly p3997 I16 sVair p3998 I189 sVaim p3999 I14 sVreferendum p4000 I14 sVapplies p4001 I28 sVstopping p4002 I16 sVaid p4003 I78 sVpossess p4004 I15 sVvoice p4005 I74 sVprocedure p4006 I58 sVmistake p4007 I37 sVstretching p4008 I11 sVunfortunate p4009 I16 sVexpenses p4010 I20 sVtissue p4011 I21 sVexperts p4012 I32 sVcomparative p4013 I14 sVcontaining p4014 I41 sVdescent p4015 I11 sVperform p4016 I32 sVsuggest p4017 I89 sVwound p4018 I11 sVbeside p4019 I58 sVcomplex p4020 I23 sVadvances p4021 I12 sVplates p4022 I23 sVseveral p4023 I240 sVwheel p4024 I26 sVindependent p4025 I98 sVsatellite p4026 I17 sVraid p4027 I13 sVwelsh p4028 I37 sVpick p4029 I60 sVrail p4030 I40 sVrain p4031 I62 sVhand p4032 I344 sVpubs p4033 I13 sVproducers p4034 I18 sVcharacters p4035 I39 sVinsisted p4036 I34 sVblamed p4037 I14 sVcycle p4038 I32 sVcentred p4039 I13 sVshortly p4040 I38 sVwhereby p4041 I20 sV1979 p4042 I54 sV1978 p4043 I37 sV1977 p4044 I37 sVcharlie p4045 I28 sVpossessed p4046 I16 sV1974 p4047 I33 sV1973 p4048 I29 sV1972 p4049 I27 sV1971 p4050 I26 sVocean p4051 I20 sVsavings p4052 I31 sVclient p4053 I61 sVgreatest p4054 I51 sVmother p4055 I262 sVhearts p4056 I15 sVjean p4057 I30 sVcamps p4058 I11 sVspencer p4059 I13 sVbackground p4060 I62 sVproposed p4061 I39 sVunemployment p4062 I64 sVphoto p4063 I12 sVnewton p4064 I15 sV43 p4065 I12 sVstarting p4066 I17 sVmid p4067 I15 sVmechanism p4068 I29 sVvictim p4069 I39 sVcampbell p4070 I16 sVadding p4071 I32 sVhills p4072 I31 sVphotographer p4073 I11 sVpassive p4074 I14 sVwright p4075 I20 sVshout p4076 I10 sVbelongs p4077 I12 sVtransformed p4078 I16 sVboard p4079 I134 sVtechnological p4080 I16 sVdisadvantage p4081 I12 sVhumanity p4082 I12 sVgave p4083 I229 sVshoulder p4084 I46 sVdignity p4085 I13 sVbands p4086 I20 sVbreaks p4087 I11 sVsussex p4088 I20 sVarab p4089 I22 sVfusion p4090 I12 sVnewcastle p4091 I27 sVjudge p4092 I20 sVburnt p4093 I10 sVadvanced p4094 I17 sVapart p4095 I35 sVappearing p4096 I14 sVgift p4097 I30 sV55 p4098 I12 sVhunt p4099 I10 sV50 p4100 I67 sVsoap p4101 I13 sVsecurities p4102 I19 sVoffices p4103 I44 sVofficer p4104 I92 sVarbitrary p4105 I11 sVhung p4106 I29 sVsecurity p4107 I138 sVtowards p4108 I286 sV1976 p4109 I36 sVlectures p4110 I15 sVsuccessfully p4111 I34 sVunnecessary p4112 I19 sVborn p4113 I82 sVclubs p4114 I38 sVelection p4115 I98 sVideal p4116 I47 sVescape p4117 I19 sVbore p4118 I12 sV52 p4119 I10 sV1975 p4120 I34 sVici p4121 I14 sVcooper p4122 I12 sVpurple p4123 I11 sVestablish p4124 I53 sVcentre p4125 I230 sVcomments p4126 I41 sVeverything p4127 I187 sVqueen p4128 I77 sVasking p4129 I63 sVdenied p4130 I37 sVbeating p4131 I15 sVchristmas p4132 I88 sVparticipation p4133 I27 sVcore p4134 I34 sVdefend p4135 I21 sVdropped p4136 I57 sVmarketing p4137 I49 sVcorn p4138 I12 sVnight p4139 I365 sVcontest p4140 I14 sVillustration p4141 I12 sVgraduates p4142 I11 sVdiscount p4143 I19 sVplc p4144 I16 sVarchitectural p4145 I12 sVpost p4146 I88 sVproperties p4147 I41 sVtakes p4148 I118 sVtrophy p4149 I13 sVcensus p4150 I10 sVmore than* p4151 I148 sVeat p4152 I75 sVattacks p4153 I31 sVtheirs p4154 I10 sVnewspapers p4155 I35 sVmonths p4156 I248 sVdistinct p4157 I32 sVdinner p4158 I63 sVmisleading p4159 I13 sVensure p4160 I103 sVhorizon p4161 I14 sVsteadily p4162 I17 sVefforts p4163 I56 sVwiped p4164 I12 sVconsiderations p4165 I24 sVprimitive p4166 I17 sVaha p4167 I26 sVdilemma p4168 I11 sVcivic p4169 I10 sVcivil p4170 I87 sVpays p4171 I15 sVprisoners p4172 I30 sVprofession p4173 I31 sVbound p4174 I47 sVbath p4175 I12 sVaccommodate p4176 I14 sVprisoner p4177 I17 sVworking-class p4178 I19 sVcoastal p4179 I14 sVformidable p4180 I11 sVbalanced p4181 I11 sVdean p4182 I18 sVrounds p4183 I12 sVstrangely p4184 I10 sVexisted p4185 I25 sVrely p4186 I27 sVdeal p4187 I67 sVsally p4188 I15 sVlegislation p4189 I70 sVdiseases p4190 I18 sVclass p4191 I181 sVstuck p4192 I13 sVaccordingly p4193 I23 sVclinical p4194 I30 sVway p4195 I958 sVcrews p4196 I11 sVresearchers p4197 I25 sVwas p4198 I9236 sVwar p4199 I279 sVsynthesis p4200 I12 sVlowest p4201 I17 sVhead p4202 I13 sVwashed p4203 I19 sVamateur p4204 I12 sVdeaf p4205 I27 sVbecoming p4206 I71 sVdifferences p4207 I78 sVpp. p4208 I55 sVpayable p4209 I17 sVheat p4210 I54 sVneedles p4211 I11 sVhear p4212 I137 sVdead p4213 I114 sVsolar p4214 I13 sVsustained p4215 I12 sVremoved p4216 I59 sVtrue p4217 I181 sVabsent p4218 I15 sVthrow p4219 I31 sVresponding p4220 I11 sVflavour p4221 I15 sVslope p4222 I14 sVversions p4223 I24 sVmaximum p4224 I16 sVcrystal p4225 I15 sVsides p4226 I63 sVemotional p4227 I36 sVheaded p4228 I27 sVpromises p4229 I10 sVgather p4230 I16 sVmoore p4231 I19 sVcomputing p4232 I19 sVfury p4233 I11 sVstronger p4234 I26 sVabstract p4235 I19 sVevidence p4236 I215 sVguessed p4237 I12 sVexpertise p4238 I26 sVpromised p4239 I39 sVprayer p4240 I21 sVrequest p4241 I38 sVtrip p4242 I45 sVconstructed p4243 I25 sVlooked p4244 I352 sVgreater nop- p4245 I13 sVfaithful p4246 I10 sVdying p4247 I11 sVno p4248 I17 sVwhereas p4249 I62 sVstake p4250 I19 sVwhen p4251 I431 sVreality p4252 I65 sVtim p4253 I34 sVtin p4254 I20 sVinterested p4255 I88 sVholding p4256 I72 sVpapers p4257 I64 sVtest p4258 I28 sVtie p4259 I10 sVunwilling p4260 I10 sVshort-term p4261 I17 sVerosion p4262 I12 sVscored p4263 I28 sVpicture p4264 I105 sVbrothers p4265 I36 sVo'clock p4266 I47 sVwelcome p4267 I10 sVconvincing p4268 I12 sVpolite p4269 I12 sVlet's p4270 I84 sVrising p4271 I11 sVscores p4272 I17 sVdischarge p4273 I11 sVyounger p4274 I53 sVregime p4275 I35 sVfaster p4276 I12 sVnormally p4277 I83 sVinterval p4278 I14 sVmodules p4279 I27 sVtogether p4280 I308 sVbeds p4281 I21 sVloyal p4282 I14 sVvietnam p4283 I18 sVreception p4284 I24 sVremarked p4285 I17 sVserious p4286 I124 sVsongs p4287 I29 sVconcept p4288 I64 sVremarkable p4289 I35 sVambulance p4290 I17 sVdance p4291 I14 sVrob p4292 I12 sVvarying p4293 I13 sValternatives p4294 I17 sVfocus p4295 I21 sVleads p4296 I37 sVroy p4297 I18 sVdelays p4298 I11 sVice p4299 I40 sVgrateful p4300 I27 sVbattle p4301 I63 sVremarkably p4302 I15 sVrow p4303 I48 sVlayers p4304 I14 sVcertainly p4305 I186 sV1949 p4306 I10 sVzone p4307 I26 sVdominated p4308 I27 sVgraph p4309 I10 sV1940 p4310 I12 sV1946 p4311 I10 sV1947 p4312 I12 sV1944 p4313 I11 sVpassage p4314 I40 sVenvironment p4315 I130 sVcharge p4316 I14 sVfog p4317 I10 sVpermanently p4318 I12 sVrhythm p4319 I15 sVterror p4320 I15 sVsing p4321 I21 sVshakespeare p4322 I19 sVconservation p4323 I14 sVdivision p4324 I90 sVsupported p4325 I56 sVfederation p4326 I22 sVadvantage p4327 I73 sVnone p4328 I84 sVchoosing p4329 I17 sVliability p4330 I39 sVanonymous p4331 I12 sVentries p4332 I18 sVcook p4333 I15 sVtrouble p4334 I89 sV1968 p4335 I24 sVcool p4336 I31 sVperceived p4337 I17 sVsighed p4338 I21 sVimpressive p4339 I30 sVpoliceman p4340 I21 sVturns p4341 I32 sVposts p4342 I22 sVgun p4343 I35 sVstandards p4344 I96 sVrivals p4345 I15 sVp p4346 I10 sVrecall p4347 I25 sVquick p4348 I58 sVguy p4349 I18 sVparked p4350 I13 sVupper p4351 I54 sVmilton p4352 I15 sVbrave p4353 I17 sVsays p4354 I398 sVtrend p4355 I26 sVdiscover p4356 I33 sVd p4357 I12 sVinland p4358 I12 sVcolin p4359 I25 sVcost p4360 I57 sVtrent p4361 I11 sVbacteria p4362 I13 sVdrinks p4363 I21 sVappear p4364 I109 sVcomparable p4365 I19 sVassistance p4366 I43 sVexclude p4367 I13 sVshares p4368 I79 sVuniform p4369 I11 sVgoes p4370 I148 sVshared p4371 I15 sVprincipal p4372 I40 sVsatisfy p4373 I20 sVsupporting p4374 I11 sVken p4375 I30 sVexplosion p4376 I17 sVmorgan p4377 I18 sVconfirmation p4378 I12 sVgenes p4379 I21 sVcos* p4380 I163 sVwater p4381 I349 sVabandon p4382 I12 sVtwentieth p4383 I18 sVgroups p4384 I193 sVdisappeared p4385 I33 sVappears p4386 I77 sVchange p4387 I119 sVsending p4388 I26 sVdec p4389 I16 sVflames p4390 I13 sVhealthy p4391 I36 sVpublisher p4392 I15 sVdublin p4393 I23 sVsixties p4394 I14 sVtrial p4395 I65 sVusually p4396 I191 sVcorp p4397 I52 sVweird p4398 I11 sVhistory p4399 I193 sVpurchaser p4400 I18 sVchurchill p4401 I14 sVretired p4402 I11 sVhumour p4403 I22 sVextra p4404 I92 sVmarked p4405 I21 sV1966 p4406 I17 sVkeeper p4407 I14 sVdurham p4408 I25 sVpreventing p4409 I12 sV1st p4410 I13 sVshelley p4411 I11 sVcrisis p4412 I59 sVmarket p4413 I11 sVrussell p4414 I21 sVprove p4415 I57 sVathens p4416 I11 sVangela p4417 I11 sVpermitted p4418 I21 sVstored p4419 I19 sVterritories p4420 I14 sVlive p4421 I29 sVandy p4422 I28 sVmemory p4423 I76 sVaustralian p4424 I24 sVtoday p4425 I263 sVchapter p4426 I149 sVentrance p4427 I31 sVsessions p4428 I21 sVclub p4429 I164 sVshare p4430 I54 sVenvelope p4431 I14 sVclue p4432 I11 sVemployee p4433 I31 sVcommissioned p4434 I14 sVhesitated p4435 I15 sVcases p4436 I183 sVorganizations p4437 I30 sVca~ p4438 I318 sVcar p4439 I278 sVcap p4440 I20 sVmodified p4441 I12 sVcat p4442 I39 sVdistricts p4443 I18 sVincidents p4444 I15 sVcan p4445 I2354 sVkeynes p4446 I10 sVcab p4447 I15 sVlaughter p4448 I22 sVsocial p4449 I422 sVregularly p4450 I39 sVdedicated p4451 I12 sVnursing p4452 I12 sVfigure p4453 I170 sV1962 p4454 I14 sVrecalled p4455 I18 sVdecember p4456 I94 sVchip p4457 I18 sV1980s p4458 I38 sVheard p4459 I202 sVstroke p4460 I13 sVchin p4461 I16 sVperformed p4462 I39 sVphrase p4463 I30 sVhandle p4464 I12 sVclothing p4465 I21 sVserum p4466 I13 sVparliamentary p4467 I43 sVproductive p4468 I14 sVrequirements p4469 I60 sVinheritance p4470 I12 sVfortunately p4471 I16 sVrobinson p4472 I16 sVdiscussion p4473 I85 sVbonds p4474 I19 sV1 p4475 I385 sVplaintiff p4476 I30 sVvital p4477 I51 sVcriterion p4478 I13 sVfourth p4479 I61 sVplus p4480 I70 sVspeaks p4481 I14 sVdominance p4482 I11 sVeconomy p4483 I105 sVarmies p4484 I10 sVproduct p4485 I111 sVinformation p4486 I386 sVuse p4487 I310 sVsouthern p4488 I55 sVneeds p4489 I97 sVmotorway p4490 I12 sVcrashed p4491 I13 sVproduce p4492 I110 sVislands p4493 I36 sVrepresentations p4494 I14 sVheroes p4495 I11 sVeighth p4496 I13 sVlifting p4497 I10 sVclassroom p4498 I23 sVtories p4499 I20 sVbranches p4500 I32 sVremember p4501 I191 sVsucceeded p4502 I26 sVwhenever p4503 I32 sVfutures p4504 I14 sVexplicit p4505 I19 sVinform p4506 I15 sVgap p4507 I34 sVrepresentation p4508 I37 sVtypical p4509 I49 sVexclusive p4510 I21 sVno. p4511 I33 sVserving p4512 I25 sVcorrelation p4513 I14 sVindeed p4514 I188 sVmidnight p4515 I19 sVbrain p4516 I47 sVstatistical p4517 I21 sVmanagers p4518 I58 sVcold p4519 I23 sVstill p4520 I29 sVworship p4521 I13 sVblocked p4522 I13 sVacknowledge p4523 I15 sVprocedures p4524 I53 sVorganisation p4525 I83 sVpresence p4526 I80 sVforms p4527 I18 sVplatform p4528 I26 sVwindow p4529 I106 sVoffers p4530 I13 sVfarmer p4531 I22 sVipswich p4532 I12 sVnorway p4533 I15 sVstruggling p4534 I16 sVcorrespondence p4535 I15 sVlonely p4536 I18 sVhalt p4537 I12 sVobtaining p4538 I16 sVevolution p4539 I25 sVintroduce p4540 I35 sVdelighted p4541 I26 sVunderneath p4542 I10 sV1991 p4543 I128 sV1957 p4544 I12 sV1956 p4545 I11 sV1951 p4546 I10 sV1950 p4547 I13 sV1953 p4548 I10 sVhalf p4549 I16 sVnot p4550 I4626 sVfeature p4551 I54 sVnow p4552 I1382 sVprovision p4553 I87 sV1958 p4554 I11 sVnor p4555 I124 sVterm p4556 I123 sVentity p4557 I12 sVequality p4558 I15 sVname p4559 I13 sVlies p4560 I12 sVservant p4561 I18 sVjanuary p4562 I102 sVdrop p4563 I22 sVredundancy p4564 I11 sVacademy p4565 I14 sVpossibilities p4566 I25 sVrealistic p4567 I19 sVussr p4568 I17 sVrangers p4569 I12 sVrealise p4570 I39 sVshy p4571 I11 sVentirely p4572 I69 sVindividually p4573 I11 sVdomain p4574 I17 sVeh p4575 I35 sVchallenged p4576 I16 sVed p4577 I11 sVeg p4578 I18 sVyeah p4579 I834 sVhurried p4580 I12 sVchallenges p4581 I11 sVelectorate p4582 I11 sVfires p4583 I12 sVcatching p4584 I13 sVbegun p4585 I42 sVyear p4586 I737 sVet p4587 I30 sVhappen p4588 I88 sVavoided p4589 I22 sVadequately p4590 I11 sVintended p4591 I70 sValbum p4592 I22 sVshown p4593 I150 sVopened p4594 I115 sVspace p4595 I125 sVprofit p4596 I56 sVfrightened p4597 I21 sVfurthermore p4598 I29 sVfactory p4599 I46 sVincrease p4600 I73 sVattracted p4601 I28 sVkent p4602 I26 sVchurches p4603 I35 sVreceiving p4604 I29 sVshows p4605 I18 sVeagle p4606 I13 sVattended p4607 I35 sVtheory p4608 I131 sVet al. p4609 I12 sVhull p4610 I11 sVcontain p4611 I45 sVadvantages p4612 I29 sVcarl p4613 I11 sVobligation p4614 I22 sVmarine p4615 I20 sVaccommodation p4616 I44 sVcard p4617 I57 sVcare p4618 I51 sVpartner p4619 I49 sVteachers p4620 I116 sVimpose p4621 I19 sVbritish p4622 I357 sVhonest p4623 I30 sVmotion p4624 I46 sVturn p4625 I81 sVplace p4626 I43 sVswing p4627 I12 sVpromotion p4628 I33 sVwidow p4629 I16 sVchildhood p4630 I28 sVadventure p4631 I15 sVorigin p4632 I29 sVromania p4633 I12 sVinitial p4634 I62 sVsurviving p4635 I12 sVrevenue p4636 I41 sVomitted p4637 I11 sVvariables p4638 I22 sVwaves p4639 I27 sVsymbolic p4640 I14 sVyourself p4641 I107 sVsunlight p4642 I13 sVdirectly p4643 I88 sVimpossible p4644 I71 sVmessage p4645 I70 sVfight p4646 I29 sVgeorge p4647 I111 sV'em p4648 I16 sVsize p4649 I127 sVsheep p4650 I30 sVsheer p4651 I21 sVian p4652 I53 sVsheet p4653 I42 sVsilent p4654 I38 sVdistrict p4655 I75 sVvirgin p4656 I15 sVcaught p4657 I86 sVbreed p4658 I12 sVeurope p4659 I181 sVanderson p4660 I15 sVplastic p4661 I41 sVhouseholds p4662 I18 sVreturns p4663 I12 sVfought p4664 I30 sVtragic p4665 I12 sVconvention p4666 I35 sVlegally p4667 I12 sVwhite p4668 I12 sVnational p4669 I376 sVfriend p4670 I164 sVgives p4671 I104 sVexploring p4672 I10 sVmostly p4673 I39 sVcope p4674 I40 sVseason p4675 I109 sVtaxation p4676 I25 sValan p4677 I52 sVhut p4678 I12 sVreleased p4679 I50 sVcopy p4680 I51 sVholder p4681 I29 sVappreciated p4682 I15 sVspecify p4683 I13 sVpopulation p4684 I132 sVwide p4685 I113 sVtelevision p4686 I100 sVunfortunately p4687 I47 sVcrack p4688 I12 sVrequire p4689 I69 sVdiplomatic p4690 I20 sVtransferred p4691 I31 sVr p4692 I12 sVaesthetic p4693 I12 sVcards p4694 I39 sVoutcome p4695 I37 sVpublished p4696 I98 sVand p4697 I26817 sVinvestors p4698 I27 sVanc p4699 I10 sVcraig p4700 I13 sVann p4701 I19 sVpremier p4702 I17 sVovernight p4703 I12 sValready p4704 I343 sVmedium p4705 I24 sVrent p4706 I28 sVanger p4707 I33 sVbreakfast p4708 I44 sVrecover p4709 I20 sVany p4710 I20 sVprosperity p4711 I11 sVconversion p4712 I21 sVcorbett p4713 I15 sVform p4714 I79 sVmanufacturers p4715 I28 sVideas p4716 I111 sVequipment p4717 I89 sVmr. p4718 I148 sVattempted p4719 I27 sVobjective p4720 I17 sVstrengths p4721 I11 sVbegin p4722 I75 sVsure p4723 I240 sVmultiple p4724 I22 sVfate p4725 I22 sVprice p4726 I170 sVneatly p4727 I13 sVfalls p4728 I22 sVvisitors p4729 I48 sVimportantly p4730 I13 sVsuccessive p4731 I19 sVcleared p4732 I27 sVforever p4733 I18 sVsouth-east p4734 I13 sVbishops p4735 I12 sVconsidered p4736 I134 sVdream p4737 I38 sVuses p4738 I18 sVlater p4739 I78 sVimplications p4740 I45 sVhungry p4741 I19 sVmrs p4742 I198 sVpattern p4743 I91 sVuncle p4744 I35 sVsenior p4745 I82 sVtypically p4746 I21 sVquantity p4747 I24 sVdetective p4748 I18 sVleicester p4749 I19 sVgerman p4750 I16 sVworkshops p4751 I14 sVallegations p4752 I18 sVfifty p4753 I86 sVdiscovered p4754 I64 sVadviser p4755 I15 sVlaunched p4756 I45 sVcomplaints p4757 I27 sVsuperb p4758 I21 sVfifth p4759 I35 sVgeography p4760 I16 sVratio p4761 I29 sVgulf p4762 I24 sVtitle p4763 I97 sVnodded p4764 I51 sVproportion p4765 I63 sVwritten p4766 I33 sVcrime p4767 I72 sVhierarchy p4768 I17 sVonly p4769 I231 sVwood p4770 I22 sVbelieving p4771 I14 sVessence p4772 I18 sVthompson p4773 I14 sVimprove p4774 I62 sVwool p4775 I18 sVcorrectly p4776 I19 sVjazz p4777 I10 sVexpectation p4778 I13 sVtruly p4779 I32 sVhonours p4780 I14 sVtrade p4781 I191 sVcelebrate p4782 I14 sVclosure p4783 I19 sVreveal p4784 I27 sVregarding p4785 I20 sVleather p4786 I26 sVseldom p4787 I15 sVnaked p4788 I20 sVjokes p4789 I11 sVembassy p4790 I13 sVpredicted p4791 I16 sVthrough p4792 I95 sVtent p4793 I12 sVdiscussing p4794 I20 sVhusband p4795 I112 sVignored p4796 I32 sVconcert p4797 I19 sVburst p4798 I19 sVphysically p4799 I20 sVcommitted p4800 I46 sVnicholson p4801 I11 sVconversations p4802 I10 sVconnections p4803 I21 sVelected p4804 I45 sVnamely p4805 I22 sVactively p4806 I15 sVcollege p4807 I102 sVparking p4808 I15 sVstanley p4809 I14 sVsport p4810 I45 sVencouraged p4811 I46 sVsurfaces p4812 I14 sVfails p4813 I19 sVdetect p4814 I13 sVvoluntary p4815 I39 sVmortgage p4816 I29 sVfarmers p4817 I50 sVfederal p4818 I38 sVsubsequent p4819 I43 sVreview p4820 I17 sVlexical p4821 I11 sVdefinite p4822 I16 sVcommitments p4823 I13 sVweapons p4824 I40 sVnorth-west p4825 I10 sVoutside p4826 I37 sVbetween p4827 I903 sVjustified p4828 I20 sVarrival p4829 I34 sVnotice p4830 I36 sVrumours p4831 I13 sVfilter p4832 I15 sVflow p4833 I45 sVguitar p4834 I27 sVunusually p4835 I10 sV20 p4836 I131 sVcities p4837 I44 sVcome p4838 I695 sVreaction p4839 I56 sVstages p4840 I41 sVinstallation p4841 I13 sVefficiency p4842 I37 sVregion p4843 I99 sVpriests p4844 I12 sVquiet p4845 I62 sVcontract p4846 I114 sVtemper p4847 I12 sVenabling p4848 I14 sVnineteenth-century p4849 I10 sVrailway p4850 I73 sVcomes p4851 I160 sVnearby p4852 I14 sVduty p4853 I81 sVpakistan p4854 I18 sVafterwards p4855 I46 sV150 p4856 I18 sVpot p4857 I19 sVcolony p4858 I11 sVperiod p4859 I243 sVinsist p4860 I16 sVresentment p4861 I10 sV60 p4862 I41 sVexploit p4863 I12 sVscheduled p4864 I14 sVconfirmed p4865 I48 sVlearning p4866 I38 sVwound* p4867 I10 sVmoreover p4868 I43 sVbizarre p4869 I11 sVpoll p4870 I28 sVnoisy p4871 I10 sVturkey p4872 I16 sVsave p4873 I67 sVoliver p4874 I23 sVhoward p4875 I27 sV50% p4876 I11 sVinformed p4877 I33 sVterritorial p4878 I12 sVtropical p4879 I18 sVpeaceful p4880 I17 sVhelicopter p4881 I11 sVhardly p4882 I88 sV500 p4883 I23 sVengine p4884 I50 sVdirection p4885 I87 sVindirect p4886 I16 sVandrew p4887 I45 sVwounds p4888 I10 sVobservers p4889 I14 sVminister p4890 I237 sVinstant p4891 I12 sVcareful p4892 I52 sVirrelevant p4893 I14 sVchampions p4894 I15 sVpilot p4895 I31 sVcase p4896 I431 sVmyself p4897 I125 sVdeveloping p4898 I31 sVthese p4899 I1254 sVmount p4900 I11 sVcash p4901 I82 sVarnold p4902 I10 sVtrick p4903 I14 sVcast p4904 I30 sVtransactions p4905 I21 sVfreely p4906 I16 sVshops p4907 I52 sVconverted p4908 I20 sVtaking p4909 I218 sVdatabases p4910 I10 sVorientation p4911 I11 sVcoupled p4912 I12 sVsoil p4913 I41 sVtelephone p4914 I14 sVcommander p4915 I20 sVcouples p4916 I16 sVbias p4917 I14 sVattributed p4918 I16 sVheels p4919 I12 sVkenya p4920 I10 sVworry p4921 I47 sValright* p4922 I40 sVdevelop p4923 I86 sVvivid p4924 I10 sVcontents p4925 I30 sVauthor p4926 I43 sVmedia p4927 I80 sVgranted p4928 I46 sVreminded p4929 I24 sVangeles nop- p4930 I11 sVgentlemen p4931 I15 sVya p4932 I14 sVinquiry p4933 I35 sVshit p4934 I19 sVreminder p4935 I10 sVphysical p4936 I95 sVevents p4937 I105 sVweek p4938 I322 sVnoble p4939 I13 sVfinish p4940 I16 sVcenturies p4941 I36 sVenjoyment p4942 I10 sVnest p4943 I13 sVrefusal p4944 I19 sVdriver p4945 I54 sVdriven p4946 I30 sVpersons p4947 I40 sVstatutory p4948 I37 sVmarxist p4949 I12 sVarose p4950 I16 sVchanging p4951 I24 sVanticipated p4952 I11 sVtradition p4953 I51 sVreference p4954 I77 sVcomplained p4955 I19 sVmodes p4956 I12 sVsnow p4957 I30 sVcharges p4958 I60 sVconstitutional p4959 I31 sVobservations p4960 I22 sVbreeze p4961 I14 sVrelief p4962 I66 sVcomponents p4963 I32 sVrelied p4964 I13 sVinability p4965 I11 sVmodel p4966 I130 sVreward p4967 I17 sVbodies p4968 I70 sVjustify p4969 I21 sVtaxi p4970 I19 sVam* p4971 I10 sVtip p4972 I20 sVactions p4973 I48 sVfoot p4974 I73 sVviolent p4975 I28 sVkill p4976 I46 sVhanded p4977 I36 sVtouch p4978 I26 sVpolish p4979 I15 sVspeed p4980 I70 sVcaptured p4981 I17 sVblow p4982 I13 sVannouncement p4983 I24 sVdeath p4984 I205 sVfeminist p4985 I14 sVthinking p4986 I43 sVrose p4987 I25 sVseems p4988 I212 sVexcept p4989 I20 sVimprovement p4990 I42 sVverse p4991 I14 sVsetting p4992 I30 sVtreatment p4993 I122 sVsamples p4994 I27 sVthoughts p4995 I47 sVrepublic p4996 I43 sVstruck p4997 I42 sVross p4998 I19 sVstyles p4999 I20 sVspectacular p5000 I19 sVdesperately p5001 I20 sVread p5002 I225 sVoffence p5003 I37 sVspecimen p5004 I11 sVvirginia p5005 I12 sVearly p5006 I76 sVinflation p5007 I45 sVlistening p5008 I34 sVconfined p5009 I22 sVusing p5010 I247 sVaccepted p5011 I10 sVlady p5012 I97 sVvanished p5013 I11 sVrear p5014 I11 sVfurniture p5015 I35 sVacute p5016 I23 sVfortune p5017 I21 sVkennedy p5018 I13 sVphotographs p5019 I33 sVpatrick p5020 I30 sVcollective p5021 I24 sVpregnant p5022 I22 sVtend p5023 I62 sVmiracle p5024 I11 sVannually p5025 I11 sVbenefit p5026 I30 sVfully p5027 I89 sVoutput p5028 I58 sVtower p5029 I34 sVattempting p5030 I24 sVtwelve p5031 I66 sVjewellery p5032 I13 sVexposed p5033 I20 sVdaddy p5034 I22 sVcompetition p5035 I94 sVeddie p5036 I12 sVtable p5037 I201 sVduration p5038 I18 sVintend p5039 I21 sVquestionnaire p5040 I12 sVintact p5041 I12 sVprovided p5042 I30 sVmood p5043 I33 sVeleanor p5044 I12 sVrecorded p5045 I57 sVlegal p5046 I131 sVmoon p5047 I29 sVhandicap p5048 I13 sVdeficit p5049 I23 sVprovides p5050 I84 sVwillie p5051 I13 sVfootball p5052 I67 sVassembly p5053 I54 sVbusiness p5054 I358 sVliquid p5055 I12 sVsixth p5056 I25 sVnails p5057 I13 sVcommunicate p5058 I15 sV1936 p5059 I10 sVsixty p5060 I43 sV1939 p5061 I13 sVfrancis p5062 I25 sVdon p5063 I13 sVbrighton p5064 I15 sVon p5065 I14 sVresponsibilities p5066 I29 sVok p5067 I11 sVoh p5068 I684 sVof p5069 I310 sVdiscussed p5070 I70 sVideology p5071 I21 sVconvenient p5072 I20 sV'd p5073 I315 sVstand p5074 I19 sVdiscrimination p5075 I20 sVconcentrations p5076 I21 sVintent p5077 I12 sVgregory p5078 I10 sVor p5079 I3707 sVladies p5080 I33 sVcambridge p5081 I36 sVprotests p5082 I12 sVinclusion p5083 I12 sVcommunication p5084 I61 sVauthorities p5085 I130 sVinvolvement p5086 I42 sVdetermine p5087 I39 sVgary p5088 I24 sVoperator p5089 I15 sVnowadays p5090 I16 sVyour p5091 I1383 sVupstairs p5092 I25 sVlog p5093 I11 sVprepare p5094 I30 sVtutor p5095 I11 sVassumed p5096 I42 sVstrictly p5097 I20 sVthere p5098 I746 sVracism p5099 I11 sVchristianity p5100 I18 sVstrict p5101 I21 sVpoured p5102 I18 sVlow p5103 I158 sVstars p5104 I39 sVsubjective p5105 I12 sVcultures p5106 I16 sVsomerset p5107 I13 sVvalley p5108 I44 sVenergy p5109 I122 sVassumes p5110 I10 sVtreat p5111 I30 sVjones p5112 I46 sVregard p5113 I17 sVdelayed p5114 I14 sVamongst p5115 I45 sVcabinet p5116 I65 sVtwo-thirds p5117 I12 sVcottage p5118 I32 sVtrying p5119 I185 sVlonger p5120 I33 sVhire p5121 I10 sVfraud p5122 I18 sVapplying p5123 I20 sVcirculation p5124 I15 sVflats p5125 I19 sVgrass p5126 I41 sVbeliefs p5127 I24 sVstrongly p5128 I46 sVtoilet p5129 I15 sVtaylor p5130 I36 sV600 p5131 I11 sVcinema p5132 I19 sVtaste p5133 I34 sVyacht p5134 I10 sVpole p5135 I13 sVdescribe p5136 I43 sVmoved p5137 I146 sVsales p5138 I104 sVbritain p5139 I251 sVsenses p5140 I16 sVphotography p5141 I11 sVgoverned p5142 I10 sVcorresponding p5143 I14 sVmoves p5144 I16 sVhospitals p5145 I29 sVbishop p5146 I18 sVhit p5147 I11 sVreceive p5148 I75 sVdeserve p5149 I13 sVstorage p5150 I30 sVgreen p5151 I17 sVrubber p5152 I11 sVroses p5153 I15 sVthat p5154 I46 sVvalid p5155 I23 sV5 p5156 I176 sVevenings p5157 I15 sVmathematics p5158 I20 sVyou p5159 I6954 sVforcing p5160 I14 sVpoor p5161 I151 sVrequested p5162 I15 sVbriefly p5163 I33 sVchampionship p5164 I34 sVseparate p5165 I15 sVsymbol p5166 I18 sVteeth p5167 I47 sVincludes p5168 I68 sVlovers p5169 I12 sVpeak p5170 I28 sVsuited p5171 I15 sVincluded p5172 I123 sVbrass p5173 I15 sVstocks p5174 I16 sVpool p5175 I45 sVmissed p5176 I41 sVbuilding p5177 I28 sVbulk p5178 I20 sVbooked p5179 I12 sVcalls p5180 I30 sVwife p5181 I171 sVcontrolled p5182 I10 sVinvest p5183 I16 sVodds p5184 I15 sVcurve p5185 I25 sVdirectors p5186 I43 sVrestored p5187 I18 sVdirectory p5188 I15 sVoverseas p5189 I12 sVstrings p5190 I14 sVall p5191 I193 sVsince p5192 I29 sVsemantic p5193 I13 sVlace p5194 I12 sVchinese p5195 I40 sVali p5196 I13 sVclauses p5197 I13 sVlack p5198 I10 sVmonth p5199 I150 sVblanche p5200 I11 sVceased p5201 I15 sVdisc p5202 I16 sVpublish p5203 I13 sVsmoking p5204 I11 sVdish p5205 I16 sVfollow p5206 I94 sVdisk p5207 I26 sVdecisions p5208 I75 sVcarpet p5209 I24 sVdreadful p5210 I14 sVapartment p5211 I13 sVreferring p5212 I18 sVcliff p5213 I11 sVsubjected p5214 I13 sVswitched p5215 I20 sVprovisions p5216 I41 sVacting p5217 I41 sVthursday p5218 I37 sVremoval p5219 I21 sVprogram p5220 I39 sVdepending p5221 I23 sVsustain p5222 I13 sVpresentation p5223 I32 sVtraditionally p5224 I21 sVactivities p5225 I116 sVbelonging p5226 I14 sVglobal p5227 I36 sVincorporate p5228 I11 sVworse p5229 I65 sVconfidential p5230 I11 sVsong p5231 I40 sVfar p5232 I11 sVrod p5233 I14 sVhorror p5234 I21 sVfat p5235 I18 sVcoloured p5236 I19 sVsons p5237 I35 sVworst p5238 I46 sVmps p5239 I26 sVdecide p5240 I67 sVpolytechnic p5241 I12 sVawful p5242 I31 sVlaser p5243 I10 sVticket p5244 I22 sVenter p5245 I53 sVtreating p5246 I13 sVthemes p5247 I16 sVheaven p5248 I24 sVstimulus p5249 I15 sVlouis p5250 I21 sVlist p5251 I118 sVmanager p5252 I138 sVgrandfather p5253 I15 sVrandom p5254 I18 sVlisa p5255 I13 sVsmith p5256 I79 sVprogramme p5257 I190 sVrats p5258 I14 sVten p5259 I203 sVtea p5260 I86 sVstreets p5261 I49 sVted p5262 I11 sVrobyn p5263 I12 sVgorbachev p5264 I17 sVrate p5265 I189 sVinvention p5266 I11 sVdesign p5267 I119 sVcoverage p5268 I22 sVmill p5269 I33 sVconscience p5270 I14 sVtrustees p5271 I12 sVsue p5272 I16 sVdarkness p5273 I34 sVconsumers p5274 I23 sVwitnessed p5275 I11 sVsun p5276 I115 sVsum p5277 I41 sVdirt p5278 I10 sVanniversary p5279 I21 sVemotions p5280 I19 sVmilk p5281 I48 sVwitnesses p5282 I16 sVversion p5283 I81 sVattitudes p5284 I48 sVlearned p5285 I46 sVracing p5286 I23 sVguns p5287 I20 sVdevoted p5288 I12 sVtoes p5289 I10 sVchristian p5290 I62 sVestate p5291 I54 sVresponded p5292 I22 sV1948 p5293 I13 sVanswers p5294 I32 sVbehaviour p5295 I123 sVtracks p5296 I19 sVselective p5297 I13 sVleeds p5298 I48 sVwill p5299 I14 sVrelaxation p5300 I12 sVdirections p5301 I22 sViraq p5302 I32 sVequations p5303 I11 sVtragedy p5304 I18 sVdining p5305 I16 sVnaval p5306 I15 sVconviction p5307 I21 sVextraordinary p5308 I29 sVinspired p5309 I16 sVlosses p5310 I38 sVallows p5311 I41 sVfired p5312 I20 sVsoldier p5313 I18 sVamount p5314 I146 sVadvertising p5315 I41 sVreal p5316 I227 sVoptions p5317 I38 sVtrainer p5318 I10 sVcup p5319 I122 sVfamily p5320 I345 sVsuddenly p5321 I118 sVrequiring p5322 I18 sVthatcher p5323 I34 sVtexts p5324 I23 sVaimed p5325 I36 sVtrained p5326 I30 sVtoys p5327 I12 sVactress p5328 I11 sV1945 p5329 I18 sVseventeenth p5330 I12 sVconventional p5331 I39 sVproceed p5332 I21 sVanswered p5333 I38 sVcontains p5334 I46 sVsilently p5335 I12 sVtaken p5336 I355 sVpromoting p5337 I15 sVchicken p5338 I20 sVinjury p5339 I46 sVmarkets p5340 I59 sVwealthy p5341 I14 sVminor p5342 I47 sVhorses p5343 I49 sVflat p5344 I37 sVisrael p5345 I32 sVknows p5346 I84 sVincentive p5347 I13 sVoperators p5348 I15 sVowners p5349 I38 sVsite p5350 I97 sVexcuse p5351 I14 sVflag p5352 I15 sVbasically p5353 I31 sVbroke p5354 I52 sVknown p5355 I20 sVbenefits p5356 I74 sVfactories p5357 I17 sVproducing p5358 I40 sVsuffered p5359 I54 sVglad p5360 I41 sVhelped p5361 I76 sVdebates p5362 I12 sVequation p5363 I25 sVpolicemen p5364 I12 sVcoalition p5365 I24 sVplea p5366 I12 sVnine p5367 I136 sVbudgets p5368 I13 sVgreeted p5369 I14 sVv p5370 I10 sVaudiences p5371 I10 sVspontaneous p5372 I10 sVoptimistic p5373 I12 sVembarrassing p5374 I11 sVbrown p5375 I38 sVpushed p5376 I50 sVprotective p5377 I13 sVarise p5378 I33 sVcows p5379 I12 sVpond p5380 I17 sVswung p5381 I18 sVspecies p5382 I96 sVf. p5383 I11 sVfirmly p5384 I40 sVinfluenced p5385 I26 sVbeef p5386 I15 sVcourt p5387 I285 sVgoal p5388 I59 sVrather p5389 I169 sVclarke p5390 I20 sVbreaking p5391 I30 sVliaison p5392 I10 sVstayed p5393 I44 sVoccasionally p5394 I40 sVinfluences p5395 I14 sVreject p5396 I15 sVexpecting p5397 I21 sVignore p5398 I25 sVexplains p5399 I25 sVokay p5400 I17 sVtried p5401 I150 sVderived p5402 I33 sVreflect p5403 I38 sVfa p5404 I15 sVtries p5405 I15 sVlighting p5406 I17 sVseemingly p5407 I12 sVinvasion p5408 I19 sVhorizontal p5409 I12 sVconcentrating p5410 I12 sVcompulsory p5411 I17 sVa p5412 I10 sVshort p5413 I177 sVsusan p5414 I21 sVdot p5415 I11 sVquoted p5416 I24 sVdocumentation p5417 I12 sVdeparture p5418 I23 sVsupervision p5419 I17 sVshore p5420 I15 sVshade p5421 I14 sVbanks p5422 I66 sVegg p5423 I25 sVturnover p5424 I29 sVhelp p5425 I107 sVseptember p5426 I104 sVdeveloped p5427 I15 sVflowers p5428 I54 sVsoon p5429 I161 sVmucosa p5430 I10 sVdisabled p5431 I31 sVheld p5432 I276 sVscientist p5433 I20 sVdarlington p5434 I56 sV~no* p5435 I19 sVhell p5436 I54 sVavenue p5437 I16 sVstyle p5438 I107 sVforwards p5439 I13 sVseverely p5440 I18 sVpray p5441 I14 sVfined p5442 I11 sVreluctance p5443 I10 sVabbey p5444 I19 sVactually p5445 I260 sVresort p5446 I19 sVabsence p5447 I58 sVstrange p5448 I64 sVsystems p5449 I173 sVrelate p5450 I26 sVstephen p5451 I49 sVmounted p5452 I17 sVsoccer p5453 I13 sVmight p5454 I614 sValter p5455 I19 sVpost-war p5456 I16 sVfool p5457 I15 sVevening p5458 I138 sVsomebody p5459 I73 sVcalm p5460 I12 sVthan p5461 I1033 sVfood p5462 I190 sVye p5463 I15 sVreflected p5464 I38 sVframework p5465 I39 sVcommunities p5466 I41 sVclouds p5467 I16 sVbigger p5468 I36 sVinstructions p5469 I36 sVmarcus p5470 I11 sVoccasions p5471 I39 sVdelicate p5472 I18 sVpresented p5473 I80 sVlabour* p5474 I131 sVstopped p5475 I96 sVletting p5476 I22 sVinherent p5477 I13 sVtelegraph p5478 I12 sVfriendship p5479 I20 sVreferred p5480 I62 sVheavy p5481 I94 sVneil p5482 I31 sVweight p5483 I85 sVgeneration p5484 I49 sVfees p5485 I29 sVused p5486 I45 sVbrother p5487 I85 sVexpect p5488 I106 sVundertake p5489 I17 sVvon nop- p5490 I10 sVorganised p5491 I32 sVbeyond p5492 I12 sVevent p5493 I104 sVmist p5494 I11 sValcohol p5495 I30 sVwondered p5496 I48 sVitem p5497 I38 sVrobert p5498 I79 sVsurrounded p5499 I24 sVtemporary p5500 I38 sVdouglas p5501 I24 sVtrusts p5502 I14 sVhealth p5503 I246 sVhill p5504 I14 sV7 p5505 I107 sVinduced p5506 I12 sVissue p5507 I16 sVbenjamin p5508 I17 sVreporting p5509 I12 sVnorwich p5510 I15 sVfriday p5511 I55 sVforgive p5512 I14 sVpub p5513 I38 sVlesser p5514 I18 sVhouses p5515 I96 sVreason p5516 I181 sVbase p5517 I86 sVorganising p5518 I10 sVask p5519 I194 sVdeputies p5520 I12 sVteach p5521 I28 sVearliest p5522 I18 sVgenerate p5523 I20 sVthrown p5524 I30 sVlaunch p5525 I13 sVterrible p5526 I47 sVterribly p5527 I13 sVamerican p5528 I157 sVprejudice p5529 I11 sVcircuit p5530 I26 sVtwenty p5531 I156 sVconsequence p5532 I34 sVfallen p5533 I36 sVst. p5534 I17 sVfeed p5535 I24 sVprobability p5536 I16 sVfeel p5537 I256 sVradical p5538 I37 sVsydney p5539 I10 sVolympic p5540 I13 sVfancy p5541 I12 sVlinking p5542 I12 sVfeet p5543 I141 sVsympathy p5544 I22 sVrevolution p5545 I47 sVconstruct p5546 I13 sVblank p5547 I15 sVnorth-east p5548 I17 sVmiss p5549 I35 sVvilla p5550 I17 sVpasses p5551 I13 sVstory p5552 I137 sVtemperature p5553 I44 sVscript p5554 I12 sVleading p5555 I52 sVinterviews p5556 I24 sVstrategy p5557 I62 sVstation p5558 I100 sVidentity p5559 I40 sVstorm p5560 I23 sVdealing p5561 I53 sVhundred p5562 I191 sVrecovered p5563 I22 sVshifted p5564 I14 sVselling p5565 I12 sVstatement p5566 I98 sVpump p5567 I10 sVrelieved p5568 I12 sVexploded p5569 I10 sVbowel p5570 I12 sVhotel p5571 I114 sVcorrespondent p5572 I20 sVjordan p5573 I14 sVauthors p5574 I25 sVtranslation p5575 I15 sVconvinced p5576 I25 sV1914 p5577 I11 sVking p5578 I16 sVkind p5579 I14 sVscheme p5580 I119 sVdouble p5581 I11 sVinstruction p5582 I23 sVgrey p5583 I48 sVaims p5584 I17 sVbride p5585 I11 sVvenice p5586 I10 sVarchitect p5587 I16 sVstore p5588 I36 sVtoward p5589 I13 sVweapon p5590 I20 sVsentenced p5591 I12 sVcharlotte p5592 I16 sVmotivation p5593 I15 sVoutstanding p5594 I30 sVstrengthen p5595 I12 sVimports p5596 I19 sVsuspicious p5597 I14 sVjuice p5598 I17 sVsubstantial p5599 I62 sValike p5600 I12 sVsentences p5601 I29 sVgall p5602 I10 sVmy p5603 I1525 sVconcentration p5604 I39 sVorgans p5605 I10 sVvulnerable p5606 I25 sVoption p5607 I54 sVlid p5608 I11 sVlie p5609 I43 sVwilson p5610 I40 sVnights p5611 I28 sVcheck p5612 I18 sVtrapped p5613 I15 sVscotland p5614 I131 sVofficers p5615 I89 sVport p5616 I30 sVlit p5617 I23 sVlip p5618 I16 sVuseless p5619 I13 sVfinding p5620 I12 sVliz p5621 I17 sVfailing p5622 I21 sVexperienced p5623 I21 sVno one* p5624 I81 sVreckon p5625 I21 sVquote p5626 I10 sVenglish p5627 I81 sVreach p5628 I13 sVarchitects p5629 I11 sVreact p5630 I13 sVcigarette p5631 I23 sV75 p5632 I17 sVexperiences p5633 I34 sVeaten p5634 I17 sV70 p5635 I26 sVnothing p5636 I341 sValpha p5637 I11 sVmeasured p5638 I30 sVapproved p5639 I39 sVachievement p5640 I31 sVconstitution p5641 I40 sVsalary p5642 I20 sVmineral p5643 I12 sVmobile p5644 I14 sVsoviet p5645 I109 sVclear p5646 I24 sVpopularity p5647 I14 sVdiffer p5648 I18 sVtraditional p5649 I99 sVpart-time p5650 I20 sVclean p5651 I16 sVron p5652 I13 sVusual p5653 I64 sVphysics p5654 I19 sVinstitutions p5655 I65 sVlying p5656 I46 sVsurrey p5657 I16 sVmexico p5658 I16 sVphenomenon p5659 I22 sVglanced p5660 I30 sVfond p5661 I12 sVcarrie p5662 I12 sVcompletion p5663 I25 sVnorthern p5664 I66 sVduncan p5665 I15 sVjustice p5666 I67 sVless p5667 I101 sVpenalty p5668 I27 sVflights p5669 I12 sVpretty p5670 I28 sVcircle p5671 I34 sVdarwin p5672 I11 sVhip p5673 I10 sVhis p5674 I4285 sVpublicity p5675 I25 sVgains p5676 I21 sVhiv p5677 I16 sVmeanwhile p5678 I48 sVtrees p5679 I83 sVfamous p5680 I65 sVfeels p5681 I33 sVgrew p5682 I46 sVreply p5683 I13 sVduring p5684 I440 sVhim p5685 I1649 sValexander p5686 I26 sVappeal p5687 I19 sVinvestigate p5688 I24 sVinterim p5689 I17 sVgloves p5690 I10 sVactivity p5691 I115 sVswitzerland p5692 I15 sVcreates p5693 I14 sVemployer p5694 I30 sVwrote p5695 I99 sVseventeen p5696 I18 sVart p5697 I153 sVdetail p5698 I61 sVskills p5699 I91 sVmaurice p5700 I10 sVthrowing p5701 I18 sVintelligence p5702 I35 sVenjoyed p5703 I51 sVculture p5704 I86 sVbare p5705 I22 sVdescriptions p5706 I15 sVclose p5707 I11 sVarm p5708 I91 sVdeclined p5709 I21 sVbarn p5710 I13 sVyouth p5711 I54 sVwo~ p5712 I161 sVthreats p5713 I14 sVprobable p5714 I12 sVdistinctive p5715 I22 sVuser p5716 I60 sVlibraries p5717 I22 sVunions p5718 I45 sVwon p5719 I117 sVvarious p5720 I155 sVguardian p5721 I21 sVcontrary p5722 I13 sVnumerous p5723 I32 sVclerk p5724 I19 sVrisks p5725 I25 sVkorea p5726 I19 sVrecently p5727 I123 sVcreating p5728 I35 sVunconscious p5729 I12 sVmissing p5730 I15 sVinitially p5731 I38 sVsold p5732 I84 sVsole p5733 I22 sVsucceed p5734 I21 sVopposition p5735 I91 sVcompetent p5736 I12 sVbronze p5737 I15 sVabruptly p5738 I12 sVboth p5739 I310 sVc p5740 I19 sVsecrets p5741 I14 sVsensitive p5742 I36 sVroman p5743 I44 sVbecame p5744 I223 sVannie p5745 I11 sVforgotten p5746 I38 sVbond p5747 I10 sVfinds p5748 I29 sVexperimental p5749 I24 sValbeit p5750 I14 sVmillions p5751 I27 sVliked p5752 I56 sVdistress p5753 I15 sVlarge-scale p5754 I11 sVbattery p5755 I13 sVsweet p5756 I33 sVwhatever p5757 I132 sVlikes p5758 I21 sVvillage p5759 I109 sVvessel p5760 I14 sVbench p5761 I20 sVmission p5762 I27 sVswindon p5763 I21 sVdecline p5764 I41 sVarsenal p5765 I12 sVincomes p5766 I15 sVstamp p5767 I11 sVdamp p5768 I18 sVpolitical p5769 I306 sVdue p5770 I75 sVteacher p5771 I87 sVpc p5772 I23 sVreduction p5773 I48 sVdescribes p5774 I26 sVmaintenance p5775 I40 sVmake-up p5776 I13 sVcollected p5777 I33 sVextends p5778 I10 sVbrick p5779 I18 sVterritory p5780 I31 sVempty p5781 I54 sVpm p5782 I11 sVdialogue p5783 I17 sValongside p5784 I29 sVpartly p5785 I57 sV1950s p5786 I20 sVboy p5787 I133 sVages p5788 I36 sVcitizen p5789 I14 sVprecision p5790 I12 sVelse p5791 I209 sVanthony p5792 I24 sVdetermination p5793 I28 sVliver p5794 I17 sVdemand p5795 I21 sVcustomers p5796 I68 sVsurveys p5797 I19 sVduke p5798 I33 sVplants p5799 I72 sVstolen p5800 I19 sVconception p5801 I19 sVthirty p5802 I92 sVfrozen p5803 I11 sVsocialist p5804 I33 sVgovernor p5805 I23 sVrope p5806 I16 sVinstitute p5807 I53 sVwhile p5808 I63 sVsocialism p5809 I17 sVmatch p5810 I27 sVfleet p5811 I19 sVp. p5812 I14 sVguide p5813 I12 sVengineers p5814 I25 sVmiles p5815 I98 sVunderground p5816 I11 sVcostly p5817 I11 sVvoters p5818 I20 sVguilty p5819 I42 sVcleaned p5820 I11 sVready p5821 I102 sVrid p5822 I26 sVkings p5823 I15 sVlengthy p5824 I12 sVshirt p5825 I28 sVjames p5826 I102 sVlengths p5827 I13 sVgovernment p5828 I622 sVinteraction p5829 I23 sVdelicious p5830 I11 sVwidely p5831 I56 sVpeoples p5832 I15 sV9 p5833 I80 sVadvise p5834 I20 sVcomposition p5835 I23 sVdaughters p5836 I21 sVhigher p5837 I156 sVliterature p5838 I52 sVlawyers p5839 I24 sVperception p5840 I22 sVbonus p5841 I14 sVrestraint p5842 I11 sVgallery p5843 I43 sVnegotiate p5844 I13 sVholidays p5845 I28 sVflown p5846 I11 sVmoving p5847 I89 sVcleaning p5848 I12 sVyeltsin p5849 I12 sVundoubtedly p5850 I24 sVlower p5851 I111 sVolder p5852 I90 sVpoland p5853 I21 sVcheek p5854 I19 sVanybody p5855 I50 sVanalysis p5856 I132 sVtheology p5857 I11 sVnonetheless p5858 I13 sVedge p5859 I75 sVmachinery p5860 I24 sVsept. p5861 I30 sVstating p5862 I10 sVambassador p5863 I11 sVcave p5864 I11 sVemerge p5865 I21 sVsettlements p5866 I13 sVcompetitive p5867 I37 sVquarters p5868 I18 sVintervals p5869 I16 sVquestions p5870 I143 sVuseful p5871 I101 sVprince p5872 I59 sVprofitable p5873 I14 sVtables p5874 I29 sVretirement p5875 I34 sVmajority p5876 I100 sVinformal p5877 I24 sVadvisers p5878 I18 sVworkers p5879 I147 sVpercent p5880 I29 sVguaranteed p5881 I13 sVexclusively p5882 I17 sVpressing p5883 I14 sVexhibition p5884 I54 sVtransformation p5885 I17 sVchairman p5886 I112 sVassociations p5887 I20 sVcomplaint p5888 I18 sVvendor p5889 I15 sVlacking p5890 I15 sVevaluate p5891 I11 sVshowing p5892 I63 sVgame p5893 I150 sVwings p5894 I24 sVsubmission p5895 I11 sVsincerely p5896 I11 sVsignal p5897 I28 sVchristine p5898 I11 sVshapes p5899 I19 sVcollect p5900 I28 sVarthur p5901 I28 sVtranslated p5902 I12 sVessential p5903 I87 sVeec p5904 I12 sVmathematical p5905 I13 sVparade p5906 I10 sVfucking p5907 I12 sVfathers p5908 I12 sVcreation p5909 I47 sVsome p5910 I1712 sVmetres p5911 I34 sVunderstood p5912 I57 sVtrends p5913 I21 sVadded p5914 I15 sVloads p5915 I15 sVelectric p5916 I34 sVdelivered p5917 I31 sVgradually p5918 I37 sVrarely p5919 I42 sVdescribing p5920 I19 sVabsolutely p5921 I58 sVseller p5922 I19 sVinnovation p5923 I17 sVanne p5924 I44 sVheadmaster p5925 I12 sVanna p5926 I28 sVeverybody p5927 I61 sVmeasures p5928 I65 sVeating p5929 I13 sVbooklet p5930 I10 sVmartin p5931 I53 sVlakes p5932 I12 sVrefused p5933 I63 sVstep p5934 I16 sVboxes p5935 I27 sVnerves p5936 I12 sVintense p5937 I23 sVhandled p5938 I16 sVfaith p5939 I52 sVcautious p5940 I11 sVaye p5941 I52 sVrange p5942 I196 sVpains p5943 I11 sVeconomic p5944 I236 sVsponsored p5945 I11 sVhatred p5946 I11 sVitalian p5947 I40 sVsilence p5948 I56 sVdisclosure p5949 I10 sVphrases p5950 I13 sVwithin p5951 I13 sVnonsense p5952 I16 sVseasons p5953 I12 sVsports p5954 I44 sValison p5955 I14 sVcanal p5956 I21 sVimpressed p5957 I16 sVtenth p5958 I11 sVrows p5959 I20 sVcomputer p5960 I138 sVrenewal p5961 I11 sVplacing p5962 I14 sVquestion p5963 I15 sVfast p5964 I31 sVaccountability p5965 I12 sVconsultation p5966 I24 sVheritage p5967 I20 sVprey p5968 I16 sVsections p5969 I46 sVbelonged p5970 I16 sVvienna p5971 I13 sVfiles p5972 I29 sVmountains p5973 I28 sVhimself p5974 I311 sVdownstairs p5975 I17 sVregistered p5976 I14 sVways p5977 I149 sVvideo-taped p5978 I38 sVcloth p5979 I20 sVproperly p5980 I57 sVrepeatedly p5981 I13 sVrussian p5982 I52 sVinjection p5983 I10 sVjunior p5984 I28 sVraising p5985 I25 sVdealers p5986 I18 sVconsist p5987 I12 sVcharacteristic p5988 I13 sVdaylight p5989 I10 sVlifespan p5990 I37 sVlords p5991 I15 sVwindows p5992 I88 sVperformances p5993 I16 sVsimilar p5994 I184 sVcalled p5995 I329 sVinch p5996 I18 sVassociated p5997 I19 sVworthwhile p5998 I15 sVstick p5999 I19 sVcommissioner p6000 I15 sVmetals p6001 I10 sVwarning p6002 I39 sVrally p6003 I13 sVgraham p6004 I42 sVarchbishop p6005 I16 sVcotton p6006 I22 sVlemon p6007 I12 sVtone p6008 I42 sVobjection p6009 I13 sVpeace p6010 I89 sVfears p6011 I29 sVbacks p6012 I12 sVteams p6013 I39 sVnick p6014 I28 sVpoliticians p6015 I33 sVelectrical p6016 I23 sVtransport p6017 I82 sVincome p6018 I120 sVdepartment p6019 I177 sVnice p6020 I129 sVwished p6021 I37 sVdraw p6022 I14 sVcurriculum p6023 I53 sVusers p6024 I65 sVreportedly p6025 I15 sVproblems p6026 I275 sVbreasts p6027 I13 sVvisits p6028 I28 sVwilliam p6029 I84 sVgenerated p6030 I25 sVrested p6031 I11 sVallowing p6032 I43 sVsmiled p6033 I76 sVchocolate p6034 I21 sVstructure p6035 I137 sVindependently p6036 I14 sVmargins p6037 I12 sVpractically p6038 I14 sVrequired p6039 I20 sVdepartments p6040 I42 sVmicrosoft p6041 I20 sVdepth p6042 I30 sVneighbouring p6043 I14 sVthames p6044 I18 sVnarrative p6045 I11 sVrigid p6046 I14 sVrequires p6047 I53 sVsounded p6048 I30 sVonce p6049 I24 sVstones p6050 I33 sVissued p6051 I56 sVresistance p6052 I37 sVsteve p6053 I43 sVfarms p6054 I18 sVproposition p6055 I14 sVgang p6056 I15 sVwinds p6057 I14 sVparticularly p6058 I220 sVadjustment p6059 I14 sVcontributions p6060 I28 sVkate p6061 I24 sVissues p6062 I121 sVcompact p6063 I14 sVsimon p6064 I43 sVdisposal p6065 I21 sVlanguages p6066 I34 sVtopic p6067 I24 sVexcluded p6068 I23 sVstable p6069 I31 sVbreach p6070 I31 sVinclude p6071 I152 sVdramatically p6072 I15 sVbreathing p6073 I14 sVseized p6074 I17 sVtribunal p6075 I16 sVequivalent p6076 I19 sVminers p6077 I18 sVwave p6078 I32 sVwishes p6079 I15 sVtelling p6080 I58 sVg. p6081 I15 sVdrinking p6082 I15 sVibm p6083 I48 sVstiff p6084 I15 sVgender p6085 I20 sVnotes p6086 I57 sVtokyo p6087 I11 sVmichael p6088 I95 sVleader p6089 I93 sVdeals p6090 I12 sVverdict p6091 I14 sVleaning p6092 I14 sVdealt p6093 I35 sVrelation p6094 I28 sVinspection p6095 I20 sVnoted p6096 I61 sVconcluded p6097 I31 sVsmaller p6098 I73 sVcarter p6099 I13 sVdonald p6100 I16 sVsensation p6101 I14 sVboots p6102 I26 sVjump p6103 I16 sVnoise p6104 I47 sVgo p6105 I21 sVacid p6106 I49 sV× p6107 I16 sVmakers p6108 I14 sVfolk p6109 I21 sVuniversities p6110 I27 sVplays p6111 I12 sVpaintings p6112 I33 sVconcessions p6113 I11 sVcolonel p6114 I19 sVslight p6115 I30 sVnetworks p6116 I19 sVgen. p6117 I11 sVwaiting p6118 I10 sVexperiment p6119 I27 sVpoles p6120 I13 sVcapital p6121 I133 sVcollins p6122 I11 sVnicholas p6123 I24 sVchose p6124 I28 sVdegree p6125 I100 sVpushing p6126 I23 sVcommercial p6127 I79 sVmonetary p6128 I28 sVyoungest p6129 I12 sVgrowing p6130 I35 sVexplore p6131 I23 sVfocused p6132 I17 sVseparation p6133 I19 sVferry p6134 I11 sVconvert p6135 I11 sVparameters p6136 I11 sV1961 p6137 I14 sVlarger p6138 I76 sVmurdered p6139 I14 sVleaving p6140 I96 sVsuggests p6141 I67 sVproducts p6142 I106 sVgene p6143 I21 sVsalvation p6144 I11 sVexamining p6145 I15 sVexaminations p6146 I14 sVapple p6147 I27 sVclark p6148 I17 sVdeputy p6149 I39 sVegypt p6150 I22 sVwin p6151 I22 sVworthy p6152 I13 sVaustria p6153 I13 sVallies p6154 I16 sVmotor p6155 I42 sVduck p6156 I12 sVapply p6157 I79 sVsinging p6158 I21 sVcloud p6159 I21 sVfed p6160 I22 sVfee p6161 I29 sVfrom p6162 I4134 sVstream p6163 I25 sVconsumption p6164 I33 sV& p6165 I136 sVremains p6166 I15 sVmanagement p6167 I218 sVnormal p6168 I124 sVfew p6169 I450 sVcamera p6170 I27 sVexamination p6171 I48 sVbitterly p6172 I11 sVtimetable p6173 I11 sVmeans p6174 I96 sVpanel p6175 I37 sVsubsidies p6176 I11 sVreflects p6177 I22 sVcheeks p6178 I16 sVpossession p6179 I29 sVbureaucracy p6180 I13 sVclever p6181 I24 sVformally p6182 I22 sVjournalists p6183 I18 sVstarted p6184 I175 sVbecomes p6185 I77 sVinclined p6186 I13 sVvol. p6187 I10 sVabout p6188 I447 sVinfection p6189 I27 sVcharming p6190 I14 sVrabbit p6191 I14 sVactual p6192 I68 sVappointed p6193 I61 sVwomen p6194 I399 sVpaused p6195 I25 sVsalad p6196 I11 sVsanctions p6197 I13 sVgovernments p6198 I47 sVcritic p6199 I12 sVrecession p6200 I38 sVanywhere p6201 I41 sVcrossed p6202 I31 sVservants p6203 I30 sVfreedom p6204 I61 sVmeet p6205 I141 sVcertainty p6206 I14 sVproof p6207 I27 sVcontrol p6208 I53 sVtap p6209 I12 sVlinks p6210 I35 sVcalculation p6211 I11 sVtax p6212 I156 sVescaped p6213 I19 sVassumptions p6214 I25 sVpulling p6215 I24 sVsomething p6216 I526 sVsought p6217 I53 sVwonderful p6218 I49 sVskirt p6219 I14 sVrape p6220 I19 sVdominant p6221 I30 sVsir p6222 I188 sVunited p6223 I12 sVsyndrome p6224 I12 sVsit p6225 I86 sVhydrogen p6226 I12 sVsix p6227 I303 sVpoetry p6228 I29 sVfortunate p6229 I13 sVtraders p6230 I12 sVbrian p6231 I45 sVinstead p6232 I72 sVstruggled p6233 I14 sVpanic p6234 I17 sVsin p6235 I13 sVcircular p6236 I13 sVtension p6237 I33 sVcupboard p6238 I14 sVattend p6239 I36 sVfarm p6240 I68 sV3 p6241 I250 sVabuse p6242 I34 sVwrist p6243 I11 sVethnic p6244 I23 sVengineering p6245 I51 sVstatus p6246 I88 sVintroduced p6247 I86 sVtiles p6248 I12 sVlight p6249 I62 sVinterrupted p6250 I14 sVshoulders p6251 I42 sVclaire p6252 I11 sVhonestly p6253 I14 sVagenda p6254 I24 sVexecutives p6255 I13 sVsecured p6256 I19 sVbreast p6257 I17 sVtheft p6258 I17 sVpiece p6259 I92 sVinterpreted p6260 I21 sVwhilst p6261 I58 sVincluding p6262 I11 sVlooks p6263 I13 sVmentioned p6264 I70 sVsuperior p6265 I20 sVblake p6266 I11 sVouter p6267 I24 sVexclusion p6268 I15 sVpaths p6269 I14 sVmasses p6270 I13 sVships p6271 I27 sVpreviously p6272 I69 sVpermanent p6273 I45 sVbutton p6274 I16 sVorange p6275 I13 sVcovered p6276 I79 sVbye p6277 I17 sVcrowds p6278 I13 sVcrash p6279 I21 sVsword p6280 I15 sVorthodox p6281 I12 sVflour p6282 I10 sVpractice p6283 I171 sVflew p6284 I23 sVemphasised p6285 I12 sVferguson p6286 I10 sVambition p6287 I13 sVfront p6288 I69 sVrepublican p6289 I12 sVfled p6290 I14 sVsuccessor p6291 I14 sVworlds p6292 I10 sVmasters p6293 I18 sVprofound p6294 I14 sVuniversity p6295 I164 sVbilly p6296 I22 sVtrap p6297 I13 sVinterview p6298 I43 sVh. p6299 I17 sVbills p6300 I30 sVtray p6301 I14 sVcommonwealth p6302 I18 sVprivatisation p6303 I13 sVmap p6304 I40 sVartists p6305 I40 sVrelated p6306 I30 sVconstitute p6307 I16 sVdoubled p6308 I12 sVmeasure p6309 I18 sVsuite p6310 I13 sVrelates p6311 I15 sV80 p6312 I26 sVarray p6313 I11 sVspecial p6314 I220 sVout p6315 I491 sVcategory p6316 I33 sVrespects p6317 I15 sVblues p6318 I12 sVentertainment p6319 I20 sVoccupied p6320 I26 sVchaos p6321 I16 sVmay p6322 I150 sVreputation p6323 I37 sVutility p6324 I10 sVsupports p6325 I14 sVintegrated p6326 I17 sVachievements p6327 I15 sVfun p6328 I17 sValleged p6329 I13 sVdictionary p6330 I19 sVwines p6331 I11 sVeighty p6332 I38 sVwithdrawal p6333 I20 sVdelegates p6334 I16 sVattending p6335 I18 sVcompletely p6336 I86 sV1985 p6337 I74 sVyork p6338 I99 sVconservatives p6339 I23 sVconflicts p6340 I15 sV1982 p6341 I52 sVphilip p6342 I40 sVprincess p6343 I29 sVtenant p6344 I26 sVorganic p6345 I21 sVhostile p6346 I16 sVislamic p6347 I13 sVdetermining p6348 I13 sVroute p6349 I56 sVrushed p6350 I15 sVtimes p6351 I292 sVconversation p6352 I55 sVbirthday p6353 I32 sVltd p6354 I51 sVhence p6355 I48 sVrestaurants p6356 I16 sVvegetables p6357 I18 sVdevon p6358 I13 sVdesigned p6359 I100 sVassignment p6360 I12 sVprospective p6361 I13 sVevans p6362 I19 sVpowerful p6363 I72 sVbars p6364 I24 sVhitherto p6365 I16 sVimproving p6366 I16 sVchoose p6367 I68 sV1988 p6368 I103 sVequity p6369 I20 sV1989 p6370 I134 sVquality p6371 I163 sVhiding p6372 I12 sVbe* p6373 I6644 sVlong p6374 I181 sVpublication p6375 I37 sVpractitioners p6376 I20 sVprivacy p6377 I11 sVguys p6378 I12 sVachieved p6379 I79 sVaccent p6380 I14 sVrelations p6381 I112 sVpriority p6382 I34 sVtheir p6383 I2608 sVattack p6384 I18 sVwithout p6385 I456 sVwrapped p6386 I17 sVperfectly p6387 I44 sVfinal p6388 I28 sVshell p6389 I20 sVshelf p6390 I14 sVreversed p6391 I11 sVshallow p6392 I14 sVdebate p6393 I70 sVcultural p6394 I65 sVlists p6395 I22 sVisraeli p6396 I15 sVchemicals p6397 I22 sVreflecting p6398 I15 sVjuly p6399 I119 sVoverwhelming p6400 I14 sVherself p6401 I172 sVinstitution p6402 I49 sVblind p6403 I26 sVwaist p6404 I14 sVphotograph p6405 I25 sVben p6406 I32 sVholland p6407 I16 sVisolation p6408 I19 sVgeoff p6409 I12 sVbed p6410 I159 sVtommy p6411 I12 sVclaim p6412 I47 sVclaudia p6413 I11 sVpatients p6414 I173 sVproviding p6415 I69 sVsculpture p6416 I13 sVdistinguished p6417 I12 sVcreditors p6418 I12 sVare p6419 I4707 sVdrunk p6420 I16 sVlightly p6421 I20 sVunchanged p6422 I11 sVportrait p6423 I17 sVneed p6424 I169 sVborder p6425 I40 sVlinked p6426 I40 sVcatholic p6427 I32 sVbastard p6428 I14 sVafraid p6429 I60 sVangle p6430 I24 sVpupils p6431 I81 sVrussians p6432 I13 sVpursued p6433 I15 sVagency p6434 I59 sVable p6435 I304 sVcontact p6436 I42 sVinstance p6437 I18 sVrelatives p6438 I27 sVwhich p6439 I3719 sVjail p6440 I11 sVvegetation p6441 I10 sVcriteria p6442 I39 sVray p6443 I18 sVclash p6444 I11 sVknees p6445 I26 sVpetrol p6446 I24 sVcollaboration p6447 I13 sVwho p6448 I10 sVdutch p6449 I23 sVaccountants p6450 I12 sVintentions p6451 I15 sVconnected p6452 I31 sVbut p6453 I22 sVpalace p6454 I45 sVtall p6455 I46 sVlearnt p6456 I22 sVfuture p6457 I85 sVwhy p6458 I509 sVstatute p6459 I16 sVdeny p6460 I23 sVconsequences p6461 I44 sVupset p6462 I14 sVquestioned p6463 I18 sVpipe p6464 I23 sVproceedings p6465 I43 sVlowered p6466 I13 sVtalk p6467 I41 sVpictures p6468 I54 sVgoals p6469 I47 sVpylori p6470 I11 sVimpression p6471 I42 sVparker p6472 I11 sVperceptions p6473 I12 sVchances p6474 I30 sVplease p6475 I11 sVagreed p6476 I10 sVsent p6477 I137 sVanyway p6478 I122 sVchapters p6479 I20 sVpurely p6480 I26 sVplanning p6481 I50 sVdemocrats p6482 I20 sVdorothy p6483 I12 sVsoldiers p6484 I36 sVfear p6485 I25 sVeyes p6486 I297 sVpleased p6487 I47 sVshoes p6488 I37 sVpartners p6489 I39 sVhighest p6490 I47 sVbased p6491 I186 sVearned p6492 I19 sVwinner p6493 I32 sVoperational p6494 I17 sVsurroundings p6495 I12 sVbases p6496 I15 sVcandidates p6497 I40 sVinherited p6498 I13 sVfuel p6499 I41 sVemployed p6500 I49 sVpiano p6501 I20 sVbells p6502 I10 sVthousands p6503 I55 sVmortality p6504 I23 sVwatching p6505 I65 sVfellow p6506 I19 sVdisplayed p6507 I25 sVoverall p6508 I13 sV120 p6509 I10 sVjoint p6510 I64 sVones p6511 I118 sVlegitimate p6512 I15 sVwords p6513 I244 sVprobably p6514 I273 sVbuyer p6515 I27 sVargues p6516 I23 sVchips p6517 I18 sVendless p6518 I16 sVgray p6519 I11 sVprocesses p6520 I54 sVevident p6521 I26 sVtobacco p6522 I15 sVended p6523 I73 sVconditions p6524 I154 sVmarried p6525 I47 sVmaria p6526 I21 sVshe p6527 I3801 sVwish p6528 I16 sVgenerations p6529 I21 sVview p6530 I16 sVspotted p6531 I13 sVknowing p6532 I47 sVrequirement p6533 I32 sVj p6534 I22 sVprayers p6535 I10 sVacquired p6536 I37 sVvariations p6537 I25 sVshake p6538 I13 sVhumans p6539 I20 sVmodule p6540 I32 sVoperates p6541 I15 sVbreathe p6542 I11 sVofficials p6543 I62 sVyugoslavia p6544 I14 sVfaces p6545 I14 sVdesperate p6546 I26 sVoperated p6547 I21 sVexpects p6548 I14 sVresponses p6549 I26 sVcloser p6550 I21 sVnightmare p6551 I14 sVcruel p6552 I14 sVbirds p6553 I57 sVgenius p6554 I11 sVstate p6555 I26 sVconvince p6556 I12 sVidentification p6557 I22 sVclosed p6558 I20 sVhorrible p6559 I17 sVcrude p6560 I13 sVlimit p6561 I16 sVneither p6562 I28 sVmainly p6563 I71 sVbought p6564 I91 sVpublishers p6565 I15 sVrecipe p6566 I12 sVattention p6567 I137 sVability p6568 I91 sVopening p6569 I26 sVimportance p6570 I97 sVjoy p6571 I24 sVagencies p6572 I37 sVinterfere p6573 I11 sVembarrassment p6574 I13 sVjob p6575 I229 sVtakeover p6576 I11 sVhypothesis p6577 I17 sVjoe p6578 I43 sVkey p6579 I49 sVsitting p6580 I81 sVgroup p6581 I414 sVprecious p6582 I16 sVproblem p6583 I290 sVscreamed p6584 I11 sVmonitor p6585 I14 sVinterpretations p6586 I11 sVweeks p6587 I154 sVlimits p6588 I30 sVcareer p6589 I77 sVrespondents p6590 I11 sVminds p6591 I28 sVapril p6592 I147 sVadmit p6593 I38 sVgrain p6594 I18 sVsafely p6595 I17 sVjourney p6596 I48 sVgrounds p6597 I61 sVtorn p6598 I10 sVwall p6599 I114 sVtuesday p6600 I36 sVsupreme p6601 I33 sVenvironments p6602 I14 sVwalk p6603 I39 sVdistinguish p6604 I20 sVsequences p6605 I14 sVrespect p6606 I49 sVwithdrawn p6607 I17 sVpoem p6608 I25 sVprovinces p6609 I11 sVi.e. p6610 I46 sVaddition p6611 I21 sVdecent p6612 I19 sVsara p6613 I13 sVbbc p6614 I43 sVcharts p6615 I11 sVquid p6616 I14 sVslowly p6617 I79 sVagreements p6618 I27 sVpoet p6619 I22 sVpack p6620 I25 sVremedies p6621 I10 sVmike p6622 I43 sVliverpool p6623 I55 sVdiversity p6624 I14 sVleague p6625 I83 sVpainted p6626 I24 sVsufficient p6627 I59 sVfull-time p6628 I21 sVscrutiny p6629 I12 sVensuring p6630 I19 sVexpenditure p6631 I55 sVsuspension p6632 I14 sVimproved p6633 I21 sVcuts p6634 I12 sVtanks p6635 I15 sVpresent p6636 I33 sVnovel p6637 I11 sVabandoned p6638 I26 sVunlike p6639 I40 sVcontexts p6640 I12 sVdecades p6641 I25 sVliberal* p6642 I54 sVharder p6643 I14 sVchoices p6644 I18 sVconstance p6645 I12 sVtexas p6646 I10 sVwild p6647 I51 sVlocated p6648 I25 sVhappened p6649 I139 sVsupply p6650 I26 sVlayer p6651 I25 sVannual p6652 I81 sVresident p6653 I12 sVthus p6654 I205 sVencouragement p6655 I15 sVexamined p6656 I36 sVgothic p6657 I12 sVdual p6658 I12 sVstands p6659 I29 sVkissed p6660 I18 sVperhaps p6661 I350 sVbegan p6662 I237 sVviews p6663 I74 sVradiation p6664 I17 sVcross p6665 I23 sVmember p6666 I175 sVadverse p6667 I12 sVunity p6668 I28 sVparts p6669 I116 sVspeaker p6670 I80 sVgeographical p6671 I16 sVlargest p6672 I58 sVunits p6673 I71 sVparty p6674 I403 sVgets p6675 I78 sVsolution p6676 I69 sVdifficult p6677 I220 sVfur p6678 I10 sVpractitioner p6679 I11 sVcontext p6680 I86 sVappearances p6681 I12 sVconceived p6682 I12 sVeffect p6683 I228 sVrecommendations p6684 I26 sVstudent p6685 I77 sVfierce p6686 I16 sVfrequently p6687 I58 sVcollar p6688 I14 sVsingle p6689 I177 sVkeep p6690 I276 sVscarcely p6691 I17 sVtransaction p6692 I23 sVashley p6693 I11 sVreflection p6694 I20 sV1954 p6695 I10 sVi p6696 I8875 sVapprove p6697 I11 sVincredible p6698 I12 sVwell p6699 I42 sVfighting p6700 I21 sVfailures p6701 I11 sVqualified p6702 I13 sV47 p6703 I11 sVfirstly p6704 I17 sVundertaken p6705 I27 sVrealised p6706 I49 sVrestore p6707 I17 sVexcessive p6708 I17 sVcried p6709 I30 sVheavily p6710 I41 sVincreasingly p6711 I66 sVoak p6712 I16 sVaccurate p6713 I29 sVcolours p6714 I45 sVobtain p6715 I46 sVdose p6716 I16 sVsources p6717 I67 sVmistakes p6718 I16 sVdistant p6719 I29 sVfishing p6720 I32 sVskill p6721 I35 sVhappiness p6722 I17 sVmysterious p6723 I13 sVrapid p6724 I36 sVdensity p6725 I16 sV1959 p6726 I12 sVpoint p6727 I33 sVsky p6728 I50 sVdeposits p6729 I19 sVdiscuss p6730 I56 sVreasons p6731 I108 sVother p6732 I43 sVadoption p6733 I16 sVattractive p6734 I52 sVusage p6735 I12 sVsmart p6736 I15 sVacted p6737 I23 sVfunded p6738 I13 sVidentical p6739 I22 sVgods p6740 I14 sVbranch p6741 I53 sVmyth p6742 I15 sVvan nop- p6743 I22 sVrepublics p6744 I15 sVall right* p6745 I64 sVhistoric p6746 I23 sVknow p6747 I1233 sVburden p6748 I26 sVpress p6749 I29 sVimmediately p6750 I102 sVprominent p6751 I23 sVloss p6752 I116 sVcheshire p6753 I11 sVnecessary p6754 I181 sVhelpful p6755 I32 sVlost p6756 I25 sVsizes p6757 I17 sValternatively p6758 I17 sVopera p6759 I23 sVpayments p6760 I45 sVcorners p6761 I16 sVleaves p6762 I29 sVrefugees p6763 I19 sVpage p6764 I106 sVregardless p6765 I15 sVexceed p6766 I10 sVbecause p6767 I178 sVfunctional p6768 I20 sVsequence p6769 I42 sVscared p6770 I12 sVscottish p6771 I98 sVphenomena p6772 I14 sVsearching p6773 I19 sVlibrary p6774 I82 sVmotive p6775 I10 sVgrowth p6776 I130 sVexport p6777 I21 sVcleveland p6778 I17 sVhome p6779 I194 sVempire p6780 I36 sVpeter p6781 I124 sVemployment p6782 I107 sVscales p6783 I15 sVthroughout p6784 I116 sVleaf p6785 I15 sVlead p6786 I55 sVbroad p6787 I49 sVmines p6788 I14 sVconstantly p6789 I31 sVco / p6790 I40 sVdemonstrated p6791 I27 sVlimitations p6792 I18 sVmedieval p6793 I25 sVreaching p6794 I29 sVjournal p6795 I24 sVanalysed p6796 I18 sVexpansion p6797 I36 sVstates p6798 I19 sVscots p6799 I12 sVdoctors p6800 I45 sVinstinct p6801 I11 sVdescribed p6802 I148 sVanalyses p6803 I11 sVswept p6804 I21 sVraise p6805 I61 sVthrone p6806 I12 sVrare p6807 I46 sVcarried p6808 I138 sVextension p6809 I35 sVgetting p6810 I203 sVcolumn p6811 I28 sVuniverse p6812 I26 sVdependence p6813 I13 sVurged p6814 I23 sVmadame p6815 I11 sVcompatible p6816 I12 sVcarries p6817 I18 sVcarrier p6818 I13 sVplaces p6819 I91 sVtongue p6820 I24 sVemperor p6821 I21 sVpersuaded p6822 I21 sVowl p6823 I11 sVequally p6824 I66 sVown p6825 I16 sVowe p6826 I13 sVwashington p6827 I33 sVweather p6828 I57 sVpromise p6829 I15 sVbrush p6830 I13 sVregistration p6831 I22 sVdug p6832 I11 sVprompted p6833 I16 sVhitting p6834 I11 sVvan p6835 I21 sVadditional p6836 I74 sVwhom p6837 I129 sVtransfer p6838 I18 sVrightly p6839 I15 sV* p6840 I15 sVnoticed p6841 I53 sVcontinental p6842 I17 sVintention p6843 I47 sVthreat p6844 I57 sVinner p6845 I45 sVbreeding p6846 I19 sVinspiration p6847 I14 sVcricket p6848 I33 sVnorth p6849 I54 sVaircraft p6850 I62 sVfunds p6851 I62 sVhp p6852 I11 sVvolume p6853 I54 sVneutral p6854 I16 sVec p6855 I67 sVcourts p6856 I59 sVear p6857 I29 sVph p6858 I15 sVhe p6859 I6810 sVmade p6860 I943 sVtactics p6861 I14 sVwhether p6862 I332 sVcells p6863 I76 sVpolitics p6864 I75 sVsigned p6865 I57 sVrecord p6866 I23 sVbelow p6867 I55 sVgaps p6868 I11 sVstories p6869 I48 sVruling p6870 I12 sVkatherine p6871 I11 sVcake p6872 I28 sVdemonstrate p6873 I24 sVnorman p6874 I23 sVwalter p6875 I19 sVbroadly p6876 I16 sVdisplay p6877 I19 sVblock p6878 I36 sVjenny p6879 I18 sVinadequate p6880 I23 sVuniversal p6881 I26 sVpenny p6882 I12 sVkingdom nop- p6883 I44 sVlived p6884 I82 sVgoodness p6885 I15 sVflight p6886 I52 sVeducation p6887 I260 sVeric p6888 I19 sVmutual p6889 I22 sV'll p6890 I726 sVgay p6891 I16 sVingredients p6892 I13 sVboot p6893 I15 sVpromote p6894 I32 sVenvisaged p6895 I12 sVwestminster p6896 I22 sVnhs p6897 I25 sVbook p6898 I243 sVboom p6899 I16 sVsick p6900 I44 sVyoungsters p6901 I17 sVer p6902 I896 sVconclusion p6903 I51 sVkinds p6904 I47 sVdiagnosis p6905 I17 sVoct. p6906 I32 sVjune p6907 I146 sVultimately p6908 I29 sVstay p6909 I11 sVmargaret p6910 I38 sVtonnes p6911 I19 sVpriced p6912 I11 sVfriends p6913 I151 sVincurred p6914 I12 sVupwards p6915 I16 sVappoint p6916 I10 sVranks p6917 I16 sVpools p6918 I11 sVfactors p6919 I87 sVpersistent p6920 I13 sVcasual p6921 I18 sVportion p6922 I11 sVvolumes p6923 I16 sVideological p6924 I17 sVunderstand p6925 I155 sVindirectly p6926 I10 stp6927 Rp6928 . ================================================ FILE: corpkit/dictionaries/bnc.py ================================================ def _get_bnc(): """Load the BNC""" import corpkit try: import cPickle as pickle except ImportError: import pickle import os fullpaths = [os.path.join(os.path.dirname(corpkit.__file__), 'corpkit', 'dictionaries', 'bnc.p'), os.path.join(os.path.dirname(corpkit.__file__), 'dictionaries', 'bnc.p'), os.path.join(os.path.dirname(corpkit.__file__), 'bnc.p'), os.path.join(os.path.dirname(os.path.dirname(corpkit.__file__)), 'bnc.p')] fullpath = next(x for x in fullpaths if os.path.isfile(x)) with open(fullpath, 'rb') as fo: data = pickle.load(fo) return data bnc = _get_bnc() ================================================ FILE: corpkit/dictionaries/eng_verb_lexicon.p ================================================ (dp0 Fnan (lp1 S"belly-laughs'" p2 aS'belly-laughing' p3 aS'belly-laughed' p4 aS'belly-laughed' p5 asS'fawn' p6 (lp7 S'fawns' p8 aS'fawning' p9 aS'fawned' p10 aS'fawned' p11 asS'foul' p12 (lp13 S'fouls' p14 aS'fouling' p15 aS'fouled' p16 aS'fouled' p17 asS'escribe' p18 (lp19 S'escribes' p20 aS'escribing' p21 aS'escribed' p22 aS'escribed' p23 asS'prefix' p24 (lp25 S'prefixes' p26 aS'prefixing' p27 aS'prefixed' p28 aS'prefixed' p29 asS'forgather' p30 (lp31 S'forgathers' p32 aS'forgathering' p33 aS'forgathered' p34 aS'forgathered' p35 asS'preface' p36 (lp37 S'prefaces' p38 aS'prefacing' p39 aS'prefaced' p40 aS'prefaced' p41 asS'underachieve' p42 (lp43 S'underachieves' p44 aS'underachieving' p45 aS'underachieved' p46 aS'underachieved' p47 asS'shamble' p48 (lp49 S'shambles' p50 aS'shambling' p51 aS'shambled' p52 aS'shambled' p53 asS'conjure' p54 (lp55 S'conjures' p56 aS'conjuring' p57 aS'conjured' p58 aS'conjured' p59 asS'regularize' p60 (lp61 S'regularizes' p62 aS'regularizing' p63 aS'regularized' p64 aS'regularized' p65 asS'ruck' p66 (lp67 S'rucks' p68 aS'rucking' p69 aS'rucked' p70 aS'rucked' p71 asS'rupture' p72 (lp73 S'ruptures' p74 aS'rupturing' p75 aS'ruptured' p76 aS'ruptured' p77 asS'rouse' p78 (lp79 S'rouses' p80 aS'rousing' p81 aS'roused' p82 aS'roused' p83 asS'scold' p84 (lp85 S'scolds' p86 aS'scolding' p87 aS'scolded' p88 aS'scolded' p89 asS'quadruple' p90 (lp91 S'quadruples' p92 aS'quadrupling' p93 aS'quadrupled' p94 aS'quadrupled' p95 asS'outwit' p96 (lp97 S'outwits' p98 aS'outwitting' p99 aS'outwitted' p100 aS'outwitted' p101 asS'tingle' p102 (lp103 S'tingles' p104 aS'tingling' p105 aS'tingled' p106 aS'tingled' p107 asS'sputter' p108 (lp109 S'sputters' p110 aS'sputtering' p111 aS'sputtered' p112 aS'sputtered' p113 asS'angulate' p114 (lp115 S'angulates' p116 aS'angulating' p117 aS'angulated' p118 aS'angulated' p119 asS'autolyze' p120 (lp121 S'autolyzes' p122 aS'autolyzing' p123 aS'autolyzed' p124 aS'autolyzed' p125 asS'antecede' p126 (lp127 S'antecedes' p128 aS'anteceding' p129 aS'anteceded' p130 aS'anteceded' p131 asS'swivel' p132 (lp133 S'swivels' p134 aS'swiveling' p135 aS'swiveled' p136 aS'swiveled' p137 asS'bellyache' p138 (lp139 sS'jemmy' p140 (lp141 S'jemmies' p142 aS'jemmying' p143 aS'jemmied' p144 aS'jemmied' p145 asS'stipulate' p146 (lp147 S'stipulates' p148 aS'stipulating' p149 aS'stipulated' p150 aS'stipulated' p151 asS'befoul' p152 (lp153 S'befouls' p154 aS'befouling' p155 aS'befouled' p156 aS'befouled' p157 asS'yellow' p158 (lp159 S'yellows' p160 aS'yellowing' p161 aS'yellowed' p162 aS'yellowed' p163 asS'detrude' p164 (lp165 S'detrudes' p166 aS'detruding' p167 aS'detruded' p168 aS'detruded' p169 asS'unify' p170 (lp171 S'unifies' p172 aS'unifying' p173 aS'unified' p174 aS'unified' p175 asS'semaphore' p176 (lp177 S'semaphores' p178 aS'semaphoring' p179 aS'semaphored' p180 aS'semaphored' p181 asS'disturb' p182 (lp183 S'disturbs' p184 aS'disturbing' p185 aS'disturbed' p186 aS'disturbed' p187 asS'prize' p188 (lp189 S'prizes' p190 aS'prizing' p191 aS'prized' p192 aS'prized' p193 asS'buttonhole' p194 (lp195 S'buttonholes' p196 aS'buttonholing' p197 aS'buttonholed' p198 aS'buttonholed' p199 asS'understock' p200 (lp201 S'understocks' p202 aS'understocking' p203 aS'understocked' p204 aS'understocked' p205 asS'disburden' p206 (lp207 S'disburdens' p208 aS'disburdening' p209 aS'disburdened' p210 aS'disburdened' p211 asS'fritter' p212 (lp213 S'fritters' p214 aS'frittering' p215 aS'frittered' p216 aS'frittered' p217 asS'orientate' p218 (lp219 S'orientates' p220 aS'orientating' p221 aS'orientated' p222 aS'orientated' p223 asS'charter' p224 (lp225 S'charters' p226 aS'chartering' p227 aS'chartered' p228 aS'chartered' p229 asS'tolerate' p230 (lp231 S'tolerates' p232 aS'tolerating' p233 aS'tolerated' p234 aS'tolerated' p235 asS'pulse' p236 (lp237 S'pulses' p238 aS'pulsing' p239 aS'pulsed' p240 aS'pulsed' p241 asS'second' p242 (lp243 S'seconds' p244 aS'seconding' p245 aS'seconded' p246 aS'seconded' p247 asS'tether' p248 (lp249 S'tethers' p250 aS'tethering' p251 aS'tethered' p252 aS'tethered' p253 asS'hoick' p254 (lp255 S'hoicks' p256 aS'hoicking' p257 aS'hoicked' p258 aS'hoicked' p259 asS'blouse' p260 (lp261 S'blouses' p262 aS'blousing' p263 aS'bloused' p264 aS'bloused' p265 asS'intermingle' p266 (lp267 S'intermingles' p268 aS'intermingling' p269 aS'intermingled' p270 aS'intermingled' p271 asS'thunder' p272 (lp273 S'thunders' p274 aS'thundering' p275 aS'thundered' p276 aS'thundered' p277 asS'boogie' p278 (lp279 S'boogies' p280 aS'boogieing' p281 aS'boogied' p282 aS'boogied' p283 asS'decry' p284 (lp285 S'decries' p286 aS'decrying' p287 aS'decried' p288 aS'decried' p289 asS'succumb' p290 (lp291 S'succumbs' p292 aS'succumbing' p293 aS'succumbed' p294 aS'succumbed' p295 asS'cull' p296 (lp297 S'culls' p298 aS'culling' p299 aS'culled' p300 aS'culled' p301 asS'crouch' p302 (lp303 S'crouches' p304 aS'crouching' p305 aS'crouched' p306 aS'crouched' p307 asS'avert' p308 (lp309 S'averts' p310 aS'averting' p311 aS'averted' p312 aS'averted' p313 asS'splinter' p314 (lp315 S'splinters' p316 aS'splintering' p317 aS'splintered' p318 aS'splintered' p319 asS'herd' p320 (lp321 S'herds' p322 aS'herding' p323 aS'herded' p324 aS'herded' p325 asS'chine' p326 (lp327 S'chines' p328 aS'chining' p329 aS'chined' p330 aS'chined' p331 asS'caseharden' p332 (lp333 S'casehardens' p334 aS'casehardening' p335 aS'casehardened' p336 aS'casehardened' p337 asS'shriek' p338 (lp339 S'shrieks' p340 aS'shrieking' p341 aS'shrieked' p342 aS'shrieked' p343 asS'chink' p344 (lp345 S'chinks' p346 aS'chinking' p347 aS'chinked' p348 aS'chinked' p349 asS'deodorize' p350 (lp351 S'deodorizes' p352 aS'deodorizing' p353 aS'deodorized' p354 aS'deodorized' p355 asS'elaborate' p356 (lp357 S'elaborates' p358 aS'elaborating' p359 aS'elaborated' p360 aS'elaborated' p361 asS'force-ripe' p362 (lp363 S'force-ripes' p364 aS'force-riping' p365 aS'force-riped' p366 aS'force-riped' p367 asS'scutter' p368 (lp369 S'scutters' p370 aS'scuttering' p371 aS'scuttered' p372 aS'scuttered' p373 asS'rebel' p374 (lp375 S'rebels' p376 aS'rebelling' p377 aS'rebelled' p378 aS'rebelled' p379 asS'exuviate' p380 (lp381 S'exuviates' p382 aS'exuviating' p383 aS'exuviated' p384 aS'exuviated' p385 asS'misprize' p386 (lp387 S'misprizes' p388 aS'misprizing' p389 aS'misprized' p390 aS'misprized' p391 asS'divide' p392 (lp393 S'divides' p394 aS'dividing' p395 aS'divided' p396 aS'divided' p397 asS'lengthen' p398 (lp399 S'lengthens' p400 aS'lengthening' p401 aS'lengthened' p402 aS'lengthened' p403 asS'replace' p404 (lp405 S'replaces' p406 aS'replacing' p407 aS'replaced' p408 aS'replaced' p409 asS'costar' p410 (lp411 S'costars' p412 aS'costarring' p413 aS'costarred' p414 aS'costarred' p415 asS'telemeter' p416 (lp417 S'telemeters' p418 aS'telemetering' p419 aS'telemetered' p420 aS'telemetered' p421 asS'perennate' p422 (lp423 S'perennates' p424 aS'perennating' p425 aS'perennated' p426 aS'perennated' p427 asS'blunge' p428 (lp429 S'blunges' p430 aS'blunging' p431 aS'blunged' p432 aS'blunged' p433 asS'discommon' p434 (lp435 S'discommons' p436 aS'discommoning' p437 aS'discommoned' p438 aS'discommoned' p439 asS'browse' p440 (lp441 S'browses' p442 aS'browsing' p443 aS'browsed' p444 aS'browsed' p445 asS'exhort' p446 (lp447 S'exhorts' p448 aS'exhorting' p449 aS'exhorted' p450 aS'exhorted' p451 asS'gradate' p452 (lp453 S'gradates' p454 aS'gradating' p455 aS'gradated' p456 aS'gradated' p457 asS'untie' p458 (lp459 S'unties' p460 aS'untying' p461 aS'untied' p462 aS'untied' p463 asS'telegraph' p464 (lp465 S'telegraphs' p466 aS'telegraphing' p467 aS'telegraphed' p468 aS'telegraphed' p469 asS'strike' p470 (lp471 S'strikes' p472 aS'striking' p473 aS'struck' p474 aS'struck' p475 asS'relay' p476 (lp477 S'relays' p478 aS'relaying' p479 aS'relayed' p480 aS'relayed' p481 asS'desalt' p482 (lp483 S'desalts' p484 aS'desalting' p485 aS'desalted' p486 aS'desalted' p487 asS'mesmerize' p488 (lp489 S'mesmerizes' p490 aS'mesmerizing' p491 aS'mesmerized' p492 aS'mesmerized' p493 asS'sortie' p494 (lp495 S'sorties' p496 aS'sortieing' p497 aS'sortied' p498 aS'sortied' p499 asS'holp' p500 (lp501 S'holps' p502 aS'holping' p503 aS'holped' p504 aS'holped' p505 asS'glass' p506 (lp507 S'glasses' p508 aS'glassing' p509 aS'glassed' p510 aS'glassed' p511 asS'export' p512 (lp513 S'exports' p514 aS'exporting' p515 aS'exported' p516 aS'exported' p517 asS'hurl' p518 (lp519 S'hurls' p520 aS'hurling' p521 aS'hurled' p522 aS'hurled' p523 asS'hole' p524 (lp525 S'holes' p526 aS'holing' p527 aS'holed' p528 aS'holed' p529 asS'hold' p530 (lp531 S'holds' p532 aS'holding' p533 aS'held' p534 aS'held' p535 asS'unpack' p536 (lp537 S'unpacks' p538 aS'unpacking' p539 aS'unpacked' p540 aS'unpacked' p541 asS'simper' p542 (lp543 S'simpers' p544 aS'simpering' p545 aS'simpered' p546 aS'simpered' p547 asS'pursue' p548 (lp549 S'pursues' p550 aS'pursuing' p551 aS'pursued' p552 aS'pursued' p553 asS'debark' p554 (lp555 S'debarks' p556 aS'debarking' p557 aS'debarked' p558 aS'debarked' p559 asS'sweeten' p560 (lp561 S'sweetens' p562 aS'sweetening' p563 aS'sweetened' p564 aS'sweetened' p565 asS'straddle' p566 (lp567 S'straddles' p568 aS'straddling' p569 aS'straddled' p570 aS'straddled' p571 asS'hamshackle' p572 (lp573 S'hamshackles' p574 aS'hamshackling' p575 aS'hamshackled' p576 aS'hamshackled' p577 asS'vow' p578 (lp579 S'vows' p580 aS'vowing' p581 aS'vowed' p582 aS'vowed' p583 asS'reword' p584 (lp585 S'rewords' p586 aS'rewording' p587 aS'reworded' p588 aS'reworded' p589 asS'shelve' p590 (lp591 S'shelves' p592 aS'shelving' p593 aS'shelved' p594 aS'shelved' p595 asS'exhale' p596 (lp597 S'exhales' p598 aS'exhaling' p599 aS'exhaled' p600 aS'exhaled' p601 asS'rework' p602 (lp603 S'reworks' p604 aS'reworking' p605 aS'reworked' p606 aS'reworked' p607 asS'scavenge' p608 (lp609 S'scavenges' p610 aS'scavenging' p611 aS'scavenged' p612 aS'scavenged' p613 asS'triple' p614 (lp615 S'triples' p616 aS'tripling' p617 aS'tripled' p618 aS'tripled' p619 asS'courtmartial' p620 (lp621 S'courtmartials' p622 aS'courtmartialing' p623 aS'courtmartialed' p624 aS'courtmartialed' p625 asS'wank' p626 (lp627 S'wanks' p628 aS'wanking' p629 aS'wanked' p630 aS'wanked' p631 asS'malign' p632 (lp633 S'maligns' p634 aS'maligning' p635 aS'maligned' p636 aS'maligned' p637 asS'caution' p638 (lp639 S'cautions' p640 aS'cautioning' p641 aS'cautioned' p642 aS'cautioned' p643 asS'want' p644 (lp645 S'wants' p646 aS'wanting' p647 aS'wanted' p648 aS'wanted' p649 asS'dele' p650 (lp651 S'deles' p652 aS'deleing' p653 aS'deled' p654 aS'deled' p655 asS'reprove' p656 (lp657 S'reproves' p658 aS'reproving' p659 aS'reproved' p660 aS'reproved' p661 asS'dyke' p662 (lp663 S'dykes' p664 aS'dyking' p665 aS'dyked' p666 aS'dyked' p667 asS'hog' p668 (lp669 S'hogs' p670 aS'hogging' p671 aS'hogged' p672 aS'hogged' p673 asS'hoe' p674 (lp675 S'hoes' p676 aS'hoing' p677 aS'hoed' p678 aS'hoed' p679 asS'hob' p680 (lp681 S'hobs' p682 aS'hobbing' p683 aS'hobbed' p684 aS'hobbed' p685 asS'unclothe' p686 (lp687 S'unclothes' p688 aS'unclothing' p689 aS'unclothed' p690 aS'unclothed' p691 asS'dimple' p692 (lp693 S'dimples' p694 aS'dimpling' p695 aS'dimpled' p696 aS'dimpled' p697 asS'travel' p698 (lp699 S'travels' p700 aS'travelling' p701 aS'travelled' p702 aS'travelled' p703 asS'peregrinate' p704 (lp705 S'peregrinates' p706 aS'peregrinating' p707 aS'peregrinated' p708 aS'peregrinated' p709 asS'damage' p710 (lp711 S'damages' p712 aS'damaging' p713 aS'damaged' p714 aS'damaged' p715 asS'cutback' p716 (lp717 S'cutbacks' p718 aS'cutbacking' p719 aS'cutbacked' p720 aS'cutbacked' p721 asS'revisit' p722 (lp723 S'revisits' p724 aS'revisiting' p725 aS'revisited' p726 aS'revisited' p727 asS'machine' p728 (lp729 S'machines' p730 aS'machining' p731 aS'machined' p732 aS'machined' p733 asS'playback' p734 (lp735 S'playbacks' p736 aS'playbacking' p737 aS'playbacked' p738 aS'playbacked' p739 asS'hop' p740 (lp741 S'hops' p742 aS'hopping' p743 aS'hopped' p744 aS'hopped' p745 asS'hyposensitize' p746 (lp747 S'hyposensitizes' p748 aS'hyposensitizing' p749 aS'hyposensitized' p750 aS'hyposensitized' p751 asS'classify' p752 (lp753 S'classifies' p754 aS'classifying' p755 aS'classified' p756 aS'classified' p757 asS'turmoil' p758 (lp759 S'turmoils' p760 aS'turmoiling' p761 aS'turmoiled' p762 aS'turmoiled' p763 asS'swing' p764 (lp765 S'swings' p766 aS'swinging' p767 aS'swung' p768 aS'swung' p769 asS'outfight' p770 (lp771 S'outfights' p772 aS'outfighting' p773 aS'outfought' p774 aS'outfought' p775 asS'diagram' p776 (lp777 S'diagrams' p778 aS'diagramming' p779 aS'diagrammed' p780 aS'diagrammed' p781 asS'wrong' p782 (lp783 S'wrongs' p784 aS'wronging' p785 aS'wronged' p786 aS'wronged' p787 asS'chump' p788 (lp789 S'chumps' p790 aS'chumping' p791 aS'chumped' p792 aS'chumped' p793 asS'warble' p794 (lp795 S'warbles' p796 aS'warbling' p797 aS'warbled' p798 aS'warbled' p799 asS'marginalize' p800 (lp801 S'marginalizes' p802 aS'marginalizing' p803 aS'marginalized' p804 aS'marginalized' p805 asS'scourge' p806 (lp807 S'scourges' p808 aS'scourging' p809 aS'scourged' p810 aS'scourged' p811 asS'revolt' p812 (lp813 S'revolts' p814 aS'revolting' p815 aS'revolted' p816 aS'revolted' p817 asS'season' p818 (lp819 S'seasons' p820 aS'seasoning' p821 aS'seasoned' p822 aS'seasoned' p823 asS'wink' p824 (lp825 S'winks' p826 aS'winking' p827 aS'winked' p828 aS'winked' p829 asS'wing' p830 (lp831 S'wings' p832 aS'winging' p833 aS'winged' p834 aS'winged' p835 asS'squint' p836 (lp837 S'squints' p838 aS'squinting' p839 aS'squinted' p840 aS'squinted' p841 asS'wine' p842 (lp843 S'wines' p844 aS'wining' p845 aS'wined' p846 aS'wined' p847 asS'refrigerate' p848 (lp849 S'refrigerates' p850 aS'refrigerating' p851 aS'refrigerated' p852 aS'refrigerated' p853 asS'triturate' p854 (lp855 S'triturates' p856 aS'triturating' p857 aS'triturated' p858 aS'triturated' p859 asS'transect' p860 (lp861 S'transects' p862 aS'transecting' p863 aS'transected' p864 aS'transected' p865 asS'defuze' p866 (lp867 S'defuzes' p868 aS'defuzing' p869 aS'defuzed' p870 aS'defuzed' p871 asS'vary' p872 (lp873 S'varies' p874 aS'varying' p875 aS'varied' p876 aS'varied' p877 asS'handcuff' p878 (lp879 S'handcuffs' p880 aS'handcuffing' p881 aS'handcuffed' p882 aS'handcuffed' p883 asS'butcher' p884 (lp885 S'butchers' p886 aS'butchering' p887 aS'butchered' p888 aS'butchered' p889 asS'wrought' p890 (lp891 S'wroughts' p892 aS'wroughting' p893 aS'wroughted' p894 aS'wroughted' p895 asS'contuse' p896 (lp897 S'contuses' p898 aS'contusing' p899 aS'contused' p900 aS'contused' p901 asS'entrammel' p902 (lp903 S'entrammels' p904 aS'entrammelling' p905 aS'entrammelled' p906 aS'entrammelled' p907 asS'fix' p908 (lp909 S'fixes' p910 aS'fixing' p911 aS'fixed' p912 aS'fixed' p913 asS'baste' p914 (lp915 S'bastes' p916 aS'basting' p917 aS'basted' p918 aS'basted' p919 asS'secede' p920 (lp921 S'secedes' p922 aS'seceding' p923 aS'seceded' p924 aS'seceded' p925 asS'fib' p926 (lp927 S'fibs' p928 aS'fibbing' p929 aS'fibbed' p930 aS'fibbed' p931 asS'fig' p932 (lp933 S'figs' p934 aS'figging' p935 aS'figged' p936 aS'figged' p937 asS'transvalue' p938 (lp939 S'transvalues' p940 aS'transvaluing' p941 aS'transvalued' p942 aS'transvalued' p943 asS'fin' p944 (lp945 S'fins' p946 aS'finning' p947 aS'finned' p948 aS'finned' p949 asS'undercut' p950 (lp951 S'undercuts' p952 aS'undercutting' p953 aS'undercut' p954 aS'undercut' p955 asS'glorify' p956 (lp957 S'glorifies' p958 aS'glorifying' p959 aS'glorified' p960 aS'glorified' p961 asS'unpeg' p962 (lp963 S'unpegs' p964 aS'unpegging' p965 aS'unpegged' p966 aS'unpegged' p967 asS'enrich' p968 (lp969 S'enriches' p970 aS'enriching' p971 aS'enriched' p972 aS'enriched' p973 asS'slate' p974 (lp975 S'slates' p976 aS'slating' p977 aS'slated' p978 aS'slated' p979 asS'decarbonize' p980 (lp981 S'decarbonizes' p982 aS'decarbonizing' p983 aS'decarbonized' p984 aS'decarbonized' p985 asS'commemorate' p986 (lp987 S'commemorates' p988 aS'commemorating' p989 aS'commemorated' p990 aS'commemorated' p991 asS'memorialize' p992 (lp993 S'memorializes' p994 aS'memorializing' p995 aS'memorialized' p996 aS'memorialized' p997 asS'confute' p998 (lp999 S'confutes' p1000 aS'confuting' p1001 aS'confuted' p1002 aS'confuted' p1003 asS'interrupt' p1004 (lp1005 S'interrupts' p1006 aS'interrupting' p1007 aS'interrupted' p1008 aS'interrupted' p1009 asS'silver' p1010 (lp1011 S'silvers' p1012 aS'silvering' p1013 aS'silvered' p1014 aS'silvered' p1015 asS'rumour' p1016 (lp1017 S'rumours' p1018 aS'rumouring' p1019 aS'rumoured' p1020 aS'rumoured' p1021 asS'defecate' p1022 (lp1023 S'defecates' p1024 aS'defecating' p1025 aS'defecated' p1026 aS'defecated' p1027 asS'debut' p1028 (lp1029 S'debuts' p1030 aS'debuting' p1031 aS'debuted' p1032 aS'debuted' p1033 asS'debus' p1034 (lp1035 S'debuses' p1036 aS'debusing' p1037 aS'debused' p1038 aS'debused' p1039 asS'singlespace' p1040 (lp1041 S'singlespaces' p1042 aS'singlespacing' p1043 aS'singlespaced' p1044 aS'singlespaced' p1045 asS'debug' p1046 (lp1047 S'debugs' p1048 aS'debugging' p1049 aS'debugged' p1050 aS'debugged' p1051 asS'gumshoe' p1052 (lp1053 S'gumshoes' p1054 aS'gumshoeing' p1055 aS'gumshoed' p1056 aS'gumshoed' p1057 asS'toll' p1058 (lp1059 S'tolls' p1060 aS'tolling' p1061 aS'tolled' p1062 aS'tolled' p1063 asS'telescope' p1064 (lp1065 S'telescopes' p1066 aS'telescoping' p1067 aS'telescoped' p1068 aS'telescoped' p1069 asS'swathe' p1070 (lp1071 S'swathing' p1072 aS'swathed' p1073 aS'swathed' p1074 asS'garment' p1075 (lp1076 S'garments' p1077 aS'garmenting' p1078 aS'garmented' p1079 aS'garmented' p1080 asS'exhume' p1081 (lp1082 S'exhumes' p1083 aS'exhuming' p1084 aS'exhumed' p1085 aS'exhumed' p1086 asS'ameliorate' p1087 (lp1088 S'ameliorates' p1089 aS'ameliorating' p1090 aS'ameliorated' p1091 aS'ameliorated' p1092 asS'allay' p1093 (lp1094 S'allays' p1095 aS'allaying' p1096 aS'allayed' p1097 aS'allayed' p1098 asS'ring' p1099 (lp1100 S'rings' p1101 aS'ringing' p1102 aS'rung' p1103 aS'rung' p1104 asS'overwrite' p1105 (lp1106 S'overwrites' p1107 aS'overwriting' p1108 aS'overwrote' p1109 aS'overwritten' p1110 asS'rubberstamp' p1111 (lp1112 S'rubberstamps' p1113 aS'rubberstamping' p1114 aS'rubberstamped' p1115 aS'rubberstamped' p1116 asS'smirk' p1117 (lp1118 S'smirks' p1119 aS'smirking' p1120 aS'smirked' p1121 aS'smirked' p1122 asS'waive' p1123 (lp1124 S'waives' p1125 aS'waiving' p1126 aS'waived' p1127 aS'waived' p1128 asS'freeze' p1129 (lp1130 S'freezes' p1131 aS'freezing' p1132 aS'froze' p1133 aS'frozen' p1134 asS'mason' p1135 (lp1136 S'masons' p1137 aS'masoning' p1138 aS'masoned' p1139 aS'masoned' p1140 asS'unclog' p1141 (lp1142 S'unclogs' p1143 aS'unclogging' p1144 aS'unclogged' p1145 aS'unclogged' p1146 asS'nomadize' p1147 (lp1148 S'nomadizes' p1149 aS'nomadizing' p1150 aS'nomadized' p1151 aS'nomadized' p1152 asS'encourage' p1153 (lp1154 S'encourages' p1155 aS'encouraging' p1156 aS'encouraged' p1157 aS'encouraged' p1158 asS'adapt' p1159 (lp1160 S'adapts' p1161 aS'adapting' p1162 aS'adapted' p1163 aS'adapted' p1164 asS'teeter' p1165 (lp1166 S'teeters' p1167 aS'teetering' p1168 aS'teetered' p1169 aS'teetered' p1170 asS'waddle' p1171 (lp1172 S'waddles' p1173 aS'waddling' p1174 aS'waddled' p1175 aS'waddled' p1176 asS'roquet' p1177 (lp1178 S'roquets' p1179 aS'roqueting' p1180 aS'roqueted' p1181 aS'roqueted' p1182 asS'inscribe' p1183 (lp1184 S'inscribes' p1185 aS'inscribing' p1186 aS'inscribed' p1187 aS'inscribed' p1188 asS'outmarch' p1189 (lp1190 S'outmarches' p1191 aS'outmarching' p1192 aS'outmarched' p1193 aS'outmarched' p1194 asS'bluepencil' p1195 (lp1196 S'bluepencils' p1197 aS'bluepenciling' p1198 aS'bluepenciled' p1199 aS'bluepenciled' p1200 asS'broil' p1201 (lp1202 S'broils' p1203 aS'broiling' p1204 aS'broiled' p1205 aS'broiled' p1206 asS'knit' p1207 (lp1208 S'knits' p1209 aS'knitting' p1210 aS'knitted' p1211 aS'knitted' p1212 asS'quickstep' p1213 (lp1214 S'quicksteps' p1215 aS'quickstepping' p1216 aS'quickstepped' p1217 aS'quickstepped' p1218 asS'interpage' p1219 (lp1220 S'interpages' p1221 aS'interpaging' p1222 aS'interpaged' p1223 aS'interpaged' p1224 asS'superscribe' p1225 (lp1226 S'superscribes' p1227 aS'superscribing' p1228 aS'superscribed' p1229 aS'superscribed' p1230 asS'connive' p1231 (lp1232 S'connives' p1233 aS'conniving' p1234 aS'connived' p1235 aS'connived' p1236 asS'untread' p1237 (lp1238 S'untreads' p1239 aS'untreading' p1240 aS'untrod' p1241 aS'untrodden' p1242 asS'spindle' p1243 (lp1244 S'spindles' p1245 aS'spindling' p1246 aS'spindled' p1247 aS'spindled' p1248 asS'symbolize' p1249 (lp1250 S'symbolizes' p1251 aS'symbolizing' p1252 aS'symbolized' p1253 aS'symbolized' p1254 asS'stripe' p1255 (lp1256 S'stripes' p1257 aS'striping' p1258 aS'striped' p1259 aS'striped' p1260 asS'deforce' p1261 (lp1262 S'deforces' p1263 aS'deforcing' p1264 aS'deforced' p1265 aS'deforced' p1266 asS'ogle' p1267 (lp1268 S'ogles' p1269 aS'ogling' p1270 aS'ogled' p1271 aS'ogled' p1272 asS'haggle' p1273 (lp1274 S'haggles' p1275 aS'haggling' p1276 aS'haggled' p1277 aS'haggled' p1278 asS'goggle' p1279 (lp1280 S'goggles' p1281 aS'goggling' p1282 aS'goggled' p1283 aS'goggled' p1284 asS'misplace' p1285 (lp1286 S'misplaces' p1287 aS'misplacing' p1288 aS'misplaced' p1289 aS'misplaced' p1290 asS'procreate' p1291 (lp1292 S'procreates' p1293 aS'procreating' p1294 aS'procreated' p1295 aS'procreated' p1296 asS'wash' p1297 (lp1298 S'washes' p1299 aS'washing' p1300 aS'washed' p1301 aS'washed' p1302 asS'instruct' p1303 (lp1304 S'instructs' p1305 aS'instructing' p1306 aS'instructed' p1307 aS'instructed' p1308 asS'declaim' p1309 (lp1310 S'declaims' p1311 aS'declaiming' p1312 aS'declaimed' p1313 aS'declaimed' p1314 asS'service' p1315 (lp1316 S'services' p1317 aS'servicing' p1318 aS'serviced' p1319 aS'serviced' p1320 asS'replevin' p1321 (lp1322 S'replevins' p1323 aS'replevining' p1324 aS'replevined' p1325 aS'replevined' p1326 asS'traumatize' p1327 (lp1328 S'traumatizes' p1329 aS'traumatizing' p1330 aS'traumatized' p1331 aS'traumatized' p1332 asS'rone' p1333 (lp1334 S'rones' p1335 aS'roning' p1336 aS'roned' p1337 aS'roned' p1338 asS'stack' p1339 (lp1340 S'stacks' p1341 aS'stacking' p1342 aS'stacked' p1343 aS'stacked' p1344 asS'master' p1345 (lp1346 S'masters' p1347 aS'mastering' p1348 aS'mastered' p1349 aS'mastered' p1350 asS'underlie' p1351 (lp1352 S'underlies' p1353 aS'underlying' p1354 aS'underlay' p1355 aS'underlain' p1356 asS'postulate' p1357 (lp1358 S'postulates' p1359 aS'postulating' p1360 aS'postulated' p1361 aS'postulated' p1362 asS'bitter' p1363 (lp1364 S'bitters' p1365 aS'bittering' p1366 aS'bittered' p1367 aS'bittered' p1368 asS'listen' p1369 (lp1370 S'listens' p1371 aS'listening' p1372 aS'listened' p1373 aS'listened' p1374 asS'abirritate' p1375 (lp1376 S'abirritates' p1377 aS'abirritating' p1378 aS'abirritated' p1379 aS'abirritated' p1380 asS'enthrall' p1381 (lp1382 S'enthrals' p1383 aS'enthralling' p1384 aS'enthralled' p1385 aS'enthralled' p1386 asS'supercalender' p1387 (lp1388 S'supercalenders' p1389 aS'supercalendering' p1390 aS'supercalendered' p1391 aS'supercalendered' p1392 asS'innerve' p1393 (lp1394 S'innerves' p1395 aS'innerving' p1396 aS'innerved' p1397 aS'innerved' p1398 asS'emaciate' p1399 (lp1400 S'emaciates' p1401 aS'emaciating' p1402 aS'emaciated' p1403 aS'emaciated' p1404 asS'task' p1405 (lp1406 S'tasks' p1407 aS'tasking' p1408 aS'tasked' p1409 aS'tasked' p1410 asS'crawl' p1411 (lp1412 S'crawls' p1413 aS'crawling' p1414 aS'crawled' p1415 aS'crawled' p1416 asS'white' p1417 (lp1418 S'whites' p1419 aS'whiting' p1420 aS'whited' p1421 aS'whited' p1422 asS'trek' p1423 (lp1424 S'treks' p1425 aS'trekking' p1426 aS'trekked' p1427 aS'trekked' p1428 asS'outlay' p1429 (lp1430 S'outlays' p1431 aS'outlaying' p1432 aS'outlaid' p1433 aS'outlaid' p1434 asS'birddog' p1435 (lp1436 S'birddogs' p1437 aS'birddogging' p1438 aS'birddogged' p1439 aS'birddogged' p1440 asS'outlaw' p1441 (lp1442 S'outlaws' p1443 aS'outlawing' p1444 aS'outlawed' p1445 aS'outlawed' p1446 asS'tree' p1447 (lp1448 S'trees' p1449 aS'treeing' p1450 aS'treed' p1451 aS'treed' p1452 asS'project' p1453 (lp1454 S'projects' p1455 aS'projecting' p1456 aS'projected' p1457 aS'projected' p1458 asS'enwind' p1459 (lp1460 S'enwinds' p1461 aS'enwinding' p1462 aS'enwound' p1463 aS'enwound' p1464 asS'idle' p1465 (lp1466 S'idles' p1467 aS'idling' p1468 aS'idled' p1469 aS'idled' p1470 asS'endure' p1471 (lp1472 S'endures' p1473 aS'enduring' p1474 aS'endured' p1475 aS'endured' p1476 asS'halve' p1477 (lp1478 S'halving' p1479 aS'halved' p1480 aS'halved' p1481 asS'acclaim' p1482 (lp1483 S'acclaims' p1484 aS'acclaiming' p1485 aS'acclaimed' p1486 aS'acclaimed' p1487 asS'napalm' p1488 (lp1489 S'napalms' p1490 aS'napalming' p1491 aS'napalmed' p1492 aS'napalmed' p1493 asS'neologize' p1494 (lp1495 S'neologizes' p1496 aS'neologizing' p1497 aS'neologized' p1498 aS'neologized' p1499 asS'urinate' p1500 (lp1501 S'urinates' p1502 aS'urinating' p1503 aS'urinated' p1504 aS'urinated' p1505 asS'preponderate' p1506 (lp1507 S'preponderates' p1508 aS'preponderating' p1509 aS'preponderated' p1510 aS'preponderated' p1511 asS'kayo' p1512 (lp1513 S'kayos' p1514 aS'kayoing' p1515 aS'kayoed' p1516 aS'kayoed' p1517 asS'alkalize' p1518 (lp1519 S'alkalizes' p1520 aS'alkalizing' p1521 aS'alkalized' p1522 aS'alkalized' p1523 asS'gripe' p1524 (lp1525 S'gripes' p1526 aS'griping' p1527 aS'griped' p1528 aS'griped' p1529 asS'indite' p1530 (lp1531 S'indites' p1532 aS'inditing' p1533 aS'indited' p1534 aS'indited' p1535 asS'ambuscade' p1536 (lp1537 S'ambuscades' p1538 aS'ambuscading' p1539 aS'ambuscaded' p1540 aS'ambuscaded' p1541 asS'pander' p1542 (lp1543 S'panders' p1544 aS'pandering' p1545 aS'pandered' p1546 aS'pandered' p1547 asS'shall' p1548 (lp1549 S'shalls' p1550 aS'shalling' p1551 aS'shalled' p1552 aS'shalled' p1553 aS"shan't" p1554 asS'overscore' p1555 (lp1556 S'overscores' p1557 aS'overscoring' p1558 aS'overscored' p1559 aS'overscored' p1560 asS'object' p1561 (lp1562 S'objects' p1563 aS'objecting' p1564 aS'objected' p1565 aS'objected' p1566 asS'impropriate' p1567 (lp1568 S'impropriates' p1569 aS'impropriating' p1570 aS'impropriated' p1571 aS'impropriated' p1572 asS'simplify' p1573 (lp1574 S'simplifies' p1575 aS'simplifying' p1576 aS'simplified' p1577 aS'simplified' p1578 asS'mouth' p1579 (lp1580 S'mouths' p1581 aS'mouthing' p1582 aS'mouthed' p1583 aS'mouthed' p1584 asS'addict' p1585 (lp1586 S'addicts' p1587 aS'addicting' p1588 aS'addicted' p1589 aS'addicted' p1590 asS'letter' p1591 (lp1592 S'letters' p1593 aS'lettering' p1594 aS'lettered' p1595 aS'lettered' p1596 asS'fluster' p1597 (lp1598 S'flusters' p1599 aS'flustering' p1600 aS'flustered' p1601 aS'flustered' p1602 asS'shalt' p1603 (lp1604 S'shalts' p1605 aS'shalting' p1606 aS'shalted' p1607 aS'shalted' p1608 asS'expound' p1609 (lp1610 S'expounds' p1611 aS'expounding' p1612 aS'expounded' p1613 aS'expounded' p1614 asS'dummy' p1615 (lp1616 S'dummies' p1617 aS'dummying' p1618 aS'dummied' p1619 aS'dummied' p1620 asS'upend' p1621 (lp1622 S'upends' p1623 aS'upending' p1624 aS'upended' p1625 aS'upended' p1626 asS'nasalize' p1627 (lp1628 S'nasalizes' p1629 aS'nasalizing' p1630 aS'nasalized' p1631 aS'nasalized' p1632 asS'foist' p1633 (lp1634 S'foists' p1635 aS'foisting' p1636 aS'foisted' p1637 aS'foisted' p1638 asS'camp' p1639 (lp1640 S'camps' p1641 aS'camping' p1642 aS'camped' p1643 aS'camped' p1644 asS'departmentalize' p1645 (lp1646 S'departmentalizes' p1647 aS'departmentalizing' p1648 aS'departmentalized' p1649 aS'departmentalized' p1650 asS'nettle' p1651 (lp1652 S'nettles' p1653 aS'nettling' p1654 aS'nettled' p1655 aS'nettled' p1656 asS'disaffect' p1657 (lp1658 S'disaffects' p1659 aS'disaffecting' p1660 aS'disaffected' p1661 aS'disaffected' p1662 asS'consummate' p1663 (lp1664 S'consummates' p1665 aS'consummating' p1666 aS'consummated' p1667 aS'consummated' p1668 asS'screak' p1669 (lp1670 S'screaks' p1671 aS'screaking' p1672 aS'screaked' p1673 aS'screaked' p1674 asS'scream' p1675 (lp1676 S'screams' p1677 aS'screaming' p1678 aS'screamed' p1679 aS'screamed' p1680 asS'marvel' p1681 (lp1682 S'marvels' p1683 aS'marvelling' p1684 aS'marvelled' p1685 aS'marvelled' p1686 asS'mortise' p1687 (lp1688 S'mortises' p1689 aS'mortising' p1690 aS'mortised' p1691 aS'mortised' p1692 asS'incorporate' p1693 (lp1694 S'incorporates' p1695 aS'incorporating' p1696 aS'incorporated' p1697 aS'incorporated' p1698 asS'bomb' p1699 (lp1700 S'bombs' p1701 aS'bombing' p1702 aS'bombed' p1703 aS'bombed' p1704 asS'dicker' p1705 (lp1706 S'dickers' p1707 aS'dickering' p1708 aS'dickered' p1709 aS'dickered' p1710 asS'prig' p1711 (lp1712 S'prigs' p1713 aS'prigging' p1714 aS'prigged' p1715 aS'prigged' p1716 asS'reschedule' p1717 (lp1718 S'reschedules' p1719 aS'rescheduling' p1720 aS'rescheduled' p1721 aS'rescheduled' p1722 asS'concentre' p1723 (lp1724 S'concentres' p1725 aS'concentring' p1726 aS'concentred' p1727 aS'concentred' p1728 asS'striate' p1729 (lp1730 S'striates' p1731 aS'striating' p1732 aS'striated' p1733 aS'striated' p1734 asS'participate' p1735 (lp1736 S'participates' p1737 aS'participating' p1738 aS'participated' p1739 aS'participated' p1740 asS'caper' p1741 (lp1742 S'capers' p1743 aS'capering' p1744 aS'capered' p1745 aS'capered' p1746 asS'busy' p1747 (lp1748 S'busies' p1749 aS'busying' p1750 aS'busied' p1751 aS'busied' p1752 asS'headline' p1753 (lp1754 S'headlines' p1755 aS'headlining' p1756 aS'headlined' p1757 aS'headlined' p1758 asS'faradize' p1759 (lp1760 S'faradizes' p1761 aS'faradizing' p1762 aS'faradized' p1763 aS'faradized' p1764 asS'bust' p1765 (lp1766 S'busts' p1767 aS'busting' p1768 aS'busted' p1769 aS'busted' p1770 asS'busk' p1771 (lp1772 S'busks' p1773 aS'busking' p1774 aS'busked' p1775 aS'busked' p1776 asS'bush' p1777 (lp1778 S'bushes' p1779 aS'bushing' p1780 aS'bushed' p1781 aS'bushed' p1782 asS'rick' p1783 (lp1784 S'ricks' p1785 aS'ricking' p1786 aS'ricked' p1787 aS'ricked' p1788 asS'mend' p1789 (lp1790 S'mends' p1791 aS'mending' p1792 aS'mended' p1793 aS'mended' p1794 asS'rice' p1795 (lp1796 S'rices' p1797 aS'ricing' p1798 aS'riced' p1799 aS'riced' p1800 asS'kerne' p1801 (lp1802 S'kerns' p1803 aS'kerning' p1804 aS'kerned' p1805 aS'kerned' p1806 asS'plate' p1807 (lp1808 S'plates' p1809 aS'plating' p1810 aS'plated' p1811 aS'plated' p1812 asS'Gallicize' p1813 (lp1814 S'Gallicizes' p1815 aS'Gallicizing' p1816 aS'Gallicized' p1817 aS'Gallicized' p1818 asS'remarry' p1819 (lp1820 S'remarries' p1821 aS'remarrying' p1822 aS'remarried' p1823 aS'remarried' p1824 asS'doublecross' p1825 (lp1826 S'doublecrosses' p1827 aS'doublecrossing' p1828 aS'doublecrossed' p1829 aS'doublecrossed' p1830 asS'denounce' p1831 (lp1832 S'denounces' p1833 aS'denouncing' p1834 aS'denounced' p1835 aS'denounced' p1836 asS'ceil' p1837 (lp1838 S'ceils' p1839 aS'ceiling' p1840 aS'ceiled' p1841 aS'ceiled' p1842 asS'pocket' p1843 (lp1844 S'pockets' p1845 aS'pocketing' p1846 aS'pocketed' p1847 aS'pocketed' p1848 asS'saccharize' p1849 (lp1850 S'saccharizes' p1851 aS'saccharizing' p1852 aS'saccharized' p1853 aS'saccharized' p1854 asS'euphonize' p1855 (lp1856 S'euphonizes' p1857 aS'euphonizing' p1858 aS'euphonized' p1859 aS'euphonized' p1860 asS'cushion' p1861 (lp1862 S'cushions' p1863 aS'cushioning' p1864 aS'cushioned' p1865 aS'cushioned' p1866 asS'relish' p1867 (lp1868 S'relishes' p1869 aS'relishing' p1870 aS'relished' p1871 aS'relished' p1872 asS'enrobe' p1873 (lp1874 S'enrobes' p1875 aS'enrobing' p1876 aS'enrobed' p1877 aS'enrobed' p1878 asS'coproduce' p1879 (lp1880 S'coproduces' p1881 aS'coproducing' p1882 aS'coproduced' p1883 aS'coproduced' p1884 asS'patch' p1885 (lp1886 S'patches' p1887 aS'patching' p1888 aS'patched' p1889 aS'patched' p1890 asS'release' p1891 (lp1892 S'releases' p1893 aS'releasing' p1894 aS'released' p1895 aS'released' p1896 asS'urticate' p1897 (lp1898 S'urticates' p1899 aS'urticating' p1900 aS'urticated' p1901 aS'urticated' p1902 asS'hasten' p1903 (lp1904 S'hastens' p1905 aS'hastening' p1906 aS'hastened' p1907 aS'hastened' p1908 asS'respond' p1909 (lp1910 S'responds' p1911 aS'responding' p1912 aS'responded' p1913 aS'responded' p1914 asS'traverse' p1915 (lp1916 S'traverses' p1917 aS'traversing' p1918 aS'traversed' p1919 aS'traversed' p1920 asS'fair' p1921 (lp1922 S'fairs' p1923 aS'fairing' p1924 aS'faired' p1925 aS'faired' p1926 asS'clew' p1927 (lp1928 S'clews' p1929 aS'clewing' p1930 aS'clewed' p1931 aS'clewed' p1932 asS'result' p1933 (lp1934 S'results' p1935 aS'resulting' p1936 aS'resulted' p1937 aS'resulted' p1938 asS'clem' p1939 (lp1940 S'clems' p1941 aS'clemming' p1942 aS'clemmed' p1943 aS'clemmed' p1944 asS'fail' p1945 (lp1946 S'fails' p1947 aS'failing' p1948 aS'failed' p1949 aS'failed' p1950 asS'internationalize' p1951 (lp1952 S'internationalizes' p1953 aS'internationalizing' p1954 aS'internationalized' p1955 aS'internationalized' p1956 asS'hammer' p1957 (lp1958 S'hammers' p1959 aS'hammering' p1960 aS'hammered' p1961 aS'hammered' p1962 asS'best' p1963 (lp1964 S'bests' p1965 aS'besting' p1966 aS'bested' p1967 aS'bested' p1968 asS'irk' p1969 (lp1970 S'irks' p1971 aS'irking' p1972 aS'irked' p1973 aS'irked' p1974 asS'flagellate' p1975 (lp1976 S'flagellates' p1977 aS'flagellating' p1978 aS'flagellated' p1979 aS'flagellated' p1980 asS'scorn' p1981 (lp1982 S'scorns' p1983 aS'scorning' p1984 aS'scorned' p1985 aS'scorned' p1986 asS'vociferate' p1987 (lp1988 S'vociferates' p1989 aS'vociferating' p1990 aS'vociferated' p1991 aS'vociferated' p1992 asS'pirate' p1993 (lp1994 S'pirates' p1995 aS'pirating' p1996 aS'pirated' p1997 aS'pirated' p1998 asS'hopple' p1999 (lp2000 S'hopples' p2001 aS'hoppling' p2002 aS'hoppled' p2003 aS'hoppled' p2004 asS'wage' p2005 (lp2006 S'wages' p2007 aS'waging' p2008 aS'waged' p2009 aS'waged' p2010 asS'pigstick' p2011 (lp2012 S'pigsticks' p2013 aS'pigsticking' p2014 aS'pigsticked' p2015 aS'pigsticked' p2016 asS'extend' p2017 (lp2018 S'extends' p2019 aS'extending' p2020 aS'extended' p2021 aS'extended' p2022 asS'quadruplicate' p2023 (lp2024 S'quadruplicates' p2025 aS'quadruplicating' p2026 aS'quadruplicated' p2027 aS'quadruplicated' p2028 asS'personalize' p2029 (lp2030 S'personalizes' p2031 aS'personalizing' p2032 aS'personalized' p2033 aS'personalized' p2034 asS'reconstitute' p2035 (lp2036 S'reconstitutes' p2037 aS'reconstituting' p2038 aS'reconstituted' p2039 aS'reconstituted' p2040 asS'wheelbarrow' p2041 (lp2042 S'wheelbarrows' p2043 aS'wheelbarrowing' p2044 aS'wheelbarrowed' p2045 aS'wheelbarrowed' p2046 asS'downgrade' p2047 (lp2048 S'downgrades' p2049 aS'downgrading' p2050 aS'downgraded' p2051 aS'downgraded' p2052 asS'wherrit' p2053 (lp2054 S'wherrits' p2055 aS'wherriting' p2056 aS'wherrited' p2057 aS'wherrited' p2058 asS'pity' p2059 (lp2060 S'pities' p2061 aS'pitying' p2062 aS'pitied' p2063 aS'pitied' p2064 asS'veer' p2065 (lp2066 S'veers' p2067 aS'veering' p2068 aS'veered' p2069 aS'veered' p2070 asS'disdain' p2071 (lp2072 S'disdains' p2073 aS'disdaining' p2074 aS'disdained' p2075 aS'disdained' p2076 asS'incense' p2077 (lp2078 S'incenses' p2079 aS'incensing' p2080 aS'incensed' p2081 aS'incensed' p2082 asS'pith' p2083 (lp2084 S'piths' p2085 aS'pithing' p2086 aS'pithed' p2087 aS'pithed' p2088 asS'sublime' p2089 (lp2090 S'sublimes' p2091 aS'subliming' p2092 aS'sublimed' p2093 aS'sublimed' p2094 asS'argue' p2095 (lp2096 S'argues' p2097 aS'arguing' p2098 aS'argued' p2099 aS'argued' p2100 asS'tinge' p2101 (lp2102 S'tinges' p2103 aS'tingeing' p2104 aS'tinged' p2105 aS'tinged' p2106 asS'schmooze' p2107 (lp2108 S'schmoozes' p2109 aS'schmoozing' p2110 aS'schmoozed' p2111 aS'schmoozed' p2112 asS'eradicate' p2113 (lp2114 S'eradicates' p2115 aS'eradicating' p2116 aS'eradicated' p2117 aS'eradicated' p2118 asS'rehash' p2119 (lp2120 S'rehashes' p2121 aS'rehashing' p2122 aS'rehashed' p2123 aS'rehashed' p2124 asS'vail' p2125 (lp2126 S'vails' p2127 aS'vailing' p2128 aS'vailed' p2129 aS'vailed' p2130 asS'extravasate' p2131 (lp2132 S'extravasates' p2133 aS'extravasating' p2134 aS'extravasated' p2135 aS'extravasated' p2136 asS'agglomerate' p2137 (lp2138 S'agglomerates' p2139 aS'agglomerating' p2140 aS'agglomerated' p2141 aS'agglomerated' p2142 asS'factorize' p2143 (lp2144 S'factorizes' p2145 aS'factorizing' p2146 aS'factorized' p2147 aS'factorized' p2148 asS'escalade' p2149 (lp2150 S'escalades' p2151 aS'escalading' p2152 aS'escaladed' p2153 aS'escaladed' p2154 asS'vitrify' p2155 (lp2156 S'vitrifies' p2157 aS'vitrifying' p2158 aS'vitrified' p2159 aS'vitrified' p2160 asS'penalize' p2161 (lp2162 S'penalizes' p2163 aS'penalizing' p2164 aS'penalized' p2165 aS'penalized' p2166 asS'vellicate' p2167 (lp2168 S'vellicates' p2169 aS'vellicating' p2170 aS'vellicated' p2171 aS'vellicated' p2172 asS'bewilder' p2173 (lp2174 S'bewilders' p2175 aS'bewildering' p2176 aS'bewildered' p2177 aS'bewildered' p2178 asS'parley' p2179 (lp2180 S'parleys' p2181 aS'parleying' p2182 aS'parleyed' p2183 aS'parleyed' p2184 asS'chrome' p2185 (lp2186 S'chromes' p2187 aS'chroming' p2188 aS'chromed' p2189 aS'chromed' p2190 asS'slay' p2191 (lp2192 S'slays' p2193 aS'slaying' p2194 aS'slew' p2195 aS'slain' p2196 asS'subside' p2197 (lp2198 S'subsides' p2199 aS'subsiding' p2200 aS'subsided' p2201 aS'subsided' p2202 asS'advert' p2203 (lp2204 S'adverts' p2205 aS'adverting' p2206 aS'adverted' p2207 aS'adverted' p2208 asS'privilege' p2209 (lp2210 S'privileges' p2211 aS'privileging' p2212 aS'privileged' p2213 aS'privileged' p2214 asS'fry' p2215 (lp2216 S'fries' p2217 aS'frying' p2218 aS'fried' p2219 aS'fried' p2220 asS'mothball' p2221 (lp2222 S'mothballs' p2223 aS'mothballing' p2224 aS'mothballed' p2225 aS'mothballed' p2226 asS'counterattack' p2227 (lp2228 sS'dry' p2229 (lp2230 S'dries' p2231 aS'drying' p2232 aS'dried' p2233 aS'dried' p2234 asS'retrospect' p2235 (lp2236 S'retrospects' p2237 aS'retrospecting' p2238 aS'retrospected' p2239 aS'retrospected' p2240 asS'spit' p2241 (lp2242 S'spits' p2243 aS'spitting' p2244 aS'spit' p2245 aS'spit' p2246 asS'intermarry' p2247 (lp2248 S'intermarries' p2249 aS'intermarrying' p2250 aS'intermarried' p2251 aS'intermarried' p2252 asS'wish' p2253 (lp2254 S'wishes' p2255 aS'wishing' p2256 aS'wished' p2257 aS'wished' p2258 asS'snap' p2259 (lp2260 S'snaps' p2261 aS'snapping' p2262 aS'snapped' p2263 aS'snapped' p2264 asS'joust' p2265 (lp2266 S'jousts' p2267 aS'jousting' p2268 aS'jousted' p2269 aS'jousted' p2270 asS'lift' p2271 (lp2272 S'lifts' p2273 aS'lifting' p2274 aS'lifted' p2275 aS'lifted' p2276 asS'incommode' p2277 (lp2278 S'incommodes' p2279 aS'incommoding' p2280 aS'incommoded' p2281 aS'incommoded' p2282 asS'toboggan' p2283 (lp2284 S'toboggans' p2285 aS'tobogganing' p2286 aS'tobogganed' p2287 aS'tobogganed' p2288 asS'dote' p2289 (lp2290 S'dotes' p2291 aS'doting' p2292 aS'doted' p2293 aS'doted' p2294 asS'spin' p2295 (lp2296 S'spins' p2297 aS'spinning' p2298 aS'spun' p2299 aS'spun' p2300 asS'excorciate' p2301 (lp2302 S'excorciates' p2303 aS'excorciating' p2304 aS'excorciated' p2305 aS'excorciated' p2306 asS'chill' p2307 (lp2308 S'chills' p2309 aS'chilling' p2310 aS'chilled' p2311 aS'chilled' p2312 asS'iodize' p2313 (lp2314 S'iodizes' p2315 aS'iodizing' p2316 aS'iodized' p2317 aS'iodized' p2318 asS'dissect' p2319 (lp2320 S'dissects' p2321 aS'dissecting' p2322 aS'dissected' p2323 aS'dissected' p2324 asS'overweigh' p2325 (lp2326 S'overweighs' p2327 aS'overweighing' p2328 aS'overweighed' p2329 aS'overweighed' p2330 asS'employ' p2331 (lp2332 S'employs' p2333 aS'employing' p2334 aS'employed' p2335 aS'employed' p2336 asS'prostrate' p2337 (lp2338 S'prostrates' p2339 aS'prostrating' p2340 aS'prostrated' p2341 aS'prostrated' p2342 asS'bin' p2343 (lp2344 S'bins' p2345 aS'binning' p2346 aS'binned' p2347 aS'binned' p2348 asS'phosphoresce' p2349 (lp2350 S'phosphoresces' p2351 aS'phosphorescing' p2352 aS'phosphoresced' p2353 aS'phosphoresced' p2354 asS'characterize' p2355 (lp2356 S'characterizes' p2357 aS'characterizing' p2358 aS'characterized' p2359 aS'characterized' p2360 asS'elicit' p2361 (lp2362 S'elicits' p2363 aS'eliciting' p2364 aS'elicited' p2365 aS'elicited' p2366 asS'transfuse' p2367 (lp2368 S'transfuses' p2369 aS'transfusing' p2370 aS'transfused' p2371 aS'transfused' p2372 asS'hone' p2373 (lp2374 S'hones' p2375 aS'honing' p2376 aS'honed' p2377 aS'honed' p2378 asS'credit' p2379 (lp2380 S'credits' p2381 aS'crediting' p2382 aS'credited' p2383 aS'credited' p2384 asS'remand' p2385 (lp2386 S'remands' p2387 aS'remanding' p2388 aS'remanded' p2389 aS'remanded' p2390 asS'decant' p2391 (lp2392 S'decants' p2393 aS'decanting' p2394 aS'decanted' p2395 aS'decanted' p2396 asS'split' p2397 (lp2398 S'splits' p2399 aS'splitting' p2400 aS'split' p2401 aS'split' p2402 asS'codename' p2403 (lp2404 S'codenames' p2405 aS'codenaming' p2406 aS'codenamed' p2407 aS'codenamed' p2408 asS'heathenize' p2409 (lp2410 S'heathenizes' p2411 aS'heathenizing' p2412 aS'heathenized' p2413 aS'heathenized' p2414 asS'personify' p2415 (lp2416 S'personifies' p2417 aS'personifying' p2418 aS'personified' p2419 aS'personified' p2420 asS'pipette' p2421 (lp2422 S'pipettes' p2423 aS'pipetting' p2424 aS'pipetted' p2425 aS'pipetted' p2426 asS'refit' p2427 (lp2428 S'refits' p2429 aS'refitting' p2430 aS'refitted' p2431 aS'refitted' p2432 asS'misdoubt' p2433 (lp2434 S'misdoubts' p2435 aS'misdoubting' p2436 aS'misdoubted' p2437 aS'misdoubted' p2438 asS'titivate' p2439 (lp2440 S'titivates' p2441 aS'titivating' p2442 aS'titivated' p2443 aS'titivated' p2444 asS'supper' p2445 (lp2446 S'suppers' p2447 aS'suppering' p2448 aS'suppered' p2449 aS'suppered' p2450 asS'tope' p2451 (lp2452 S'topes' p2453 aS'toping' p2454 aS'toped' p2455 aS'toped' p2456 asS'tune' p2457 (lp2458 S'tunes' p2459 aS'tuning' p2460 aS'tuned' p2461 aS'tuned' p2462 asS'furlough' p2463 (lp2464 S'furloughs' p2465 aS'furloughing' p2466 aS'furloughed' p2467 aS'furloughed' p2468 asS'jargonize' p2469 (lp2470 S'jargonizes' p2471 aS'jargonizing' p2472 aS'jargonized' p2473 aS'jargonized' p2474 asS'cannibalize' p2475 (lp2476 S'cannibalizes' p2477 aS'cannibalizing' p2478 aS'cannibalized' p2479 aS'cannibalized' p2480 asS'unhook' p2481 (lp2482 S'unhooks' p2483 aS'unhooking' p2484 aS'unhooked' p2485 aS'unhooked' p2486 asS'subpoena' p2487 (lp2488 S'subpoenas' p2489 aS'subpoenaing' p2490 aS'subpoenaed' p2491 aS'subpoenaed' p2492 asS'abound' p2493 (lp2494 S'abounds' p2495 aS'abounding' p2496 aS'abounded' p2497 aS'abounded' p2498 asS'bellow' p2499 (lp2500 S'bellows' p2501 aS'bellowing' p2502 aS'bellowed' p2503 aS'bellowed' p2504 asS'distribute' p2505 (lp2506 S'distributes' p2507 aS'distributing' p2508 aS'distributed' p2509 aS'distributed' p2510 asS'beset' p2511 (lp2512 S'besets' p2513 aS'besetting' p2514 aS'beset' p2515 aS'beset' p2516 asS'disguise' p2517 (lp2518 S'disguises' p2519 aS'disguising' p2520 aS'disguised' p2521 aS'disguised' p2522 asS'prognosticate' p2523 (lp2524 S'prognosticates' p2525 aS'prognosticating' p2526 aS'prognosticated' p2527 aS'prognosticated' p2528 asS'plight' p2529 (lp2530 S'plights' p2531 aS'plighting' p2532 aS'plighted' p2533 aS'plighted' p2534 asS'brandish' p2535 (lp2536 S'brandishes' p2537 aS'brandishing' p2538 aS'brandished' p2539 aS'brandished' p2540 asS'lasso' p2541 (lp2542 S'lassos' p2543 aS'lassoing' p2544 aS'lassoed' p2545 aS'lassoed' p2546 asS'ham' p2547 (lp2548 S'hams' p2549 aS'hamming' p2550 aS'hammed' p2551 aS'hammed' p2552 asS'aquaplane' p2553 (lp2554 S'aquaplanes' p2555 aS'aquaplaning' p2556 aS'aquaplaned' p2557 aS'aquaplaned' p2558 asS'ease' p2559 (lp2560 S'eases' p2561 aS'easing' p2562 aS'eased' p2563 aS'eased' p2564 asS'hay' p2565 (lp2566 S'hays' p2567 aS'haying' p2568 aS'hayed' p2569 aS'hayed' p2570 asS'falter' p2571 (lp2572 S'falters' p2573 aS'faltering' p2574 aS'faltered' p2575 aS'faltered' p2576 asS'hat' p2577 (lp2578 S'hats' p2579 aS'hatting' p2580 aS'hatted' p2581 aS'hatted' p2582 asS'haw' p2583 (lp2584 S'haws' p2585 aS'hawing' p2586 aS'hawed' p2587 aS'hawed' p2588 asS'footle' p2589 (lp2590 S'footles' p2591 aS'footling' p2592 aS'footled' p2593 aS'footled' p2594 asS'collectivize' p2595 (lp2596 S'collectivizes' p2597 aS'collectivizing' p2598 aS'collectivized' p2599 aS'collectivized' p2600 asS'birth' p2601 (lp2602 S'births' p2603 aS'birthing' p2604 aS'birthed' p2605 aS'birthed' p2606 asS'roister' p2607 (lp2608 S'roisters' p2609 aS'roistering' p2610 aS'roistered' p2611 aS'roistered' p2612 asS'shadow' p2613 (lp2614 S'shadows' p2615 aS'shadowing' p2616 aS'shadowed' p2617 aS'shadowed' p2618 asS'summons' p2619 (lp2620 sS'desire' p2621 (lp2622 S'desires' p2623 aS'desiring' p2624 aS'desired' p2625 aS'desired' p2626 asS'seek' p2627 (lp2628 S'seeks' p2629 aS'seeking' p2630 aS'sought' p2631 aS'sought' p2632 asS'disaccustom' p2633 (lp2634 S'disaccustoms' p2635 aS'disaccustoming' p2636 aS'disaccustomed' p2637 aS'disaccustomed' p2638 asS'altercate' p2639 (lp2640 S'altercates' p2641 aS'altercating' p2642 aS'altercated' p2643 aS'altercated' p2644 asS'remind' p2645 (lp2646 S'reminds' p2647 aS'reminding' p2648 aS'reminded' p2649 aS'reminded' p2650 asS'sectarianize' p2651 (lp2652 S'sectarianizes' p2653 aS'sectarianizing' p2654 aS'sectarianized' p2655 aS'sectarianized' p2656 asS'prologue' p2657 (lp2658 S'prologues' p2659 aS'prologuing' p2660 aS'prologued' p2661 aS'prologued' p2662 asS'right' p2663 (lp2664 S'rights' p2665 aS'righting' p2666 aS'righted' p2667 aS'righted' p2668 asS'crowd' p2669 (lp2670 S'crowds' p2671 aS'crowding' p2672 aS'crowded' p2673 aS'crowded' p2674 asS'people' p2675 (lp2676 S'peoples' p2677 aS'peopling' p2678 aS'peopled' p2679 aS'peopled' p2680 asS'scathe' p2681 (lp2682 S'scathes' p2683 aS'scathing' p2684 aS'scathed' p2685 aS'scathed' p2686 asS'crown' p2687 (lp2688 S'crowns' p2689 aS'crowning' p2690 aS'crowned' p2691 aS'crowned' p2692 asS'outgeneral' p2693 (lp2694 S'outgenerals' p2695 aS'outgeneralling' p2696 aS'outgeneralled' p2697 aS'outgeneralled' p2698 asS'mishit' p2699 (lp2700 S'mishits' p2701 aS'mishitting' p2702 aS'mishit' p2703 aS'mishit' p2704 asS'desensitize' p2705 (lp2706 S'desensitizes' p2707 aS'desensitizing' p2708 aS'desensitized' p2709 aS'desensitized' p2710 asS'demineralize' p2711 (lp2712 S'demineralizes' p2713 aS'demineralizing' p2714 aS'demineralized' p2715 aS'demineralized' p2716 asS'prick' p2717 (lp2718 S'pricks' p2719 aS'pricking' p2720 aS'pricked' p2721 aS'pricked' p2722 asS'animate' p2723 (lp2724 S'animates' p2725 aS'animating' p2726 aS'animated' p2727 aS'animated' p2728 asS'creep' p2729 (lp2730 S'creeps' p2731 aS'creeping' p2732 aS'crept' p2733 aS'crept' p2734 asS'chorus' p2735 (lp2736 S'choruses' p2737 aS'chorusing' p2738 aS'chorused' p2739 aS'chorused' p2740 asS'blackleg' p2741 (lp2742 S'blacklegs' p2743 aS'blacklegging' p2744 aS'blacklegged' p2745 aS'blacklegged' p2746 asS'rehearse' p2747 (lp2748 S'rehearses' p2749 aS'rehearsing' p2750 aS'rehearsed' p2751 aS'rehearsed' p2752 asS'fox' p2753 (lp2754 S'foxes' p2755 aS'foxing' p2756 aS'foxed' p2757 aS'foxed' p2758 asS'subclass' p2759 (lp2760 S'subclasses' p2761 aS'subclassing' p2762 aS'subclassed' p2763 aS'subclassed' p2764 asS'freezedry' p2765 (lp2766 S'freezedries' p2767 aS'freezedrying' p2768 aS'freezedried' p2769 aS'freezedried' p2770 asS'fog' p2771 (lp2772 S'fogs' p2773 aS'fogging' p2774 aS'fogged' p2775 aS'fogged' p2776 asS'fob' p2777 (lp2778 S'fobs' p2779 aS'fobbing' p2780 aS'fobbed' p2781 aS'fobbed' p2782 asS'germinate' p2783 (lp2784 S'germinates' p2785 aS'germinating' p2786 aS'germinated' p2787 aS'germinated' p2788 asS'preside' p2789 (lp2790 S'presides' p2791 aS'presiding' p2792 aS'presided' p2793 aS'presided' p2794 asS'collet' p2795 (lp2796 S'collets' p2797 aS'colleting' p2798 aS'colleted' p2799 aS'colleted' p2800 asS'doubletongue' p2801 (lp2802 S'doubletongues' p2803 aS'doubletonguing' p2804 aS'doubletongued' p2805 aS'doubletongued' p2806 asS'regorge' p2807 (lp2808 S'regorges' p2809 aS'regorging' p2810 aS'regorged' p2811 aS'regorged' p2812 asS'yoke' p2813 (lp2814 S'yokes' p2815 aS'yoking' p2816 aS'yoked' p2817 aS'yoked' p2818 asS'digitalize' p2819 (lp2820 S'digitalizes' p2821 aS'digitalizing' p2822 aS'digitalized' p2823 aS'digitalized' p2824 asS'intenerate' p2825 (lp2826 S'intenerates' p2827 aS'intenerating' p2828 aS'intenerated' p2829 aS'intenerated' p2830 asS'fiddlefaddle' p2831 (lp2832 S'fiddlefaddles' p2833 aS'fiddlefaddling' p2834 aS'fiddlefaddled' p2835 aS'fiddlefaddled' p2836 asS'lackey' p2837 (lp2838 S'lackeys' p2839 aS'lackeying' p2840 aS'lackeyed' p2841 aS'lackeyed' p2842 asS'autotomize' p2843 (lp2844 S'autotomizes' p2845 aS'autotomizing' p2846 aS'autotomized' p2847 aS'autotomized' p2848 asS'recollect' p2849 (lp2850 S'recollects' p2851 aS'recollecting' p2852 aS'recollected' p2853 aS'recollected' p2854 asS'reticulate' p2855 (lp2856 S'reticulates' p2857 aS'reticulating' p2858 aS'reticulated' p2859 aS'reticulated' p2860 asS'Platonize' p2861 (lp2862 S'Platonizes' p2863 aS'Platonizing' p2864 aS'Platonized' p2865 aS'Platonized' p2866 asS'meddle' p2867 (lp2868 S'meddles' p2869 aS'meddling' p2870 aS'meddled' p2871 aS'meddled' p2872 asS'sob' p2873 (lp2874 S'sobs' p2875 aS'sobbing' p2876 aS'sobbed' p2877 aS'sobbed' p2878 asS'goosestep' p2879 (lp2880 S'goosesteps' p2881 aS'goosesteping' p2882 aS'goosesteped' p2883 aS'goosesteped' p2884 asS'overshadow' p2885 (lp2886 S'overshadows' p2887 aS'overshadowing' p2888 aS'overshadowed' p2889 aS'overshadowed' p2890 asS'honeymoon' p2891 (lp2892 S'honeymoons' p2893 aS'honeymooning' p2894 aS'honeymooned' p2895 aS'honeymooned' p2896 asS'overgrow' p2897 (lp2898 S'overgrows' p2899 aS'overgrowing' p2900 aS'overgrew' p2901 aS'overgrown' p2902 asS'administer' p2903 (lp2904 S'administers' p2905 aS'administering' p2906 aS'administered' p2907 aS'administered' p2908 asS'multiply' p2909 (lp2910 S'multiplies' p2911 aS'multiplying' p2912 aS'multiplied' p2913 aS'multiplied' p2914 asS'inhume' p2915 (lp2916 S'inhumes' p2917 aS'inhuming' p2918 aS'inhumed' p2919 aS'inhumed' p2920 asS'swelter' p2921 (lp2922 S'swelters' p2923 aS'sweltering' p2924 aS'sweltered' p2925 aS'sweltered' p2926 asS'sow' p2927 (lp2928 S'sows' p2929 aS'sowing' p2930 aS'sowed' p2931 aS'sown' p2932 asS'mambo' p2933 (lp2934 S'mambos' p2935 aS'mamboing' p2936 aS'mamboed' p2937 aS'mamboed' p2938 asS'resile' p2939 (lp2940 S'resiles' p2941 aS'resiling' p2942 aS'resiled' p2943 aS'resiled' p2944 asS'nid-nod' p2945 (lp2946 S'nid-nods' p2947 aS'nid-nodding' p2948 aS'nid-nodded' p2949 aS'nid-nodded' p2950 asS'suffice' p2951 (lp2952 S'suffices' p2953 aS'sufficing' p2954 aS'sufficed' p2955 aS'sufficed' p2956 asS'decussate' p2957 (lp2958 S'decussates' p2959 aS'decussating' p2960 aS'decussated' p2961 aS'decussated' p2962 asS'tame' p2963 (lp2964 S'tames' p2965 aS'taming' p2966 aS'tamed' p2967 aS'tamed' p2968 asS'avail' p2969 (lp2970 S'avails' p2971 aS'availing' p2972 aS'availed' p2973 aS'availed' p2974 asS'furcate' p2975 (lp2976 S'furcates' p2977 aS'furcating' p2978 aS'furcated' p2979 aS'furcated' p2980 asS'tamp' p2981 (lp2982 S'tamps' p2983 aS'tamping' p2984 aS'tamped' p2985 aS'tamped' p2986 asS'overhand' p2987 (lp2988 S'overhands' p2989 aS'overhanding' p2990 aS'overhanded' p2991 aS'overhanded' p2992 asS'overhang' p2993 (lp2994 S'overhangs' p2995 aS'overhanging' p2996 aS'overhung' p2997 aS'overhung' p2998 asS'subtend' p2999 (lp3000 S'subtends' p3001 aS'subtending' p3002 aS'subtended' p3003 aS'subtended' p3004 asS'kalsomine' p3005 (lp3006 S'kalsomines' p3007 aS'kalsomining' p3008 aS'kalsomined' p3009 aS'kalsomined' p3010 asS'offer' p3011 (lp3012 S'offers' p3013 aS'offering' p3014 aS'offered' p3015 aS'offered' p3016 asS'unroot' p3017 (lp3018 S'unroots' p3019 aS'unrooting' p3020 aS'unrooted' p3021 aS'unrooted' p3022 asS'straggle' p3023 (lp3024 S'straggles' p3025 aS'straggling' p3026 aS'straggled' p3027 aS'straggled' p3028 asS'safeguard' p3029 (lp3030 S'safeguards' p3031 aS'safeguarding' p3032 aS'safeguarded' p3033 aS'safeguarded' p3034 asS'duel' p3035 (lp3036 S'duels' p3037 aS'duelling' p3038 aS'duelled' p3039 aS'duelled' p3040 asS'misinform' p3041 (lp3042 S'misinforms' p3043 aS'misinforming' p3044 aS'misinformed' p3045 aS'misinformed' p3046 asS'transliterate' p3047 (lp3048 S'transliterates' p3049 aS'transliterating' p3050 aS'transliterated' p3051 aS'transliterated' p3052 asS'pontificate' p3053 (lp3054 S'pontificates' p3055 aS'pontificating' p3056 aS'pontificated' p3057 aS'pontificated' p3058 asS'communize' p3059 (lp3060 S'communizes' p3061 aS'communizing' p3062 aS'communized' p3063 aS'communized' p3064 asS'discountenance' p3065 (lp3066 S'discountenances' p3067 aS'discountenancing' p3068 aS'discountenanced' p3069 aS'discountenanced' p3070 asS'disgrace' p3071 (lp3072 S'disgraces' p3073 aS'disgracing' p3074 aS'disgraced' p3075 aS'disgraced' p3076 asS'sight' p3077 (lp3078 S'sights' p3079 aS'sighting' p3080 aS'sighted' p3081 aS'sighted' p3082 asS'suborn' p3083 (lp3084 S'suborns' p3085 aS'suborning' p3086 aS'suborned' p3087 aS'suborned' p3088 asS'unnerve' p3089 (lp3090 S'unnerves' p3091 aS'unnerving' p3092 aS'unnerved' p3093 aS'unnerved' p3094 asS'grabble' p3095 (lp3096 S'grabbles' p3097 aS'grabbling' p3098 aS'grabbled' p3099 aS'grabbled' p3100 asS'crumble' p3101 (lp3102 S'crumbles' p3103 aS'crumbling' p3104 aS'crumbled' p3105 aS'crumbled' p3106 asS'soothe' p3107 (lp3108 S'soothes' p3109 aS'soothing' p3110 aS'soothed' p3111 aS'soothed' p3112 asS'exist' p3113 (lp3114 S'exists' p3115 aS'existing' p3116 aS'existed' p3117 aS'existed' p3118 asS'splotch' p3119 (lp3120 S'splotches' p3121 aS'splotching' p3122 aS'splotched' p3123 aS'splotched' p3124 asS'leer' p3125 (lp3126 sS'floor' p3127 (lp3128 S'floors' p3129 aS'flooring' p3130 aS'floored' p3131 aS'floored' p3132 asS'canonize' p3133 (lp3134 S'canonizes' p3135 aS'canonizing' p3136 aS'canonized' p3137 aS'canonized' p3138 asS'relax' p3139 (lp3140 S'relaxes' p3141 aS'relaxing' p3142 aS'relaxed' p3143 aS'relaxed' p3144 asS'flood' p3145 (lp3146 S'floods' p3147 aS'flooding' p3148 aS'flooded' p3149 aS'flooded' p3150 asS'desecrate' p3151 (lp3152 S'desecrates' p3153 aS'desecrating' p3154 aS'desecrated' p3155 aS'desecrated' p3156 asS'roughdry' p3157 (lp3158 S'roughdries' p3159 aS'roughdrying' p3160 aS'roughdried' p3161 aS'roughdried' p3162 asS'snick' p3163 (lp3164 S'snicks' p3165 aS'snicking' p3166 aS'snicked' p3167 aS'snicked' p3168 asS'smell' p3169 (lp3170 S'smells' p3171 aS'smelling' p3172 aS'smelt' p3173 aS'smelled' p3174 asS'circumcise' p3175 (lp3176 S'circumcises' p3177 aS'circumcising' p3178 aS'circumcised' p3179 aS'circumcised' p3180 asS'intend' p3181 (lp3182 S'intends' p3183 aS'intending' p3184 aS'intended' p3185 aS'intended' p3186 asS'valuate' p3187 (lp3188 S'valuates' p3189 aS'valuating' p3190 aS'valuated' p3191 aS'valuated' p3192 asS'asterisk' p3193 (lp3194 S'asterisks' p3195 aS'asterisking' p3196 aS'asterisked' p3197 aS'asterisked' p3198 asS'superadd' p3199 (lp3200 S'superadds' p3201 aS'superadding' p3202 aS'superadded' p3203 aS'superadded' p3204 asS'substract' p3205 (lp3206 S'substracts' p3207 aS'substracting' p3208 aS'substracted' p3209 aS'substracted' p3210 asS'foxhunt' p3211 (lp3212 S'foxhunts' p3213 aS'foxhunting' p3214 aS'foxhunted' p3215 aS'foxhunted' p3216 asS'objectify' p3217 (lp3218 S'objectifies' p3219 aS'objectifying' p3220 aS'objectified' p3221 aS'objectified' p3222 asS'snooze' p3223 (lp3224 S'snoozes' p3225 aS'snoozing' p3226 aS'snoozed' p3227 aS'snoozed' p3228 asS'hurt' p3229 (lp3230 S'hurts' p3231 aS'hurting' p3232 aS'hurt' p3233 aS'hurt' p3234 asS'warn' p3235 (lp3236 S'warns' p3237 aS'warning' p3238 aS'warned' p3239 aS'warned' p3240 asS'diadem' p3241 (lp3242 S'diadems' p3243 aS'diademing' p3244 aS'diademed' p3245 aS'diademed' p3246 asS'time' p3247 (lp3248 S'times' p3249 aS'timing' p3250 aS'timed' p3251 aS'timed' p3252 asS'push' p3253 (lp3254 S'pushes' p3255 aS'pushing' p3256 aS'pushed' p3257 aS'pushed' p3258 asS'frenzy' p3259 (lp3260 S'frenzies' p3261 aS'frenzying' p3262 aS'frenzied' p3263 aS'frenzied' p3264 asS'gown' p3265 (lp3266 S'gowns' p3267 aS'gowning' p3268 aS'gowned' p3269 aS'gowned' p3270 asS'moither' p3271 (lp3272 S'moithers' p3273 aS'moithering' p3274 aS'moithered' p3275 aS'moithered' p3276 asS'chain' p3277 (lp3278 S'chains' p3279 aS'chaining' p3280 aS'chained' p3281 aS'chained' p3282 asS'interspace' p3283 (lp3284 S'interspaces' p3285 aS'interspacing' p3286 aS'interspaced' p3287 aS'interspaced' p3288 asS'ruddle' p3289 (lp3290 S'ruddles' p3291 aS'ruddling' p3292 aS'ruddled' p3293 aS'ruddled' p3294 asS'avalanche' p3295 (lp3296 S'avalanches' p3297 aS'avalanching' p3298 aS'avalanched' p3299 aS'avalanched' p3300 asS'peninsulate' p3301 (lp3302 S'peninsulates' p3303 aS'peninsulating' p3304 aS'peninsulated' p3305 aS'peninsulated' p3306 asS'convoy' p3307 (lp3308 S'convoys' p3309 aS'convoying' p3310 aS'convoyed' p3311 aS'convoyed' p3312 asS'chair' p3313 (lp3314 S'chairs' p3315 aS'chairing' p3316 aS'chaired' p3317 aS'chaired' p3318 asS'retrofit' p3319 (lp3320 S'retrofits' p3321 aS'retrofitting' p3322 aS'retrofitted' p3323 aS'retrofitted' p3324 asS'vet' p3325 (lp3326 S'vets' p3327 aS'vetting' p3328 aS'vetted' p3329 aS'vetted' p3330 asS'freelance' p3331 (lp3332 S'freelances' p3333 aS'freelancing' p3334 aS'freelanced' p3335 aS'freelanced' p3336 asS'vex' p3337 (lp3338 S'vexes' p3339 aS'vexing' p3340 aS'vexed' p3341 aS'vexed' p3342 asS'crater' p3343 (lp3344 S'craters' p3345 aS'cratering' p3346 aS'cratered' p3347 aS'cratered' p3348 asS'syllogize' p3349 (lp3350 S'syllogizes' p3351 aS'syllogizing' p3352 aS'syllogized' p3353 aS'syllogized' p3354 asS'splutter' p3355 (lp3356 S'splutters' p3357 aS'spluttering' p3358 aS'spluttered' p3359 aS'spluttered' p3360 asS'persevere' p3361 (lp3362 S'perseveres' p3363 aS'persevering' p3364 aS'persevered' p3365 aS'persevered' p3366 asS'ingather' p3367 (lp3368 S'ingathers' p3369 aS'ingathering' p3370 aS'ingathered' p3371 aS'ingathered' p3372 asS'jerk' p3373 (lp3374 S'jerks' p3375 aS'jerking' p3376 aS'jerked' p3377 aS'jerked' p3378 asS'argufy' p3379 (lp3380 S'argufies' p3381 aS'argufying' p3382 aS'argufied' p3383 aS'argufied' p3384 asS'refinance' p3385 (lp3386 S'refinances' p3387 aS'refinancing' p3388 aS'refinanced' p3389 aS'refinanced' p3390 asS'embark' p3391 (lp3392 S'embarks' p3393 aS'embarking' p3394 aS'embarked' p3395 aS'embarked' p3396 asS'rook' p3397 (lp3398 S'rooks' p3399 aS'rooking' p3400 aS'rooked' p3401 aS'rooked' p3402 asS'mourn' p3403 (lp3404 S'mourns' p3405 aS'mourning' p3406 aS'mourned' p3407 aS'mourned' p3408 asS'bustle' p3409 (lp3410 S'bustles' p3411 aS'bustling' p3412 aS'bustled' p3413 aS'bustled' p3414 asS'exact' p3415 (lp3416 S'exacts' p3417 aS'exacting' p3418 aS'exacted' p3419 aS'exacted' p3420 asS'overstock' p3421 (lp3422 S'overstocks' p3423 aS'overstocking' p3424 aS'overstocked' p3425 aS'overstocked' p3426 asS'giftwrap' p3427 (lp3428 S'giftwraps' p3429 aS'giftwrapping' p3430 aS'giftwrapped' p3431 aS'giftwrapped' p3432 asS'disembody' p3433 (lp3434 S'disembodies' p3435 aS'disembodying' p3436 aS'disembodied' p3437 aS'disembodied' p3438 asS're-cede' p3439 (lp3440 S're-cedes' p3441 aS're-ceding' p3442 aS'receded' p3443 aS're-ceded' p3444 asS'tricycle' p3445 (lp3446 S'tricycles' p3447 aS'tricycling' p3448 aS'tricycled' p3449 aS'tricycled' p3450 asS'tear' p3451 (lp3452 S'tears' p3453 aS'tearing' p3454 aS'tore' p3455 aS'torn' p3456 asS'folk-dance' p3457 (lp3458 S'folk-dances' p3459 aS'folk-dancing' p3460 aS'folk-danced' p3461 aS'folk-danced' p3462 asS'skinpop' p3463 (lp3464 S'skinpops' p3465 aS'skinpopping' p3466 aS'skinpopped' p3467 aS'skinpopped' p3468 asS'overarch' p3469 (lp3470 S'overarches' p3471 aS'overarching' p3472 aS'overarched' p3473 aS'overarched' p3474 asS'larn' p3475 (lp3476 S'larns' p3477 aS'larning' p3478 aS'larned' p3479 aS'larned' p3480 asS'leave' p3481 (lp3482 S'leaves' p3483 aS'leaving' p3484 aS'leaved' p3485 aS'leaved' p3486 asS'settle' p3487 (lp3488 S'settles' p3489 aS'settling' p3490 aS'settled' p3491 aS'settled' p3492 asS'stockade' p3493 (lp3494 S'stockades' p3495 aS'stockading' p3496 aS'stockaded' p3497 aS'stockaded' p3498 asS'insufflate' p3499 (lp3500 S'insufflates' p3501 aS'insufflating' p3502 aS'insufflated' p3503 aS'insufflated' p3504 asS'skewer' p3505 (lp3506 sS'gasify' p3507 (lp3508 S'gasifies' p3509 aS'gasifying' p3510 aS'gasified' p3511 aS'gasified' p3512 asS're-join' p3513 (lp3514 S're-joins' p3515 aS're-joining' p3516 aS'rejoined' p3517 aS're-joined' p3518 asS'sigh' p3519 (lp3520 S'sighs' p3521 aS'sighing' p3522 aS'sighed' p3523 aS'sighed' p3524 asS'sign' p3525 (lp3526 S'signs' p3527 aS'signing' p3528 aS'signed' p3529 aS'signed' p3530 asS'Islamize' p3531 (lp3532 S'Islamizes' p3533 aS'Islamizing' p3534 aS'Islamized' p3535 aS'Islamized' p3536 asS'educate' p3537 (lp3538 S'educates' p3539 aS'educating' p3540 aS'educated' p3541 aS'educated' p3542 asS'sequestrate' p3543 (lp3544 S'sequestrates' p3545 aS'sequestrating' p3546 aS'sequestrated' p3547 aS'sequestrated' p3548 asS'convulse' p3549 (lp3550 S'convulses' p3551 aS'convulsing' p3552 aS'convulsed' p3553 aS'convulsed' p3554 asS'melt' p3555 (lp3556 S'melts' p3557 aS'melting' p3558 aS'melted' p3559 aS'molten' p3560 asS'wriggle' p3561 (lp3562 S'wriggles' p3563 aS'wriggling' p3564 aS'wriggled' p3565 aS'wriggled' p3566 asS'jog-trot' p3567 (lp3568 S'jog-trots' p3569 aS'jog-trotting' p3570 aS'jog-trotted' p3571 aS'jog-trotted' p3572 asS'boost' p3573 (lp3574 S'boosts' p3575 aS'boosting' p3576 aS'boosted' p3577 aS'boosted' p3578 asS'accoutre' p3579 (lp3580 S'accoutres' p3581 aS'accoutring' p3582 aS'accoutred' p3583 aS'accoutred' p3584 asS'osmose' p3585 (lp3586 S'osmoses' p3587 aS'osmosing' p3588 aS'osmosed' p3589 aS'osmosed' p3590 asS'abscond' p3591 (lp3592 S'absconds' p3593 aS'absconding' p3594 aS'absconded' p3595 aS'absconded' p3596 asS'honour' p3597 (lp3598 S'honours' p3599 aS'honouring' p3600 aS'honoured' p3601 aS'honoured' p3602 asS'contemplate' p3603 (lp3604 S'contemplates' p3605 aS'contemplating' p3606 aS'contemplated' p3607 aS'contemplated' p3608 asS'snack' p3609 (lp3610 S'snacks' p3611 aS'snacking' p3612 aS'snacked' p3613 aS'snacked' p3614 asS'splice' p3615 (lp3616 S'splices' p3617 aS'splicing' p3618 aS'spliced' p3619 aS'spliced' p3620 asS'address' p3621 (lp3622 S'addresses' p3623 aS'addressing' p3624 aS'addrest' p3625 aS'addrest' p3626 asS'sublease' p3627 (lp3628 S'subleases' p3629 aS'subleasing' p3630 aS'subleased' p3631 aS'subleased' p3632 asS'enroll' p3633 (lp3634 S'enrols' p3635 aS'enrolling' p3636 aS'enrolled' p3637 aS'enrolled' p3638 asS'halogenate' p3639 (lp3640 S'halogenates' p3641 aS'halogenating' p3642 aS'halogenated' p3643 aS'halogenated' p3644 asS'fledge' p3645 (lp3646 S'fledges' p3647 aS'fledging' p3648 aS'fledged' p3649 aS'fledged' p3650 asS'root' p3651 (lp3652 S'roots' p3653 aS'rooting' p3654 aS'rooted' p3655 aS'rooted' p3656 asS'queue' p3657 (lp3658 S'queues' p3659 aS'queueing' p3660 aS'queueed' p3661 aS'queueed' p3662 asS'coextend' p3663 (lp3664 S'coextends' p3665 aS'coextending' p3666 aS'coextended' p3667 aS'coextended' p3668 asS'solarize' p3669 (lp3670 S'solarizes' p3671 aS'solarizing' p3672 aS'solarized' p3673 aS'solarized' p3674 asS'etherify' p3675 (lp3676 S'etherifies' p3677 aS'etherifying' p3678 aS'etherified' p3679 aS'etherified' p3680 asS'respite' p3681 (lp3682 S'respites' p3683 aS'respiting' p3684 aS'respited' p3685 aS'respited' p3686 asS'love' p3687 (lp3688 S'loves' p3689 aS'loving' p3690 aS'loved' p3691 aS'loved' p3692 asS'disenthrall' p3693 (lp3694 S'disenthrals' p3695 aS'disenthralling' p3696 aS'disenthralled' p3697 aS'disenthralled' p3698 asS'prefer' p3699 (lp3700 S'prefers' p3701 aS'preferring' p3702 aS'preferred' p3703 aS'preferred' p3704 asS'bloody' p3705 (lp3706 S'bloodies' p3707 aS'bloodying' p3708 aS'bloodied' p3709 aS'bloodied' p3710 asS'abash' p3711 (lp3712 S'abashes' p3713 aS'abashing' p3714 aS'abashed' p3715 aS'abashed' p3716 asS'fake' p3717 (lp3718 S'fakes' p3719 aS'faking' p3720 aS'faked' p3721 aS'faked' p3722 asS'encyst' p3723 (lp3724 S'encysts' p3725 aS'encysting' p3726 aS'encysted' p3727 aS'encysted' p3728 asS'unlash' p3729 (lp3730 S'unlashes' p3731 aS'unlashing' p3732 aS'unlashed' p3733 aS'unlashed' p3734 asS'abase' p3735 (lp3736 S'abases' p3737 aS'abasing' p3738 aS'abased' p3739 aS'abased' p3740 asS'engrail' p3741 (lp3742 S'engrails' p3743 aS'engrailing' p3744 aS'engrailed' p3745 aS'engrailed' p3746 asS'dangle' p3747 (lp3748 S'dangles' p3749 aS'dangling' p3750 aS'dangled' p3751 aS'dangled' p3752 asS'crash-dive' p3753 (lp3754 S"crash-dives'" p3755 aS'crash-diving' p3756 aS'crash-dived' p3757 aS'crash-dived' p3758 asS'annunciate' p3759 (lp3760 S'annunciates' p3761 aS'annunciating' p3762 aS'annunciated' p3763 aS'annunciated' p3764 asS'afford' p3765 (lp3766 S'affords' p3767 aS'affording' p3768 aS'afforded' p3769 aS'afforded' p3770 asS'reprise' p3771 (lp3772 S'reprises' p3773 aS'reprising' p3774 aS'reprised' p3775 aS'reprised' p3776 asS'refrain' p3777 (lp3778 S'refrains' p3779 aS'refraining' p3780 aS'refrained' p3781 aS'refrained' p3782 asS'degrade' p3783 (lp3784 S'degrades' p3785 aS'degrading' p3786 aS'degraded' p3787 aS'degraded' p3788 asS'involve' p3789 (lp3790 S'involves' p3791 aS'involving' p3792 aS'involved' p3793 aS'involved' p3794 asS'lowercase' p3795 (lp3796 S'lower-casing' p3797 aS'lower-cased' p3798 aS'lower-cased' p3799 asS'embower' p3800 (lp3801 S'embowers' p3802 aS'embowering' p3803 aS'embowered' p3804 aS'embowered' p3805 asS'pretend' p3806 (lp3807 S'pretends' p3808 aS'pretending' p3809 aS'pretended' p3810 aS'pretended' p3811 asS'strain' p3812 (lp3813 S'strains' p3814 aS'straining' p3815 aS'strained' p3816 aS'strained' p3817 asS'dissimilate' p3818 (lp3819 S'dissimilates' p3820 aS'dissimilating' p3821 aS'dissimilated' p3822 aS'dissimilated' p3823 asS'dispossess' p3824 (lp3825 S'dispossesses' p3826 aS'dispossessing' p3827 aS'dispossessed' p3828 aS'dispossessed' p3829 asS'circumambulate' p3830 (lp3831 S'circumambulates' p3832 aS'circumambulating' p3833 aS'circumambulated' p3834 aS'circumambulated' p3835 asS'embrocate' p3836 (lp3837 S'embrocates' p3838 aS'embrocating' p3839 aS'embrocated' p3840 aS'embrocated' p3841 asS'parachute' p3842 (lp3843 S'parachutes' p3844 aS'parachuting' p3845 aS'parachuted' p3846 aS'parachuted' p3847 asS'evite' p3848 (lp3849 S'evites' p3850 aS'eviting' p3851 aS'evited' p3852 aS'evited' p3853 asS'rontgenize' p3854 (lp3855 S'rontgenizes' p3856 aS'rontgenizing' p3857 aS'rontgenized' p3858 aS'rontgenized' p3859 asS'emotionalize' p3860 (lp3861 S'emotionalizes' p3862 aS'emotionalizing' p3863 aS'emotionalized' p3864 aS'emotionalized' p3865 asS'disprize' p3866 (lp3867 S'disprizes' p3868 aS'disprizing' p3869 aS'disprized' p3870 aS'disprized' p3871 asS'winter' p3872 (lp3873 S'winters' p3874 aS'wintering' p3875 aS'wintered' p3876 aS'wintered' p3877 asS'ambush' p3878 (lp3879 S'ambushes' p3880 aS'ambushing' p3881 aS'ambushed' p3882 aS'ambushed' p3883 asS'splodge' p3884 (lp3885 S'splodges' p3886 aS'splodging' p3887 aS'splodged' p3888 aS'splodged' p3889 asS'cavil' p3890 (lp3891 S'cavils' p3892 aS'cavilling' p3893 aS'cavilled' p3894 aS'cavilled' p3895 asS'overissue' p3896 (lp3897 S'overissues' p3898 aS'overissuing' p3899 aS'overissued' p3900 aS'overissued' p3901 asS'spot' p3902 (lp3903 S'spots' p3904 aS'spotting' p3905 aS'spotted' p3906 aS'spotcheck' p3907 asS'rehabilitate' p3908 (lp3909 S'rehabilitates' p3910 aS'rehabilitating' p3911 aS'rehabilitated' p3912 aS'rehabilitated' p3913 asS'outthink' p3914 (lp3915 S'outthinks' p3916 aS'outthinking' p3917 aS'outthought' p3918 aS'outthought' p3919 asS'date' p3920 (lp3921 S'dates' p3922 aS'dating' p3923 aS'dated' p3924 aS'dated' p3925 asS'suck' p3926 (lp3927 S'sucks' p3928 aS'sucking' p3929 aS'sucked' p3930 aS'sucked' p3931 asS'journalize' p3932 (lp3933 S'journalizes' p3934 aS'journalizing' p3935 aS'journalized' p3936 aS'journalized' p3937 asS'stress' p3938 (lp3939 S'stresses' p3940 aS'stressing' p3941 aS'stressed' p3942 aS'stressed' p3943 asS'correlate' p3944 (lp3945 S'correlates' p3946 aS'correlating' p3947 aS'correlated' p3948 aS'correlated' p3949 asS'truck' p3950 (lp3951 S'trucks' p3952 aS'trucking' p3953 aS'trucked' p3954 aS'trucked' p3955 asS'skirmish' p3956 (lp3957 S'skirmishes' p3958 aS'skirmishing' p3959 aS'skirmished' p3960 aS'skirmished' p3961 asS'feature' p3962 (lp3963 S'features' p3964 aS'featuring' p3965 aS'featured' p3966 aS'featured' p3967 asS'course' p3968 (lp3969 S'courses' p3970 aS'coursing' p3971 aS'coursed' p3972 aS'coursed' p3973 asS'yearn' p3974 (lp3975 S'yearns' p3976 aS'yearning' p3977 aS'yearned' p3978 aS'yearned' p3979 asS'bastardize' p3980 (lp3981 S'bastardizes' p3982 aS'bastardizing' p3983 aS'bastardized' p3984 aS'bastardized' p3985 asS'horrify' p3986 (lp3987 S'horrifies' p3988 aS'horrifying' p3989 aS'horrified' p3990 aS'horrified' p3991 asS'mishear' p3992 (lp3993 S'mishears' p3994 aS'mishearing' p3995 aS'misheard' p3996 aS'misheard' p3997 asS'bulldoze' p3998 (lp3999 S'bulldozes' p4000 aS'bulldozing' p4001 aS'bulldozed' p4002 aS'bulldozed' p4003 asS'jig' p4004 (lp4005 S'jigs' p4006 aS'jigging' p4007 aS'jigged' p4008 aS'jigged' p4009 asS'derive' p4010 (lp4011 S'derives' p4012 aS'deriving' p4013 aS'derived' p4014 aS'derived' p4015 asS'overhaul' p4016 (lp4017 S'overhauls' p4018 aS'overhauling' p4019 aS'overhauled' p4020 aS'overhauled' p4021 asS'solace' p4022 (lp4023 S'solaces' p4024 aS'solacing' p4025 aS'solaced' p4026 aS'solaced' p4027 asS'stroll' p4028 (lp4029 S'strolls' p4030 aS'strolling' p4031 aS'strolled' p4032 aS'strolled' p4033 asS'thump' p4034 (lp4035 S'thumps' p4036 aS'thumping' p4037 aS'thumped' p4038 aS'thumped' p4039 asS'petition' p4040 (lp4041 S'petitions' p4042 aS'petitioning' p4043 aS'petitioned' p4044 aS'petitioned' p4045 asS'apron' p4046 (lp4047 S'aprons' p4048 aS'aproning' p4049 aS'aproned' p4050 aS'aproned' p4051 asS'smarten' p4052 (lp4053 S'smartens' p4054 aS'smartening' p4055 aS'smartened' p4056 aS'smartened' p4057 asS'bedevil' p4058 (lp4059 S'bedevils' p4060 aS'bedevilling' p4061 aS'bedevilled' p4062 aS'bedevilled' p4063 asS'sublimate' p4064 (lp4065 S'sublimates' p4066 aS'sublimating' p4067 aS'sublimated' p4068 aS'sublimated' p4069 asS'hiccough' p4070 (lp4071 S'hiccoughs' p4072 aS'hiccoughing' p4073 aS'hiccoughed' p4074 aS'hiccoughed' p4075 asS'plunk' p4076 (lp4077 S'plunks' p4078 aS'plunking' p4079 aS'plunked' p4080 aS'plunked' p4081 asS'revert' p4082 (lp4083 S'reverts' p4084 aS'reverting' p4085 aS'reverted' p4086 aS'reverted' p4087 asS'englut' p4088 (lp4089 S'engluts' p4090 aS'englutting' p4091 aS'englutted' p4092 aS'englutted' p4093 asS'amnesty' p4094 (lp4095 S'amnesties' p4096 aS'amnestying' p4097 aS'amnestied' p4098 aS'amnestied' p4099 asS'quarter' p4100 (lp4101 S'quarters' p4102 aS'quartering' p4103 aS'quartered' p4104 aS'quartered' p4105 asS'revere' p4106 (lp4107 S'reveres' p4108 aS'revering' p4109 aS'revered' p4110 aS'revered' p4111 asS'turtle' p4112 (lp4113 S'turtles' p4114 aS'turtling' p4115 aS'turtled' p4116 aS'turtled' p4117 asS'concertina' p4118 (lp4119 S'concertinas' p4120 aS'concertinaing' p4121 aS'concertinaed' p4122 aS'concertinaed' p4123 asS'square' p4124 (lp4125 S'squares' p4126 aS'squaring' p4127 aS'squared' p4128 aS'squared' p4129 asS'retrieve' p4130 (lp4131 S'retrieves' p4132 aS'retrieving' p4133 aS'retrieved' p4134 aS'retrieved' p4135 asS'edify' p4136 (lp4137 S'edifies' p4138 aS'edifying' p4139 aS'edified' p4140 aS'edified' p4141 asS'receipt' p4142 (lp4143 S'receipts' p4144 aS'receipting' p4145 aS'receipted' p4146 aS'receipted' p4147 asS'fireproof' p4148 (lp4149 S'fireproofs' p4150 aS'fireproofing' p4151 aS'fireproofed' p4152 aS'fireproofed' p4153 asS'asseverate' p4154 (lp4155 S'asseverates' p4156 aS'asseverating' p4157 aS'asseverated' p4158 aS'asseverated' p4159 asS'inhere' p4160 (lp4161 S'inheres' p4162 aS'inhering' p4163 aS'inhered' p4164 aS'inhered' p4165 asS'beetle' p4166 (lp4167 S'beetles' p4168 aS'beetling' p4169 aS'beetled' p4170 aS'beetled' p4171 asS'troll' p4172 (lp4173 S'trolls' p4174 aS'trolling' p4175 aS'trolled' p4176 aS'trolled' p4177 asS'jounce' p4178 (lp4179 S'jounces' p4180 aS'jouncing' p4181 aS'jounced' p4182 aS'jounced' p4183 asS'besprinkle' p4184 (lp4185 S'besprinkles' p4186 aS'besprinkling' p4187 aS'besprinkled' p4188 aS'besprinkled' p4189 asS'softsoap' p4190 (lp4191 S'softsoaps' p4192 aS'softsoaping' p4193 aS'softsoaped' p4194 aS'softsoaped' p4195 asS'abide' p4196 (lp4197 S'abides' p4198 aS'abiding' p4199 aS'abode' p4200 aS'abode' p4201 asS'spur' p4202 (lp4203 S'spurs' p4204 aS'spurring' p4205 aS'spurred' p4206 aS'spurred' p4207 asS'intermix' p4208 (lp4209 S'intermixes' p4210 aS'intermixing' p4211 aS'intermixed' p4212 aS'intermixed' p4213 asS'intermit' p4214 (lp4215 S'intermits' p4216 aS'intermitting' p4217 aS'intermitted' p4218 aS'intermitted' p4219 asS'hibernate' p4220 (lp4221 S'hibernates' p4222 aS'hibernating' p4223 aS'hibernated' p4224 aS'hibernated' p4225 asS'Braille' p4226 (lp4227 S'Brailles' p4228 aS'Brailling' p4229 aS'Brailled' p4230 aS'Brailled' p4231 asS'envelop' p4232 (lp4233 S'envelops' p4234 aS'enveloping' p4235 aS'enveloped' p4236 aS'enveloped' p4237 asS'reshuffle' p4238 (lp4239 S'reshuffles' p4240 aS'reshuffling' p4241 aS'reshuffled' p4242 aS'reshuffled' p4243 asS'disrespect' p4244 (lp4245 S'disrespects' p4246 aS'disrespecting' p4247 aS'disrespected' p4248 aS'disrespected' p4249 asS'snooker' p4250 (lp4251 S'snookers' p4252 aS'snookering' p4253 aS'snookered' p4254 aS'snookered' p4255 asS'mime' p4256 (lp4257 S'mimes' p4258 aS'miming' p4259 aS'mimed' p4260 aS'mimed' p4261 asS'remainder' p4262 (lp4263 S'remainders' p4264 aS'remaindering' p4265 aS'remaindered' p4266 aS'remaindered' p4267 asS'dog-paddle' p4268 (lp4269 S'dog-paddles' p4270 aS'dog-paddling' p4271 aS'dog-paddled' p4272 aS'dog-paddled' p4273 asS'gaff' p4274 (lp4275 S'gaffs' p4276 aS'gaffing' p4277 aS'gaffed' p4278 aS'gaffed' p4279 asS'chevy' p4280 (lp4281 S'chevies' p4282 aS'chevying' p4283 aS'chevied' p4284 aS'chevied' p4285 asS'initiate' p4286 (lp4287 S'initiates' p4288 aS'initiating' p4289 aS'initiated' p4290 aS'initiated' p4291 asS'enkindle' p4292 (lp4293 S'enkindles' p4294 aS'enkindling' p4295 aS'enkindled' p4296 aS'enkindled' p4297 asS'punt' p4298 (lp4299 S'punts' p4300 aS'punting' p4301 aS'punted' p4302 aS'punted' p4303 asS'calque' p4304 (lp4305 S'calques' p4306 aS'calquing' p4307 aS'calqued' p4308 aS'calqued' p4309 asS'solubilize' p4310 (lp4311 S'solubilizes' p4312 aS'solubilizing' p4313 aS'solubilized' p4314 aS'solubilized' p4315 asS'neglect' p4316 (lp4317 S'neglects' p4318 aS'neglecting' p4319 aS'neglected' p4320 aS'neglected' p4321 asS'sock' p4322 (lp4323 S'socks' p4324 aS'socking' p4325 aS'socked' p4326 aS'socked' p4327 asS'potter' p4328 (lp4329 S'potters' p4330 aS'pottering' p4331 aS'pottered' p4332 aS'pottered' p4333 asS'reopen' p4334 (lp4335 S'reopens' p4336 aS'reopening' p4337 aS'reopened' p4338 aS'reopened' p4339 asS'sjambok' p4340 (lp4341 S'sjamboks' p4342 aS'sjamboking' p4343 aS'sjamboked' p4344 aS'sjamboked' p4345 asS'submit' p4346 (lp4347 S'submits' p4348 aS'submitting' p4349 aS'submitted' p4350 aS'submitted' p4351 asS'croup' p4352 (lp4353 S'croups' p4354 aS'crouping' p4355 aS'crouped' p4356 aS'crouped' p4357 asS'open' p4358 (lp4359 S'opens' p4360 aS'opening' p4361 aS'opened' p4362 aS'opened' p4363 asS'summarize' p4364 (lp4365 S'summarizes' p4366 aS'summarizing' p4367 aS'summarized' p4368 aS'summarized' p4369 asS'languish' p4370 (lp4371 S'languishes' p4372 aS'languishing' p4373 aS'languished' p4374 aS'languished' p4375 asS'bite' p4376 (lp4377 S'bites' p4378 aS'biting' p4379 aS'bited' p4380 aS'bitten' p4381 asS'dandify' p4382 (lp4383 S'dandifies' p4384 aS'dandifying' p4385 aS'dandified' p4386 aS'dandified' p4387 asS'indicate' p4388 (lp4389 S'indicates' p4390 aS'indicating' p4391 aS'indicated' p4392 aS'indicated' p4393 asS'shiver' p4394 (lp4395 S'shivers' p4396 aS'shivering' p4397 aS'shivered' p4398 aS'shivered' p4399 asS'draft' p4400 (lp4401 sS'dissipate' p4402 (lp4403 S'dissipates' p4404 aS'dissipating' p4405 aS'dissipated' p4406 aS'dissipated' p4407 asS'convene' p4408 (lp4409 S'convenes' p4410 aS'convening' p4411 aS'convened' p4412 aS'convened' p4413 asS'cite' p4414 (lp4415 S'cites' p4416 aS'citing' p4417 aS'cited' p4418 aS'cited' p4419 asS'unmoor' p4420 (lp4421 S'unmoors' p4422 aS'unmooring' p4423 aS'unmoored' p4424 aS'unmoored' p4425 asS'demonetize' p4426 (lp4427 S'demonetizes' p4428 aS'demonetizing' p4429 aS'demonetized' p4430 aS'demonetized' p4431 asS'blazon' p4432 (lp4433 S'blazons' p4434 aS'blazoning' p4435 aS'blazoned' p4436 aS'blazoned' p4437 asS'bump-start' p4438 (lp4439 S'bump-starts' p4440 aS'bump-starting' p4441 aS'bump-started' p4442 aS'bump-started' p4443 asS'watersoak' p4444 (lp4445 S'watersoaks' p4446 aS'watersoaking' p4447 aS'watersoaked' p4448 aS'watersoaked' p4449 asS're-act' p4450 (lp4451 S're-acts' p4452 aS're-acting' p4453 aS'reacted' p4454 aS're-acted' p4455 asS'snatch' p4456 (lp4457 S'snatches' p4458 aS'snatching' p4459 aS'snatched' p4460 aS'snatched' p4461 asS'indwell' p4462 (lp4463 S'indwells' p4464 aS'indwelling' p4465 aS'indwelt' p4466 aS'indwelt' p4467 asS'poultice' p4468 (lp4469 S'poultices' p4470 aS'poulticing' p4471 aS'poulticed' p4472 aS'poulticed' p4473 asS'carbonize' p4474 (lp4475 S'carbonizes' p4476 aS'carbonizing' p4477 aS'carbonized' p4478 aS'carbonized' p4479 asS'translate' p4480 (lp4481 S'translates' p4482 aS'translating' p4483 aS'translated' p4484 aS'translated' p4485 asS'cower' p4486 (lp4487 S'cowers' p4488 aS'cowering' p4489 aS'cowered' p4490 aS'cowered' p4491 asS'stammer' p4492 (lp4493 S'stammers' p4494 aS'stammering' p4495 aS'stammered' p4496 aS'stammered' p4497 asS'distill' p4498 (lp4499 S'distils' p4500 aS'distilling' p4501 aS'distilled' p4502 aS'distilled' p4503 asS'winkle' p4504 (lp4505 S'winkles' p4506 aS'winkling' p4507 aS'winkled' p4508 aS'winkled' p4509 asS'Africanize' p4510 (lp4511 S'Africanizes' p4512 aS'Africanizing' p4513 aS'Africanized' p4514 aS'Africanized' p4515 asS'prospect' p4516 (lp4517 S'prospects' p4518 aS'prospecting' p4519 aS'prospected' p4520 aS'prospected' p4521 asS'smutch' p4522 (lp4523 S'smutches' p4524 aS'smutching' p4525 aS'smutched' p4526 aS'smutched' p4527 asS'sag' p4528 (lp4529 S'sags' p4530 aS'sagging' p4531 aS'sagged' p4532 aS'sagged' p4533 asS'necrose' p4534 (lp4535 S'necroses' p4536 aS'necrosing' p4537 aS'necrosed' p4538 aS'necrosed' p4539 asS'say' p4540 (lp4541 S'says' p4542 aS'saying' p4543 aS'said' p4544 aS'said' p4545 asS'sap' p4546 (lp4547 S'saps' p4548 aS'sapping' p4549 aS'sapped' p4550 aS'sapped' p4551 asS'saw' p4552 (lp4553 S'saws' p4554 aS'sawing' p4555 aS'sawed' p4556 aS'sawn' p4557 asS'perplex' p4558 (lp4559 S'perplexes' p4560 aS'perplexing' p4561 aS'perplexed' p4562 aS'perplexed' p4563 asS'aspirate' p4564 (lp4565 S'aspirates' p4566 aS'aspirating' p4567 aS'aspirated' p4568 aS'aspirated' p4569 asS'babysit' p4570 (lp4571 S'babysits' p4572 aS'babysitting' p4573 aS'babysat' p4574 aS'babysat' p4575 asS'knead' p4576 (lp4577 S'kneads' p4578 aS'kneading' p4579 aS'kneaded' p4580 aS'kneaded' p4581 asS'retroact' p4582 (lp4583 S'retroacts' p4584 aS'retroacting' p4585 aS'retroacted' p4586 aS'retroacted' p4587 asS'note' p4588 (lp4589 S'notes' p4590 aS'noting' p4591 aS'noted' p4592 aS'noted' p4593 asS'unlearn' p4594 (lp4595 S'unlearns' p4596 aS'unlearning' p4597 aS'unlearnt' p4598 aS'unlearnt' p4599 asS'maintain' p4600 (lp4601 S'maintains' p4602 aS'maintaining' p4603 aS'maintained' p4604 aS'maintained' p4605 asS'take' p4606 (lp4607 S'takes' p4608 aS'taking' p4609 aS'took' p4610 aS'taken' p4611 asS'destroy' p4612 (lp4613 S'destroys' p4614 aS'destroying' p4615 aS'destroyed' p4616 aS'destroyed' p4617 asS'coincide' p4618 (lp4619 S'coincides' p4620 aS'coinciding' p4621 aS'coincided' p4622 aS'coincided' p4623 asS'unfix' p4624 (lp4625 S'unfixes' p4626 aS'unfixing' p4627 aS'unfixed' p4628 aS'unfixed' p4629 asS'offload' p4630 (lp4631 S'offloads' p4632 aS'offloading' p4633 aS'offloaded' p4634 aS'offloaded' p4635 asS'buffer' p4636 (lp4637 sS'slump' p4638 (lp4639 S'slumps' p4640 aS'slumping' p4641 aS'slumped' p4642 aS'slumped' p4643 asS'compress' p4644 (lp4645 S'compresses' p4646 aS'compressing' p4647 aS'compressed' p4648 aS'compressed' p4649 asS'buffet' p4650 (lp4651 S'buffets' p4652 aS'buffeting' p4653 aS'buffeted' p4654 aS'buffeted' p4655 asS'abut' p4656 (lp4657 S'abuts' p4658 aS'abutting' p4659 aS'abutted' p4660 aS'abutted' p4661 asS'crochet' p4662 (lp4663 S'crochets' p4664 aS'crocheting' p4665 aS'crocheted' p4666 aS'crocheted' p4667 asS'hot-press' p4668 (lp4669 S'hot-presses' p4670 aS'hot-pressing' p4671 aS'hot-pressed' p4672 aS'hot-pressed' p4673 asS'chomp' p4674 (lp4675 S'chomps' p4676 aS'chomping' p4677 aS'chomped' p4678 aS'chomped' p4679 asS'operate' p4680 (lp4681 S'operates' p4682 aS'operating' p4683 aS'operated' p4684 aS'operated' p4685 asS'enamel' p4686 (lp4687 S'enamels' p4688 aS'enamelling' p4689 aS'enamelled' p4690 aS'enamelled' p4691 asS'energize' p4692 (lp4693 S'energizes' p4694 aS'energizing' p4695 aS'energized' p4696 aS'energized' p4697 asS'average' p4698 (lp4699 S'averages' p4700 aS'averaging' p4701 aS'averaged' p4702 aS'averaged' p4703 asS'drive' p4704 (lp4705 S'drives' p4706 aS'driving' p4707 aS'drove' p4708 aS'driven' p4709 asS'wind' p4710 (lp4711 S'winds' p4712 aS'winding' p4713 aS'wound' p4714 aS'wound' p4715 asS'axe' p4716 (lp4717 S'axes' p4718 aS'axing' p4719 aS'axed' p4720 aS'axed' p4721 asS'salt' p4722 (lp4723 S'salts' p4724 aS'salting' p4725 aS'salted' p4726 aS'salted' p4727 asS'intoxicate' p4728 (lp4729 S'intoxicates' p4730 aS'intoxicating' p4731 aS'intoxicated' p4732 aS'intoxicated' p4733 asS'tumefy' p4734 (lp4735 S'tumefies' p4736 aS'tumefying' p4737 aS'tumefied' p4738 aS'tumefied' p4739 asS'infuriate' p4740 (lp4741 S'infuriates' p4742 aS'infuriating' p4743 aS'infuriated' p4744 aS'infuriated' p4745 asS'mince' p4746 (lp4747 S'minces' p4748 aS'mincing' p4749 aS'minced' p4750 aS'minced' p4751 asS'merit' p4752 (lp4753 S'merits' p4754 aS'meriting' p4755 aS'merited' p4756 aS'merited' p4757 asS'underlet' p4758 (lp4759 S'underlets' p4760 aS'underletting' p4761 aS'underlet' p4762 aS'underlet' p4763 asS'dialogize' p4764 (lp4765 S'dialogizes' p4766 aS'dialogizing' p4767 aS'dialogized' p4768 aS'dialogized' p4769 asS'slot' p4770 (lp4771 S'slots' p4772 aS'slotting' p4773 aS'slotted' p4774 aS'slotted' p4775 asS'outspan' p4776 (lp4777 S'outspans' p4778 aS'outspanning' p4779 aS'outspanned' p4780 aS'outspanned' p4781 asS'slop' p4782 (lp4783 S'slops' p4784 aS'slopping' p4785 aS'slopped' p4786 aS'slopped' p4787 asS'transact' p4788 (lp4789 S'transacts' p4790 aS'transacting' p4791 aS'transacted' p4792 aS'transacted' p4793 asS'cloak' p4794 (lp4795 S'cloaks' p4796 aS'cloaking' p4797 aS'cloaked' p4798 aS'cloaked' p4799 asS'short' p4800 (lp4801 S'shorts' p4802 aS'shorting' p4803 aS'shorted' p4804 aS'shorted' p4805 asS'debunk' p4806 (lp4807 S'debunks' p4808 aS'debunking' p4809 aS'debunked' p4810 aS'debunked' p4811 asS'slog' p4812 (lp4813 S'slogs' p4814 aS'slogging' p4815 aS'slogged' p4816 aS'slogged' p4817 asS'outrage' p4818 (lp4819 S'outrages' p4820 aS'outraging' p4821 aS'outraged' p4822 aS'outraged' p4823 asS'robe' p4824 (lp4825 S'robes' p4826 aS'robing' p4827 aS'robed' p4828 aS'robed' p4829 asS'dispute' p4830 (lp4831 S'disputes' p4832 aS'disputing' p4833 aS'disputed' p4834 aS'disputed' p4835 asS'clank' p4836 (lp4837 S'clanks' p4838 aS'clanking' p4839 aS'clanked' p4840 aS'clanked' p4841 asS'digitize' p4842 (lp4843 S'digitizes' p4844 aS'digitizing' p4845 aS'digitized' p4846 aS'digitized' p4847 asS'clang' p4848 (lp4849 S'clangs' p4850 aS'clanging' p4851 aS'clanged' p4852 aS'clanged' p4853 asS'yammer' p4854 (lp4855 S'yammers' p4856 aS'yammering' p4857 aS'yammered' p4858 aS'yammered' p4859 asS'prime' p4860 (lp4861 S'primes' p4862 aS'priming' p4863 aS'primed' p4864 aS'primed' p4865 asS'disrate' p4866 (lp4867 S'disrates' p4868 aS'disrating' p4869 aS'disrated' p4870 aS'disrated' p4871 asS'pimp' p4872 (lp4873 S'pimps' p4874 aS'pimping' p4875 aS'pimped' p4876 aS'pimped' p4877 asS'assimilate' p4878 (lp4879 S'assimilates' p4880 aS'assimilating' p4881 aS'assimilated' p4882 aS'assimilated' p4883 asS'brominate' p4884 (lp4885 S'brominates' p4886 aS'brominating' p4887 aS'brominated' p4888 aS'brominated' p4889 asS'borrow' p4890 (lp4891 S'borrows' p4892 aS'borrowing' p4893 aS'borrowed' p4894 aS'borrowed' p4895 asS'obsolesce' p4896 (lp4897 S'obsolesces' p4898 aS'obsolescing' p4899 aS'obsolesced' p4900 aS'obsolesced' p4901 asS'spancel' p4902 (lp4903 S'spancels' p4904 aS'spancelling' p4905 aS'spancelled' p4906 aS'spancelled' p4907 asS'primp' p4908 (lp4909 S'primps' p4910 aS'primping' p4911 aS'primped' p4912 aS'primped' p4913 asS'strongarm' p4914 (lp4915 S'strongarms' p4916 aS'strongarming' p4917 aS'strongarmed' p4918 aS'strongarmed' p4919 asS'disparage' p4920 (lp4921 S'disparages' p4922 aS'disparaging' p4923 aS'disparaged' p4924 aS'disparaged' p4925 asS'vision' p4926 (lp4927 S'visions' p4928 aS'visioning' p4929 aS'visioned' p4930 aS'visioned' p4931 asS'keyboard' p4932 (lp4933 S'keyboards' p4934 aS'keyboarding' p4935 aS'keyboarded' p4936 aS'keyboarded' p4937 asS'espy' p4938 (lp4939 S'espies' p4940 aS'espying' p4941 aS'espied' p4942 aS'espied' p4943 asS'expiate' p4944 (lp4945 S'expiates' p4946 aS'expiating' p4947 aS'expiated' p4948 aS'expiated' p4949 asS'copyedit' p4950 (lp4951 S'copyedits' p4952 aS'copyediting' p4953 aS'copyedited' p4954 aS'copyedited' p4955 asS'interpellate' p4956 (lp4957 S'interpellates' p4958 aS'interpellating' p4959 aS'interpellated' p4960 aS'interpellated' p4961 asS'diddle' p4962 (lp4963 S'diddles' p4964 aS'diddling' p4965 aS'diddled' p4966 aS'diddled' p4967 asS'bootleg' p4968 (lp4969 S'bootlegs' p4970 aS'bootlegging' p4971 aS'bootlegged' p4972 aS'bootlegged' p4973 asS'denizen' p4974 (lp4975 S'denizens' p4976 aS'denizening' p4977 aS'denizened' p4978 aS'denizened' p4979 asS'heterodyne' p4980 (lp4981 S'heterodynes' p4982 aS'heterodyning' p4983 aS'heterodyned' p4984 aS'heterodyned' p4985 asS'mope' p4986 (lp4987 S'mopes' p4988 aS'moping' p4989 aS'moped' p4990 aS'moped' p4991 asS'presage' p4992 (lp4993 S'presages' p4994 aS'presaging' p4995 aS'presaged' p4996 aS'presaged' p4997 asS'forsake' p4998 (lp4999 S'forsakes' p5000 aS'forsaking' p5001 aS'forsook' p5002 aS'forsaken' p5003 asS'gutturalize' p5004 (lp5005 S'gutturalizes' p5006 aS'gutturalizing' p5007 aS'gutturalized' p5008 aS'gutturalized' p5009 asS'distrain' p5010 (lp5011 S'distrains' p5012 aS'distraining' p5013 aS'distrained' p5014 aS'distrained' p5015 asS'screen' p5016 (lp5017 S'screens' p5018 aS'screening' p5019 aS'screened' p5020 aS'screened' p5021 asS'dome' p5022 (lp5023 S'domes' p5024 aS'doming' p5025 aS'domed' p5026 aS'domed' p5027 asS'concentrate' p5028 (lp5029 S'concentrates' p5030 aS'concentrating' p5031 aS'concentrated' p5032 aS'concentrated' p5033 asS'spare' p5034 (lp5035 S'spares' p5036 aS'sparing' p5037 aS'spared' p5038 aS'spared' p5039 asS'spark' p5040 (lp5041 S'sparks' p5042 aS'sparking' p5043 aS'sparked' p5044 aS'sparked' p5045 asS'undermine' p5046 (lp5047 S'undermines' p5048 aS'undermining' p5049 aS'undermined' p5050 aS'undermined' p5051 asS'quack' p5052 (lp5053 S'quacks' p5054 aS'quacking' p5055 aS'quacked' p5056 aS'quacked' p5057 asS'oust' p5058 (lp5059 S'ousts' p5060 aS'ousting' p5061 aS'ousted' p5062 aS'ousted' p5063 asS'fit' p5064 (lp5065 S'fits' p5066 aS'fitting' p5067 aS'fitted' p5068 aS'fitted' p5069 asS'belie' p5070 (lp5071 S'belies' p5072 aS'belying' p5073 aS'belied' p5074 aS'belied' p5075 asS'checkrow' p5076 (lp5077 S'checkrows' p5078 aS'checkrowing' p5079 aS'checkrowed' p5080 aS'checkrowed' p5081 asS'calumniate' p5082 (lp5083 S'calumniates' p5084 aS'calumniating' p5085 aS'calumniated' p5086 aS'calumniated' p5087 asS'allowance' p5088 (lp5089 S'allowances' p5090 aS'allowancing' p5091 aS'allowanced' p5092 aS'allowanced' p5093 asS'riddle' p5094 (lp5095 S'riddles' p5096 aS'riddling' p5097 aS'riddled' p5098 aS'riddled' p5099 asS'twit' p5100 (lp5101 S'twits' p5102 aS'twitting' p5103 aS'twitted' p5104 aS'twitted' p5105 asS'twin' p5106 (lp5107 S'twins' p5108 aS'twinning' p5109 aS'twinned' p5110 aS'twinned' p5111 asS'article' p5112 (lp5113 S'articles' p5114 aS'articling' p5115 aS'articled' p5116 aS'articled' p5117 asS'ante' p5118 (lp5119 S'antes' p5120 aS'anteing' p5121 aS'anteed' p5122 aS'anteed' p5123 asS'false-card' p5124 (lp5125 S'false-cards' p5126 aS'false-carding' p5127 aS'false-carded' p5128 aS'false-carded' p5129 asS'twig' p5130 (lp5131 S'twigs' p5132 aS'twigging' p5133 aS'twigged' p5134 aS'twigged' p5135 asS'boat' p5136 (lp5137 S'boats' p5138 aS'boating' p5139 aS'boated' p5140 aS'boated' p5141 asS'stretch' p5142 (lp5143 S'stretches' p5144 aS'stretching' p5145 aS'stretched' p5146 aS'stretched' p5147 asS'vacation' p5148 (lp5149 S'vacations' p5150 aS'vacationing' p5151 aS'vacationed' p5152 aS'vacationed' p5153 asS'concede' p5154 (lp5155 S'concedes' p5156 aS'conceding' p5157 aS'conceded' p5158 aS'conceded' p5159 asS'cupel' p5160 (lp5161 S'cupels' p5162 aS'cupeling' p5163 aS'cupeled' p5164 aS'cupeled' p5165 asS'luff' p5166 (lp5167 S'luffs' p5168 aS'luffing' p5169 aS'luffed' p5170 aS'luffed' p5171 asS'enable' p5172 (lp5173 S'enables' p5174 aS'enabling' p5175 aS'enabled' p5176 aS'enabled' p5177 asS'disaccredit' p5178 (lp5179 S'disaccredits' p5180 aS'disaccrediting' p5181 aS'disaccredited' p5182 aS'disaccredited' p5183 asS'observe' p5184 (lp5185 S'observes' p5186 aS'observing' p5187 aS'observed' p5188 aS'observed' p5189 asS'transmogrify' p5190 (lp5191 S'transmogrifies' p5192 aS'transmogrifying' p5193 aS'transmogrified' p5194 aS'transmogrified' p5195 asS'stalemate' p5196 (lp5197 S'stalemates' p5198 aS'stalemating' p5199 aS'stalemated' p5200 aS'stalemated' p5201 asS'diffuse' p5202 (lp5203 S'diffuses' p5204 aS'diffusing' p5205 aS'diffused' p5206 aS'diffused' p5207 asS'profane' p5208 (lp5209 S'profanes' p5210 aS'profaning' p5211 aS'profaned' p5212 aS'profaned' p5213 asS'maladminister' p5214 (lp5215 S'maladministers' p5216 aS'maladministering' p5217 aS'maladministered' p5218 aS'maladministered' p5219 asS'trepan' p5220 (lp5221 S'trepans' p5222 aS'trepanning' p5223 aS'trepanned' p5224 aS'trepanned' p5225 asS'single' p5226 (lp5227 S'singles' p5228 aS'singling' p5229 aS'singled' p5230 aS'singled' p5231 asS'hypertrophy' p5232 (lp5233 S'hypertrophies' p5234 aS'hypertrophying' p5235 aS'hypertrophied' p5236 aS'hypertrophied' p5237 asS'coextrude' p5238 (lp5239 S'coextrudes' p5240 aS'coextruding' p5241 aS'coextruded' p5242 aS'coextruded' p5243 asS'hawse' p5244 (lp5245 S'hawses' p5246 aS'hawsing' p5247 aS'hawsed' p5248 aS'hawsed' p5249 asS'chamois' p5250 (lp5251 S'chamoises' p5252 aS'chamoising' p5253 aS'chamoised' p5254 aS'chamoised' p5255 asS'girth' p5256 (lp5257 S'girths' p5258 aS'girthing' p5259 aS'girthed' p5260 aS'girthed' p5261 asS'discolour' p5262 (lp5263 S'discolours' p5264 aS'discolouring' p5265 aS'discoloured' p5266 aS'discoloured' p5267 asS'canoe' p5268 (lp5269 S'canoes' p5270 aS'canoeing' p5271 aS'canoed' p5272 aS'canoed' p5273 asS'purse' p5274 (lp5275 S'purses' p5276 aS'pursing' p5277 aS'pursed' p5278 aS'pursed' p5279 asS'blat' p5280 (lp5281 S'blats' p5282 aS'blatting' p5283 aS'blatted' p5284 aS'blatted' p5285 asS'blah' p5286 (lp5287 S'blahs' p5288 aS'blahing' p5289 aS'blahed' p5290 aS'blahed' p5291 asS'cagmag' p5292 (lp5293 S'cagmags' p5294 aS'cagmaging' p5295 aS'cagmaged' p5296 aS'cagmaged' p5297 asS'imbricate' p5298 (lp5299 S'imbricates' p5300 aS'imbricating' p5301 aS'imbricated' p5302 aS'imbricated' p5303 asS'sweaway' p5304 (lp5305 S'sweaways' p5306 aS'sweawaying' p5307 aS'sweawayed' p5308 aS'sweawayed' p5309 asS'blab' p5310 (lp5311 S'blabs' p5312 aS'blabbing' p5313 aS'blabbed' p5314 aS'blabbed' p5315 asS'fame' p5316 (lp5317 S'fames' p5318 aS'faming' p5319 aS'famed' p5320 aS'famed' p5321 asS'gemmate' p5322 (lp5323 S'gemmates' p5324 aS'gemmating' p5325 aS'gemmated' p5326 aS'gemmated' p5327 asS'reanimate' p5328 (lp5329 S'reanimates' p5330 aS'reanimating' p5331 aS'reanimated' p5332 aS'reanimated' p5333 asS'excogitate' p5334 (lp5335 S'excogitates' p5336 aS'excogitating' p5337 aS'excogitated' p5338 aS'excogitated' p5339 asS'overfeed' p5340 (lp5341 S'overfeeds' p5342 aS'overfeeding' p5343 aS'overfed' p5344 aS'overfed' p5345 asS'geminate' p5346 (lp5347 S'geminates' p5348 aS'geminating' p5349 aS'geminated' p5350 aS'geminated' p5351 asS'unionize' p5352 (lp5353 S'unionizes' p5354 aS'unionizing' p5355 aS'unionized' p5356 aS'unionized' p5357 asS'nuzzle' p5358 (lp5359 S'nuzzles' p5360 aS'nuzzling' p5361 aS'nuzzled' p5362 aS'nuzzled' p5363 asS'defy' p5364 (lp5365 S'defies' p5366 aS'defying' p5367 aS'defied' p5368 aS'defied' p5369 asS'deflate' p5370 (lp5371 S'deflates' p5372 aS'deflating' p5373 aS'deflated' p5374 aS'deflated' p5375 asS'bulletproof' p5376 (lp5377 S'bulletproofs' p5378 aS'bulletproofing' p5379 aS'bulletproofed' p5380 aS'bulletproofed' p5381 asS'barber' p5382 (lp5383 S'barbers' p5384 aS'barbering' p5385 aS'barbered' p5386 aS'barbered' p5387 asS'disown' p5388 (lp5389 S'disowns' p5390 aS'disowning' p5391 aS'disowned' p5392 aS'disowned' p5393 asS'microfilm' p5394 (lp5395 S'microfilms' p5396 aS'microfilming' p5397 aS'microfilmed' p5398 aS'microfilmed' p5399 asS'recapture' p5400 (lp5401 S'recaptures' p5402 aS'recapturing' p5403 aS'recaptured' p5404 aS'recaptured' p5405 asS'wane' p5406 (lp5407 S'wanes' p5408 aS'waning' p5409 aS'waned' p5410 aS'waned' p5411 asS'tuft' p5412 (lp5413 S'tufts' p5414 aS'tufting' p5415 aS'tufted' p5416 aS'tufted' p5417 asS'clobber' p5418 (lp5419 S'clobbers' p5420 aS'clobbering' p5421 aS'clobbered' p5422 aS'clobbered' p5423 asS'dimension' p5424 (lp5425 S'dimensions' p5426 aS'dimensioning' p5427 aS'dimensioned' p5428 aS'dimensioned' p5429 asS'summer' p5430 (lp5431 S'summers' p5432 aS'summering' p5433 aS'summered' p5434 aS'summered' p5435 asS'manifold' p5436 (lp5437 S'manifolds' p5438 aS'manifolding' p5439 aS'manifolded' p5440 aS'manifolded' p5441 asS'poach' p5442 (lp5443 S'poaches' p5444 aS'poaching' p5445 aS'poached' p5446 aS'poached' p5447 asS'sceptre' p5448 (lp5449 S'sceptres' p5450 aS'sceptring' p5451 aS'sceptred' p5452 aS'sceptred' p5453 asS'disconcert' p5454 (lp5455 S'disconcerts' p5456 aS'disconcerting' p5457 aS'disconcerted' p5458 aS'disconcerted' p5459 asS'slime' p5460 (lp5461 S'slimes' p5462 aS'sliming' p5463 aS'slimed' p5464 aS'slimed' p5465 asS'rest' p5466 (lp5467 S'rests' p5468 aS'resting' p5469 aS'rested' p5470 aS'rested' p5471 asS'amalgamate' p5472 (lp5473 S'amalgamates' p5474 aS'amalgamating' p5475 aS'amalgamated' p5476 aS'amalgamated' p5477 asS'apostatize' p5478 (lp5479 S'apostatizes' p5480 aS'apostatizing' p5481 aS'apostatized' p5482 aS'apostatized' p5483 asS'disperse' p5484 (lp5485 S'disperses' p5486 aS'dispersing' p5487 aS'dispersed' p5488 aS'dispersed' p5489 asS'vamp' p5490 (lp5491 S'vamps' p5492 aS'vamping' p5493 aS'vamped' p5494 aS'vamped' p5495 asS'jitter' p5496 (lp5497 S'jitters' p5498 aS'jittering' p5499 aS'jittered' p5500 aS'jittered' p5501 asS'parlay' p5502 (lp5503 S'parlays' p5504 aS'parlaying' p5505 aS'parlayed' p5506 aS'parlayed' p5507 asS'underline' p5508 (lp5509 S'underlines' p5510 aS'underlining' p5511 aS'underlined' p5512 aS'underlined' p5513 asS'poetize' p5514 (lp5515 S'poetizes' p5516 aS'poetizing' p5517 aS'poetized' p5518 aS'poetized' p5519 asS'uncap' p5520 (lp5521 S'uncaps' p5522 aS'uncapping' p5523 aS'uncapped' p5524 aS'uncapped' p5525 asS'forebode' p5526 (lp5527 S'forebodes' p5528 aS'foreboding' p5529 aS'foreboded' p5530 aS'foreboded' p5531 asS'overthrow' p5532 (lp5533 S'overthrows' p5534 aS'overthrowing' p5535 aS'overthrew' p5536 aS'overthrown' p5537 asS'overcompensate' p5538 (lp5539 S'overcompensates' p5540 aS'overcompensating' p5541 aS'overcompensated' p5542 aS'overcompensated' p5543 asS'cerebrate' p5544 (lp5545 S'cerebrates' p5546 aS'cerebrating' p5547 aS'cerebrated' p5548 aS'cerebrated' p5549 asS'rejoin' p5550 (lp5551 S'rejoins' p5552 aS'rejoining' p5553 ag3517 aS'rejoined' p5554 asS'dart' p5555 (lp5556 S'darts' p5557 aS'darting' p5558 aS'darted' p5559 aS'darted' p5560 asS'dark' p5561 (lp5562 S'darks' p5563 aS'darking' p5564 aS'darked' p5565 aS'darked' p5566 asS'swirl' p5567 (lp5568 S'swirls' p5569 aS'swirling' p5570 aS'swirled' p5571 aS'swirled' p5572 asS'snarl' p5573 (lp5574 S'snarls' p5575 aS'snarling' p5576 aS'snarled' p5577 aS'snarled' p5578 asS'traffic' p5579 (lp5580 S'traffics' p5581 aS'trafficking' p5582 aS'trafficked' p5583 aS'trafficked' p5584 asS'bandage' p5585 (lp5586 S'bandages' p5587 aS'bandaging' p5588 aS'bandaged' p5589 aS'bandaged' p5590 asS'vacuum' p5591 (lp5592 S'vacuums' p5593 aS'vacuuming' p5594 aS'vacuumed' p5595 aS'vacuumed' p5596 asS'snare' p5597 (lp5598 S'snares' p5599 aS'snaring' p5600 aS'snared' p5601 aS'snared' p5602 asS'dare' p5603 (lp5604 S'dares' p5605 aS'daring' p5606 aS'dared' p5607 aS'dared' p5608 aS"daren't" p5609 asS'clam' p5610 (lp5611 S'clams' p5612 aS'clamming' p5613 aS'clammed' p5614 aS'clammed' p5615 asS'expunge' p5616 (lp5617 S'expunges' p5618 aS'expunging' p5619 aS'expunged' p5620 aS'expunged' p5621 asS'clad' p5622 (lp5623 S'clads' p5624 aS'cladding' p5625 aS'clad' p5626 aS'clad' p5627 asS'shutter' p5628 (lp5629 S'shutters' p5630 aS'shuttering' p5631 aS'shuttered' p5632 aS'shuttered' p5633 asS'gimme' p5634 (lp5635 S'gimmes' p5636 aS'gimming' p5637 aS'gimmed' p5638 aS'gimmed' p5639 asS'immolate' p5640 (lp5641 S'immolates' p5642 aS'immolating' p5643 aS'immolated' p5644 aS'immolated' p5645 asS'clay' p5646 (lp5647 S'clays' p5648 aS'claying' p5649 aS'clayed' p5650 aS'clayed' p5651 asS'claw' p5652 (lp5653 S'claws' p5654 aS'clawing' p5655 aS'clawed' p5656 aS'clawed' p5657 asS'inter' p5658 (lp5659 S'inters' p5660 aS'interring' p5661 aS'interred' p5662 aS'interred' p5663 asS'kennel' p5664 (lp5665 S'kennels' p5666 aS'kennelling' p5667 aS'kennelled' p5668 aS'kennelled' p5669 asS'clap' p5670 (lp5671 S'claps' p5672 aS'clapping' p5673 aS'clapped' p5674 aS'clapped' p5675 asS'obstruct' p5676 (lp5677 S'obstructs' p5678 aS'obstructing' p5679 aS'obstructed' p5680 aS'obstructed' p5681 asS'sulphuret' p5682 (lp5683 S'sulphurets' p5684 aS'sulphuretting' p5685 aS'sulphuretted' p5686 aS'sulphuretted' p5687 asS'grub' p5688 (lp5689 S'grubs' p5690 aS'grubbing' p5691 aS'grubbed' p5692 aS'grubbed' p5693 asS'gaggle' p5694 (lp5695 S'gaggles' p5696 aS'gaggling' p5697 aS'gaggled' p5698 aS'gaggled' p5699 asS'wattle' p5700 (lp5701 S'wattles' p5702 aS'wattling' p5703 aS'wattled' p5704 aS'wattled' p5705 asS'winch' p5706 (lp5707 S'winches' p5708 aS'winching' p5709 aS'winched' p5710 aS'winched' p5711 asS'asperse' p5712 (lp5713 S'asperses' p5714 aS'aspersing' p5715 aS'aspersed' p5716 aS'aspersed' p5717 asS'vivisect' p5718 (lp5719 S'vivisects' p5720 aS'vivisecting' p5721 aS'vivisected' p5722 aS'vivisected' p5723 asS'shadowbox' p5724 (lp5725 S'shadowboxes' p5726 aS'shadowboxing' p5727 aS'shadowboxed' p5728 aS'shadowboxed' p5729 asS'surtax' p5730 (lp5731 S'surtaxes' p5732 aS'surtaxing' p5733 aS'surtaxed' p5734 aS'surtaxed' p5735 asS'divine' p5736 (lp5737 S'divines' p5738 aS'divining' p5739 aS'divined' p5740 aS'divined' p5741 asS'about-ship' p5742 (lp5743 S'about-ships' p5744 aS'about-shipping' p5745 aS'about-shipped' p5746 aS'about-shipped' p5747 asS'authenticate' p5748 (lp5749 S'authenticates' p5750 aS'authenticating' p5751 aS'authenticated' p5752 aS'authenticated' p5753 asS'tote' p5754 (lp5755 S'totes' p5756 aS'toting' p5757 aS'toted' p5758 aS'toted' p5759 asS'stanchion' p5760 (lp5761 S'stanchions' p5762 aS'stanchioning' p5763 aS'stanchioned' p5764 aS'stanchioned' p5765 asS'tube' p5766 (lp5767 S'tubes' p5768 aS'tubing' p5769 aS'tubed' p5770 aS'tubed' p5771 asS'exit' p5772 (lp5773 S'exits' p5774 aS'exiting' p5775 aS'exited' p5776 aS'exited' p5777 asS'crenellate' p5778 (lp5779 S'crenellates' p5780 aS'crenellating' p5781 aS'crenellated' p5782 aS'crenellated' p5783 asS'situate' p5784 (lp5785 S'situates' p5786 aS'situating' p5787 aS'situated' p5788 aS'situated' p5789 asS'outfoot' p5790 (lp5791 S'outfoots' p5792 aS'outfooting' p5793 aS'outfooted' p5794 aS'outfooted' p5795 asS'squabble' p5796 (lp5797 S'squabbles' p5798 aS'squabbling' p5799 aS'squabbled' p5800 aS'squabbled' p5801 asS'power' p5802 (lp5803 S'powers' p5804 aS'powering' p5805 aS'powered' p5806 aS'powered' p5807 asS'intimate' p5808 (lp5809 S'intimates' p5810 aS'intimating' p5811 aS'intimated' p5812 aS'intimated' p5813 asS'ration' p5814 (lp5815 S'rations' p5816 aS'rationing' p5817 aS'rationed' p5818 aS'rationed' p5819 asS'poise' p5820 (lp5821 S'poises' p5822 aS'poising' p5823 aS'poised' p5824 aS'poised' p5825 asS'throwback' p5826 (lp5827 S'throwbacks' p5828 aS'throwbacking' p5829 aS'throwbacked' p5830 aS'throwbacked' p5831 asS'stone' p5832 (lp5833 S'stones' p5834 aS'stoning' p5835 aS'stoned' p5836 aS'stoned' p5837 asS'package' p5838 (lp5839 S'packages' p5840 aS'packaging' p5841 aS'packaged' p5842 aS'packaged' p5843 asS'mediate' p5844 (lp5845 S'mediates' p5846 aS'mediating' p5847 aS'mediated' p5848 aS'mediated' p5849 asS'fishtail' p5850 (lp5851 S'fishtails' p5852 aS'fishtailing' p5853 aS'fishtailed' p5854 aS'fishtailed' p5855 asS'municipalize' p5856 (lp5857 S'municipalizes' p5858 aS'municipalizing' p5859 aS'municipalized' p5860 aS'municipalized' p5861 asS'act' p5862 (lp5863 S'acts' p5864 aS'acting' p5865 aS'acted' p5866 aS'acted' p5867 asS'mean' p5868 (lp5869 S'means' p5870 aS'meaning' p5871 aS'meant' p5872 aS'meant' p5873 asS'individualize' p5874 (lp5875 S'individualizes' p5876 aS'individualizing' p5877 aS'individualized' p5878 aS'individualized' p5879 asS'rebuild' p5880 (lp5881 S'rebuilds' p5882 aS'rebuilding' p5883 aS'rebuilt' p5884 aS'rebuilt' p5885 asS'impregnate' p5886 (lp5887 S'impregnates' p5888 aS'impregnating' p5889 aS'impregnated' p5890 aS'impregnated' p5891 asS'yabber' p5892 (lp5893 S'yabbers' p5894 aS'yabbering' p5895 aS'yabbered' p5896 aS'yabbered' p5897 asS'potentiate' p5898 (lp5899 S'potentiates' p5900 aS'potentiating' p5901 aS'potentiated' p5902 aS'potentiated' p5903 asS'image' p5904 (lp5905 S'images' p5906 aS'imaging' p5907 aS'imaged' p5908 aS'imaged' p5909 asS'acuminate' p5910 (lp5911 S'acuminates' p5912 aS'acuminating' p5913 aS'acuminated' p5914 aS'acuminated' p5915 asS'inculcate' p5916 (lp5917 S'inculcates' p5918 aS'inculcating' p5919 aS'inculcated' p5920 aS'inculcated' p5921 asS'bodycheck' p5922 (lp5923 S'bodychecks' p5924 aS'bodychecking' p5925 aS'bodychecked' p5926 aS'bodychecked' p5927 asS'carbonado' p5928 (lp5929 S'carbonados' p5930 aS'carbonadoing' p5931 aS'carbonadoed' p5932 aS'carbonadoed' p5933 asS'apologize' p5934 (lp5935 S'apologizes' p5936 aS'apologizing' p5937 aS'apologized' p5938 aS'apologized' p5939 asS'pivot' p5940 (lp5941 S'pivots' p5942 aS'pivoting' p5943 aS'pivoted' p5944 aS'pivoted' p5945 asS'racquet' p5946 (lp5947 S'racquets' p5948 aS'racqueting' p5949 aS'racqueted' p5950 aS'racqueted' p5951 asS'overtrade' p5952 (lp5953 S'overtrades' p5954 aS'overtrading' p5955 aS'overtraded' p5956 aS'overtraded' p5957 asS'hew' p5958 (lp5959 S'hews' p5960 aS'hewing' p5961 aS'hewed' p5962 aS'hewn' p5963 asS'gleam' p5964 (lp5965 S'gleams' p5966 aS'gleaming' p5967 aS'gleamed' p5968 aS'gleamed' p5969 asS'glean' p5970 (lp5971 S'gleans' p5972 aS'gleaning' p5973 aS'gleaned' p5974 aS'gleaned' p5975 asS'hex' p5976 (lp5977 S'hexes' p5978 aS'hexing' p5979 aS'hexed' p5980 aS'hexed' p5981 asS'sken' p5982 (lp5983 S'skens' p5984 aS'skenning' p5985 aS'skenned' p5986 aS'skenned' p5987 asS'mollify' p5988 (lp5989 S'mollifies' p5990 aS'mollifying' p5991 aS'mollified' p5992 aS'mollified' p5993 asS'bubble' p5994 (lp5995 S'bubbles' p5996 aS'bubbling' p5997 aS'bubbled' p5998 aS'bubbled' p5999 asS'complete' p6000 (lp6001 S'completes' p6002 aS'completing' p6003 aS'completed' p6004 aS'completed' p6005 asS'outcrop' p6006 (lp6007 S'outcrops' p6008 aS'outcropping' p6009 aS'outcropped' p6010 aS'outcropped' p6011 asS'defrost' p6012 (lp6013 S'defrosts' p6014 aS'defrosting' p6015 aS'defrosted' p6016 aS'defrosted' p6017 asS'kotow' p6018 (lp6019 S'kotows' p6020 aS'kotowing' p6021 aS'kotowed' p6022 aS'kotowed' p6023 asS'pasteurize' p6024 (lp6025 S'pasteurizes' p6026 aS'pasteurizing' p6027 aS'pasteurized' p6028 aS'pasteurized' p6029 asS'whinny' p6030 (lp6031 S'whinnies' p6032 aS'whinnying' p6033 aS'whinnied' p6034 aS'whinnied' p6035 asS'amplify' p6036 (lp6037 S'amplifies' p6038 aS'amplifying' p6039 aS'amplified' p6040 aS'amplified' p6041 asS'pull' p6042 (lp6043 S'pulls' p6044 aS'pulling' p6045 aS'pulled' p6046 aS'pulled' p6047 asS'rush' p6048 (lp6049 S'rushes' p6050 aS'rushing' p6051 aS'rushed' p6052 aS'rushed' p6053 asS'mislay' p6054 (lp6055 S'mislays' p6056 aS'mislaying' p6057 aS'mislaid' p6058 aS'mislaid' p6059 asS'rage' p6060 (lp6061 S'rages' p6062 aS'raging' p6063 aS'raged' p6064 aS'raged' p6065 asS'pule' p6066 (lp6067 S'pules' p6068 aS'puling' p6069 aS'puled' p6070 aS'puled' p6071 asS'attenuate' p6072 (lp6073 S'attenuates' p6074 aS'attenuating' p6075 aS'attenuated' p6076 aS'attenuated' p6077 asS'flirt' p6078 (lp6079 S'flirts' p6080 aS'flirting' p6081 aS'flirted' p6082 aS'flirted' p6083 asS'impute' p6084 (lp6085 S'imputes' p6086 aS'imputing' p6087 aS'imputed' p6088 aS'imputed' p6089 asS'dirty' p6090 (lp6091 S'dirties' p6092 aS'dirtying' p6093 aS'dirtied' p6094 aS'dirtied' p6095 asS'reprimand' p6096 (lp6097 S'reprimands' p6098 aS'reprimanding' p6099 aS'reprimanded' p6100 aS'reprimanded' p6101 asS'suppurate' p6102 (lp6103 S'suppurates' p6104 aS'suppurating' p6105 aS'suppurated' p6106 aS'suppurated' p6107 asS'agree' p6108 (lp6109 S'agrees' p6110 aS'agreeing' p6111 aS'agreed' p6112 aS'agreed' p6113 asS'rust' p6114 (lp6115 S'rusts' p6116 aS'rusting' p6117 aS'rusted' p6118 aS'rusted' p6119 asS'naturalize' p6120 (lp6121 S'naturalizes' p6122 aS'naturalizing' p6123 aS'naturalized' p6124 aS'naturalized' p6125 asS'migrate' p6126 (lp6127 S'migrates' p6128 aS'migrating' p6129 aS'migrated' p6130 aS'migrated' p6131 asS'impugn' p6132 (lp6133 S'impugns' p6134 aS'impugning' p6135 aS'impugned' p6136 aS'impugned' p6137 asS'creak' p6138 (lp6139 S'creaks' p6140 aS'creaking' p6141 aS'creaked' p6142 aS'creaked' p6143 asS'jargon' p6144 (lp6145 S'jargons' p6146 aS'jargoning' p6147 aS'jargoned' p6148 aS'jargoned' p6149 asS'reddle' p6150 (lp6151 S'reddles' p6152 aS'reddling' p6153 aS'reddled' p6154 aS'reddled' p6155 asS'dawn' p6156 (lp6157 S'dawns' p6158 aS'dawning' p6159 aS'dawned' p6160 aS'dawned' p6161 asS'enplane' p6162 (lp6163 S'enplanes' p6164 aS'enplaning' p6165 aS'enplaned' p6166 aS'enplaned' p6167 asS'cream' p6168 (lp6169 S'creams' p6170 aS'creaming' p6171 aS'creamed' p6172 aS'creamed' p6173 asS'exasperate' p6174 (lp6175 S'exasperates' p6176 aS'exasperating' p6177 aS'exasperated' p6178 aS'exasperated' p6179 asS'rumple' p6180 (lp6181 S'rumples' p6182 aS'rumpling' p6183 aS'rumpled' p6184 aS'rumpled' p6185 asS'stillhunt' p6186 (lp6187 S'stillhunts' p6188 aS'stillhunting' p6189 aS'stillhunted' p6190 aS'stillhunted' p6191 asS'substantivize' p6192 (lp6193 S'substantivizes' p6194 aS'substantivizing' p6195 aS'substantivized' p6196 aS'substantivized' p6197 asS'abolish' p6198 (lp6199 S'abolishes' p6200 aS'abolishing' p6201 aS'abolished' p6202 aS'abolished' p6203 asS'whip' p6204 (lp6205 S'whips' p6206 aS'whipping' p6207 aS'whipped' p6208 aS'whipped' p6209 asS'leister' p6210 (lp6211 S'leisters' p6212 aS'leistering' p6213 aS'leistered' p6214 aS'leistered' p6215 asS'indemnify' p6216 (lp6217 S'indemnifies' p6218 aS'indemnifying' p6219 aS'indemnified' p6220 aS'indemnified' p6221 asS'annex' p6222 (lp6223 S'annexes' p6224 aS'annexing' p6225 aS'annexed' p6226 aS'annexed' p6227 asS'objurgate' p6228 (lp6229 S'objurgates' p6230 aS'objurgating' p6231 aS'objurgated' p6232 aS'objurgated' p6233 asS'slant' p6234 (lp6235 S'slants' p6236 aS'slanting' p6237 aS'slanted' p6238 aS'slanted' p6239 asS'ankylose' p6240 (lp6241 S'ankyloses' p6242 aS'ankylosing' p6243 aS'ankylosed' p6244 aS'ankylosed' p6245 asS'snitch' p6246 (lp6247 S'snitches' p6248 aS'snitching' p6249 aS'snitched' p6250 aS'snitched' p6251 asS'resell' p6252 (lp6253 S'resells' p6254 aS'reselling' p6255 aS'resold' p6256 aS'resold' p6257 asS'slang' p6258 (lp6259 S'slangs' p6260 aS'slanging' p6261 aS'slanged' p6262 aS'slanged' p6263 asS'ploat' p6264 (lp6265 S'ploats' p6266 aS'ploating' p6267 aS'ploated' p6268 aS'ploated' p6269 asS'neuter' p6270 (lp6271 S'neuters' p6272 aS'neutering' p6273 aS'neutered' p6274 aS'neutered' p6275 asS'groom' p6276 (lp6277 S'grooms' p6278 aS'grooming' p6279 aS'groomed' p6280 aS'groomed' p6281 asS'mask' p6282 (lp6283 S'masks' p6284 aS'masking' p6285 aS'masked' p6286 aS'masked' p6287 asS'mash' p6288 (lp6289 S'mashes' p6290 aS'mashing' p6291 aS'mashed' p6292 aS'mashed' p6293 asS'mimic' p6294 (lp6295 S'mimics' p6296 aS'mimicking' p6297 aS'mimicked' p6298 aS'mimicked' p6299 asS'mast' p6300 (lp6301 S'masts' p6302 aS'masting' p6303 aS'masted' p6304 aS'masted' p6305 asS'mass' p6306 (lp6307 S'masses' p6308 aS'massing' p6309 aS'massed' p6310 aS'massed' p6311 asS'quantify' p6312 (lp6313 S'quantifies' p6314 aS'quantifying' p6315 aS'quantified' p6316 aS'quantified' p6317 asS'repone' p6318 (lp6319 S'repones' p6320 aS'reponing' p6321 aS'reponed' p6322 aS'reponed' p6323 asS'retch' p6324 (lp6325 S'retches' p6326 aS'retching' p6327 aS'retched' p6328 aS'retched' p6329 asS'metastasize' p6330 (lp6331 S'metastasizes' p6332 aS'metastasizing' p6333 aS'metastasized' p6334 aS'metastasized' p6335 asS'consider' p6336 (lp6337 S'considers' p6338 aS'considering' p6339 aS'considered' p6340 aS'considered' p6341 asS'degas' p6342 (lp6343 S'degasses' p6344 aS'degassing' p6345 aS'degassed' p6346 aS'degassed' p6347 asS'beware' p6348 (lp6349 S'bewares' p6350 aS'bewaring' p6351 aS'bewared' p6352 aS'bewared' p6353 asS'neigh' p6354 (lp6355 S'neighs' p6356 aS'neighing' p6357 aS'neighed' p6358 aS'neighed' p6359 asS'importune' p6360 (lp6361 S'importunes' p6362 aS'importuning' p6363 aS'importuned' p6364 aS'importuned' p6365 asS'detruncate' p6366 (lp6367 S'detruncates' p6368 aS'detruncating' p6369 aS'detruncated' p6370 aS'detruncated' p6371 asS'territorialize' p6372 (lp6373 S'territorializes' p6374 aS'territorializing' p6375 aS'territorialized' p6376 aS'territorialized' p6377 asS'misfile' p6378 (lp6379 S'misfiles' p6380 aS'misfiling' p6381 aS'misfiled' p6382 aS'misfiled' p6383 asS'tinsel' p6384 (lp6385 S'tinsels' p6386 aS'tinselling' p6387 aS'tinselled' p6388 aS'tinselled' p6389 asS'Hellenize' p6390 (lp6391 S'Hellenizes' p6392 aS'Hellenizing' p6393 aS'Hellenized' p6394 aS'Hellenized' p6395 asS'overexpose' p6396 (lp6397 S'overexposes' p6398 aS'overexposing' p6399 aS'overexposed' p6400 aS'overexposed' p6401 asS'fine-draw' p6402 (lp6403 S'fine-draws' p6404 aS'fine-drawing' p6405 aS'fine-drew' p6406 aS'fine-drawn' p6407 asS'smile' p6408 (lp6409 S'smiles' p6410 aS'smiling' p6411 aS'smiled' p6412 aS'smiled' p6413 asS'tatter' p6414 (lp6415 S'tatters' p6416 aS'tattering' p6417 aS'tattered' p6418 aS'tattered' p6419 asS'bechance' p6420 (lp6421 S'bechances' p6422 aS'bechancing' p6423 aS'bechanced' p6424 aS'bechanced' p6425 asS'blockade' p6426 (lp6427 S'blockades' p6428 aS'blockading' p6429 aS'blockaded' p6430 aS'blockaded' p6431 asS'amerce' p6432 (lp6433 S'amerces' p6434 aS'amercing' p6435 aS'amerced' p6436 aS'amerced' p6437 asS'condition' p6438 (lp6439 S'conditions' p6440 aS'conditioning' p6441 aS'conditioned' p6442 aS'conditioned' p6443 asS'renegue' p6444 (lp6445 S'renegues' p6446 aS'reneguing' p6447 aS'renegued' p6448 aS'renegued' p6449 asS'cable' p6450 (lp6451 S'cables' p6452 aS'cabling' p6453 aS'cabled' p6454 aS'cabled' p6455 asS'recommit' p6456 (lp6457 S'recommits' p6458 aS'recommitting' p6459 aS'recommitted' p6460 aS'recommitted' p6461 asS'heist' p6462 (lp6463 S'heists' p6464 aS'heisting' p6465 aS'heisted' p6466 aS'heisted' p6467 asS'laud' p6468 (lp6469 S'lauds' p6470 aS'lauding' p6471 aS'lauded' p6472 aS'lauded' p6473 asS'sand' p6474 (lp6475 S'sands' p6476 aS'sanding' p6477 aS'sanded' p6478 aS'sanded' p6479 asS'adjust' p6480 (lp6481 S'adjusts' p6482 aS'adjusting' p6483 aS'adjusted' p6484 aS'adjusted' p6485 asS'miaul' p6486 (lp6487 S'miauls' p6488 aS'miauling' p6489 aS'miauled' p6490 aS'miauled' p6491 asS'exsiccate' p6492 (lp6493 S'exsiccates' p6494 aS'exsiccating' p6495 aS'exsiccated' p6496 aS'exsiccated' p6497 asS'harry' p6498 (lp6499 S'harries' p6500 aS'harrying' p6501 aS'harried' p6502 aS'harried' p6503 asS'conceptualize' p6504 (lp6505 S'conceptualizes' p6506 aS'conceptualizing' p6507 aS'conceptualized' p6508 aS'conceptualized' p6509 asS'enclasp' p6510 (lp6511 S'enclasps' p6512 aS'enclasping' p6513 aS'enclasped' p6514 aS'enclasped' p6515 asS'overpersuade' p6516 (lp6517 S'overpersuades' p6518 aS'overpersuading' p6519 aS'overpersuaded' p6520 aS'overpersuaded' p6521 asS'overspill' p6522 (lp6523 S'overspills' p6524 aS'overspilling' p6525 aS'overspilt' p6526 aS'overspilt' p6527 asS'decern' p6528 (lp6529 S'decerns' p6530 aS'decerning' p6531 aS'decerned' p6532 aS'decerned' p6533 asS'pash' p6534 (lp6535 S'pashes' p6536 aS'pashing' p6537 aS'pashed' p6538 aS'pashed' p6539 asS'sync' p6540 (lp6541 S'syncs' p6542 aS'syncing' p6543 aS'synced' p6544 aS'synced' p6545 asS'tongue-lash' p6546 (lp6547 S'tongue-lashes' p6548 aS'tongue-lashing' p6549 aS'tongue-lashed' p6550 aS'tongue-lashed' p6551 asS'past' p6552 (lp6553 S'pasts' p6554 aS'pasting' p6555 aS'pasted' p6556 aS'pasted' p6557 asS'burnish' p6558 (lp6559 S'burnishes' p6560 aS'burnishing' p6561 aS'burnished' p6562 aS'burnished' p6563 asS'pass' p6564 (lp6565 S'passes' p6566 aS'passing' p6567 aS'passed' p6568 aS'passed' p6569 asS'canvass' p6570 (lp6571 S'canvasses' p6572 aS'canvassing' p6573 aS'canvassed' p6574 aS'canvassed' p6575 asS'recalculate' p6576 (lp6577 S'recalculates' p6578 aS'recalculating' p6579 aS'recalculated' p6580 aS'recalculated' p6581 asS'quicken' p6582 (lp6583 S'quickens' p6584 aS'quickening' p6585 aS'quickened' p6586 aS'quickened' p6587 asS'scupper' p6588 (lp6589 S'scuppers' p6590 aS'scuppering' p6591 aS'scuppered' p6592 aS'scuppered' p6593 asS'clock' p6594 (lp6595 S'clocks' p6596 aS'clocking' p6597 aS'clocked' p6598 aS'clocked' p6599 asS'declass' p6600 (lp6601 S'declasses' p6602 aS'declassing' p6603 aS'declassed' p6604 aS'declassed' p6605 asS'forestall' p6606 (lp6607 S'forestalls' p6608 aS'forestalling' p6609 aS'forestalled' p6610 aS'forestalled' p6611 asS'section' p6612 (lp6613 S'sections' p6614 aS'sectioning' p6615 aS'sectioned' p6616 aS'sectioned' p6617 asS'whiff' p6618 (lp6619 S'whiffs' p6620 aS'whiffing' p6621 aS'whiffed' p6622 aS'whiffed' p6623 asS'hydrolyze' p6624 (lp6625 S'hydrolyzes' p6626 aS'hydrolyzing' p6627 aS'hydrolyzed' p6628 aS'hydrolyzed' p6629 asS'nurse' p6630 (lp6631 S'nurses' p6632 aS'nursing' p6633 aS'nursed' p6634 aS'nursed' p6635 asS'perforate' p6636 (lp6637 S'perforates' p6638 aS'perforating' p6639 aS'perforated' p6640 aS'perforated' p6641 asS'contrast' p6642 (lp6643 S'contrasts' p6644 aS'contrasting' p6645 aS'contrasted' p6646 aS'contrasted' p6647 asS'hash' p6648 (lp6649 S'hashes' p6650 aS'hashing' p6651 aS'hashed' p6652 aS'hashed' p6653 asS'empower' p6654 (lp6655 S'empowers' p6656 aS'empowering' p6657 aS'empowered' p6658 aS'empowered' p6659 asS'compose' p6660 (lp6661 S'composes' p6662 aS'composing' p6663 aS'composed' p6664 aS'composed' p6665 asS'hasp' p6666 (lp6667 S'hasps' p6668 aS'hasping' p6669 aS'hasped' p6670 aS'hasped' p6671 asS'overawe' p6672 (lp6673 S'overawes' p6674 aS'overawing' p6675 aS'overawed' p6676 aS'overawed' p6677 asS'razz' p6678 (lp6679 S'razzes' p6680 aS'razzing' p6681 aS'razzed' p6682 aS'razzed' p6683 asS'schuss' p6684 (lp6685 S'schusses' p6686 aS'schussing' p6687 aS'schussed' p6688 aS'schussed' p6689 asS'experience' p6690 (lp6691 S'experiences' p6692 aS'experiencing' p6693 aS'experienced' p6694 aS'experienced' p6695 asS'photoengrave' p6696 (lp6697 S'photoengraves' p6698 aS'photoengraving' p6699 aS'photoengraved' p6700 aS'photoengraved' p6701 asS'skyrocket' p6702 (lp6703 S'skyrockets' p6704 aS'skyrocketing' p6705 aS'skyrocketed' p6706 aS'skyrocketed' p6707 asS'pick' p6708 (lp6709 S'picks' p6710 aS'picking' p6711 aS'picked' p6712 aS'picked' p6713 asS'luck' p6714 (lp6715 S'lucks' p6716 aS'lucking' p6717 aS'lucked' p6718 aS'lucked' p6719 asS'raze' p6720 (lp6721 S'razes' p6722 aS'razing' p6723 aS'razed' p6724 aS'razed' p6725 asS'smuggle' p6726 (lp6727 S'smuggles' p6728 aS'smuggling' p6729 aS'smuggled' p6730 aS'smuggled' p6731 asS're-present' p6732 (lp6733 S're-presents' p6734 aS're-presenting' p6735 aS'represented' p6736 aS're-presented' p6737 asS'discommend' p6738 (lp6739 S'discommends' p6740 aS'discommending' p6741 aS'discommended' p6742 aS'discommended' p6743 asS'depart' p6744 (lp6745 S'departs' p6746 aS'departing' p6747 aS'departed' p6748 aS'departed' p6749 asS'vie' p6750 (lp6751 S'vies' p6752 aS'vying' p6753 aS'vied' p6754 aS'vied' p6755 asS'uprise' p6756 (lp6757 S'uprises' p6758 aS'uprising' p6759 aS'uprose' p6760 aS'uprisen' p6761 asS'regiment' p6762 (lp6763 S'regiments' p6764 aS'regimenting' p6765 aS'regimented' p6766 aS'regimented' p6767 asS'estimate' p6768 (lp6769 S'estimates' p6770 aS'estimating' p6771 aS'estimated' p6772 aS'estimated' p6773 asS'select' p6774 (lp6775 S'selects' p6776 aS'selecting' p6777 aS'selected' p6778 aS'selected' p6779 asS'subculture' p6780 (lp6781 S'subcultures' p6782 aS'subculturing' p6783 aS'subcultured' p6784 aS'subcultured' p6785 asS'palliate' p6786 (lp6787 S'palliates' p6788 aS'palliating' p6789 aS'palliated' p6790 aS'palliated' p6791 asS'decribe' p6792 (lp6793 S'decribes' p6794 aS'decribing' p6795 aS'decribed' p6796 aS'decribed' p6797 asS'enliven' p6798 (lp6799 S'enlivens' p6800 aS'enlivening' p6801 aS'enlivened' p6802 aS'enlivened' p6803 asS'indispose' p6804 (lp6805 S'indisposes' p6806 aS'indisposing' p6807 aS'indisposed' p6808 aS'indisposed' p6809 asS'maltreat' p6810 (lp6811 S'maltreats' p6812 aS'maltreating' p6813 aS'maltreated' p6814 aS'maltreated' p6815 asS'pearl' p6816 (lp6817 S'pearls' p6818 aS'pearling' p6819 aS'pearled' p6820 aS'pearled' p6821 asS'automate' p6822 (lp6823 S'automates' p6824 aS'automating' p6825 aS'automated' p6826 aS'automated' p6827 asS'adjoin' p6828 (lp6829 S'adjoins' p6830 aS'adjoining' p6831 aS'adjoined' p6832 aS'adjoined' p6833 asS'teem' p6834 (lp6835 S'teems' p6836 aS'teeming' p6837 aS'teemed' p6838 aS'teemed' p6839 asS'contrive' p6840 (lp6841 S'contrives' p6842 aS'contriving' p6843 aS'contrived' p6844 aS'contrived' p6845 asS'company' p6846 (lp6847 S'companies' p6848 aS'companying' p6849 aS'companied' p6850 aS'companied' p6851 asS'nitrify' p6852 (lp6853 S'nitrifies' p6854 aS'nitrifying' p6855 aS'nitrified' p6856 aS'nitrified' p6857 asS'pressure-cook' p6858 (lp6859 S'pressure-cooks' p6860 aS'pressure-cooking' p6861 aS'pressure-cooked' p6862 aS'pressure-cooked' p6863 asS'doom' p6864 (lp6865 S'dooms' p6866 aS'dooming' p6867 aS'doomed' p6868 aS'doomed' p6869 asS'unhinge' p6870 (lp6871 S'unhinges' p6872 aS'unhinging' p6873 aS'unhinged' p6874 aS'unhinged' p6875 asS'kibosh' p6876 (lp6877 S'kiboshes' p6878 aS'kiboshing' p6879 aS'kiboshed' p6880 aS'kiboshed' p6881 asS'fleece' p6882 (lp6883 S'fleeces' p6884 aS'fleecing' p6885 aS'fleeced' p6886 aS'fleeced' p6887 asS'apportion' p6888 (lp6889 S'apportions' p6890 aS'apportioning' p6891 aS'apportioned' p6892 aS'apportioned' p6893 asS'malt' p6894 (lp6895 S'malts' p6896 aS'malting' p6897 aS'malted' p6898 aS'malted' p6899 asS'chisel' p6900 (lp6901 S'chisels' p6902 aS'chiselling' p6903 aS'chiselled' p6904 aS'chiselled' p6905 asS'quickfreeze' p6906 (lp6907 S'quickfreezes' p6908 aS'quickfreezing' p6909 aS'quickfroze' p6910 aS'quickfrozen' p6911 asS'learn' p6912 (lp6913 S'learns' p6914 aS'learning' p6915 aS'learnt' p6916 aS'learnt' p6917 asS'grope' p6918 (lp6919 S'gropes' p6920 aS'groping' p6921 aS'groped' p6922 aS'groped' p6923 asS'changeover' p6924 (lp6925 S'changeovers' p6926 aS'changeovering' p6927 aS'changeovered' p6928 aS'changeovered' p6929 asS'scramble' p6930 (lp6931 S'scrambles' p6932 aS'scrambling' p6933 aS'scrambled' p6934 aS'scrambled' p6935 asS'desquamate' p6936 (lp6937 S'desquamates' p6938 aS'desquamating' p6939 aS'desquamated' p6940 aS'desquamated' p6941 asS'interflow' p6942 (lp6943 S'interflows' p6944 aS'interflowing' p6945 aS'interflowed' p6946 aS'interflowed' p6947 asS'lixiviate' p6948 (lp6949 S'lixiviates' p6950 aS'lixiviating' p6951 aS'lixiviated' p6952 aS'lixiviated' p6953 asS'gallop' p6954 (lp6955 S'gallops' p6956 aS'galloping' p6957 aS'galloped' p6958 aS'galloped' p6959 asS'scab' p6960 (lp6961 S'scabs' p6962 aS'scabbing' p6963 aS'scabbed' p6964 aS'scabbed' p6965 asS'accept' p6966 (lp6967 S'accepts' p6968 aS'accepting' p6969 aS'accepted' p6970 aS'accepted' p6971 asS'unzip' p6972 (lp6973 S'unzips' p6974 aS'unzipping' p6975 aS'unzipped' p6976 aS'unzipped' p6977 asS'ethicize' p6978 (lp6979 S'ethicizes' p6980 aS'ethicizing' p6981 aS'ethicized' p6982 aS'ethicized' p6983 asS'spore' p6984 (lp6985 S'spores' p6986 aS'sporing' p6987 aS'spored' p6988 aS'spored' p6989 asS'crossreference' p6990 (lp6991 S'crossreferences' p6992 aS'crossreferencing' p6993 aS'crossreferenced' p6994 aS'crossreferenced' p6995 asS'scar' p6996 (lp6997 S'scars' p6998 aS'scarring' p6999 aS'scarred' p7000 aS'scarred' p7001 asS'dress' p7002 (lp7003 S'dresses' p7004 aS'dressing' p7005 aS'dressed' p7006 aS'dressed' p7007 asS'scat' p7008 (lp7009 S'scats' p7010 aS'scatting' p7011 aS'scatted' p7012 aS'scatted' p7013 asS'condemn' p7014 (lp7015 S'condemns' p7016 aS'condemning' p7017 aS'condemned' p7018 aS'condemned' p7019 asS'dazzle' p7020 (lp7021 S'dazzles' p7022 aS'dazzling' p7023 aS'dazzled' p7024 aS'dazzled' p7025 asS'treadle' p7026 (lp7027 S'treadles' p7028 aS'treadling' p7029 aS'treadled' p7030 aS'treadled' p7031 asS'peptonize' p7032 (lp7033 S'peptonizes' p7034 aS'peptonizing' p7035 aS'peptonized' p7036 aS'peptonized' p7037 asS'enlarge' p7038 (lp7039 S'enlarges' p7040 aS'enlarging' p7041 aS'enlarged' p7042 aS'enlarged' p7043 asS'cling' p7044 (lp7045 S'clings' p7046 aS'clinging' p7047 aS'clung' p7048 aS'clung' p7049 asS'clink' p7050 (lp7051 S'clinks' p7052 aS'clinking' p7053 aS'clinked' p7054 aS'clinked' p7055 asS'plant' p7056 (lp7057 S'plants' p7058 aS'planting' p7059 aS'planted' p7060 aS'planted' p7061 asS'anoint' p7062 (lp7063 S'anoints' p7064 aS'anointing' p7065 aS'anointed' p7066 aS'anointed' p7067 asS'brachiate' p7068 (lp7069 S'brachiates' p7070 aS'brachiating' p7071 aS'brachiated' p7072 aS'brachiated' p7073 asS'sympathize' p7074 (lp7075 S'sympathizes' p7076 aS'sympathizing' p7077 aS'sympathized' p7078 aS'sympathized' p7079 asS'polymerize' p7080 (lp7081 S'polymerizes' p7082 aS'polymerizing' p7083 aS'polymerized' p7084 aS'polymerized' p7085 asS'volatilize' p7086 (lp7087 S'volatilizes' p7088 aS'volatilizing' p7089 aS'volatilized' p7090 aS'volatilized' p7091 asS'plane' p7092 (lp7093 S'planes' p7094 aS'planing' p7095 aS'planed' p7096 aS'planed' p7097 asS'waver' p7098 (lp7099 S'wavers' p7100 aS'wavering' p7101 aS'wavered' p7102 aS'wavered' p7103 asS'underseal' p7104 (lp7105 S'underseals' p7106 aS'undersealing' p7107 aS'undersealed' p7108 aS'undersealed' p7109 asS'develop' p7110 (lp7111 S'develops' p7112 aS'developing' p7113 aS'developed' p7114 aS'developed' p7115 asS'flutter' p7116 (lp7117 S'flutters' p7118 aS'fluttering' p7119 aS'fluttered' p7120 aS'fluttered' p7121 asS'misapprehend' p7122 (lp7123 S'misapprehends' p7124 aS'misapprehending' p7125 aS'misapprehended' p7126 aS'misapprehended' p7127 asS'refuse' p7128 (lp7129 S'refuses' p7130 aS'refusing' p7131 aS'refused' p7132 aS'refused' p7133 asS'resemble' p7134 (lp7135 S'resembles' p7136 aS'resembling' p7137 aS'resembled' p7138 aS'resembled' p7139 asS'register' p7140 (lp7141 S'registers' p7142 aS'registering' p7143 aS'registered' p7144 aS'registered' p7145 asS'pucker' p7146 (lp7147 S'puckers' p7148 aS'puckering' p7149 aS'puckered' p7150 aS'puckered' p7151 asS'denude' p7152 (lp7153 S'denudes' p7154 aS'denuding' p7155 aS'denuded' p7156 aS'denuded' p7157 asS'wrench' p7158 (lp7159 S'wrenches' p7160 aS'wrenching' p7161 aS'wrenched' p7162 aS'wrenched' p7163 asS'trellis' p7164 (lp7165 S'trellises' p7166 aS'trellising' p7167 aS'trellised' p7168 aS'trellised' p7169 asS'secondguess' p7170 (lp7171 S'secondguesses' p7172 aS'secondguessing' p7173 aS'secondguessed' p7174 aS'secondguessed' p7175 asS'pant' p7176 (lp7177 S'pants' p7178 aS'panting' p7179 aS'panted' p7180 aS'panted' p7181 asS'parboil' p7182 (lp7183 S'parboils' p7184 aS'parboiling' p7185 aS'parboiled' p7186 aS'parboiled' p7187 asS'televise' p7188 (lp7189 S'televises' p7190 aS'televising' p7191 aS'televised' p7192 aS'televised' p7193 asS'trichinize' p7194 (lp7195 S'trichinizes' p7196 aS'trichinizing' p7197 aS'trichinized' p7198 aS'trichinized' p7199 asS'trade' p7200 (lp7201 S'trades' p7202 aS'trading' p7203 aS'traded' p7204 aS'traded' p7205 asS'wester' p7206 (lp7207 S'westers' p7208 aS'westering' p7209 aS'westered' p7210 aS'westered' p7211 asS'paper' p7212 (lp7213 S'papers' p7214 aS'papering' p7215 aS'papered' p7216 aS'papered' p7217 asS'brim' p7218 (lp7219 S'brims' p7220 aS'brimming' p7221 aS'brimmed' p7222 aS'brimmed' p7223 asS'kibble' p7224 (lp7225 S'kibbles' p7226 aS'kibbling' p7227 aS'kibbled' p7228 aS'kibbled' p7229 asS'mamaguy' p7230 (lp7231 S'mamaguys' p7232 aS'mamaguying' p7233 aS'mamaguyed' p7234 aS'mamaguyed' p7235 asS'commeasure' p7236 (lp7237 S'commeasures' p7238 aS'commeasuring' p7239 aS'commeasured' p7240 aS'commeasured' p7241 asS'coarsen' p7242 (lp7243 S'coarsens' p7244 aS'coarsening' p7245 aS'coarsened' p7246 aS'coarsened' p7247 asS'bypass' p7248 (lp7249 sS'Judaize' p7250 (lp7251 S'Judaizes' p7252 aS'Judaizing' p7253 aS'Judaized' p7254 aS'Judaized' p7255 asS'sauce' p7256 (lp7257 S'sauces' p7258 aS'saucing' p7259 aS'sauced' p7260 aS'sauced' p7261 asS'ally' p7262 (lp7263 S'allies' p7264 aS'allying' p7265 aS'allied' p7266 aS'allied' p7267 asS'wry' p7268 (lp7269 S'wries' p7270 aS'wrying' p7271 aS'wried' p7272 aS'wried' p7273 asS'propose' p7274 (lp7275 S'proposes' p7276 aS'proposing' p7277 aS'proposed' p7278 aS'proposed' p7279 asS'consign' p7280 (lp7281 S'consigns' p7282 aS'consigning' p7283 aS'consigned' p7284 aS'consigned' p7285 asS'respire' p7286 (lp7287 S'respires' p7288 aS'respiring' p7289 aS'respired' p7290 aS'respired' p7291 asS'imperil' p7292 (lp7293 S'imperils' p7294 aS'imperiling' p7295 aS'imperiled' p7296 aS'imperiled' p7297 asS'skipper' p7298 (lp7299 S'skippers' p7300 aS'skippering' p7301 aS'skippered' p7302 aS'skippered' p7303 asS'misuse' p7304 (lp7305 S'misuses' p7306 aS'misusing' p7307 aS'misused' p7308 aS'misused' p7309 asS'speculate' p7310 (lp7311 S'speculates' p7312 aS'speculating' p7313 aS'speculated' p7314 aS'speculated' p7315 asS'harrow' p7316 (lp7317 S'harrows' p7318 aS'harrowing' p7319 aS'harrowed' p7320 aS'harrowed' p7321 asS'reemphasize' p7322 (lp7323 S'reemphasizes' p7324 aS'reemphasizing' p7325 aS'reemphasized' p7326 aS'reemphasized' p7327 asS'ingulf' p7328 (lp7329 S'ingulfs' p7330 aS'ingulfing' p7331 aS'ingulfed' p7332 aS'ingulfed' p7333 asS'resurface' p7334 (lp7335 S'resurfaces' p7336 aS'resurfacing' p7337 aS'resurfaced' p7338 aS'resurfaced' p7339 asS'mump' p7340 (lp7341 S'mumps' p7342 aS'mumping' p7343 aS'mumped' p7344 aS'mumped' p7345 asS'exorcize' p7346 (lp7347 S'exorcizes' p7348 aS'exorcizing' p7349 aS'exorcized' p7350 aS'exorcized' p7351 asS'reduce' p7352 (lp7353 S'reduces' p7354 aS'reducing' p7355 aS'reduced' p7356 aS'reduced' p7357 asS'police' p7358 (lp7359 S'polices' p7360 aS'policing' p7361 aS'policed' p7362 aS'policed' p7363 asS'unhair' p7364 (lp7365 S'unhairs' p7366 aS'unhairing' p7367 aS'unhaired' p7368 aS'unhaired' p7369 asS'mumm' p7370 (lp7371 S'mums' p7372 aS'mumming' p7373 aS'mummed' p7374 aS'mummed' p7375 asS'scribe' p7376 (lp7377 S'scribes' p7378 aS'scribing' p7379 aS'scribed' p7380 aS'scribed' p7381 asS'terrify' p7382 (lp7383 S'terrifies' p7384 aS'terrifying' p7385 aS'terrified' p7386 aS'terrified' p7387 asS'research' p7388 (lp7389 S'researches' p7390 aS'researching' p7391 aS'researched' p7392 aS'researched' p7393 asS'vowelize' p7394 (lp7395 S'vowelizes' p7396 aS'vowelizing' p7397 aS'vowelized' p7398 aS'vowelized' p7399 asS'Gothicize' p7400 (lp7401 S'Gothicizes' p7402 aS'Gothicizing' p7403 aS'Gothicized' p7404 aS'Gothicized' p7405 asS'salute' p7406 (lp7407 S'salutes' p7408 aS'saluting' p7409 aS'saluted' p7410 aS'saluted' p7411 asS'desulphurize' p7412 (lp7413 S'desulphurizes' p7414 aS'desulphurizing' p7415 aS'desulphurized' p7416 aS'desulphurized' p7417 asS'unbuckle' p7418 (lp7419 S'unbuckles' p7420 aS'unbuckling' p7421 aS'unbuckled' p7422 aS'unbuckled' p7423 asS'disfigure' p7424 (lp7425 S'disfigures' p7426 aS'disfiguring' p7427 aS'disfigured' p7428 aS'disfigured' p7429 asS'palter' p7430 (lp7431 S'palters' p7432 aS'paltering' p7433 aS'paltered' p7434 aS'paltered' p7435 asS'pickaxe' p7436 (lp7437 S'pickaxes' p7438 aS'pickaxing' p7439 aS'pickaxed' p7440 aS'pickaxed' p7441 asS'murmur' p7442 (lp7443 S'murmurs' p7444 aS'murmuring' p7445 aS'murmured' p7446 aS'murmured' p7447 asS'imagine' p7448 (lp7449 S'imagines' p7450 aS'imagining' p7451 aS'imagined' p7452 aS'imagined' p7453 asS'dehorn' p7454 (lp7455 S'dehorns' p7456 aS'dehorning' p7457 aS'dehorned' p7458 aS'dehorned' p7459 asS'reproach' p7460 (lp7461 S'reproaches' p7462 aS'reproaching' p7463 aS'reproached' p7464 aS'reproached' p7465 asS'lucubrate' p7466 (lp7467 S'lucubrates' p7468 aS'lucubrating' p7469 aS'lucubrated' p7470 aS'lucubrated' p7471 asS'fadge' p7472 (lp7473 S'fadges' p7474 aS'fadging' p7475 aS'fadged' p7476 aS'fadged' p7477 asS'sicken' p7478 (lp7479 S'sickens' p7480 aS'sickening' p7481 aS'sickened' p7482 aS'sickened' p7483 asS'bumper' p7484 (lp7485 S'bumpers' p7486 aS'bumpering' p7487 aS'bumpered' p7488 aS'bumpered' p7489 asS'constringe' p7490 (lp7491 S'constringes' p7492 aS'constringing' p7493 aS'constringed' p7494 aS'constringed' p7495 asS'clump' p7496 (lp7497 S'clumps' p7498 aS'clumping' p7499 aS'clumped' p7500 aS'clumped' p7501 asS'adduct' p7502 (lp7503 S'adducts' p7504 aS'adducting' p7505 aS'adducted' p7506 aS'adducted' p7507 asS'major' p7508 (lp7509 S'majors' p7510 aS'majoring' p7511 aS'majored' p7512 aS'majored' p7513 asS'purport' p7514 (lp7515 S'purports' p7516 aS'purporting' p7517 aS'purported' p7518 aS'purported' p7519 asS'mercurialize' p7520 (lp7521 S'mercurializes' p7522 aS'mercurializing' p7523 aS'mercurialized' p7524 aS'mercurialized' p7525 asS'number' p7526 (lp7527 sS'adduce' p7528 (lp7529 S'adduces' p7530 aS'adducing' p7531 aS'adduced' p7532 aS'adduced' p7533 asS'sequester' p7534 (lp7535 S'sequesters' p7536 aS'sequestering' p7537 aS'sequestered' p7538 aS'sequestered' p7539 asS'tango' p7540 (lp7541 S'tangoes' p7542 aS'tangoing' p7543 aS'tangoed' p7544 aS'tangoed' p7545 asS'glitter' p7546 (lp7547 S'glitters' p7548 aS'glittering' p7549 aS'glittered' p7550 aS'glittered' p7551 asS'guess' p7552 (lp7553 S'guesses' p7554 aS'guessing' p7555 aS'guessed' p7556 aS'guessed' p7557 asS'fuller' p7558 (lp7559 sS'guest' p7560 (lp7561 S'guests' p7562 aS'guesting' p7563 aS'guested' p7564 aS'guested' p7565 asS'jet' p7566 (lp7567 S'jets' p7568 aS'jetting' p7569 aS'jetted' p7570 aS'jetted' p7571 asS'swipe' p7572 (lp7573 S'swipes' p7574 aS'swiping' p7575 aS'swiped' p7576 aS'swiped' p7577 asS'saint' p7578 (lp7579 S'saints' p7580 aS'sainting' p7581 aS'sainted' p7582 aS'sainted' p7583 asS'aver' p7584 (lp7585 S'avers' p7586 aS'averring' p7587 aS'averred' p7588 aS'averred' p7589 asS'unbolt' p7590 (lp7591 S'unbolts' p7592 aS'unbolting' p7593 aS'unbolted' p7594 aS'unbolted' p7595 asS'gnash' p7596 (lp7597 S'gnashes' p7598 aS'gnashing' p7599 aS'gnashed' p7600 aS'gnashed' p7601 asS'discombobulate' p7602 (lp7603 S'discombobulates' p7604 aS'discombobulating' p7605 aS'discombobulated' p7606 aS'discombobulated' p7607 asS'embattle' p7608 (lp7609 S'embattles' p7610 aS'embattling' p7611 aS'embattled' p7612 aS'embattled' p7613 asS'decarburize' p7614 (lp7615 S'decarburizes' p7616 aS'decarburizing' p7617 aS'decarburized' p7618 aS'decarburized' p7619 asS'ingurgitate' p7620 (lp7621 S'ingurgitates' p7622 aS'ingurgitating' p7623 aS'ingurgitated' p7624 aS'ingurgitated' p7625 asS'consult' p7626 (lp7627 S'consults' p7628 aS'consulting' p7629 aS'consulted' p7630 aS'consulted' p7631 asS'stifle' p7632 (lp7633 S'stifles' p7634 aS'stifling' p7635 aS'stifled' p7636 aS'stifled' p7637 asS'grace' p7638 (lp7639 S'graces' p7640 aS'gracing' p7641 aS'graced' p7642 aS'graced' p7643 asS'truckle' p7644 (lp7645 S'truckles' p7646 aS'truckling' p7647 aS'truckled' p7648 aS'truckled' p7649 asS'frock' p7650 (lp7651 S'frocks' p7652 aS'frocking' p7653 aS'frocked' p7654 aS'frocked' p7655 asS'double-declutch' p7656 (lp7657 S'double-declutches' p7658 aS'double-declutching' p7659 aS'double-declutched' p7660 aS'double-declutched' p7661 asS'postdate' p7662 (lp7663 S'postdates' p7664 aS'postdating' p7665 aS'postdated' p7666 aS'postdated' p7667 asS'defect' p7668 (lp7669 S'defects' p7670 aS'defecting' p7671 aS'defected' p7672 aS'defected' p7673 asS'waft' p7674 (lp7675 S'wafts' p7676 aS'wafting' p7677 aS'wafted' p7678 aS'wafted' p7679 asS'unsnarl' p7680 (lp7681 S'unsnarls' p7682 aS'unsnarling' p7683 aS'unsnarled' p7684 aS'unsnarled' p7685 asS'caress' p7686 (lp7687 S'caresses' p7688 aS'caressing' p7689 aS'caressed' p7690 aS'caressed' p7691 asS'conjugate' p7692 (lp7693 S'conjugates' p7694 aS'conjugating' p7695 aS'conjugated' p7696 aS'conjugated' p7697 asS'waff' p7698 (lp7699 S'waffs' p7700 aS'waffing' p7701 aS'waffed' p7702 aS'waffed' p7703 asS'collapse' p7704 (lp7705 S'collapses' p7706 aS'collapsing' p7707 aS'collapsed' p7708 aS'collapsed' p7709 asS'sell' p7710 (lp7711 S'sells' p7712 aS'selling' p7713 aS'sold' p7714 aS'sold' p7715 asS'shrivel' p7716 (lp7717 S'shrivels' p7718 aS'shrivelling' p7719 aS'shrivelled' p7720 aS'shrivelled' p7721 asS'ratiocinate' p7722 (lp7723 S'ratiocinates' p7724 aS'ratiocinating' p7725 aS'ratiocinated' p7726 aS'ratiocinated' p7727 asS'tarnish' p7728 (lp7729 S'tarnishes' p7730 aS'tarnishing' p7731 aS'tarnished' p7732 aS'tarnished' p7733 asS'jeopardize' p7734 (lp7735 S'jeopardizes' p7736 aS'jeopardizing' p7737 aS'jeopardized' p7738 aS'jeopardized' p7739 asS'trowel' p7740 (lp7741 S'trowels' p7742 aS'trowelling' p7743 aS'trowelled' p7744 aS'trowelled' p7745 asS'distemper' p7746 (lp7747 S'distempers' p7748 aS'distempering' p7749 aS'distempered' p7750 aS'distempered' p7751 asS'kraal' p7752 (lp7753 S'kraals' p7754 aS'kraaling' p7755 aS'kraaled' p7756 aS'kraaled' p7757 asS'brace' p7758 (lp7759 S'braces' p7760 aS'bracing' p7761 aS'braced' p7762 aS'braced' p7763 asS'coff' p7764 (lp7765 S'coffs' p7766 aS'coffing' p7767 aS'coffed' p7768 aS'coffed' p7769 asS'pother' p7770 (lp7771 S'pothers' p7772 aS'pothering' p7773 aS'pothered' p7774 aS'pothered' p7775 asS'play' p7776 (lp7777 S'plays' p7778 aS'playing' p7779 aS'played' p7780 aS'played' p7781 asS'homologate' p7782 (lp7783 S'homologates' p7784 aS'homologating' p7785 aS'homologated' p7786 aS'homologated' p7787 asS'hurtle' p7788 (lp7789 S'hurtles' p7790 aS'hurtling' p7791 aS'hurtled' p7792 aS'hurtled' p7793 asS'die-cast' p7794 (lp7795 S'die-casts' p7796 aS'die-casting' p7797 aS'die-cast' p7798 aS'die-cast' p7799 asS'relumine' p7800 (lp7801 S'relumines' p7802 aS'relumining' p7803 aS'relumined' p7804 aS'relumined' p7805 asS'cinematograph' p7806 (lp7807 S'cinematographs' p7808 aS'cinematographing' p7809 aS'cinematographed' p7810 aS'cinematographed' p7811 asS'yawn' p7812 (lp7813 S'yawns' p7814 aS'yawning' p7815 aS'yawned' p7816 aS'yawned' p7817 asS'yawl' p7818 (lp7819 S'yawls' p7820 aS'yawling' p7821 aS'yawled' p7822 aS'yawled' p7823 asS'plan' p7824 (lp7825 S'plans' p7826 aS'planning' p7827 aS'planned' p7828 aS'planned' p7829 asS'wive' p7830 (lp7831 S'wives' p7832 aS'wiving' p7833 aS'wived' p7834 aS'wived' p7835 asS'mythologize' p7836 (lp7837 S'mythologizes' p7838 aS'mythologizing' p7839 aS'mythologized' p7840 aS'mythologized' p7841 asS'oyster' p7842 (lp7843 S'oysters' p7844 aS'oystering' p7845 aS'oystered' p7846 aS'oystered' p7847 asS'enigmatize' p7848 (lp7849 S'enigmatizes' p7850 aS'enigmatizing' p7851 aS'enigmatized' p7852 aS'enigmatized' p7853 asS'double-stop' p7854 (lp7855 S'double-stops' p7856 aS'double-stopping' p7857 aS'double-stopped' p7858 aS'double-stopped' p7859 asS'flite' p7860 (lp7861 S'flites' p7862 aS'fliting' p7863 aS'flited' p7864 aS'flited' p7865 asS'covet' p7866 (lp7867 S'covets' p7868 aS'coveting' p7869 aS'coveted' p7870 aS'coveted' p7871 asS'cover' p7872 (lp7873 S'covers' p7874 aS'covering' p7875 aS'covered' p7876 aS'covered' p7877 asS'institutionalize' p7878 (lp7879 S'institutionalizes' p7880 aS'institutionalizing' p7881 aS'institutionalized' p7882 aS'institutionalized' p7883 asS'dramatize' p7884 (lp7885 S'dramatizes' p7886 aS'dramatizing' p7887 aS'dramatized' p7888 aS'dramatized' p7889 asS're-proof' p7890 (lp7891 S're-proofs' p7892 aS'reproofing' p7893 aS'reproofed' p7894 aS'reproofed' p7895 asS'administrate' p7896 (lp7897 S'administrates' p7898 aS'administrating' p7899 aS'administrated' p7900 aS'administrated' p7901 asS'barrel' p7902 (lp7903 S'barrels' p7904 aS'barrelling' p7905 aS'barrelled' p7906 aS'barrelled' p7907 asS'reheat' p7908 (lp7909 S'reheats' p7910 aS'reheating' p7911 aS'reheated' p7912 aS'reheated' p7913 asS'bulletin' p7914 (lp7915 S'bulletins' p7916 aS'bulletining' p7917 aS'bulletined' p7918 aS'bulletined' p7919 asS'despise' p7920 (lp7921 S'despises' p7922 aS'despising' p7923 aS'despised' p7924 aS'despised' p7925 asS'ovulate' p7926 (lp7927 S'ovulates' p7928 aS'ovulating' p7929 aS'ovulated' p7930 aS'ovulated' p7931 asS'agonize' p7932 (lp7933 S'agonizes' p7934 aS'agonizing' p7935 aS'agonized' p7936 aS'agonized' p7937 asS'affix' p7938 (lp7939 S'affixes' p7940 aS'affixing' p7941 aS'affixed' p7942 aS'affixed' p7943 asS'misdate' p7944 (lp7945 S'misdates' p7946 aS'misdating' p7947 aS'misdated' p7948 aS'misdated' p7949 asS'desolate' p7950 (lp7951 S'desolates' p7952 aS'desolating' p7953 aS'desolated' p7954 aS'desolated' p7955 asS'freight' p7956 (lp7957 S'freights' p7958 aS'freighting' p7959 aS'freighted' p7960 aS'freighted' p7961 asS'impact' p7962 (lp7963 S'impacts' p7964 aS'impacting' p7965 aS'impacted' p7966 aS'impacted' p7967 asS'shouldst' p7968 (lp7969 S'shouldsts' p7970 aS'shouldsting' p7971 aS'shouldsted' p7972 aS'shouldsted' p7973 asS'surcease' p7974 (lp7975 S'surceases' p7976 aS'surceasing' p7977 aS'surceased' p7978 aS'surceased' p7979 asS'factor' p7980 (lp7981 S'factors' p7982 aS'factoring' p7983 aS'factored' p7984 aS'factored' p7985 asS'foreordain' p7986 (lp7987 S'foreordains' p7988 aS'foreordaining' p7989 aS'foreordained' p7990 aS'foreordained' p7991 asS'scuff' p7992 (lp7993 S'scuffs' p7994 aS'scuffing' p7995 aS'scuffed' p7996 aS'scuffed' p7997 asS'de-horn' p7998 (lp7999 S'de-horns' p8000 aS'de-horning' p8001 ag7458 aS'de-horned' p8002 asS'resent' p8003 (lp8004 S'resents' p8005 aS'resenting' p8006 aS'resented' p8007 aS'resented' p8008 asS'remedy' p8009 (lp8010 S'remedies' p8011 aS'remedying' p8012 aS'remedied' p8013 aS'remedied' p8014 asS'twill' p8015 (lp8016 S'twills' p8017 aS'twilling' p8018 aS'twilled' p8019 aS'twilled' p8020 asS'granulate' p8021 (lp8022 S'granulates' p8023 aS'granulating' p8024 aS'granulated' p8025 aS'granulated' p8026 asS'compass' p8027 (lp8028 S'compasses' p8029 aS'compassing' p8030 aS'compassed' p8031 aS'compassed' p8032 asS'ulcerate' p8033 (lp8034 S'ulcerates' p8035 aS'ulcerating' p8036 aS'ulcerated' p8037 aS'ulcerated' p8038 asS'sleeve' p8039 (lp8040 S'sleeves' p8041 aS'sleeving' p8042 aS'sleeved' p8043 aS'sleeved' p8044 asS'transship' p8045 (lp8046 S'transships' p8047 aS'transshipping' p8048 aS'transshipped' p8049 aS'transshipped' p8050 asS'cry' p8051 (lp8052 S'cries' p8053 aS'crying' p8054 aS'cried' p8055 aS'cried' p8056 asS'proclaim' p8057 (lp8058 S'proclaims' p8059 aS'proclaiming' p8060 aS'proclaimed' p8061 aS'proclaimed' p8062 asS'cease' p8063 (lp8064 S'ceases' p8065 aS'ceasing' p8066 aS'ceased' p8067 aS'ceased' p8068 asS'obscure' p8069 (lp8070 S'obscures' p8071 aS'obscuring' p8072 aS'obscured' p8073 aS'obscured' p8074 asS'rivet' p8075 (lp8076 S'rivets' p8077 aS'riveting' p8078 aS'riveted' p8079 aS'riveted' p8080 asS'weathercock' p8081 (lp8082 S'weathercocks' p8083 aS'weathercocking' p8084 aS'weathercocked' p8085 aS'weathercocked' p8086 asS'sew' p8087 (lp8088 S'sews' p8089 aS'sewing' p8090 aS'sewed' p8091 aS'sewn' p8092 asS'punce' p8093 (lp8094 S'punces' p8095 aS'puncing' p8096 aS'punced' p8097 aS'punced' p8098 asS'set' p8099 (lp8100 S'sets' p8101 aS'setting' p8102 aS'set' p8103 aS'set' p8104 asS'unpick' p8105 (lp8106 S'unpicks' p8107 aS'unpicking' p8108 aS'unpicked' p8109 aS'unpicked' p8110 asS'overwhelm' p8111 (lp8112 S'overwhelms' p8113 aS'overwhelming' p8114 aS'overwhelmed' p8115 aS'overwhelmed' p8116 asS'jade' p8117 (lp8118 S'jades' p8119 aS'jading' p8120 aS'jaded' p8121 aS'jaded' p8122 asS'nibble' p8123 (lp8124 S'nibbles' p8125 aS'nibbling' p8126 aS'nibbled' p8127 aS'nibbled' p8128 asS'sex' p8129 (lp8130 S'sexes' p8131 aS'sexing' p8132 aS'sexed' p8133 aS'sexed' p8134 asS'see' p8135 (lp8136 S'sees' p8137 aS'seeing' p8138 aS'saw' p8139 aS'seen' p8140 asS'backfire' p8141 (lp8142 S'backfires' p8143 aS'backfiring' p8144 aS'backfired' p8145 aS'backfired' p8146 asS'winterfeed' p8147 (lp8148 S'winterfeeds' p8149 aS'winterfeeding' p8150 aS'winterfed' p8151 aS'winterfed' p8152 asS'contour' p8153 (lp8154 S'contours' p8155 aS'contouring' p8156 aS'contoured' p8157 aS'contoured' p8158 asS'electioneer' p8159 (lp8160 S'electioneers' p8161 aS'electioneering' p8162 aS'electioneered' p8163 aS'electioneered' p8164 asS'shower' p8165 (lp8166 S'showers' p8167 aS'showering' p8168 aS'showered' p8169 aS'showered' p8170 asS'outbreed' p8171 (lp8172 S'outbreeds' p8173 aS'outbreeding' p8174 aS'outbred' p8175 aS'outbred' p8176 asS'phosphatize' p8177 (lp8178 S'phosphatizes' p8179 aS'phosphatizing' p8180 aS'phosphatized' p8181 aS'phosphatized' p8182 asS'deactivate' p8183 (lp8184 S'deactivates' p8185 aS'deactivating' p8186 aS'deactivated' p8187 aS'deactivated' p8188 asS'schematize' p8189 (lp8190 S'schematizes' p8191 aS'schematizing' p8192 aS'schematized' p8193 aS'schematized' p8194 asS'knap' p8195 (lp8196 S'knaps' p8197 aS'knapping' p8198 aS'knapped' p8199 aS'knapped' p8200 asS'motorize' p8201 (lp8202 S'motorizes' p8203 aS'motorizing' p8204 aS'motorized' p8205 aS'motorized' p8206 asS'beatify' p8207 (lp8208 S'beatifies' p8209 aS'beatifying' p8210 aS'beatified' p8211 aS'beatified' p8212 asS'kneel' p8213 (lp8214 S'kneels' p8215 aS'kneeling' p8216 aS'knelt' p8217 aS'knelt' p8218 asS'oxidize' p8219 (lp8220 S'oxidizes' p8221 aS'oxidizing' p8222 aS'oxidized' p8223 aS'oxidized' p8224 asS'mildew' p8225 (lp8226 S'mildews' p8227 aS'mildewing' p8228 aS'mildewed' p8229 aS'mildewed' p8230 asS'fold' p8231 (lp8232 S'folds' p8233 aS'folding' p8234 aS'folded' p8235 aS'folded' p8236 asS'loiter' p8237 (lp8238 S'loiters' p8239 aS'loitering' p8240 aS'loitered' p8241 aS'loitered' p8242 asS'abye' p8243 (lp8244 S'abys' p8245 aS'abying' p8246 aS'abought' p8247 aS'abought' p8248 asS'samba' p8249 (lp8250 S'sambas' p8251 aS'sambaing' p8252 aS'sambaed' p8253 aS'sambaed' p8254 asS'deracinate' p8255 (lp8256 S'deracinates' p8257 aS'deracinating' p8258 aS'deracinated' p8259 aS'deracinated' p8260 asS'milden' p8261 (lp8262 S'mildens' p8263 aS'mildening' p8264 aS'mildened' p8265 aS'mildened' p8266 asS'last' p8267 (lp8268 S'lasts' p8269 aS'lasting' p8270 aS'lasted' p8271 aS'lasted' p8272 asS'exscind' p8273 (lp8274 S'exscinds' p8275 aS'exscinding' p8276 aS'exscinded' p8277 aS'exscinded' p8278 asS'lase' p8279 (lp8280 S'lases' p8281 aS'lasing' p8282 aS'lased' p8283 aS'lased' p8284 asS'lash' p8285 (lp8286 S'lashes' p8287 aS'lashing' p8288 aS'lashed' p8289 aS'lashed' p8290 asS'approve' p8291 (lp8292 S'approves' p8293 aS'approving' p8294 aS'approved' p8295 aS'approved' p8296 asS'vesiculate' p8297 (lp8298 S'vesiculates' p8299 aS'vesiculating' p8300 aS'vesiculated' p8301 aS'vesiculated' p8302 asS'load' p8303 (lp8304 S'loads' p8305 aS'loading' p8306 aS'loaded' p8307 aS'loaded' p8308 asS'loaf' p8309 (lp8310 S'loafs' p8311 aS'loafing' p8312 aS'loafed' p8313 aS'loafed' p8314 asS'dizen' p8315 (lp8316 S'dizens' p8317 aS'dizening' p8318 aS'dizened' p8319 aS'dizened' p8320 asS'bell' p8321 (lp8322 S'bells' p8323 aS'belling' p8324 aS'belled' p8325 aS'belled' p8326 asS'loam' p8327 (lp8328 S'loams' p8329 aS'loaming' p8330 aS'loamed' p8331 aS'loamed' p8332 asS'loan' p8333 (lp8334 S'loans' p8335 aS'loaning' p8336 aS'loaned' p8337 aS'loaned' p8338 asS'gold-plate' p8339 (lp8340 S'gold-plates' p8341 aS'gold-plating' p8342 aS'gold-plated' p8343 aS'gold-plated' p8344 asS'scallop' p8345 (lp8346 S'scallops' p8347 aS'scalloping' p8348 aS'scalloped' p8349 aS'scalloped' p8350 asS'church' p8351 (lp8352 S'churches' p8353 aS'churching' p8354 aS'churched' p8355 aS'churched' p8356 asS'underlay' p8357 (lp8358 S'underlays' p8359 aS'underlaying' p8360 aS'underlaid' p8361 aS'underlaid' p8362 asS'entail' p8363 (lp8364 S'entails' p8365 aS'entailing' p8366 aS'entailed' p8367 aS'entailed' p8368 asS'devil' p8369 (lp8370 S'devils' p8371 aS'deviling' p8372 aS'deviled' p8373 aS'deviled' p8374 asS'seep' p8375 (lp8376 S'seeps' p8377 aS'seeping' p8378 aS'seeped' p8379 aS'seeped' p8380 asS'imbed' p8381 (lp8382 S'imbeds' p8383 aS'imbedding' p8384 aS'imbedded' p8385 aS'imbedded' p8386 asS'rattle' p8387 (lp8388 S'rattles' p8389 aS'rattling' p8390 aS'rattled' p8391 aS'rattled' p8392 asS'Mace' p8393 (lp8394 S'Maces' p8395 aS'Maceing' p8396 aS'Maced' p8397 aS'Maced' p8398 asS'veneer' p8399 (lp8400 S'veneers' p8401 aS'veneering' p8402 aS'veneered' p8403 aS'veneered' p8404 asS'firm' p8405 (lp8406 S'firms' p8407 aS'firming' p8408 aS'firmed' p8409 aS'firmed' p8410 asS'champion' p8411 (lp8412 S'champions' p8413 aS'championing' p8414 aS'championed' p8415 aS'championed' p8416 asS'fire' p8417 (lp8418 S'fires' p8419 aS'firing' p8420 aS'fired' p8421 aS'fired' p8422 asS'infect' p8423 (lp8424 S'infects' p8425 aS'infecting' p8426 aS'infected' p8427 aS'infected' p8428 asS'upstart' p8429 (lp8430 S'upstarts' p8431 aS'upstarting' p8432 aS'upstarted' p8433 aS'upstarted' p8434 asS'remark' p8435 (lp8436 S'remarks' p8437 aS'remarking' p8438 aS'remarked' p8439 aS'remarked' p8440 asS'reassert' p8441 (lp8442 S'reasserts' p8443 aS'reasserting' p8444 aS'reasserted' p8445 aS'reasserted' p8446 asS'fund' p8447 (lp8448 S'funds' p8449 aS'funding' p8450 aS'funded' p8451 aS'funded' p8452 asS'revile' p8453 (lp8454 S'reviles' p8455 aS'reviling' p8456 aS'reviled' p8457 aS'reviled' p8458 asS'awake' p8459 (lp8460 S'awakes' p8461 aS'awaking' p8462 aS'awoke' p8463 aS'awoken' p8464 asS'deport' p8465 (lp8466 S'deports' p8467 aS'deporting' p8468 aS'deported' p8469 aS'deported' p8470 asS'fritt' p8471 (lp8472 S'fritts' p8473 aS'fritting' p8474 aS'fritted' p8475 aS'fritted' p8476 asS'funk' p8477 (lp8478 S'funks' p8479 aS'funking' p8480 aS'funked' p8481 aS'funked' p8482 asS'budget' p8483 (lp8484 S'budgets' p8485 aS'budgeting' p8486 aS'budgeted' p8487 aS'budgeted' p8488 asS'admire' p8489 (lp8490 S'admires' p8491 aS'admiring' p8492 aS'admired' p8493 aS'admired' p8494 asS'harrumph' p8495 (lp8496 S'harrumphs' p8497 aS'harrumphing' p8498 aS'harrumphed' p8499 aS'harrumphed' p8500 asS'swim' p8501 (lp8502 S'swims' p8503 aS'swimming' p8504 aS'swam' p8505 aS'swum' p8506 asS'pound' p8507 (lp8508 S'pounds' p8509 aS'pounding' p8510 aS'pounded' p8511 aS'pounded' p8512 asS'screech' p8513 (lp8514 S'screeches' p8515 aS'screeching' p8516 aS'screeched' p8517 aS'screeched' p8518 asS'comport' p8519 (lp8520 S'comports' p8521 aS'comporting' p8522 aS'comported' p8523 aS'comported' p8524 asS'Mimeograph' p8525 (lp8526 S'Mimeographes' p8527 aS'Mimeographing' p8528 aS'Mimeographed' p8529 aS'Mimeographed' p8530 asS'caramelize' p8531 (lp8532 S'caramelizes' p8533 aS'caramelizing' p8534 aS'caramelized' p8535 aS'caramelized' p8536 asS'swage' p8537 (lp8538 S'swages' p8539 aS'swaging' p8540 aS'swaged' p8541 aS'swaged' p8542 asS'silence' p8543 (lp8544 S'silences' p8545 aS'silencing' p8546 aS'silenced' p8547 aS'silenced' p8548 asS'enlace' p8549 (lp8550 S'enlaces' p8551 aS'enlacing' p8552 aS'enlaced' p8553 aS'enlaced' p8554 asS'vanish' p8555 (lp8556 S'vanishes' p8557 aS'vanishing' p8558 aS'vanished' p8559 aS'vanished' p8560 asS'exult' p8561 (lp8562 S'exults' p8563 aS'exulting' p8564 aS'exulted' p8565 aS'exulted' p8566 asS'seel' p8567 (lp8568 S'seels' p8569 aS'seeling' p8570 aS'seeled' p8571 aS'seeled' p8572 asS'decoy' p8573 (lp8574 S'decoys' p8575 aS'decoying' p8576 aS'decoyed' p8577 aS'decoyed' p8578 asS'shorten' p8579 (lp8580 S'shortens' p8581 aS'shortening' p8582 aS'shortened' p8583 aS'shortened' p8584 asS'survey' p8585 (lp8586 S'surveys' p8587 aS'surveying' p8588 aS'surveyed' p8589 aS'surveyed' p8590 asS'educe' p8591 (lp8592 S'educes' p8593 aS'educing' p8594 aS'educed' p8595 aS'educed' p8596 asS'holystone' p8597 (lp8598 S'holystones' p8599 aS'holystoning' p8600 aS'holystoned' p8601 aS'holystoned' p8602 asS'commune' p8603 (lp8604 S'communes' p8605 aS'communing' p8606 aS'communed' p8607 aS'communed' p8608 asS'bestrew' p8609 (lp8610 S'bestrews' p8611 aS'bestrewing' p8612 aS'bestrewed' p8613 aS'bestrewn' p8614 asS'ingot' p8615 (lp8616 S'ingots' p8617 aS'ingoting' p8618 aS'ingoted' p8619 aS'ingoted' p8620 asS'discontinue' p8621 (lp8622 S'discontinues' p8623 aS'discontinuing' p8624 aS'discontinued' p8625 aS'discontinued' p8626 asS'alert' p8627 (lp8628 S'alerts' p8629 aS'alerting' p8630 aS'alerted' p8631 aS'alerted' p8632 asS'exsect' p8633 (lp8634 S'exsects' p8635 aS'exsecting' p8636 aS'exsected' p8637 aS'exsected' p8638 asS'decolour' p8639 (lp8640 S'decolours' p8641 aS'decolouring' p8642 aS'decoloured' p8643 aS'decoloured' p8644 asS'volplane' p8645 (lp8646 S'volplanes' p8647 aS'volplaning' p8648 aS'volplaned' p8649 aS'volplaned' p8650 asS'uncoil' p8651 (lp8652 S'uncoils' p8653 aS'uncoiling' p8654 aS'uncoiled' p8655 aS'uncoiled' p8656 asS'shrive' p8657 (lp8658 S'shrives' p8659 aS'shriving' p8660 aS'shrove' p8661 aS'shriven' p8662 asS'nickname' p8663 (lp8664 S'nicknames' p8665 aS'nicknaming' p8666 aS'nicknamed' p8667 aS'nicknamed' p8668 asS'climb' p8669 (lp8670 S'climbs' p8671 aS'climbing' p8672 aS'climbed' p8673 aS'climbed' p8674 asS'expend' p8675 (lp8676 S'expends' p8677 aS'expending' p8678 aS'expended' p8679 aS'expended' p8680 asS'surrogate' p8681 (lp8682 S'surrogates' p8683 aS'surrogating' p8684 aS'surrogated' p8685 aS'surrogated' p8686 asS'azotize' p8687 (lp8688 S'azotizes' p8689 aS'azotizing' p8690 aS'azotized' p8691 aS'azotized' p8692 asS'concrete' p8693 (lp8694 S'concretes' p8695 aS'concreting' p8696 aS'concreted' p8697 aS'concreted' p8698 asS'obtest' p8699 (lp8700 S'obtests' p8701 aS'obtesting' p8702 aS'obtested' p8703 aS'obtested' p8704 asS'comprise' p8705 (lp8706 S'comprises' p8707 aS'comprising' p8708 aS'comprised' p8709 aS'comprised' p8710 asS'rejuvenesce' p8711 (lp8712 S'rejuvenesces' p8713 aS'rejuvenescing' p8714 aS'rejuvenesced' p8715 aS'rejuvenesced' p8716 asS'emblazon' p8717 (lp8718 S'emblazons' p8719 aS'emblazoning' p8720 aS'emblazoned' p8721 aS'emblazoned' p8722 asS'fluoresce' p8723 (lp8724 S'fluoresces' p8725 aS'fluorescing' p8726 aS'fluoresced' p8727 aS'fluoresced' p8728 asS'salve' p8729 (lp8730 S'salves' p8731 aS'salving' p8732 aS'salved' p8733 aS'salved' p8734 asS'domesticize' p8735 (lp8736 S'domesticizes' p8737 aS'domesticizing' p8738 aS'domesticized' p8739 aS'domesticized' p8740 asS'house-train' p8741 (lp8742 S'house-trains' p8743 aS'house-training' p8744 aS'house-trained' p8745 aS'house-trained' p8746 asS'illuse' p8747 (lp8748 S'illuses' p8749 aS'illusing' p8750 aS'illused' p8751 aS'illused' p8752 asS'derange' p8753 (lp8754 S'deranges' p8755 aS'deranging' p8756 aS'deranged' p8757 aS'deranged' p8758 asS'cuckold' p8759 (lp8760 S'cuckolds' p8761 aS'cuckolding' p8762 aS'cuckolded' p8763 aS'cuckolded' p8764 asS'cordon' p8765 (lp8766 S'cordons' p8767 aS'cordoning' p8768 aS'cordoned' p8769 aS'cordoned' p8770 asS'format' p8771 (lp8772 S'formats' p8773 aS'formatting' p8774 aS'formatted' p8775 aS'formatted' p8776 asS'couple' p8777 (lp8778 S'couples' p8779 aS'coupling' p8780 aS'coupled' p8781 aS'coupled' p8782 asS'intuit' p8783 (lp8784 S'intuits' p8785 aS'intuiting' p8786 aS'intuited' p8787 aS'intuited' p8788 asS'quest' p8789 (lp8790 S'quests' p8791 aS'questing' p8792 aS'quested' p8793 aS'quested' p8794 asS'blackjack' p8795 (lp8796 S'blackjacks' p8797 aS'blackjacking' p8798 aS'blackjacked' p8799 aS'blackjacked' p8800 asS'outstay' p8801 (lp8802 S'outstays' p8803 aS'outstaying' p8804 aS'outstayed' p8805 aS'outstayed' p8806 asS'towel' p8807 (lp8808 S'towels' p8809 aS'towelling' p8810 aS'towelled' p8811 aS'towelled' p8812 asS'abduct' p8813 (lp8814 S'abducts' p8815 aS'abducting' p8816 aS'abducted' p8817 aS'abducted' p8818 asS'flannel' p8819 (lp8820 S'flannels' p8821 aS'flannelling' p8822 aS'flannelled' p8823 aS'flannelled' p8824 asS'bruit' p8825 (lp8826 S'bruits' p8827 aS'bruiting' p8828 aS'bruited' p8829 aS'bruited' p8830 asS'constipate' p8831 (lp8832 S'constipates' p8833 aS'constipating' p8834 aS'constipated' p8835 aS'constipated' p8836 asS'continue' p8837 (lp8838 S'continues' p8839 aS'continuing' p8840 aS'continued' p8841 aS'continued' p8842 asS'bogie' p8843 (lp8844 S'bogies' p8845 aS'bogying' p8846 aS'bogied' p8847 aS'bogied' p8848 asS'decrease' p8849 (lp8850 S'decreases' p8851 aS'decreasing' p8852 aS'decreased' p8853 aS'decreased' p8854 asS'disorder' p8855 (lp8856 S'disorders' p8857 aS'disordering' p8858 aS'disordered' p8859 aS'disordered' p8860 asS'sensitize' p8861 (lp8862 S'sensitizes' p8863 aS'sensitizing' p8864 aS'sensitized' p8865 aS'sensitized' p8866 asS'crescendo' p8867 (lp8868 S'crescendoes' p8869 aS'crescendoing' p8870 aS'crescendoed' p8871 aS'crescendoed' p8872 asS'gargle' p8873 (lp8874 S'gargles' p8875 aS'gargling' p8876 aS'gargled' p8877 aS'gargled' p8878 asS'spring' p8879 (lp8880 S'springs' p8881 aS'springing' p8882 aS'sprung' p8883 asS'comp`ere' p8884 (lp8885 S'comp`eres' p8886 aS'comp`ering' p8887 aS'comp`ered' p8888 aS'comp`ered' p8889 asS'bounce' p8890 (lp8891 S'bounces' p8892 aS'bouncing' p8893 aS'bounced' p8894 aS'bounced' p8895 asS'beckon' p8896 (lp8897 S'beckons' p8898 aS'beckoning' p8899 aS'beckoned' p8900 aS'beckoned' p8901 asS'palm' p8902 (lp8903 S'palms' p8904 aS'palming' p8905 aS'palmed' p8906 aS'palmed' p8907 asS'peptize' p8908 (lp8909 S'peptizes' p8910 aS'peptizing' p8911 aS'peptized' p8912 aS'peptized' p8913 asS'sprint' p8914 (lp8915 S'sprints' p8916 aS'sprinting' p8917 aS'sprinted' p8918 aS'sprinted' p8919 asS'pale' p8920 (lp8921 S'pales' p8922 aS'paling' p8923 aS'paled' p8924 aS'paled' p8925 asS'etymologize' p8926 (lp8927 S'etymologizes' p8928 aS'etymologizing' p8929 aS'etymologized' p8930 aS'etymologized' p8931 asS'untangle' p8932 (lp8933 S'untangles' p8934 aS'untangling' p8935 aS'untangled' p8936 aS'untangled' p8937 asS'disinfest' p8938 (lp8939 S'disinfests' p8940 aS'disinfesting' p8941 aS'disinfested' p8942 aS'disinfested' p8943 asS'twinkle' p8944 (lp8945 S'twinkles' p8946 aS'twinkling' p8947 aS'twinkled' p8948 aS'twinkled' p8949 asS'behave' p8950 (lp8951 S'behaves' p8952 aS'behaving' p8953 aS'behaved' p8954 aS'behaved' p8955 asS'osculate' p8956 (lp8957 S'osculates' p8958 aS'osculating' p8959 aS'osculated' p8960 aS'osculated' p8961 asS'be' p8962 (lp8963 S'am' p8964 aS'are' p8965 aS'is' p8966 aS'are' p8967 aS'being' p8968 aS'was' p8969 aS'were' p8970 aS'was' p8971 aS'were' p8972 aS'were' p8973 aS'been' p8974 aS'am not' p8975 aS"aren't" p8976 aS"isn't" p8977 aS"aren't" p8978 aS"wasn't" p8979 aS"weren't" p8980 aS"wasn't" p8981 aS"weren't" p8982 aS"weren't" p8983 asS'suburbanize' p8984 (lp8985 S'suburbanizes' p8986 aS'suburbanizing' p8987 aS'suburbanized' p8988 aS'suburbanized' p8989 asS'hachure' p8990 (lp8991 S'hachures' p8992 aS'hachuring' p8993 aS'hachured' p8994 aS'hachured' p8995 asS'carol' p8996 (lp8997 S'carols' p8998 aS'carolling' p8999 aS'carolled' p9000 aS'carolled' p9001 asS'ward' p9002 (lp9003 S'wards' p9004 aS'warding' p9005 aS'warded' p9006 aS'warded' p9007 asS'zip' p9008 (lp9009 S'zips' p9010 aS'zipping' p9011 aS'zipped' p9012 aS'zipped' p9013 asS'coexist' p9014 (lp9015 S'coexists' p9016 aS'coexisting' p9017 aS'coexisted' p9018 aS'coexisted' p9019 asS'hatchel' p9020 (lp9021 S'hatchels' p9022 aS'hatcheling' p9023 aS'hatcheled' p9024 aS'hatcheled' p9025 asS'frizzle' p9026 (lp9027 S'frizzles' p9028 aS'frizzling' p9029 aS'frizzled' p9030 aS'frizzled' p9031 asS'filagree' p9032 (lp9033 S'filagrees' p9034 aS'filagreeing' p9035 aS'filagreed' p9036 aS'filagreed' p9037 asS'upswell' p9038 (lp9039 S'upswells' p9040 aS'upswelling' p9041 aS'upswelled' p9042 aS'upswelled' p9043 asS'repair' p9044 (lp9045 S'repairs' p9046 aS'repairing' p9047 aS'repaired' p9048 aS'repaired' p9049 asS'reverence' p9050 (lp9051 S'reverences' p9052 aS'reverencing' p9053 aS'reverenced' p9054 aS'reverenced' p9055 asS'noddle' p9056 (lp9057 S'noddles' p9058 aS'noddling' p9059 aS'noddled' p9060 aS'noddled' p9061 asS'recreate' p9062 (lp9063 S'recreates' p9064 aS'recreating' p9065 aS'recreated' p9066 aS'recreated' p9067 asS'appropriate' p9068 (lp9069 S'appropriates' p9070 aS'appropriating' p9071 aS'appropriated' p9072 aS'appropriated' p9073 asS'blench' p9074 (lp9075 S'blenches' p9076 aS'blenching' p9077 aS'blenched' p9078 aS'blenched' p9079 asS'span' p9080 (lp9081 S'spans' p9082 aS'spanning' p9083 aS'spanned' p9084 aS'spanned' p9085 asS'traduce' p9086 (lp9087 S'traduces' p9088 aS'traducing' p9089 aS'traduced' p9090 aS'traduced' p9091 asS'phosphorate' p9092 (lp9093 S'phosphorates' p9094 aS'phosphorating' p9095 aS'phosphorated' p9096 aS'phosphorated' p9097 asS'spag' p9098 (lp9099 S'spags' p9100 aS'spagging' p9101 aS'spagged' p9102 aS'spagged' p9103 asS'chide' p9104 (lp9105 S'chides' p9106 aS'chiding' p9107 aS'chided' p9108 aS'chided' p9109 asS'spae' p9110 (lp9111 S'spaes' p9112 aS'spaeing' p9113 aS'spaed' p9114 aS'spaed' p9115 asS'occupy' p9116 (lp9117 S'occupies' p9118 aS'occupying' p9119 aS'occupied' p9120 aS'occupied' p9121 asS'spay' p9122 (lp9123 S'spays' p9124 aS'spaying' p9125 aS'spayed' p9126 aS'spayed' p9127 asS'mishandle' p9128 (lp9129 S'mishandles' p9130 aS'mishandling' p9131 aS'mishandled' p9132 aS'mishandled' p9133 asS'suit' p9134 (lp9135 S'suits' p9136 aS'suiting' p9137 aS'suited' p9138 aS'suited' p9139 asS'spar' p9140 (lp9141 S'spars' p9142 aS'sparring' p9143 aS'sparred' p9144 aS'sparred' p9145 asS'blueprint' p9146 (lp9147 S'blueprints' p9148 aS'blueprinting' p9149 aS'blueprinted' p9150 aS'blueprinted' p9151 asS'encipher' p9152 (lp9153 S'enciphers' p9154 aS'enciphering' p9155 aS'enciphered' p9156 aS'enciphered' p9157 asS'litigate' p9158 (lp9159 S'litigates' p9160 aS'litigating' p9161 aS'litigated' p9162 aS'litigated' p9163 asS'fidge' p9164 (lp9165 S'fidges' p9166 aS'fidging' p9167 aS'fidged' p9168 aS'fidged' p9169 asS'tally' p9170 (lp9171 S'tallies' p9172 aS'tallying' p9173 aS'tallied' p9174 aS'tallied' p9175 asS'coedit' p9176 (lp9177 S'coedits' p9178 aS'coediting' p9179 aS'coedited' p9180 aS'coedited' p9181 asS'link' p9182 (lp9183 S'links' p9184 aS'linking' p9185 aS'linked' p9186 aS'linked' p9187 asS'line' p9188 (lp9189 S'lines' p9190 aS'lining' p9191 aS'lined' p9192 aS'lined' p9193 asS'photosynthesize' p9194 (lp9195 S'photosynthesizes' p9196 aS'photosynthesizing' p9197 aS'photosynthesized' p9198 aS'photosynthesized' p9199 asS'angle-park' p9200 (lp9201 S'angle-parks' p9202 aS'angle-parking' p9203 aS'angle-parked' p9204 aS'angle-parked' p9205 asS'harangue' p9206 (lp9207 S'harangues' p9208 aS'haranguing' p9209 aS'harangued' p9210 aS'harangued' p9211 asS'up' p9212 (lp9213 S'upping' p9214 aS'upped' p9215 aS'upped' p9216 asS'slander' p9217 (lp9218 S'slanders' p9219 aS'slandering' p9220 aS'slandered' p9221 aS'slandered' p9222 asS'dropkick' p9223 (lp9224 S'dropkicks' p9225 aS'dropkicking' p9226 aS'dropkicked' p9227 aS'dropkicked' p9228 asS'mature' p9229 (lp9230 S'matures' p9231 aS'maturing' p9232 aS'matured' p9233 aS'matured' p9234 asS'dehumidify' p9235 (lp9236 S'dehumidifies' p9237 aS'dehumidifying' p9238 aS'dehumidified' p9239 aS'dehumidified' p9240 asS'reconcile' p9241 (lp9242 S'reconciles' p9243 aS'reconciling' p9244 aS'reconciled' p9245 aS'reconciled' p9246 asS'confiscate' p9247 (lp9248 S'confiscates' p9249 aS'confiscating' p9250 aS'confiscated' p9251 aS'confiscated' p9252 asS'overland' p9253 (lp9254 S'overlands' p9255 aS'overlanding' p9256 aS'overlanded' p9257 aS'overlanded' p9258 asS'influence' p9259 (lp9260 S'influences' p9261 aS'influencing' p9262 aS'influenced' p9263 aS'influenced' p9264 asS'haunt' p9265 (lp9266 S'haunts' p9267 aS'haunting' p9268 aS'haunted' p9269 aS'haunted' p9270 asS'snaffle' p9271 (lp9272 S'snaffles' p9273 aS'snaffling' p9274 aS'snaffled' p9275 aS'snaffled' p9276 asS'char' p9277 (lp9278 S'chars' p9279 aS'charring' p9280 aS'charred' p9281 aS'charred' p9282 asS'chap' p9283 (lp9284 S'chaps' p9285 aS'chapping' p9286 aS'chapped' p9287 aS'chapped' p9288 asS'muckrake' p9289 (lp9290 S'muckrakes' p9291 aS'muckraking' p9292 aS'muckraked' p9293 aS'muckraked' p9294 asS'chaw' p9295 (lp9296 S'chaws' p9297 aS'chawing' p9298 aS'chawed' p9299 aS'chawed' p9300 asS'chat' p9301 (lp9302 S'chats' p9303 aS'chatting' p9304 aS'chatted' p9305 aS'chatted' p9306 asS'disremember' p9307 (lp9308 S'disremembers' p9309 aS'disremembering' p9310 aS'disremembered' p9311 aS'disremembered' p9312 asS'touzle' p9313 (lp9314 S'touzles' p9315 aS'touzling' p9316 aS'touzled' p9317 aS'touzled' p9318 asS'copulate' p9319 (lp9320 S'copulates' p9321 aS'copulating' p9322 aS'copulated' p9323 aS'copulated' p9324 asS'retrace' p9325 (lp9326 S'retraces' p9327 aS'retracing' p9328 aS'retraced' p9329 aS'retraced' p9330 asS'metaphrase' p9331 (lp9332 S'metaphrases' p9333 aS'metaphrasing' p9334 aS'metaphrased' p9335 aS'metaphrased' p9336 asS'invalid' p9337 (lp9338 S'invalids' p9339 aS'invaliding' p9340 aS'invalided' p9341 aS'invalided' p9342 asS'mistime' p9343 (lp9344 S'mistimes' p9345 aS'mistiming' p9346 aS'mistimed' p9347 aS'mistimed' p9348 asS'glair' p9349 (lp9350 S'glairs' p9351 aS'glairing' p9352 aS'glaired' p9353 aS'glaired' p9354 asS'victual' p9355 (lp9356 S'victuals' p9357 aS'victualling' p9358 aS'victualled' p9359 aS'victualled' p9360 asS'retract' p9361 (lp9362 S'retracts' p9363 aS'retracting' p9364 aS'retracted' p9365 aS'retracted' p9366 asS'deviate' p9367 (lp9368 S'deviates' p9369 aS'deviating' p9370 aS'deviated' p9371 aS'deviated' p9372 asS'remilitarize' p9373 (lp9374 S'remilitarizes' p9375 aS'remilitarizing' p9376 aS'remilitarized' p9377 aS'remilitarized' p9378 asS'scrub' p9379 (lp9380 S'scrubs' p9381 aS'scrubbing' p9382 aS'scrubbed' p9383 aS'scrubbed' p9384 asS'besiege' p9385 (lp9386 S'besieges' p9387 aS'besieging' p9388 aS'besieged' p9389 aS'besieged' p9390 asS'oblige' p9391 (lp9392 S'obliges' p9393 aS'obliging' p9394 aS'obliged' p9395 aS'obliged' p9396 asS'kerfuffle' p9397 (lp9398 S'kerfuffles' p9399 aS'kerfuffling' p9400 aS'kerfuffled' p9401 aS'kerfuffled' p9402 asS'scrum' p9403 (lp9404 S'scrums' p9405 aS'scrumming' p9406 aS'scrummed' p9407 aS'scrummed' p9408 asS'hackney' p9409 (lp9410 S'hackneys' p9411 aS'hackneying' p9412 aS'hackneyed' p9413 aS'hackneyed' p9414 asS'land' p9415 (lp9416 S'lands' p9417 aS'landing' p9418 aS'landed' p9419 aS'landed' p9420 asS'wafer' p9421 (lp9422 S'wafers' p9423 aS'wafering' p9424 aS'wafered' p9425 aS'wafered' p9426 asS'overtop' p9427 (lp9428 S'overtops' p9429 aS'overtopping' p9430 aS'overtopped' p9431 aS'overtopped' p9432 asS'metabolize' p9433 (lp9434 S'metabolizes' p9435 aS'metabolizing' p9436 aS'metabolized' p9437 aS'metabolized' p9438 asS'crease' p9439 (lp9440 S'creases' p9441 aS'creasing' p9442 aS'creased' p9443 aS'creased' p9444 asS'feud' p9445 (lp9446 S'feuds' p9447 aS'feuding' p9448 aS'feuded' p9449 aS'feuded' p9450 asS'disencumber' p9451 (lp9452 S'disencumbers' p9453 aS'disencumbering' p9454 aS'disencumbered' p9455 aS'disencumbered' p9456 asS'crinkle' p9457 (lp9458 S'crinkles' p9459 aS'crinkling' p9460 aS'crinkled' p9461 aS'crinkled' p9462 asS'fresh' p9463 (lp9464 S'freshes' p9465 aS'freshing' p9466 aS'freshed' p9467 aS'freshed' p9468 asS'menace' p9469 (lp9470 S'menaces' p9471 aS'menacing' p9472 aS'menaced' p9473 aS'menaced' p9474 asS'essay' p9475 (lp9476 S'essays' p9477 aS'essaying' p9478 aS'essayed' p9479 aS'essayed' p9480 asS'code' p9481 (lp9482 S'codes' p9483 aS'coding' p9484 aS'coded' p9485 aS'coded' p9486 asS'piddle' p9487 (lp9488 S'piddles' p9489 aS'piddling' p9490 aS'piddled' p9491 aS'piddled' p9492 asS'scratch' p9493 (lp9494 S'scratches' p9495 aS'scratching' p9496 aS'scratched' p9497 aS'scratched' p9498 asS'broaden' p9499 (lp9500 S'broadens' p9501 aS'broadening' p9502 aS'broadened' p9503 aS'broadened' p9504 asS'guerdon' p9505 (lp9506 S'guerdons' p9507 aS'guerdoning' p9508 aS'guerdoned' p9509 aS'guerdoned' p9510 asS'soften' p9511 (lp9512 S'softens' p9513 aS'softening' p9514 aS'softened' p9515 aS'softened' p9516 asS'toggle' p9517 (lp9518 S'toggles' p9519 aS'toggling' p9520 aS'toggled' p9521 aS'toggled' p9522 asS'euhemerize' p9523 (lp9524 S'euhemerizes' p9525 aS'euhemerizing' p9526 aS'euhemerized' p9527 aS'euhemerized' p9528 asS'gossip' p9529 (lp9530 S'gossips' p9531 aS'gossipping' p9532 aS'gossipped' p9533 aS'gossipped' p9534 asS'resonate' p9535 (lp9536 S'resonates' p9537 aS'resonating' p9538 aS'resonated' p9539 aS'resonated' p9540 asS'impanel' p9541 (lp9542 S'impanels' p9543 aS'impanelling' p9544 aS'impanelled' p9545 aS'impanelled' p9546 asS'send' p9547 (lp9548 S'sends' p9549 aS'sending' p9550 aS'sent' p9551 aS'sent' p9552 asS'mimeograph' p9553 (lp9554 S'mimeographs' p9555 aS'mimeographing' p9556 aS'mimeographed' p9557 aS'mimeographed' p9558 asS'niello' p9559 (lp9560 S'niellos' p9561 aS'nielloing' p9562 aS'nielloed' p9563 aS'nielloed' p9564 asS'dislike' p9565 (lp9566 S'dislikes' p9567 aS'disliking' p9568 aS'disliked' p9569 aS'disliked' p9570 asS'overstrain' p9571 (lp9572 S'overstrains' p9573 aS'overstraining' p9574 aS'overstrained' p9575 aS'overstrained' p9576 asS'garden' p9577 (lp9578 S'gardens' p9579 aS'gardening' p9580 aS'gardened' p9581 aS'gardened' p9582 asS'torture' p9583 (lp9584 S'tortures' p9585 aS'torturing' p9586 aS'tortured' p9587 aS'tortured' p9588 asS'nonplus' p9589 (lp9590 S'nonplusses' p9591 aS'nonplussing' p9592 aS'nonplussed' p9593 aS'nonplussed' p9594 asS'snowshoe' p9595 (lp9596 S'snowshoes' p9597 aS'snowshoeing' p9598 aS'snowshoed' p9599 aS'snowshoed' p9600 asS'promise' p9601 (lp9602 S'promises' p9603 aS'promising' p9604 aS'promised' p9605 aS'promised' p9606 asS'wipe' p9607 (lp9608 S'wipes' p9609 aS'wiping' p9610 aS'wiped' p9611 aS'wiped' p9612 asS'marry' p9613 (lp9614 S'marries' p9615 aS'marrying' p9616 aS'married' p9617 aS'married' p9618 asS'try' p9619 (lp9620 S'tries' p9621 aS'trying' p9622 aS'tried' p9623 aS'tried' p9624 asS'race' p9625 (lp9626 S'races' p9627 aS'racing' p9628 aS'raced' p9629 aS'raced' p9630 asS'gauge' p9631 (lp9632 S'gauges' p9633 aS'gauging' p9634 aS'gauged' p9635 aS'gauged' p9636 asS'stodge' p9637 (lp9638 S'stodges' p9639 aS'stodging' p9640 aS'stodged' p9641 aS'stodged' p9642 asS'sextuplicate' p9643 (lp9644 S'sextuplicates' p9645 aS'sextuplicating' p9646 aS'sextuplicated' p9647 aS'sextuplicated' p9648 asS'abet' p9649 (lp9650 S'abets' p9651 aS'abetting' p9652 aS'abetted' p9653 aS'abetted' p9654 asS'pledge' p9655 (lp9656 S'pledges' p9657 aS'pledging' p9658 aS'pledged' p9659 aS'pledged' p9660 asS'ligate' p9661 (lp9662 S'ligates' p9663 aS'ligating' p9664 aS'ligated' p9665 aS'ligated' p9666 asS'tittup' p9667 (lp9668 S'tittups' p9669 aS'tittupping' p9670 aS'tittupped' p9671 aS'tittupped' p9672 asS'crook' p9673 (lp9674 S'crooks' p9675 aS'crooking' p9676 aS'crooked' p9677 aS'crooked' p9678 asS'imply' p9679 (lp9680 S'implies' p9681 aS'implying' p9682 aS'implied' p9683 aS'implied' p9684 asS'croon' p9685 (lp9686 S'croons' p9687 aS'crooning' p9688 aS'crooned' p9689 aS'crooned' p9690 asS'pour' p9691 (lp9692 S'pours' p9693 aS'pouring' p9694 aS'poured' p9695 aS'poured' p9696 asS'carillon' p9697 (lp9698 S'carillons' p9699 aS'carillonning' p9700 aS'carillonned' p9701 aS'carillonned' p9702 asS'index' p9703 (lp9704 S'indexes' p9705 aS'indexing' p9706 aS'indexed' p9707 aS'indexed' p9708 asS'twine' p9709 (lp9710 S'twines' p9711 aS'twining' p9712 aS'twined' p9713 aS'twined' p9714 asS'reforest' p9715 (lp9716 S'reforests' p9717 aS'reforesting' p9718 aS'reforested' p9719 aS'reforested' p9720 asS'randomize' p9721 (lp9722 S'randomizes' p9723 aS'randomizing' p9724 aS'randomized' p9725 aS'randomized' p9726 asS'birr' p9727 (lp9728 S'birrs' p9729 aS'birring' p9730 aS'birred' p9731 aS'birred' p9732 asS'glissade' p9733 (lp9734 S'glissades' p9735 aS'glissading' p9736 aS'glissaded' p9737 aS'glissaded' p9738 asS'inmesh' p9739 (lp9740 S'inmeshes' p9741 aS'inmeshing' p9742 aS'inmeshed' p9743 aS'inmeshed' p9744 asS'throb' p9745 (lp9746 S'throbs' p9747 aS'throbbing' p9748 aS'throbbed' p9749 aS'throbbed' p9750 asS'birl' p9751 (lp9752 S'birls' p9753 aS'birling' p9754 aS'birled' p9755 aS'birled' p9756 asS'proffer' p9757 (lp9758 S'proffers' p9759 aS'proffering' p9760 aS'proffered' p9761 aS'proffered' p9762 asS'blowdry' p9763 (lp9764 S'blowdries' p9765 aS'blowdrying' p9766 aS'blowdried' p9767 aS'blowdried' p9768 asS'unmask' p9769 (lp9770 S'unmasks' p9771 aS'unmasking' p9772 aS'unmasked' p9773 aS'unmasked' p9774 asS'rollerskate' p9775 (lp9776 S'rollerskates' p9777 aS'rollerskating' p9778 aS'rollerskated' p9779 aS'rollerskated' p9780 asS'leg' p9781 (lp9782 S'legs' p9783 aS'legging' p9784 aS'legged' p9785 aS'legged' p9786 asS'cosset' p9787 (lp9788 S'cossets' p9789 aS'cosseting' p9790 aS'cosseted' p9791 aS'cosseted' p9792 asS'let' p9793 (lp9794 S'lets' p9795 aS'letting' p9796 aS'let' p9797 aS'let' p9798 asS'reduplicate' p9799 (lp9800 S'reduplicates' p9801 aS'reduplicating' p9802 aS'reduplicated' p9803 aS'reduplicated' p9804 asS'licence' p9805 (lp9806 S'licences' p9807 aS'licencing' p9808 aS'licenced' p9809 aS'licenced' p9810 asS'denitrify' p9811 (lp9812 S'denitrifies' p9813 aS'denitrifying' p9814 aS'denitrified' p9815 aS'denitrified' p9816 asS'playact' p9817 (lp9818 S'playacts' p9819 aS'playacting' p9820 aS'playacted' p9821 aS'playacted' p9822 asS'vinegar' p9823 (lp9824 S'vinegars' p9825 aS'vinegaring' p9826 aS'vinegared' p9827 aS'vinegared' p9828 asS'engage' p9829 (lp9830 S'engages' p9831 aS'engaging' p9832 aS'engaged' p9833 aS'engaged' p9834 asS'coopt' p9835 (lp9836 S'coopts' p9837 aS'coopting' p9838 aS'coopted' p9839 aS'coopted' p9840 asS'receive' p9841 (lp9842 S'receives' p9843 aS'receiving' p9844 aS'received' p9845 aS'received' p9846 asS'cartelize' p9847 (lp9848 S'cartelizes' p9849 aS'cartelizing' p9850 aS'cartelized' p9851 aS'cartelized' p9852 asS'scatter' p9853 (lp9854 S'scatters' p9855 aS'scattering' p9856 aS'scattered' p9857 aS'scattered' p9858 asS'disenfranchise' p9859 (lp9860 S'disenfranchises' p9861 aS'disenfranchising' p9862 aS'disenfranchised' p9863 aS'disenfranchised' p9864 asS'defeat' p9865 (lp9866 S'defeats' p9867 aS'defeating' p9868 aS'defeated' p9869 aS'defeated' p9870 asS'atomize' p9871 (lp9872 S'atomizes' p9873 aS'atomizing' p9874 aS'atomized' p9875 aS'atomized' p9876 asS'rive' p9877 (lp9878 S'rives' p9879 aS'riving' p9880 aS'rived' p9881 aS'riven' p9882 asS'recriminate' p9883 (lp9884 S'recriminates' p9885 aS'recriminating' p9886 aS'recriminated' p9887 aS'recriminated' p9888 asS'countervail' p9889 (lp9890 S'countervails' p9891 aS'countervailing' p9892 aS'countervailed' p9893 aS'countervailed' p9894 asS'sire' p9895 (lp9896 S'sires' p9897 aS'siring' p9898 aS'sired' p9899 aS'sired' p9900 asS'disobey' p9901 (lp9902 S'disobeys' p9903 aS'disobeying' p9904 aS'disobeyed' p9905 aS'disobeyed' p9906 asS'extricate' p9907 (lp9908 S'extricates' p9909 aS'extricating' p9910 aS'extricated' p9911 aS'extricated' p9912 asS'repugn' p9913 (lp9914 S'repugns' p9915 aS'repugning' p9916 aS'repugned' p9917 aS'repugned' p9918 asS'reckon' p9919 (lp9920 S'reckons' p9921 aS'reckoning' p9922 aS'reckoned' p9923 aS'reckoned' p9924 asS'extirpate' p9925 (lp9926 S'extirpates' p9927 aS'extirpating' p9928 aS'extirpated' p9929 aS'extirpated' p9930 asS'clype' p9931 (lp9932 S'clypes' p9933 aS'clyping' p9934 aS'clyped' p9935 aS'clyped' p9936 asS'mortify' p9937 (lp9938 S'mortifies' p9939 aS'mortifying' p9940 aS'mortified' p9941 aS'mortified' p9942 asS'soliloquize' p9943 (lp9944 S'soliloquizes' p9945 aS'soliloquizing' p9946 aS'soliloquized' p9947 aS'soliloquized' p9948 asS'mutch' p9949 (lp9950 S'mutches' p9951 aS'mutching' p9952 aS'mutched' p9953 aS'mutched' p9954 asS'certificate' p9955 (lp9956 S'certificates' p9957 aS'certificating' p9958 aS'certificated' p9959 aS'certificated' p9960 asS'vocalize' p9961 (lp9962 S'vocalizes' p9963 aS'vocalizing' p9964 aS'vocalized' p9965 aS'vocalized' p9966 asS'levant' p9967 (lp9968 S'levants' p9969 aS'levanting' p9970 aS'levanted' p9971 aS'levanted' p9972 asS'reexport' p9973 (lp9974 S'reexports' p9975 aS'reexporting' p9976 aS'reexported' p9977 aS'reexported' p9978 asS'process' p9979 (lp9980 S'processes' p9981 aS'processing' p9982 aS'processed' p9983 aS'processed' p9984 asS'duplicate' p9985 (lp9986 S'duplicates' p9987 aS'duplicating' p9988 aS'duplicated' p9989 aS'duplicated' p9990 asS'doubt' p9991 (lp9992 S'doubts' p9993 aS'doubting' p9994 aS'doubted' p9995 aS'doubted' p9996 asS'pencil' p9997 (lp9998 S'pencils' p9999 aS'pencilling' p10000 aS'pencilled' p10001 aS'pencilled' p10002 asS'shipwreck' p10003 (lp10004 S'shipwrecks' p10005 aS'shipwrecking' p10006 aS'shipwrecked' p10007 aS'shipwrecked' p10008 asS'unplug' p10009 (lp10010 S'unplugs' p10011 aS'unplugging' p10012 aS'unplugged' p10013 aS'unplugged' p10014 asS'Aryanize' p10015 (lp10016 S'Aryanizes' p10017 aS'Aryanizing' p10018 aS'Aryanized' p10019 aS'Aryanized' p10020 asS'rubbish' p10021 (lp10022 S'rubbishes' p10023 aS'rubbishing' p10024 aS'rubbished' p10025 aS'rubbished' p10026 asS'baby' p10027 (lp10028 S'babies' p10029 aS'babying' p10030 aS'babied' p10031 aS'babied' p10032 asS'chivy' p10033 (lp10034 S'chivvies' p10035 aS'chivying' p10036 aS'chivvied' p10037 aS'chivvied' p10038 asS'getter' p10039 (lp10040 S'getters' p10041 aS'gettering' p10042 aS'gettered' p10043 aS'gettered' p10044 asS'casserole' p10045 (lp10046 S'casseroles' p10047 aS'casseroling' p10048 aS'casseroled' p10049 aS'casseroled' p10050 asS'entangle' p10051 (lp10052 S'entangles' p10053 aS'entangling' p10054 aS'entangled' p10055 aS'entangled' p10056 asS'forelock' p10057 (lp10058 S'forelocks' p10059 aS'forelocking' p10060 aS'forelocked' p10061 aS'forelocked' p10062 asS'pout' p10063 (lp10064 S'pouts' p10065 aS'pouting' p10066 aS'pouted' p10067 aS'pouted' p10068 asS'challenge' p10069 (lp10070 S'challenges' p10071 aS'challenging' p10072 aS'challenged' p10073 aS'challenged' p10074 asS'inculpate' p10075 (lp10076 S'inculpates' p10077 aS'inculpating' p10078 aS'inculpated' p10079 aS'inculpated' p10080 asS'reproduce' p10081 (lp10082 S'reproduces' p10083 aS'reproducing' p10084 aS'reproduced' p10085 aS'reproduced' p10086 asS'retell' p10087 (lp10088 S'retells' p10089 aS'retelling' p10090 aS'retold' p10091 aS'retold' p10092 asS'thin' p10093 (lp10094 S'thins' p10095 aS'thinning' p10096 aS'thinned' p10097 aS'thinned' p10098 asS'drill' p10099 (lp10100 S'drills' p10101 aS'drilling' p10102 aS'drilled' p10103 aS'drilled' p10104 asS'fulfill' p10105 (lp10106 S'fulfils' p10107 aS'fulfilling' p10108 aS'fulfilled' p10109 aS'fulfilled' p10110 asS'plug' p10111 (lp10112 S'plugs' p10113 aS'pluging' p10114 aS'pluged' p10115 aS'pluged' p10116 asS'wedge' p10117 (lp10118 S'wedges' p10119 aS'wedging' p10120 aS'wedged' p10121 aS'wedged' p10122 asS'anglify' p10123 (lp10124 S'anglifies' p10125 aS'anglifying' p10126 aS'anglified' p10127 aS'anglified' p10128 asS'pawn' p10129 (lp10130 S'pawns' p10131 aS'pawning' p10132 aS'pawned' p10133 aS'pawned' p10134 asS'diabolize' p10135 (lp10136 S'diabolizes' p10137 aS'diabolizing' p10138 aS'diabolized' p10139 aS'diabolized' p10140 asS'lock' p10141 (lp10142 S'locks' p10143 aS'locking' p10144 aS'locked' p10145 aS'locked' p10146 asS'slim' p10147 (lp10148 S'slims' p10149 ag5463 ag5464 ag5465 asS'loco' p10150 (lp10151 S'locos' p10152 aS'locoing' p10153 aS'locoed' p10154 aS'locoed' p10155 asS'spruce' p10156 (lp10157 S'spruces' p10158 aS'sprucing' p10159 aS'spruced' p10160 aS'spruced' p10161 asS'slit' p10162 (lp10163 S'slits' p10164 aS'slitting' p10165 aS'slit' p10166 aS'slit' p10167 asS'bend' p10168 (lp10169 S'bends' p10170 aS'bending' p10171 aS'bent' p10172 aS'bent' p10173 asS'slip' p10174 (lp10175 S'slips' p10176 aS'slipping' p10177 aS'slipped' p10178 aS'slipped' p10179 asS'martyr' p10180 (lp10181 S'martyrs' p10182 aS'martyring' p10183 aS'martyred' p10184 aS'martyred' p10185 asS'trumpet' p10186 (lp10187 S'trumpets' p10188 aS'trumpeting' p10189 aS'trumpeted' p10190 aS'trumpeted' p10191 asS'weaken' p10192 (lp10193 S'weakens' p10194 aS'weakening' p10195 aS'weakened' p10196 aS'weakened' p10197 asS'rhubarb' p10198 (lp10199 S'rhubarbs' p10200 aS'rhubarbing' p10201 aS'rhubarbed' p10202 aS'rhubarbed' p10203 asS'portage' p10204 (lp10205 S'portages' p10206 aS'portaging' p10207 aS'portaged' p10208 aS'portaged' p10209 asS'delay' p10210 (lp10211 S'delays' p10212 aS'delaying' p10213 aS'delayed' p10214 aS'delayed' p10215 asS'belly-laugh' p10216 (lp10217 g2 ag3 ag4 ag5 asS'opine' p10218 (lp10219 S'opines' p10220 aS'opining' p10221 aS'opined' p10222 aS'opined' p10223 asS'smut' p10224 (lp10225 S'smuts' p10226 aS'smutting' p10227 aS'smutted' p10228 aS'smutted' p10229 asS'stang' p10230 (lp10231 S'stangs' p10232 aS'stanging' p10233 aS'stanged' p10234 aS'stanged' p10235 asS'halter' p10236 (lp10237 sS'await' p10238 (lp10239 S'awaits' p10240 aS'awaiting' p10241 aS'awaited' p10242 aS'awaited' p10243 asS'electroform' p10244 (lp10245 S'electroforms' p10246 aS'electroforming' p10247 aS'electroformed' p10248 aS'electroformed' p10249 asS'ozonize' p10250 (lp10251 S'ozonizes' p10252 aS'ozonizing' p10253 aS'ozonized' p10254 aS'ozonized' p10255 asS'tier' p10256 (lp10257 S'tiers' p10258 aS'tiering' p10259 aS'tiered' p10260 aS'tiered' p10261 asS'jumpstart' p10262 (lp10263 S'jumpstarts' p10264 aS'jumpstarting' p10265 aS'jumpstarted' p10266 aS'jumpstarted' p10267 asS'cabbage' p10268 (lp10269 S'cabbages' p10270 aS'cabbaging' p10271 aS'cabbaged' p10272 aS'cabbaged' p10273 asS'hawk' p10274 (lp10275 S'hawks' p10276 aS'hawking' p10277 aS'hawked' p10278 aS'hawked' p10279 asS'autograph' p10280 (lp10281 S'autographs' p10282 aS'autographing' p10283 aS'autographed' p10284 aS'autographed' p10285 asS'counter' p10286 (lp10287 S'counters' p10288 aS'countering' p10289 aS'countered' p10290 aS'countered' p10291 asS'writ' p10292 (lp10293 S'writs' p10294 aS'writing' p10295 aS'writed' p10296 aS'writed' p10297 asS'allot' p10298 (lp10299 S'allots' p10300 aS'allotting' p10301 aS'allotted' p10302 aS'allotted' p10303 asS'allow' p10304 (lp10305 S'allows' p10306 aS'allowing' p10307 aS'allowed' p10308 aS'allowed' p10309 asS'lactate' p10310 (lp10311 S'lactates' p10312 aS'lactating' p10313 aS'lactated' p10314 aS'lactated' p10315 asS'alloy' p10316 (lp10317 S'alloys' p10318 aS'alloying' p10319 aS'alloyed' p10320 aS'alloyed' p10321 asS'sweettalk' p10322 (lp10323 S'sweettalks' p10324 aS'sweettalking' p10325 aS'sweettalked' p10326 aS'sweettalked' p10327 asS'presuppose' p10328 (lp10329 S'presupposes' p10330 aS'presupposing' p10331 aS'presupposed' p10332 aS'presupposed' p10333 asS'incandesce' p10334 (lp10335 S'incandesces' p10336 aS'incandescing' p10337 aS'incandesced' p10338 aS'incandesced' p10339 asS'placekick' p10340 (lp10341 S'placekicks' p10342 aS'placekicking' p10343 aS'placekicked' p10344 aS'placekicked' p10345 asS'interstratify' p10346 (lp10347 S'interstratifies' p10348 aS'interstratifying' p10349 aS'interstratified' p10350 aS'interstratified' p10351 asS'mute' p10352 (lp10353 S'mutes' p10354 aS'muting' p10355 aS'muted' p10356 aS'muted' p10357 asS'move' p10358 (lp10359 S'moves' p10360 aS'moving' p10361 aS'moved' p10362 aS'moved' p10363 asS'macerate' p10364 (lp10365 S'macerates' p10366 aS'macerating' p10367 aS'macerated' p10368 aS'macerated' p10369 asS'parleyvoo' p10370 (lp10371 S'parleyvoos' p10372 aS'parleyvooing' p10373 aS'parleyvooed' p10374 aS'parleyvooed' p10375 asS'phenolate' p10376 (lp10377 S'phenolates' p10378 aS'phenolating' p10379 aS'phenolated' p10380 aS'phenolated' p10381 asS'bellyland' p10382 (lp10383 S'bellylands' p10384 aS'bellylanding' p10385 aS'bellylanded' p10386 aS'bellylanded' p10387 asS'perfect' p10388 (lp10389 S'perfects' p10390 aS'perfecting' p10391 aS'perfected' p10392 aS'perfected' p10393 asS'decay' p10394 (lp10395 S'decays' p10396 aS'decaying' p10397 aS'decayed' p10398 aS'decayed' p10399 asS'hypothesize' p10400 (lp10401 S'hypothesizes' p10402 aS'hypothesizing' p10403 aS'hypothesized' p10404 aS'hypothesized' p10405 asS'dispose' p10406 (lp10407 S'disposes' p10408 aS'disposing' p10409 aS'disposed' p10410 aS'disposed' p10411 asS'interlink' p10412 (lp10413 S'interlinks' p10414 aS'interlinking' p10415 aS'interlinked' p10416 aS'interlinked' p10417 asS'shudder' p10418 (lp10419 S'shudders' p10420 aS'shuddering' p10421 aS'shuddered' p10422 aS'shuddered' p10423 asS'decal' p10424 (lp10425 S'decals' p10426 aS'decaling' p10427 aS'decaled' p10428 aS'decaled' p10429 asS'prosper' p10430 (lp10431 S'prospers' p10432 aS'prospering' p10433 aS'prospered' p10434 aS'prospered' p10435 asS'impetrate' p10436 (lp10437 S'impetrates' p10438 aS'impetrating' p10439 aS'impetrated' p10440 aS'impetrated' p10441 asS'belch' p10442 (lp10443 S'belches' p10444 aS'belching' p10445 aS'belched' p10446 aS'belched' p10447 asS'Hebraize' p10448 (lp10449 S'Hebraizes' p10450 aS'Hebraizing' p10451 aS'Hebraized' p10452 aS'Hebraized' p10453 asS'earn' p10454 (lp10455 S'earns' p10456 aS'earning' p10457 aS'earned' p10458 aS'earned' p10459 asS'launder' p10460 (lp10461 S'launders' p10462 aS'laundering' p10463 aS'laundered' p10464 aS'laundered' p10465 asS'dock' p10466 (lp10467 S'docks' p10468 aS'docking' p10469 aS'docked' p10470 aS'docked' p10471 asS'sandpaper' p10472 (lp10473 S'sandpapers' p10474 aS'sandpapering' p10475 aS'sandpapered' p10476 aS'sandpapered' p10477 asS'kiss' p10478 (lp10479 S'kisses' p10480 aS'kissing' p10481 aS'kissed' p10482 aS'kissed' p10483 asS'cage' p10484 (lp10485 S'cages' p10486 aS'caging' p10487 aS'caged' p10488 aS'caged' p10489 asS'realize' p10490 (lp10491 S'realizes' p10492 aS'realizing' p10493 aS'realized' p10494 aS'realized' p10495 asS'renovate' p10496 (lp10497 S'renovates' p10498 aS'renovating' p10499 aS'renovated' p10500 aS'renovated' p10501 asS'vernalize' p10502 (lp10503 S'vernalizes' p10504 aS'vernalizing' p10505 aS'vernalized' p10506 aS'vernalized' p10507 asS'concave' p10508 (lp10509 S'concaves' p10510 aS'concaving' p10511 aS'concaved' p10512 aS'concaved' p10513 asS'feminize' p10514 (lp10515 S'feminizes' p10516 aS'feminizing' p10517 aS'feminized' p10518 aS'feminized' p10519 asS'colonize' p10520 (lp10521 S'colonizes' p10522 aS'colonizing' p10523 aS'colonized' p10524 aS'colonized' p10525 asS'effuse' p10526 (lp10527 S'effuses' p10528 aS'effusing' p10529 aS'effused' p10530 aS'effused' p10531 asS'scorch' p10532 (lp10533 S'scorches' p10534 aS'scorching' p10535 aS'scorched' p10536 aS'scorched' p10537 asS'bump' p10538 (lp10539 S'bumps' p10540 aS'bumping' p10541 aS'bumped' p10542 aS'bumped' p10543 asS'variegate' p10544 (lp10545 S'variegates' p10546 aS'variegating' p10547 aS'variegated' p10548 aS'variegated' p10549 asS'tack' p10550 (lp10551 S'tacks' p10552 aS'tacking' p10553 aS'tacked' p10554 aS'tacked' p10555 asS'xylograph' p10556 (lp10557 S'xylographs' p10558 aS'xylographing' p10559 aS'xylographed' p10560 aS'xylographed' p10561 asS'castigate' p10562 (lp10563 S'castigates' p10564 aS'castigating' p10565 aS'castigated' p10566 aS'castigated' p10567 asS'mete' p10568 (lp10569 S'metes' p10570 aS'meting' p10571 aS'meted' p10572 aS'meted' p10573 asS'differ' p10574 (lp10575 S'differs' p10576 aS'differing' p10577 aS'differed' p10578 aS'differed' p10579 asS'hackle' p10580 (lp10581 S'hackles' p10582 aS'hackling' p10583 aS'hackled' p10584 aS'hackled' p10585 asS'wander' p10586 (lp10587 S'wanders' p10588 aS'wandering' p10589 aS'wandered' p10590 aS'wandered' p10591 asS'witness' p10592 (lp10593 S'witnesses' p10594 aS'witnessing' p10595 aS'witnessed' p10596 aS'witnessed' p10597 asS'scape' p10598 (lp10599 S'scapes' p10600 aS'scaping' p10601 aS'scaped' p10602 aS'scaped' p10603 asS'cess' p10604 (lp10605 S'cesses' p10606 aS'cessing' p10607 aS'cessed' p10608 aS'cessed' p10609 asS'burke' p10610 (lp10611 S'burkes' p10612 aS'burking' p10613 aS'burked' p10614 aS'burked' p10615 asS'stare' p10616 (lp10617 S'stares' p10618 aS'staring' p10619 aS'stared' p10620 aS'stared' p10621 asS'shut' p10622 (lp10623 S'shuts' p10624 aS'shutting' p10625 aS'shut' p10626 aS'shut' p10627 asS'wallpaper' p10628 (lp10629 S'wallpapers' p10630 aS'wallpapering' p10631 aS'wallpapered' p10632 aS'wallpapered' p10633 asS'perish' p10634 (lp10635 S'perishes' p10636 aS'perishing' p10637 aS'perished' p10638 aS'perished' p10639 asS'expurgate' p10640 (lp10641 S'expurgates' p10642 aS'expurgating' p10643 aS'expurgated' p10644 aS'expurgated' p10645 asS'decoct' p10646 (lp10647 S'decocts' p10648 aS'decocting' p10649 aS'decocted' p10650 aS'decocted' p10651 asS'graze' p10652 (lp10653 S'grazes' p10654 aS'grazing' p10655 aS'grazed' p10656 aS'grazed' p10657 asS'tempt' p10658 (lp10659 S'tempts' p10660 aS'tempting' p10661 aS'tempted' p10662 aS'tempted' p10663 asS'initialize' p10664 (lp10665 S'initializes' p10666 aS'initializing' p10667 aS'initialized' p10668 aS'initialized' p10669 asS'embarrass' p10670 (lp10671 S'embarrasses' p10672 aS'embarrassing' p10673 aS'embarrassed' p10674 aS'embarrassed' p10675 asS'gusset' p10676 (lp10677 S'gussets' p10678 aS'gusseting' p10679 aS'gusseted' p10680 aS'gusseted' p10681 asS'prepare' p10682 (lp10683 S'prepares' p10684 aS'preparing' p10685 aS'prepared' p10686 aS'prepared' p10687 asS'spill' p10688 (lp10689 S'spills' p10690 aS'spilling' p10691 aS'spilt' p10692 aS'spilt' p10693 asS'scarp' p10694 (lp10695 S'scarps' p10696 aS'scarping' p10697 aS'scarped' p10698 aS'scarped' p10699 asS'put' p10700 (lp10701 S'puts' p10702 aS'putting' p10703 aS'put' p10704 aS'put' p10705 asS'spile' p10706 (lp10707 S'spiles' p10708 aS'spiling' p10709 aS'spiled' p10710 aS'spiled' p10711 asS'scare' p10712 (lp10713 S'scares' p10714 aS'scaring' p10715 aS'scared' p10716 aS'scared' p10717 asS'cannonball' p10718 (lp10719 S'cannonballs' p10720 aS'cannonballing' p10721 aS'cannonballed' p10722 aS'cannonballed' p10723 asS'scend' p10724 (lp10725 S'scends' p10726 aS'scending' p10727 aS'sended' p10728 aS'sended' p10729 asS'dogmatize' p10730 (lp10731 S'dogmatizes' p10732 aS'dogmatizing' p10733 aS'dogmatized' p10734 aS'dogmatized' p10735 asS'scent' p10736 (lp10737 S'scents' p10738 aS'scenting' p10739 aS'scented' p10740 aS'scented' p10741 asS'prank' p10742 (lp10743 S'pranks' p10744 aS'pranking' p10745 aS'pranked' p10746 aS'pranked' p10747 asS'impulse-buy' p10748 (lp10749 S'impulse-buys' p10750 aS'impulse-buying' p10751 aS'impulse-bought' p10752 aS'impulse-bought' p10753 asS'dilapidate' p10754 (lp10755 S'dilapidates' p10756 aS'dilapidating' p10757 aS'dilapidated' p10758 aS'dilapidated' p10759 asS'fray' p10760 (lp10761 S'frays' p10762 aS'fraying' p10763 aS'frayed' p10764 aS'frayed' p10765 asS'haver' p10766 (lp10767 S'havers' p10768 aS'havering' p10769 aS'havered' p10770 aS'havered' p10771 asS'accompany' p10772 (lp10773 S'accompanies' p10774 aS'accompanying' p10775 aS'accompanied' p10776 aS'accompanied' p10777 asS'aerate' p10778 (lp10779 S'aerates' p10780 aS'aerating' p10781 aS'aerated' p10782 aS'aerated' p10783 asS'chagrin' p10784 (lp10785 S'chagrins' p10786 aS'chagrining' p10787 aS'chagrined' p10788 aS'chagrined' p10789 asS'barnstorm' p10790 (lp10791 S'barnstorms' p10792 aS'barnstorming' p10793 aS'barnstormed' p10794 aS'barnstormed' p10795 asS'burlesque' p10796 (lp10797 S'burlesques' p10798 aS'burlesquing' p10799 aS'burlesqued' p10800 aS'burlesqued' p10801 asS'nebulize' p10802 (lp10803 S'nebulizes' p10804 aS'nebulizing' p10805 aS'nebulized' p10806 aS'nebulized' p10807 asS'thresh' p10808 (lp10809 S'threshes' p10810 aS'threshing' p10811 aS'threshed' p10812 aS'threshed' p10813 asS'haven' p10814 (lp10815 S'havens' p10816 aS'havening' p10817 aS'havened' p10818 aS'havened' p10819 asS'steel' p10820 (lp10821 S'steels' p10822 aS'steeling' p10823 aS'steeled' p10824 aS'steeled' p10825 asS'copyread' p10826 (lp10827 S'copyreads' p10828 aS'copyreading' p10829 aS'copyread' p10830 aS'copyread' p10831 asS'wet' p10832 (lp10833 S'wets' p10834 aS'wetting' p10835 aS'wetted' p10836 aS'wetted' p10837 asS'dower' p10838 (lp10839 S'dowers' p10840 aS'dowering' p10841 aS'dowered' p10842 aS'dowered' p10843 asS'caponize' p10844 (lp10845 S'caponizes' p10846 aS'caponizing' p10847 aS'caponized' p10848 aS'caponized' p10849 asS'traipse' p10850 (lp10851 S'traipses' p10852 aS'traipsing' p10853 aS'traipsed' p10854 aS'traipsed' p10855 asS'intertwine' p10856 (lp10857 S'intertwines' p10858 aS'intertwining' p10859 aS'intertwined' p10860 aS'intertwined' p10861 asS'disband' p10862 (lp10863 S'disbands' p10864 aS'disbanding' p10865 aS'disbanded' p10866 aS'disbanded' p10867 asS'unman' p10868 (lp10869 S'unmans' p10870 aS'unmanning' p10871 aS'unmanned' p10872 aS'unmanned' p10873 asS'amble' p10874 (lp10875 S'ambles' p10876 aS'ambling' p10877 aS'ambled' p10878 aS'ambled' p10879 asS'misunderstand' p10880 (lp10881 S'misunderstands' p10882 aS'misunderstanding' p10883 aS'misunderstood' p10884 aS'misunderstood' p10885 asS'prefabricate' p10886 (lp10887 S'prefabricates' p10888 aS'prefabricating' p10889 aS'prefabricated' p10890 aS'prefabricated' p10891 asS'beggar' p10892 (lp10893 S'beggars' p10894 aS'beggaring' p10895 aS'beggared' p10896 aS'beggared' p10897 asS'leach' p10898 (lp10899 S'leaches' p10900 aS'leaching' p10901 aS'leached' p10902 aS'leached' p10903 asS'gentle' p10904 (lp10905 S'gentles' p10906 aS'gentling' p10907 aS'gentled' p10908 aS'gentled' p10909 asS'delaminate' p10910 (lp10911 S'delaminates' p10912 aS'delaminating' p10913 aS'delaminated' p10914 aS'delaminated' p10915 asS'outplay' p10916 (lp10917 S'outplays' p10918 aS'outplaying' p10919 aS'outplayed' p10920 aS'outplayed' p10921 asS'heft' p10922 (lp10923 S'hefts' p10924 aS'hefting' p10925 aS'hefted' p10926 aS'hefted' p10927 asS'soak' p10928 (lp10929 S'soaks' p10930 aS'soaking' p10931 aS'soaked' p10932 aS'soaked' p10933 asS'photolithograph' p10934 (lp10935 S'photolithographs' p10936 aS'photolithographing' p10937 aS'photolithographed' p10938 aS'photolithographed' p10939 asS'lilt' p10940 (lp10941 S'lilts' p10942 aS'lilting' p10943 aS'lilted' p10944 aS'lilted' p10945 asS'cozen' p10946 (lp10947 S'cozens' p10948 aS'cozening' p10949 aS'cozened' p10950 aS'cozened' p10951 asS'soap' p10952 (lp10953 S'soaps' p10954 aS'soaping' p10955 aS'soaped' p10956 aS'soaped' p10957 asS'soar' p10958 (lp10959 S'soars' p10960 aS'soaring' p10961 aS'soared' p10962 aS'soared' p10963 asS'voyage' p10964 (lp10965 S'voyages' p10966 aS'voyaging' p10967 aS'voyaged' p10968 aS'voyaged' p10969 asS'cipher' p10970 (lp10971 S'ciphers' p10972 aS'ciphering' p10973 aS'ciphered' p10974 aS'ciphered' p10975 asS'vise' p10976 (lp10977 S'vises' p10978 aS'vising' p10979 aS'vised' p10980 aS'vised' p10981 asS'medal' p10982 (lp10983 S'medals' p10984 aS'medalling' p10985 aS'medalled' p10986 aS'medalled' p10987 asS'tergiversate' p10988 (lp10989 S'tergiversates' p10990 aS'tergiversating' p10991 aS'tergiversated' p10992 aS'tergiversated' p10993 asS'underset' p10994 (lp10995 S'undersets' p10996 aS'undersetting' p10997 aS'underset' p10998 aS'underset' p10999 asS'amortize' p11000 (lp11001 S'amortizes' p11002 aS'amortizing' p11003 aS'amortized' p11004 aS'amortized' p11005 asS'reignite' p11006 (lp11007 S'reignites' p11008 aS'reigniting' p11009 aS'reignited' p11010 aS'reignited' p11011 asS'enlist' p11012 (lp11013 S'enlists' p11014 aS'enlisting' p11015 aS'enlisted' p11016 aS'enlisted' p11017 asS'brey' p11018 (lp11019 S'breys' p11020 aS'breying' p11021 aS'breyed' p11022 aS'breyed' p11023 asS'sideslip' p11024 (lp11025 sS'brew' p11026 (lp11027 S'brews' p11028 aS'brewing' p11029 aS'brewed' p11030 aS'brewed' p11031 asS'overrate' p11032 (lp11033 S'overrates' p11034 aS'overrating' p11035 aS'overrated' p11036 aS'overrated' p11037 asS'terminate' p11038 (lp11039 S'terminates' p11040 aS'terminating' p11041 aS'terminated' p11042 aS'terminated' p11043 asS'dissociate' p11044 (lp11045 S'dissociates' p11046 aS'dissociating' p11047 aS'dissociated' p11048 aS'dissociated' p11049 asS'crimple' p11050 (lp11051 S'crimples' p11052 aS'crimpling' p11053 aS'crimpled' p11054 aS'crimpled' p11055 asS'brine' p11056 (lp11057 S'brines' p11058 aS'brining' p11059 aS'brined' p11060 aS'brined' p11061 asS'rouge' p11062 (lp11063 S'rouges' p11064 aS'rouging' p11065 aS'rouged' p11066 aS'rouged' p11067 asS'rough' p11068 (lp11069 S'roughs' p11070 aS'roughing' p11071 aS'roughed' p11072 aS'roughed' p11073 asS'miniaturize' p11074 (lp11075 S'miniaturizes' p11076 aS'miniaturizing' p11077 aS'miniaturized' p11078 aS'miniaturized' p11079 asS'redirect' p11080 (lp11081 S'redirects' p11082 aS'redirecting' p11083 aS'redirected' p11084 aS'redirected' p11085 asS'foredoom' p11086 (lp11087 S'foredooms' p11088 aS'foredooming' p11089 aS'foredoomed' p11090 aS'foredoomed' p11091 asS'disillusion' p11092 (lp11093 S'disillusions' p11094 aS'disillusioning' p11095 aS'disillusioned' p11096 aS'disillusioned' p11097 asS'pause' p11098 (lp11099 S'pauses' p11100 aS'pausing' p11101 aS'paused' p11102 aS'paused' p11103 asS'typewrite' p11104 (lp11105 S'typewrites' p11106 aS'typewriting' p11107 aS'typewrote' p11108 aS'typewritten' p11109 asS'jaw' p11110 (lp11111 S'jaws' p11112 aS'jawing' p11113 aS'jawed' p11114 aS'jawed' p11115 asS'transfix' p11116 (lp11117 S'transfixes' p11118 aS'transfixing' p11119 aS'transfixed' p11120 aS'transfixed' p11121 asS'jar' p11122 (lp11123 S'jars' p11124 aS'jarring' p11125 aS'jarred' p11126 aS'jarred' p11127 asS'should' p11128 (lp11129 S'shoulds' p11130 aS'shoulding' p11131 aS'shoulded' p11132 aS'shoulded' p11133 aS"shouldn't" p11134 asS'cocainize' p11135 (lp11136 S'cocainizes' p11137 aS'cocainizing' p11138 aS'cocainized' p11139 aS'cocainized' p11140 asS'jam' p11141 (lp11142 S'jams' p11143 aS'jamming' p11144 aS'jammed' p11145 aS'jammed' p11146 asS'tape' p11147 (lp11148 S'tapes' p11149 aS'taping' p11150 aS'taped' p11151 aS'taped' p11152 asS'unhallow' p11153 (lp11154 S'unhallows' p11155 aS'unhallowing' p11156 aS'unhallowed' p11157 aS'unhallowed' p11158 asS'enwomb' p11159 (lp11160 S'enwombs' p11161 aS'enwombing' p11162 aS'enwombed' p11163 aS'enwombed' p11164 asS'confederate' p11165 (lp11166 S'confederates' p11167 aS'confederating' p11168 aS'confederated' p11169 aS'confederated' p11170 asS'anneal' p11171 (lp11172 S'anneals' p11173 aS'annealing' p11174 aS'annealed' p11175 aS'annealed' p11176 asS'flinch' p11177 (lp11178 S'flinches' p11179 aS'flinching' p11180 aS'flinched' p11181 aS'flinched' p11182 asS'hope' p11183 (lp11184 S'hopes' p11185 aS'hoping' p11186 aS'hoped' p11187 aS'hoped' p11188 asS'handle' p11189 (lp11190 S'handles' p11191 aS'handling' p11192 aS'handled' p11193 aS'handled' p11194 asS'winterkill' p11195 (lp11196 S'winterkills' p11197 aS'winterkilling' p11198 aS'winterkilled' p11199 aS'winterkilled' p11200 asS'scutch' p11201 (lp11202 S'scutches' p11203 aS'scutching' p11204 aS'scutched' p11205 aS'scutched' p11206 asS'wiggle' p11207 (lp11208 S'wiggles' p11209 aS'wiggling' p11210 aS'wiggled' p11211 aS'wiggled' p11212 asS'rubricate' p11213 (lp11214 S'rubricates' p11215 aS'rubricating' p11216 aS'rubricated' p11217 aS'rubricated' p11218 asS'wring' p11219 (lp11220 S'wrings' p11221 aS'wringing' p11222 aS'wrung' p11223 aS'wrung' p11224 asS'smash' p11225 (lp11226 S'smashes' p11227 aS'smashing' p11228 aS'smashed' p11229 aS'smashed' p11230 asS'dishearten' p11231 (lp11232 S'disheartens' p11233 aS'disheartening' p11234 aS'disheartened' p11235 aS'disheartened' p11236 asS'transpierce' p11237 (lp11238 S'transpierces' p11239 aS'transpiercing' p11240 aS'transpierced' p11241 aS'transpierced' p11242 asS'rappel' p11243 (lp11244 S'rappels' p11245 aS'rappelling' p11246 aS'rappelled' p11247 aS'rappelled' p11248 asS'stuff' p11249 (lp11250 S'stuffs' p11251 aS'stuffing' p11252 aS'stuffed' p11253 aS'stuffed' p11254 asS'levigate' p11255 (lp11256 S'levigates' p11257 aS'levigating' p11258 aS'levigated' p11259 aS'levigated' p11260 asS'shortchange' p11261 (lp11262 S'shortchanges' p11263 aS'shortchanging' p11264 aS'shortchanged' p11265 aS'shortchanged' p11266 asS'rein' p11267 (lp11268 S'reins' p11269 aS'reining' p11270 aS'reined' p11271 aS'reined' p11272 asS'exude' p11273 (lp11274 S'exudes' p11275 aS'exuding' p11276 aS'exuded' p11277 aS'exuded' p11278 asS'preserve' p11279 (lp11280 S'preserves' p11281 aS'preserving' p11282 aS'preserved' p11283 aS'preserved' p11284 asS'frame' p11285 (lp11286 S'frames' p11287 aS'framing' p11288 aS'framed' p11289 aS'framed' p11290 asS'packet' p11291 (lp11292 S'packets' p11293 aS'packeting' p11294 aS'packeted' p11295 aS'packeted' p11296 asS'sclaff' p11297 (lp11298 S'sclaffs' p11299 aS'sclaffing' p11300 aS'sclaffed' p11301 aS'sclaffed' p11302 asS'tiptoe' p11303 (lp11304 S'tiptoes' p11305 aS'tiptoeing' p11306 aS'tiptoed' p11307 aS'tiptoed' p11308 asS'airmail' p11309 (lp11310 S'airmails' p11311 aS'airmailing' p11312 aS'airmailed' p11313 aS'airmailed' p11314 asS'wire' p11315 (lp11316 S'wires' p11317 aS'wiring' p11318 aS'wired' p11319 aS'wired' p11320 asS'cense' p11321 (lp11322 S'censes' p11323 aS'censing' p11324 aS'censed' p11325 aS'censed' p11326 asS'posse' p11327 (lp11328 S'possing' p11329 aS'possed' p11330 aS'possed' p11331 asS'macadamize' p11332 (lp11333 S'macadamizes' p11334 aS'macadamizing' p11335 aS'macadamized' p11336 aS'macadamized' p11337 asS'legitimize' p11338 (lp11339 S'legitimizes' p11340 aS'legitimizing' p11341 aS'legitimized' p11342 aS'legitimized' p11343 asS'destine' p11344 (lp11345 S'destines' p11346 aS'destining' p11347 aS'destined' p11348 aS'destined' p11349 asS'pistol' p11350 (lp11351 S'pistols' p11352 aS'pistolling' p11353 aS'pistolled' p11354 aS'pistolled' p11355 asS'corrode' p11356 (lp11357 S'corrodes' p11358 aS'corroding' p11359 aS'corroded' p11360 aS'corroded' p11361 asS'browbeat' p11362 (lp11363 S'browbeats' p11364 aS'browbeating' p11365 aS'browbeat' p11366 aS'browbeaten' p11367 asS'keynote' p11368 (lp11369 S'keynotes' p11370 aS'keynoting' p11371 aS'keynoted' p11372 aS'keynoted' p11373 asS'tenter' p11374 (lp11375 S'tenters' p11376 aS'tentering' p11377 aS'tentered' p11378 aS'tentered' p11379 asS'interpolate' p11380 (lp11381 S'interpolates' p11382 aS'interpolating' p11383 aS'interpolated' p11384 aS'interpolated' p11385 asS'weary' p11386 (lp11387 S'wearies' p11388 aS'wearying' p11389 aS'wearied' p11390 aS'wearied' p11391 asS'drum' p11392 (lp11393 S'drums' p11394 aS'drumming' p11395 aS'drummed' p11396 aS'drummed' p11397 asS'drub' p11398 (lp11399 S'drubs' p11400 aS'drubbing' p11401 aS'drubbed' p11402 aS'drubbed' p11403 asS'ramp' p11404 (lp11405 S'ramps' p11406 aS'ramping' p11407 aS'ramped' p11408 aS'ramped' p11409 asS'drug' p11410 (lp11411 S'drugs' p11412 aS'drugging' p11413 aS'drugged' p11414 aS'drugged' p11415 asS'dogear' p11416 (lp11417 S'dogears' p11418 aS'dogearing' p11419 aS'dogeared' p11420 aS'dogeared' p11421 asS'cinder' p11422 (lp11423 S'cinders' p11424 aS'cindering' p11425 aS'cindered' p11426 aS'cindered' p11427 asS'itemize' p11428 (lp11429 S'itemizes' p11430 aS'itemizing' p11431 aS'itemized' p11432 aS'itemized' p11433 asS'ticktock' p11434 (lp11435 S'ticktocks' p11436 aS'ticktocking' p11437 aS'ticktocked' p11438 aS'ticktocked' p11439 asS'roughen' p11440 (lp11441 S'roughens' p11442 aS'roughening' p11443 aS'roughened' p11444 aS'roughened' p11445 asS'conclude' p11446 (lp11447 S'concludes' p11448 aS'concluding' p11449 aS'concluded' p11450 aS'concluded' p11451 asS'revamp' p11452 (lp11453 S'revamps' p11454 aS'revamping' p11455 aS'revamped' p11456 aS'revamped' p11457 asS'typify' p11458 (lp11459 S'typifies' p11460 aS'typifying' p11461 aS'typified' p11462 aS'typified' p11463 asS'lustrate' p11464 (lp11465 S'lustrates' p11466 aS'lustrating' p11467 aS'lustrated' p11468 aS'lustrated' p11469 asS'indict' p11470 (lp11471 S'indicts' p11472 aS'indicting' p11473 aS'indicted' p11474 aS'indicted' p11475 asS'denitrate' p11476 (lp11477 S'denitrates' p11478 aS'denitrating' p11479 aS'denitrated' p11480 aS'denitrated' p11481 asS'jubilate' p11482 (lp11483 S'jubilates' p11484 aS'jubilating' p11485 aS'jubilated' p11486 aS'jubilated' p11487 asS'elute' p11488 (lp11489 S'elutes' p11490 aS'eluting' p11491 aS'eluted' p11492 aS'eluted' p11493 asS'reexamine' p11494 (lp11495 S'reexamines' p11496 aS'reexamining' p11497 aS'reexamined' p11498 aS'reexamined' p11499 asS'disject' p11500 (lp11501 S'disjects' p11502 aS'disjecting' p11503 aS'disjected' p11504 aS'disjected' p11505 asS'quaver' p11506 (lp11507 S'quavers' p11508 aS'quavering' p11509 aS'quavered' p11510 aS'quavered' p11511 asS'mismanage' p11512 (lp11513 S'mismanages' p11514 aS'mismanaging' p11515 aS'mismanaged' p11516 aS'mismanaged' p11517 asS'divebomb' p11518 (lp11519 S'divebombs' p11520 aS'divebombing' p11521 aS'divebombed' p11522 aS'divebombed' p11523 asS'entitle' p11524 (lp11525 S'entitles' p11526 aS'entitling' p11527 aS'entitled' p11528 aS'entitled' p11529 asS'feather' p11530 (lp11531 S'feathers' p11532 aS'feathering' p11533 aS'feathered' p11534 aS'feathered' p11535 asS'waste' p11536 (lp11537 S'wastes' p11538 aS'wasting' p11539 aS'wasted' p11540 aS'wasted' p11541 asS'deflower' p11542 (lp11543 S'deflowers' p11544 aS'deflowering' p11545 aS'deflowered' p11546 aS'deflowered' p11547 asS'ballast' p11548 (lp11549 S'ballasts' p11550 aS'ballasting' p11551 aS'ballasted' p11552 aS'ballasted' p11553 asS'crisscross' p11554 (lp11555 S'crisscrosses' p11556 aS'crisscrossing' p11557 aS'crisscrossed' p11558 aS'crisscrossed' p11559 asS'huggermugger' p11560 (lp11561 S'huggermuggers' p11562 aS'huggermuggering' p11563 aS'huggermuggered' p11564 aS'huggermuggered' p11565 asS'neighbour' p11566 (lp11567 S'neighbours' p11568 aS'neighbouring' p11569 aS'neighboured' p11570 aS'neighboured' p11571 asS'globe-trot' p11572 (lp11573 S'globe-trots' p11574 aS'globe-trotting' p11575 aS'globe-trotted' p11576 aS'globe-trotted' p11577 asS'misguide' p11578 (lp11579 S'misguides' p11580 aS'misguiding' p11581 aS'misguided' p11582 aS'misguided' p11583 asS'blackmarket' p11584 (lp11585 S'blackmarkets' p11586 aS'blackmarketing' p11587 aS'blackmarketed' p11588 aS'blackmarketed' p11589 asS'banish' p11590 (lp11591 S'banishes' p11592 aS'banishing' p11593 aS'banished' p11594 aS'banished' p11595 asS'afforest' p11596 (lp11597 S'afforests' p11598 aS'afforesting' p11599 aS'afforested' p11600 aS'afforested' p11601 asS'bespangle' p11602 (lp11603 S'bespangles' p11604 aS'bespangling' p11605 aS'bespangled' p11606 aS'bespangled' p11607 asS'fornicate' p11608 (lp11609 S'fornicates' p11610 aS'fornicating' p11611 aS'fornicated' p11612 aS'fornicated' p11613 asS'sentimentalize' p11614 (lp11615 S'sentimentalizes' p11616 aS'sentimentalizing' p11617 aS'sentimentalized' p11618 aS'sentimentalized' p11619 asS'work-to-rule' p11620 (lp11621 S'work-to-ruling' p11622 aS'work-to-ruled' p11623 aS'work-to-ruled' p11624 asS'maul' p11625 (lp11626 S'mauls' p11627 aS'mauling' p11628 aS'mauled' p11629 aS'mauled' p11630 asS'groin' p11631 (lp11632 S'groins' p11633 aS'groining' p11634 aS'groined' p11635 aS'groined' p11636 asS'inarch' p11637 (lp11638 S'inarches' p11639 aS'inarching' p11640 aS'inarched' p11641 aS'inarched' p11642 asS'eyeball' p11643 (lp11644 S'eyeballs' p11645 aS'eyeballing' p11646 aS'eyeballed' p11647 aS'eyeballed' p11648 asS'nictitate' p11649 (lp11650 S'nictitates' p11651 aS'nictitating' p11652 aS'nictitated' p11653 aS'nictitated' p11654 asS'tenon' p11655 (lp11656 S'tenons' p11657 aS'tenoning' p11658 aS'tenoned' p11659 aS'tenoned' p11660 asS'lush' p11661 (lp11662 S'lushes' p11663 aS'lushing' p11664 aS'lushed' p11665 aS'lushed' p11666 asS'site' p11667 (lp11668 S'sites' p11669 aS'siting' p11670 aS'sited' p11671 aS'sited' p11672 asS'lust' p11673 (lp11674 S'lusts' p11675 aS'lusting' p11676 aS'lusted' p11677 aS'lusted' p11678 asS'denuclearize' p11679 (lp11680 S'denuclearizes' p11681 aS'denuclearizing' p11682 aS'denuclearized' p11683 aS'denuclearized' p11684 asS'dag' p11685 (lp11686 S'dags' p11687 aS'dagging' p11688 aS'dagged' p11689 aS'dagged' p11690 asS'overspend' p11691 (lp11692 S'overspends' p11693 aS'overspending' p11694 aS'overspent' p11695 aS'overspent' p11696 asS'conserve' p11697 (lp11698 S'conserves' p11699 aS'conserving' p11700 aS'conserved' p11701 aS'conserved' p11702 asS'ransom' p11703 (lp11704 S'ransoms' p11705 aS'ransoming' p11706 aS'ransomed' p11707 aS'ransomed' p11708 asS'tattoo' p11709 (lp11710 S'tattoos' p11711 aS'tattooing' p11712 aS'tattooed' p11713 aS'tattooed' p11714 asS'dilate' p11715 (lp11716 S'dilates' p11717 aS'dilating' p11718 aS'dilated' p11719 aS'dilated' p11720 asS'ligature' p11721 (lp11722 S'ligatures' p11723 aS'ligaturing' p11724 aS'ligatured' p11725 aS'ligatured' p11726 asS'incarnadine' p11727 (lp11728 S'incarnadines' p11729 aS'incarnadining' p11730 aS'incarnadined' p11731 aS'incarnadined' p11732 asS'romance' p11733 (lp11734 S'romances' p11735 aS'romancing' p11736 aS'romanced' p11737 aS'romanced' p11738 asS'unteach' p11739 (lp11740 S'unteaches' p11741 aS'unteaching' p11742 aS'untaught' p11743 aS'untaught' p11744 asS'covenant' p11745 (lp11746 S'covenants' p11747 aS'covenanting' p11748 aS'covenanted' p11749 aS'covenanted' p11750 asS'ball' p11751 (lp11752 S'balls' p11753 aS'balling' p11754 aS'balled' p11755 aS'balled' p11756 asS'dusk' p11757 (lp11758 S'dusks' p11759 aS'dusking' p11760 aS'dusked' p11761 aS'dusked' p11762 asS'bale' p11763 (lp11764 S'bales' p11765 aS'baling' p11766 aS'baled' p11767 aS'baled' p11768 asS'drink' p11769 (lp11770 S'drinks' p11771 aS'drinking' p11772 aS'drank' p11773 aS'drunk' p11774 asS'tassel' p11775 (lp11776 S'tassels' p11777 aS'tasselling' p11778 aS'tasselled' p11779 aS'tasselled' p11780 asS'weigh' p11781 (lp11782 S'weighs' p11783 aS'weighing' p11784 aS'weighed' p11785 aS'weighed' p11786 asS'dust' p11787 (lp11788 S'dusts' p11789 aS'dusting' p11790 aS'dusted' p11791 aS'dusted' p11792 asS'nidify' p11793 (lp11794 S'nidifies' p11795 aS'nidifying' p11796 aS'nidified' p11797 aS'nidified' p11798 asS'expand' p11799 (lp11800 S'expands' p11801 aS'expanding' p11802 aS'expanded' p11803 aS'expanded' p11804 asS'audit' p11805 (lp11806 S'audits' p11807 aS'auditing' p11808 aS'audited' p11809 aS'audited' p11810 asS'dislocate' p11811 (lp11812 S'dislocates' p11813 aS'dislocating' p11814 aS'dislocated' p11815 aS'dislocated' p11816 asS'fascinate' p11817 (lp11818 S'fascinates' p11819 aS'fascinating' p11820 aS'fascinated' p11821 aS'fascinated' p11822 asS'trudge' p11823 (lp11824 S'trudges' p11825 aS'trudging' p11826 aS'trudged' p11827 aS'trudged' p11828 asS'shotgun' p11829 (lp11830 S'shotguns' p11831 aS'shotgunning' p11832 aS'shotgunned' p11833 aS'shotgunned' p11834 asS'colour' p11835 (lp11836 S'colours' p11837 aS'colouring' p11838 aS'coloured' p11839 aS'coloured' p11840 asS'undernourish' p11841 (lp11842 S'undernourishes' p11843 aS'undernourishing' p11844 aS'undernourished' p11845 aS'undernourished' p11846 asS'enrage' p11847 (lp11848 S'enrages' p11849 aS'enraging' p11850 aS'enraged' p11851 aS'enraged' p11852 asS'depurate' p11853 (lp11854 S'depurates' p11855 aS'depurating' p11856 aS'depurated' p11857 aS'depurated' p11858 asS'command' p11859 (lp11860 S'commands' p11861 aS'commanding' p11862 aS'commanded' p11863 aS'commanded' p11864 asS'circumstantiate' p11865 (lp11866 S'circumstantiates' p11867 aS'circumstantiating' p11868 aS'circumstantiated' p11869 aS'circumstantiated' p11870 asS'disrelish' p11871 (lp11872 S'disrelishes' p11873 aS'disrelishing' p11874 aS'disrelished' p11875 aS'disrelished' p11876 asS'methodize' p11877 (lp11878 S'methodizes' p11879 aS'methodizing' p11880 aS'methodized' p11881 aS'methodized' p11882 asS'snake' p11883 (lp11884 S'snakes' p11885 aS'snaking' p11886 aS'snaked' p11887 aS'snaked' p11888 asS'gully' p11889 (lp11890 S'gullies' p11891 aS'gullying' p11892 aS'gullied' p11893 aS'gullied' p11894 asS'restructure' p11895 (lp11896 S'restructures' p11897 aS'restructuring' p11898 aS'restructured' p11899 aS'restructured' p11900 asS'flesh' p11901 (lp11902 S'fleshes' p11903 aS'fleshing' p11904 aS'fleshed' p11905 aS'fleshed' p11906 asS'overcloud' p11907 (lp11908 S'overclouds' p11909 aS'overclouding' p11910 aS'overclouded' p11911 aS'overclouded' p11912 asS'glut' p11913 (lp11914 S'gluts' p11915 aS'glutting' p11916 aS'glutted' p11917 aS'glutted' p11918 asS'parabolize' p11919 (lp11920 S'parabolizes' p11921 aS'parabolizing' p11922 aS'parabolized' p11923 aS'parabolized' p11924 asS'glue' p11925 (lp11926 S'glues' p11927 aS'gluing' p11928 aS'glued' p11929 aS'glued' p11930 asS'permute' p11931 (lp11932 S'permutes' p11933 aS'permuting' p11934 aS'permuted' p11935 aS'permuted' p11936 asS'web' p11937 (lp11938 S'webs' p11939 aS'webbing' p11940 aS'webbed' p11941 aS'webbed' p11942 asS'wed' p11943 (lp11944 S'weds' p11945 aS'wedding' p11946 aS'wedded' p11947 aS'wedded' p11948 asS'upraise' p11949 (lp11950 S'upraises' p11951 aS'upraising' p11952 aS'upraised' p11953 aS'upraised' p11954 asS'lattice' p11955 (lp11956 S'lattices' p11957 aS'latticing' p11958 aS'latticed' p11959 aS'latticed' p11960 asS'combine' p11961 (lp11962 S'combines' p11963 aS'combining' p11964 aS'combined' p11965 aS'combined' p11966 asS'exempt' p11967 (lp11968 S'exempts' p11969 aS'exempting' p11970 aS'exempted' p11971 aS'exempted' p11972 asS'practise' p11973 (lp11974 S'practises' p11975 aS'practising' p11976 aS'practised' p11977 aS'practised' p11978 asS'syncopate' p11979 (lp11980 S'syncopates' p11981 aS'syncopating' p11982 aS'syncopated' p11983 aS'syncopated' p11984 asS'magnify' p11985 (lp11986 S'magnifies' p11987 aS'magnifying' p11988 aS'magnified' p11989 aS'magnified' p11990 asS'taunt' p11991 (lp11992 S'taunts' p11993 aS'taunting' p11994 aS'taunted' p11995 aS'taunted' p11996 asS'criminalize' p11997 (lp11998 S'criminalizes' p11999 aS'criminalizing' p12000 aS'criminalized' p12001 aS'criminalized' p12002 asS'haul' p12003 (lp12004 S'hauls' p12005 aS'hauling' p12006 aS'hauled' p12007 aS'hauled' p12008 asS'supervise' p12009 (lp12010 S'supervises' p12011 aS'supervising' p12012 aS'supervised' p12013 aS'supervised' p12014 asS'atrophy' p12015 (lp12016 S'atrophies' p12017 aS'atrophying' p12018 aS'atrophied' p12019 aS'atrophied' p12020 asS'tick' p12021 (lp12022 S'ticks' p12023 aS'ticking' p12024 aS'ticked' p12025 aS'ticked' p12026 asS'crisp' p12027 (lp12028 S'crisps' p12029 aS'crisping' p12030 aS'crisped' p12031 aS'crisped' p12032 asS'bulge' p12033 (lp12034 S'bulges' p12035 aS'bulging' p12036 aS'bulged' p12037 aS'bulged' p12038 asS'resin' p12039 (lp12040 S'resins' p12041 aS'resining' p12042 aS'resined' p12043 aS'resined' p12044 asS'garage' p12045 (lp12046 S'garages' p12047 aS'garaging' p12048 aS'garaged' p12049 aS'garaged' p12050 asS'stagger' p12051 (lp12052 S'staggers' p12053 aS'staggering' p12054 aS'staggered' p12055 aS'staggered' p12056 asS'resit' p12057 (lp12058 S'resits' p12059 aS'resitting' p12060 aS'resat' p12061 aS'resat' p12062 asS'imprison' p12063 (lp12064 S'imprisons' p12065 aS'imprisoning' p12066 aS'imprisoned' p12067 aS'imprisoned' p12068 asS'become' p12069 (lp12070 S'becomes' p12071 aS'becoming' p12072 aS'became' p12073 aS'become' p12074 asS'sprain' p12075 (lp12076 S'sprains' p12077 aS'spraining' p12078 aS'sprained' p12079 aS'sprained' p12080 asS'guaranty' p12081 (lp12082 S'guaranties' p12083 aS'guarantying' p12084 aS'guarantied' p12085 aS'guarantied' p12086 asS'insphere' p12087 (lp12088 S'inspheres' p12089 aS'insphering' p12090 aS'insphered' p12091 aS'insphered' p12092 asS'mure' p12093 (lp12094 S'mures' p12095 aS'muring' p12096 aS'mured' p12097 aS'mured' p12098 asS'gride' p12099 (lp12100 S'grides' p12101 aS'griding' p12102 aS'grided' p12103 aS'grided' p12104 asS'soothsay' p12105 (lp12106 S'soothsays' p12107 aS'soothsaying' p12108 aS'soothsaid' p12109 aS'soothsaid' p12110 asS'flush' p12111 (lp12112 S'flushes' p12113 aS'flushing' p12114 aS'flushed' p12115 aS'flushed' p12116 asS'wisecrack' p12117 (lp12118 S'wisecracks' p12119 aS'wisecracking' p12120 aS'wisecracked' p12121 aS'wisecracked' p12122 asS'ballot' p12123 (lp12124 S'ballots' p12125 aS'balloting' p12126 aS'balloted' p12127 aS'balloted' p12128 asS'transport' p12129 (lp12130 S'transports' p12131 aS'transporting' p12132 aS'transported' p12133 aS'transported' p12134 asS'merge' p12135 (lp12136 S'merges' p12137 aS'merging' p12138 aS'merged' p12139 aS'merged' p12140 asS'avoid' p12141 (lp12142 S'avoids' p12143 aS'avoiding' p12144 aS'avoided' p12145 aS'avoided' p12146 asS'mezzotint' p12147 (lp12148 S'mezzotints' p12149 aS'mezzotinting' p12150 aS'mezzotinted' p12151 aS'mezzotinted' p12152 asS'sustain' p12153 (lp12154 S'sustains' p12155 aS'sustaining' p12156 aS'sustained' p12157 aS'sustained' p12158 asS'Hispanicize' p12159 (lp12160 S'Hispanicizes' p12161 aS'Hispanicizing' p12162 aS'Hispanicized' p12163 aS'Hispanicized' p12164 asS'disfeature' p12165 (lp12166 S'disfeatures' p12167 aS'disfeaturing' p12168 aS'disfeatured' p12169 aS'disfeatured' p12170 asS'demarcate' p12171 (lp12172 S'demarcates' p12173 aS'demarcating' p12174 aS'demarcated' p12175 aS'demarcated' p12176 asS'pilfer' p12177 (lp12178 S'pilfers' p12179 aS'pilfering' p12180 aS'pilfered' p12181 aS'pilfered' p12182 asS'putt' p12183 (lp12184 S'putts' p12185 ag10703 aS'putted' p12186 aS'putted' p12187 asS'cumber' p12188 (lp12189 S'cumbers' p12190 aS'cumbering' p12191 aS'cumbered' p12192 aS'cumbered' p12193 asS'pressure' p12194 (lp12195 S'pressures' p12196 aS'pressuring' p12197 aS'pressured' p12198 aS'pressured' p12199 asS'tint' p12200 (lp12201 S'tints' p12202 aS'tinting' p12203 aS'tinted' p12204 aS'tinted' p12205 asS'belay' p12206 (lp12207 S'belays' p12208 aS'belaying' p12209 aS'belayed' p12210 aS'belayed' p12211 asS'subsume' p12212 (lp12213 S'subsumes' p12214 aS'subsuming' p12215 aS'subsumed' p12216 aS'subsumed' p12217 asS'stage' p12218 (lp12219 S'stages' p12220 aS'staging' p12221 aS'staged' p12222 aS'staged' p12223 asS'overreach' p12224 (lp12225 S'overreaches' p12226 aS'overreaching' p12227 aS'overreached' p12228 aS'overreached' p12229 asS'ingest' p12230 (lp12231 S'ingests' p12232 aS'ingesting' p12233 aS'ingested' p12234 aS'ingested' p12235 asS'idolize' p12236 (lp12237 S'idolizes' p12238 aS'idolizing' p12239 aS'idolized' p12240 aS'idolized' p12241 asS'grangerize' p12242 (lp12243 S'grangerizes' p12244 aS'grangerizing' p12245 aS'grangerized' p12246 aS'grangerized' p12247 asS'revise' p12248 (lp12249 S'revises' p12250 aS'revising' p12251 aS'revised' p12252 aS'revised' p12253 asS'concretize' p12254 (lp12255 S'concretizes' p12256 aS'concretizing' p12257 aS'concretized' p12258 aS'concretized' p12259 asS'rectify' p12260 (lp12261 S'rectifies' p12262 aS'rectifying' p12263 aS'rectified' p12264 aS'rectified' p12265 asS'stultify' p12266 (lp12267 S'stultifies' p12268 aS'stultifying' p12269 aS'stultified' p12270 aS'stultified' p12271 asS'vituperate' p12272 (lp12273 S'vituperates' p12274 aS'vituperating' p12275 aS'vituperated' p12276 aS'vituperated' p12277 asS'assess' p12278 (lp12279 S'assesses' p12280 aS'assessing' p12281 aS'assessed' p12282 aS'assessed' p12283 asS'muck' p12284 (lp12285 S'mucks' p12286 aS'mucking' p12287 aS'mucked' p12288 aS'mucked' p12289 asS'copolymerize' p12290 (lp12291 S'copolymerizes' p12292 aS'copolymerizing' p12293 aS'copolymerized' p12294 aS'copolymerized' p12295 asS'reactivate' p12296 (lp12297 S'reactivates' p12298 aS'reactivating' p12299 aS'reactivated' p12300 aS'reactivated' p12301 asS'overestimate' p12302 (lp12303 S'overestimates' p12304 aS'overestimating' p12305 aS'overestimated' p12306 aS'overestimated' p12307 asS'imbibe' p12308 (lp12309 S'imbibes' p12310 aS'imbibing' p12311 aS'imbibed' p12312 aS'imbibed' p12313 asS'discant' p12314 (lp12315 S'discants' p12316 aS'discanting' p12317 aS'discanted' p12318 aS'discanted' p12319 asS'paganize' p12320 (lp12321 S'paganizes' p12322 aS'paganizing' p12323 aS'paganized' p12324 aS'paganized' p12325 asS'function' p12326 (lp12327 S'functions' p12328 aS'functioning' p12329 aS'functioned' p12330 aS'functioned' p12331 asS'funnel' p12332 (lp12333 S'funnels' p12334 aS'funnelling' p12335 aS'funnelled' p12336 aS'funnelled' p12337 asS'frisk' p12338 (lp12339 S'frisks' p12340 aS'frisking' p12341 aS'frisked' p12342 aS'frisked' p12343 asS'unbind' p12344 (lp12345 S'unbinds' p12346 aS'unbinding' p12347 aS'unbound' p12348 aS'unbound' p12349 asS'unstick' p12350 (lp12351 S'unsticks' p12352 aS'unsticking' p12353 aS'unstuck' p12354 aS'unstuck' p12355 asS'foretaste' p12356 (lp12357 S'foretastes' p12358 aS'foretasting' p12359 aS'foretasted' p12360 aS'foretasted' p12361 asS'grate' p12362 (lp12363 S'grates' p12364 aS'grating' p12365 aS'grated' p12366 aS'grated' p12367 asS'count' p12368 (lp12369 S'counts' p12370 aS'counting' p12371 aS'counted' p12372 aS'counted' p12373 asS'compute' p12374 (lp12375 S'computes' p12376 aS'computing' p12377 aS'computed' p12378 aS'computed' p12379 asS'shrunk' p12380 (lp12381 S'shrunks' p12382 aS'shrunking' p12383 aS'shrunked' p12384 aS'shrunked' p12385 asS'chaperone' p12386 (lp12387 S'chaperons' p12388 aS'chaperoning' p12389 aS'chaperoned' p12390 aS'chaperoned' p12391 asS'convince' p12392 (lp12393 S'convinces' p12394 aS'convincing' p12395 aS'convinced' p12396 aS'convinced' p12397 asS'freewheel' p12398 (lp12399 S'freewheels' p12400 aS'freewheeling' p12401 aS'freewheeled' p12402 aS'freewheeled' p12403 asS'enthrone' p12404 (lp12405 S'enthrones' p12406 aS'enthroning' p12407 aS'enthroned' p12408 aS'enthroned' p12409 asS'spreadeagle' p12410 (lp12411 S'spreadeagles' p12412 aS'spreadeagling' p12413 aS'spreadeagled' p12414 aS'spreadeagled' p12415 asS'appraise' p12416 (lp12417 S'appraises' p12418 aS'appraising' p12419 aS'appraised' p12420 aS'appraised' p12421 asS'kowtow' p12422 (lp12423 S'kowtows' p12424 aS'kowtowing' p12425 aS'kowtowed' p12426 aS'kowtowed' p12427 asS'fractionate' p12428 (lp12429 S'fractionates' p12430 aS'fractionating' p12431 aS'fractionated' p12432 aS'fractionated' p12433 asS'recognize' p12434 (lp12435 S'recognizes' p12436 aS'recognizing' p12437 aS'recognized' p12438 aS'recognized' p12439 asS'gasconade' p12440 (lp12441 S'gasconades' p12442 aS'gasconading' p12443 aS'gasconaded' p12444 aS'gasconaded' p12445 asS'contribute' p12446 (lp12447 S'contributes' p12448 aS'contributing' p12449 aS'contributed' p12450 aS'contributed' p12451 asS'denote' p12452 (lp12453 S'denotes' p12454 aS'denoting' p12455 aS'denoted' p12456 aS'denoted' p12457 asS'withstand' p12458 (lp12459 S'withstands' p12460 aS'withstanding' p12461 aS'withstood' p12462 aS'withstood' p12463 asS'ink' p12464 (lp12465 S'inks' p12466 aS'inking' p12467 aS'inked' p12468 aS'inked' p12469 asS'letch' p12470 (lp12471 S'letches' p12472 aS'letching' p12473 aS'letched' p12474 aS'letched' p12475 asS'engorge' p12476 (lp12477 S'engorges' p12478 aS'engorging' p12479 aS'engorged' p12480 aS'engorged' p12481 asS'warsle' p12482 (lp12483 S'warsles' p12484 aS'warsling' p12485 aS'warsled' p12486 aS'warsled' p12487 asS'flummox' p12488 (lp12489 S'flummoxes' p12490 aS'flummoxing' p12491 aS'flummoxed' p12492 aS'flummoxed' p12493 asS'decarbonate' p12494 (lp12495 S'decarbonates' p12496 aS'decarbonating' p12497 aS'decarbonated' p12498 aS'decarbonated' p12499 asS'stockpile' p12500 (lp12501 S'stockpiles' p12502 aS'stockpiling' p12503 aS'stockpiled' p12504 aS'stockpiled' p12505 asS'disforest' p12506 (lp12507 S'disforests' p12508 aS'disforesting' p12509 aS'disforested' p12510 aS'disforested' p12511 asS'behold' p12512 (lp12513 S'beholds' p12514 aS'beholding' p12515 aS'beheld' p12516 aS'beheld' p12517 asS'vulgarize' p12518 (lp12519 S'vulgarizes' p12520 aS'vulgarizing' p12521 aS'vulgarized' p12522 aS'vulgarized' p12523 asS'satirize' p12524 (lp12525 S'satirizes' p12526 aS'satirizing' p12527 aS'satirized' p12528 aS'satirized' p12529 asS'dismiss' p12530 (lp12531 S'dismisses' p12532 aS'dismissing' p12533 aS'dismissed' p12534 aS'dismissed' p12535 asS'freeboot' p12536 (lp12537 S'freeboots' p12538 aS'freebooting' p12539 aS'freebooted' p12540 aS'freebooted' p12541 asS'dismantle' p12542 (lp12543 S'dismantles' p12544 aS'dismantling' p12545 aS'dismantled' p12546 aS'dismantled' p12547 asS'vignette' p12548 (lp12549 S'vignettes' p12550 aS'vignetting' p12551 aS'vignetted' p12552 aS'vignetted' p12553 asS'crosscut' p12554 (lp12555 S'crosscuts' p12556 aS'crosscutting' p12557 aS'crosscut' p12558 aS'crosscut' p12559 asS'chance' p12560 (lp12561 S'chances' p12562 aS'chancing' p12563 aS'chanced' p12564 aS'chanced' p12565 asS'pacify' p12566 (lp12567 S'pacifies' p12568 aS'pacifying' p12569 aS'pacified' p12570 aS'pacified' p12571 asS'scintillate' p12572 (lp12573 S'scintillates' p12574 aS'scintillating' p12575 aS'scintillated' p12576 aS'scintillated' p12577 asS'repeal' p12578 (lp12579 S'repeals' p12580 aS'repealing' p12581 aS'repealed' p12582 aS'repealed' p12583 asS'mastermind' p12584 (lp12585 S'masterminds' p12586 aS'masterminding' p12587 aS'masterminded' p12588 aS'masterminded' p12589 asS'vein' p12590 (lp12591 S'veins' p12592 aS'veining' p12593 aS'veined' p12594 aS'veined' p12595 asS'ghost' p12596 (lp12597 S'ghosts' p12598 aS'ghosting' p12599 aS'ghosted' p12600 aS'ghosted' p12601 asS'disgruntle' p12602 (lp12603 S'disgruntles' p12604 aS'disgruntling' p12605 aS'disgruntled' p12606 aS'disgruntled' p12607 asS're-sound' p12608 (lp12609 S're-sounds' p12610 aS're-sounding' p12611 aS'resounded' p12612 aS're-sounded' p12613 asS'rule' p12614 (lp12615 S'rules' p12616 aS'ruling' p12617 aS'ruled' p12618 aS'ruled' p12619 asS'compete' p12620 (lp12621 S'competes' p12622 aS'competing' p12623 aS'competed' p12624 aS'competed' p12625 asS'pension' p12626 (lp12627 S'pensions' p12628 aS'pensioning' p12629 aS'pensioned' p12630 aS'pensioned' p12631 asS'upspring' p12632 (lp12633 S'upsprings' p12634 aS'upspringing' p12635 aS'upsprung' p12636 aS'upsprung' p12637 asS'abhor' p12638 (lp12639 S'abhors' p12640 aS'abhorring' p12641 aS'abhorred' p12642 aS'abhorred' p12643 asS'buoy' p12644 (lp12645 S'buoys' p12646 aS'buoying' p12647 aS'buoyed' p12648 aS'buoyed' p12649 asS'rubefy' p12650 (lp12651 S'rubefies' p12652 aS'rubefying' p12653 aS'rubefied' p12654 aS'rubefied' p12655 asS'brevet' p12656 (lp12657 S'brevets' p12658 aS'brevetting' p12659 aS'brevetted' p12660 aS'brevetted' p12661 asS'divaricate' p12662 (lp12663 S'divaricates' p12664 aS'divaricating' p12665 aS'divaricated' p12666 aS'divaricated' p12667 asS'copy' p12668 (lp12669 S'copies' p12670 aS'copying' p12671 aS'copied' p12672 aS'copied' p12673 asS'precondition' p12674 (lp12675 S'preconditions' p12676 aS'preconditioning' p12677 aS'preconditioned' p12678 aS'preconditioned' p12679 asS'rekindle' p12680 (lp12681 S'rekindles' p12682 aS'rekindling' p12683 aS'rekindled' p12684 aS'rekindled' p12685 asS'defraud' p12686 (lp12687 S'defrauds' p12688 aS'defrauding' p12689 aS'defrauded' p12690 aS'defrauded' p12691 asS'lace' p12692 (lp12693 S'laces' p12694 aS'lacing' p12695 aS'laced' p12696 aS'laced' p12697 asS'aquatint' p12698 (lp12699 S'aquatints' p12700 aS'aquatinting' p12701 aS'aquatinted' p12702 aS'aquatinted' p12703 asS'spew' p12704 (lp12705 S'spews' p12706 aS'spewing' p12707 aS'spewed' p12708 aS'spewed' p12709 asS'automatize' p12710 (lp12711 S'automatizes' p12712 aS'automatizing' p12713 aS'automatized' p12714 aS'automatized' p12715 asS'bludgeon' p12716 (lp12717 S'bludgeons' p12718 aS'bludgeoning' p12719 aS'bludgeoned' p12720 aS'bludgeoned' p12721 asS'tickle' p12722 (lp12723 S'tickles' p12724 aS'tickling' p12725 aS'tickled' p12726 aS'tickled' p12727 asS'bike' p12728 (lp12729 S'bikes' p12730 aS'biking' p12731 aS'biked' p12732 aS'biked' p12733 asS'man-handle' p12734 (lp12735 S'man-handles' p12736 aS'man-handling' p12737 aS'manhandled' p12738 aS'man-handled' p12739 asS'daze' p12740 (lp12741 S'dazes' p12742 aS'dazing' p12743 aS'dazed' p12744 aS'dazed' p12745 asS'dapple' p12746 (lp12747 S'dapples' p12748 aS'dappling' p12749 aS'dappled' p12750 aS'dappled' p12751 asS'wildcat' p12752 (lp12753 S'wildcats' p12754 aS'wildcatting' p12755 aS'wildcatted' p12756 aS'wildcatted' p12757 asS'psychologize' p12758 (lp12759 S'psychologizes' p12760 aS'psychologizing' p12761 aS'psychologized' p12762 aS'psychologized' p12763 asS'whack' p12764 (lp12765 S'whacks' p12766 aS'whacking' p12767 aS'whacked' p12768 aS'whacked' p12769 asS'rainproof' p12770 (lp12771 S'rainproofs' p12772 aS'rainproofing' p12773 aS'rainproofed' p12774 aS'rainproofed' p12775 asS'tarry' p12776 (lp12777 S'tarries' p12778 aS'tarrying' p12779 aS'tarried' p12780 aS'tarried' p12781 asS'denudate' p12782 (lp12783 S'denudates' p12784 aS'denudating' p12785 aS'denudated' p12786 aS'denudated' p12787 asS'thermalize' p12788 (lp12789 S'thermalizes' p12790 aS'thermalizing' p12791 aS'thermalized' p12792 aS'thermalized' p12793 asS'blanket' p12794 (lp12795 S'blankets' p12796 aS'blanketing' p12797 aS'blanketed' p12798 aS'blanketed' p12799 asS'distort' p12800 (lp12801 S'distorts' p12802 aS'distorting' p12803 aS'distorted' p12804 aS'distorted' p12805 asS'begrudge' p12806 (lp12807 S'begrudges' p12808 aS'begrudging' p12809 aS'begrudged' p12810 aS'begrudged' p12811 asS'retrocede' p12812 (lp12813 S'retrocedes' p12814 aS'retroceding' p12815 aS'retroceded' p12816 aS'retroceded' p12817 asS'sherardize' p12818 (lp12819 S'sherardizes' p12820 aS'sherardizing' p12821 aS'sherardized' p12822 aS'sherardized' p12823 asS'whish' p12824 (lp12825 S'whishes' p12826 aS'whishing' p12827 aS'whished' p12828 aS'whished' p12829 asS'daydream' p12830 (lp12831 S'daydreams' p12832 aS'daydreaming' p12833 aS'daydreamed' p12834 aS'daydreamed' p12835 asS'pinch' p12836 (lp12837 S'pinches' p12838 aS'pinching' p12839 aS'pinched' p12840 aS'pinched' p12841 asS'affirm' p12842 (lp12843 S'affirms' p12844 aS'affirming' p12845 aS'affirmed' p12846 aS'affirmed' p12847 asS'undersign' p12848 (lp12849 S'undersigns' p12850 aS'undersigning' p12851 aS'undersigned' p12852 aS'undersigned' p12853 asS'generalize' p12854 (lp12855 S'generalizes' p12856 aS'generalizing' p12857 aS'generalized' p12858 aS'generalized' p12859 asS'whist' p12860 (lp12861 S'whists' p12862 aS'whisting' p12863 aS'whisted' p12864 aS'whisted' p12865 asS'reinvent' p12866 (lp12867 S'reinvents' p12868 aS'reinventing' p12869 aS'reinvented' p12870 aS'reinvented' p12871 asS'triumph' p12872 (lp12873 S'triumphs' p12874 aS'triumphing' p12875 aS'triumphed' p12876 aS'triumphed' p12877 asS'chew' p12878 (lp12879 S'chews' p12880 aS'chewing' p12881 aS'chewed' p12882 aS'chewed' p12883 asS'pandy' p12884 (lp12885 S'pandies' p12886 aS'pandying' p12887 aS'pandied' p12888 aS'pandied' p12889 asS'disbud' p12890 (lp12891 S'disbuds' p12892 aS'disbudding' p12893 aS'disbudded' p12894 aS'disbudded' p12895 asS'horn' p12896 (lp12897 S'horns' p12898 aS'horning' p12899 aS'horned' p12900 aS'horned' p12901 asS'blaspheme' p12902 (lp12903 S'blasphemes' p12904 aS'blaspheming' p12905 aS'blasphemed' p12906 aS'blasphemed' p12907 asS'guillotine' p12908 (lp12909 S'guillotines' p12910 aS'guillotining' p12911 aS'guillotined' p12912 aS'guillotined' p12913 asS'homologize' p12914 (lp12915 S'homologizes' p12916 aS'homologizing' p12917 aS'homologized' p12918 aS'homologized' p12919 asS'levitate' p12920 (lp12921 S'levitates' p12922 aS'levitating' p12923 aS'levitated' p12924 aS'levitated' p12925 asS'contemn' p12926 (lp12927 S'contemns' p12928 aS'contemning' p12929 aS'contemned' p12930 aS'contemned' p12931 asS'taway' p12932 (lp12933 S'taways' p12934 aS'tawaying' p12935 aS'tawayed' p12936 aS'tawayed' p12937 asS'deliberate' p12938 (lp12939 S'deliberates' p12940 aS'deliberating' p12941 aS'deliberated' p12942 aS'deliberated' p12943 asS'revolutionize' p12944 (lp12945 S'revolutionizes' p12946 aS'revolutionizing' p12947 aS'revolutionized' p12948 aS'revolutionized' p12949 asS'disserve' p12950 (lp12951 S'disserves' p12952 aS'disserving' p12953 aS'disserved' p12954 aS'disserved' p12955 asS'bleep' p12956 (lp12957 S'bleeps' p12958 aS'bleeping' p12959 aS'bleeped' p12960 aS'bleeped' p12961 asS'unhand' p12962 (lp12963 S'unhands' p12964 aS'unhanding' p12965 aS'unhanded' p12966 aS'unhanded' p12967 asS'murther' p12968 (lp12969 S'murthers' p12970 aS'murthering' p12971 aS'murthered' p12972 aS'murthered' p12973 asS'swive' p12974 (lp12975 S'swives' p12976 aS'swiving' p12977 aS'swived' p12978 aS'swived' p12979 asS'crunch' p12980 (lp12981 S'crunches' p12982 aS'crunching' p12983 aS'crunched' p12984 aS'crunched' p12985 asS'redeploy' p12986 (lp12987 S'redeploys' p12988 aS'redeploying' p12989 aS'redeployed' p12990 aS'redeployed' p12991 asS'conglomerate' p12992 (lp12993 S'conglomerates' p12994 aS'conglomerating' p12995 aS'conglomerated' p12996 aS'conglomerated' p12997 asS'poleaxe' p12998 (lp12999 S'poleaxeing' p13000 aS'poleaxeed' p13001 aS'poleaxeed' p13002 asS'undershot' p13003 (lp13004 S'undershot' p13005 aS'undershot' p13006 asS'burgle' p13007 (lp13008 S'burgles' p13009 aS'burgling' p13010 aS'burgled' p13011 aS'burgled' p13012 asS'X-ray' p13013 (lp13014 S'X-rays' p13015 aS'X-raying' p13016 aS'X-rayed' p13017 aS'X-rayed' p13018 asS'overcall' p13019 (lp13020 S'overcalls' p13021 aS'overcalling' p13022 aS'overcalled' p13023 aS'overcalled' p13024 asS'study' p13025 (lp13026 S'studies' p13027 aS'studying' p13028 aS'studied' p13029 aS'studied' p13030 asS'reappraise' p13031 (lp13032 S'reappraises' p13033 aS'reappraising' p13034 aS'reappraised' p13035 aS'reappraised' p13036 asS'displode' p13037 (lp13038 S'displodes' p13039 aS'disploding' p13040 aS'disploded' p13041 aS'disploded' p13042 asS'bunker' p13043 (lp13044 S'bunkers' p13045 aS'bunkering' p13046 aS'bunkered' p13047 aS'bunkered' p13048 asS'maunder' p13049 (lp13050 S'maunders' p13051 aS'maundering' p13052 aS'maundered' p13053 aS'maundered' p13054 asS'Jew' p13055 (lp13056 S'Jews' p13057 aS'Jewing' p13058 aS'Jewed' p13059 aS'Jewed' p13060 asS'synonymize' p13061 (lp13062 S'synonymizes' p13063 aS'synonymizing' p13064 aS'synonymized' p13065 aS'synonymized' p13066 asS'federalize' p13067 (lp13068 S'federalizes' p13069 aS'federalizing' p13070 aS'federalized' p13071 aS'federalized' p13072 asS'nauseate' p13073 (lp13074 S'nauseates' p13075 aS'nauseating' p13076 aS'nauseated' p13077 aS'nauseated' p13078 asS'shun' p13079 (lp13080 S'shuns' p13081 aS'shunning' p13082 aS'shunned' p13083 aS'shunned' p13084 asS'glance' p13085 (lp13086 S'glances' p13087 aS'glancing' p13088 aS'glanced' p13089 aS'glanced' p13090 asS'total' p13091 (lp13092 S'totals' p13093 aS'totalling' p13094 aS'totalled' p13095 aS'totalled' p13096 asS'plot' p13097 (lp13098 S'plots' p13099 aS'plotting' p13100 aS'plotted' p13101 aS'plotted' p13102 asS'plow' p13103 (lp13104 S'plows' p13105 aS'plowing' p13106 aS'plowed' p13107 aS'plowed' p13108 asS'reflate' p13109 (lp13110 S'reflates' p13111 aS'reflating' p13112 aS'reflated' p13113 aS'reflated' p13114 asS'plop' p13115 (lp13116 S'plops' p13117 aS'plopping' p13118 aS'plopped' p13119 aS'plopped' p13120 asS'acculturate' p13121 (lp13122 S'acculturates' p13123 aS'acculturating' p13124 aS'acculturated' p13125 aS'acculturated' p13126 asS'gloss' p13127 (lp13128 S'glosses' p13129 aS'glossing' p13130 aS'glossed' p13131 aS'glossed' p13132 asS'insult' p13133 (lp13134 S'insults' p13135 aS'insulting' p13136 aS'insulted' p13137 aS'insulted' p13138 asS'plod' p13139 (lp13140 S'plods' p13141 aS'plodding' p13142 aS'plodded' p13143 aS'plodded' p13144 asS'knoll' p13145 (lp13146 S'knolls' p13147 aS'knolling' p13148 aS'knolled' p13149 aS'knolled' p13150 asS'beeswax' p13151 (lp13152 S'beeswaxes' p13153 aS'beeswaxing' p13154 aS'beeswaxed' p13155 aS'beeswaxed' p13156 asS'vegetate' p13157 (lp13158 S'vegetates' p13159 aS'vegetating' p13160 aS'vegetated' p13161 aS'vegetated' p13162 asS'plagiarize' p13163 (lp13164 S'plagiarizes' p13165 aS'plagiarizing' p13166 aS'plagiarized' p13167 aS'plagiarized' p13168 asS'canulate' p13169 (lp13170 S'canulates' p13171 aS'canulating' p13172 aS'canulated' p13173 aS'canulated' p13174 asS'inflect' p13175 (lp13176 S'inflects' p13177 aS'inflecting' p13178 aS'inflected' p13179 aS'inflected' p13180 asS'ascribe' p13181 (lp13182 S'ascribes' p13183 aS'ascribing' p13184 aS'ascribed' p13185 aS'ascribed' p13186 asS'award' p13187 (lp13188 S'awards' p13189 aS'awarding' p13190 aS'awarded' p13191 aS'awarded' p13192 asS'scribble' p13193 (lp13194 S'scribbles' p13195 aS'scribbling' p13196 aS'scribbled' p13197 aS'scribbled' p13198 asS'overrun' p13199 (lp13200 S'overruns' p13201 aS'overrunning' p13202 aS'overran' p13203 aS'overrun' p13204 asS'word' p13205 (lp13206 S'words' p13207 aS'wording' p13208 aS'worded' p13209 aS'worded' p13210 asS'err' p13211 (lp13212 S'errs' p13213 aS'erring' p13214 aS'erred' p13215 aS'erred' p13216 asS'shame' p13217 (lp13218 S'shames' p13219 aS'shaming' p13220 aS'shamed' p13221 aS'shamed' p13222 asS'work' p13223 (lp13224 S'works' p13225 aS'working' p13226 aS'worked' p13227 aS'worked' p13228 asS'eclipse' p13229 (lp13230 S'eclipses' p13231 aS'eclipsing' p13232 aS'eclipsed' p13233 aS'eclipsed' p13234 asS'grovel' p13235 (lp13236 S'grovels' p13237 aS'grovelling' p13238 aS'grovelled' p13239 aS'grovelled' p13240 asS'cuddle' p13241 (lp13242 S'cuddles' p13243 aS'cuddling' p13244 aS'cuddled' p13245 aS'cuddled' p13246 asS'elbow' p13247 (lp13248 S'elbows' p13249 aS'elbowing' p13250 aS'elbowed' p13251 aS'elbowed' p13252 asS'versify' p13253 (lp13254 S'versifies' p13255 aS'versifying' p13256 aS'versified' p13257 aS'versified' p13258 asS'quiver' p13259 (lp13260 S'quivers' p13261 aS'quivering' p13262 aS'quivered' p13263 aS'quivered' p13264 asS'pollute' p13265 (lp13266 S'pollutes' p13267 aS'polluting' p13268 aS'polluted' p13269 aS'polluted' p13270 asS'flunk' p13271 (lp13272 S'flunks' p13273 aS'flunking' p13274 aS'flunked' p13275 aS'flunked' p13276 asS'federate' p13277 (lp13278 S'federates' p13279 aS'federating' p13280 aS'federated' p13281 aS'federated' p13282 asS'repot' p13283 (lp13284 S'repots' p13285 aS'repotting' p13286 aS'repotted' p13287 aS'repotted' p13288 asS'impair' p13289 (lp13290 S'impairs' p13291 aS'impairing' p13292 aS'impaired' p13293 aS'impaired' p13294 asS'woman' p13295 (lp13296 S'womans' p13297 aS'womaning' p13298 aS'womaned' p13299 aS'womaned' p13300 asS'radiotelegraph' p13301 (lp13302 S'radiotelegraphs' p13303 aS'radiotelegraphing' p13304 aS'radiotelegraphed' p13305 aS'radiotelegraphed' p13306 asS'electrodeposit' p13307 (lp13308 S'electrodeposits' p13309 aS'electrodepositing' p13310 aS'electrodeposited' p13311 aS'electrodeposited' p13312 asS'betide' p13313 (lp13314 S'betides' p13315 aS'betiding' p13316 aS'betided' p13317 aS'betided' p13318 asS'secern' p13319 (lp13320 S'secerns' p13321 aS'secerning' p13322 aS'secerned' p13323 aS'secerned' p13324 asS'farce' p13325 (lp13326 S'farces' p13327 aS'farcing' p13328 aS'farced' p13329 aS'farced' p13330 asS'particularize' p13331 (lp13332 S'particularizes' p13333 aS'particularizing' p13334 aS'particularized' p13335 aS'particularized' p13336 asS'verify' p13337 (lp13338 S'verifies' p13339 aS'verifying' p13340 aS'verified' p13341 aS'verified' p13342 asS'photocopy' p13343 (lp13344 S'photocopies' p13345 aS'photocopying' p13346 aS'photocopied' p13347 aS'photocopied' p13348 asS'sever' p13349 (lp13350 S'severs' p13351 aS'severing' p13352 aS'severed' p13353 aS'severed' p13354 asS'rewind' p13355 (lp13356 S'rewinds' p13357 aS'rewinding' p13358 aS'rewound' p13359 aS'rewound' p13360 asS'interview' p13361 (lp13362 S'interviews' p13363 aS'interviewing' p13364 aS'interviewed' p13365 aS'interviewed' p13366 asS'disappoint' p13367 (lp13368 S'disappoints' p13369 aS'disappointing' p13370 aS'disappointed' p13371 aS'disappointed' p13372 asS'beach' p13373 (lp13374 S'beaches' p13375 aS'beaching' p13376 aS'beached' p13377 aS'beached' p13378 asS'underexpose' p13379 (lp13380 S'underexposes' p13381 aS'underexposing' p13382 aS'underexposed' p13383 aS'underexposed' p13384 asS'countersink' p13385 (lp13386 S'countersinks' p13387 aS'countersinking' p13388 aS'countersank' p13389 aS'countersunk' p13390 asS'deliquesce' p13391 (lp13392 S'deliquesces' p13393 aS'deliquescing' p13394 aS'deliquesced' p13395 aS'deliquesced' p13396 asS'lam' p13397 (lp13398 S'lams' p13399 aS'lamming' p13400 aS'lammed' p13401 aS'lammed' p13402 asS'fever' p13403 (lp13404 S'fevers' p13405 aS'fevering' p13406 aS'fevered' p13407 aS'fevered' p13408 asS'aggrade' p13409 (lp13410 S'aggrades' p13411 aS'aggrading' p13412 aS'aggraded' p13413 aS'aggraded' p13414 asS'ladder' p13415 (lp13416 S'ladders' p13417 aS'laddering' p13418 aS'laddered' p13419 aS'laddered' p13420 asS'lag' p13421 (lp13422 S'lags' p13423 aS'lagging' p13424 aS'lagged' p13425 aS'lagged' p13426 asS'fat' p13427 (lp13428 S'fats' p13429 aS'fatting' p13430 aS'fatted' p13431 aS'fatted' p13432 asS'disentomb' p13433 (lp13434 S'disentombs' p13435 aS'disentombing' p13436 aS'disentombed' p13437 aS'disentombed' p13438 asS'unreeve' p13439 (lp13440 S'unreeves' p13441 aS'unreeving' p13442 aS'unrove' p13443 aS'unrove' p13444 asS'arch' p13445 (lp13446 S'arches' p13447 aS'arching' p13448 aS'arched' p13449 aS'arched' p13450 asS'scrummage' p13451 (lp13452 S'scrummages' p13453 aS'scrummaging' p13454 aS'scrummaged' p13455 aS'scrummaged' p13456 asS'scull' p13457 (lp13458 S'sculls' p13459 aS'sculling' p13460 aS'sculled' p13461 aS'sculled' p13462 asS'invaginate' p13463 (lp13464 S'invaginates' p13465 aS'invaginating' p13466 aS'invaginated' p13467 aS'invaginated' p13468 asS'alienate' p13469 (lp13470 S'alienates' p13471 aS'alienating' p13472 aS'alienated' p13473 aS'alienated' p13474 asS'appreciate' p13475 (lp13476 S'appreciates' p13477 aS'appreciating' p13478 aS'appreciated' p13479 aS'appreciated' p13480 asS'greet' p13481 (lp13482 S'greets' p13483 aS'greeting' p13484 aS'greeted' p13485 aS'greeted' p13486 asS'stimulate' p13487 (lp13488 S'stimulates' p13489 aS'stimulating' p13490 aS'stimulated' p13491 aS'stimulated' p13492 asS'haste' p13493 (lp13494 S'hastes' p13495 aS'hasting' p13496 aS'hasted' p13497 aS'hasted' p13498 asS'scarf' p13499 (lp13500 S'scarfs' p13501 aS'scarfing' p13502 aS'scarfed' p13503 aS'scarfed' p13504 asS'worst' p13505 (lp13506 S'worsts' p13507 aS'worsting' p13508 aS'worsted' p13509 aS'worsted' p13510 asS'remonstrate' p13511 (lp13512 S'remonstrates' p13513 aS'remonstrating' p13514 aS'remonstrated' p13515 aS'remonstrated' p13516 asS'order' p13517 (lp13518 S'orders' p13519 aS'ordering' p13520 aS'ordered' p13521 aS'ordered' p13522 asS'devote' p13523 (lp13524 S'devotes' p13525 aS'devoting' p13526 aS'devoted' p13527 aS'devoted' p13528 asS'consent' p13529 (lp13530 S'consents' p13531 aS'consenting' p13532 aS'consented' p13533 aS'consented' p13534 asS'enshrinshrine' p13535 (lp13536 S'enshrinshrines' p13537 aS'enshrinshrining' p13538 aS'enshrinshrined' p13539 aS'enshrinshrined' p13540 asS'natter' p13541 (lp13542 S'natters' p13543 aS'nattering' p13544 aS'nattered' p13545 aS'nattered' p13546 asS'japan' p13547 (lp13548 S'japans' p13549 aS'japanning' p13550 aS'japanned' p13551 aS'japanned' p13552 asS'estrange' p13553 (lp13554 S'estranges' p13555 aS'estranging' p13556 aS'estranged' p13557 aS'estranged' p13558 asS'casefy' p13559 (lp13560 S'casefies' p13561 aS'casefying' p13562 aS'casefied' p13563 aS'casefied' p13564 asS'sheaf' p13565 (lp13566 S'sheaves' p13567 aS'sheafing' p13568 aS'sheafed' p13569 aS'sheafed' p13570 asS'Xerox' p13571 (lp13572 S'Xeroxes' p13573 aS'Xeroxing' p13574 aS'Xeroxed' p13575 aS'Xeroxed' p13576 asS'fag' p13577 (lp13578 S'fags' p13579 aS'fagging' p13580 aS'fagged' p13581 aS'fagged' p13582 asS'strafe' p13583 (lp13584 S'strafes' p13585 aS'strafing' p13586 aS'strafed' p13587 aS'strafed' p13588 asS'bespeak' p13589 (lp13590 S'bespeaks' p13591 aS'bespeaking' p13592 aS'bespoke' p13593 aS'bespoken' p13594 asS'precipitate' p13595 (lp13596 S'precipitates' p13597 aS'precipitating' p13598 aS'precipitated' p13599 aS'precipitated' p13600 asS'savour' p13601 (lp13602 S'savours' p13603 aS'savouring' p13604 aS'savoured' p13605 aS'savoured' p13606 asS'shear' p13607 (lp13608 S'shears' p13609 aS'shearing' p13610 aS'sheared' p13611 aS'shorn' p13612 asS'bant' p13613 (lp13614 S'bants' p13615 aS'banting' p13616 aS'banted' p13617 aS'banted' p13618 asS'swound' p13619 (lp13620 S'swounds' p13621 aS'swounding' p13622 aS'swounded' p13623 aS'swounded' p13624 asS'fragment' p13625 (lp13626 S'fragments' p13627 aS'fragmenting' p13628 aS'fragmented' p13629 aS'fragmented' p13630 asS'collide' p13631 (lp13632 S'collides' p13633 aS'colliding' p13634 aS'collided' p13635 aS'collided' p13636 asS'break' p13637 (lp13638 S'breaks' p13639 aS'breaking' p13640 aS'broke' p13641 aS'broken' p13642 asS'band' p13643 (lp13644 S'bands' p13645 aS'banding' p13646 aS'banded' p13647 aS'banded' p13648 asS'bang' p13649 (lp13650 S'bangs' p13651 aS'banging' p13652 aS'banged' p13653 aS'banged' p13654 asS'coffer' p13655 (lp13656 S'coffers' p13657 aS'coffering' p13658 aS'coffered' p13659 aS'coffered' p13660 asS'bream' p13661 (lp13662 S'breams' p13663 aS'breaming' p13664 aS'breamed' p13665 aS'breamed' p13666 asS'declutch' p13667 (lp13668 S'declutches' p13669 aS'declutching' p13670 aS'declutched' p13671 aS'declutched' p13672 asS'bread' p13673 (lp13674 S'breads' p13675 aS'breading' p13676 aS'breaded' p13677 aS'breaded' p13678 asS'crock' p13679 (lp13680 S'crocks' p13681 aS'crocking' p13682 aS'crocked' p13683 aS'crocked' p13684 asS'absolve' p13685 (lp13686 S'absolves' p13687 aS'absolving' p13688 aS'absolved' p13689 aS'absolved' p13690 asS'naysay' p13691 (lp13692 S'naysays' p13693 aS'naysaying' p13694 aS'naysayed' p13695 aS'naysayed' p13696 asS'misbehave' p13697 (lp13698 S'misbehaves' p13699 aS'misbehaving' p13700 aS'misbehaved' p13701 aS'misbehaved' p13702 asS'outstretch' p13703 (lp13704 S'outstretches' p13705 aS'outstretching' p13706 aS'outstretched' p13707 aS'outstretched' p13708 asS'flock' p13709 (lp13710 S'flocks' p13711 aS'flocking' p13712 aS'flocked' p13713 aS'flocked' p13714 asS'trench' p13715 (lp13716 S'trenches' p13717 aS'trenching' p13718 aS'trenched' p13719 aS'trenched' p13720 asS'network' p13721 (lp13722 S'networks' p13723 aS'networking' p13724 aS'networked' p13725 aS'networked' p13726 asS'engrave' p13727 (lp13728 S'engraves' p13729 aS'engraving' p13730 aS'engraved' p13731 aS'engraved' p13732 asS'monotonize' p13733 (lp13734 S'monotonizes' p13735 aS'monotonizing' p13736 aS'monotonized' p13737 aS'monotonized' p13738 asS'redevelop' p13739 (lp13740 S'redevelops' p13741 aS'redeveloping' p13742 aS'redeveloped' p13743 aS'redeveloped' p13744 asS'veto' p13745 (lp13746 S'vetoes' p13747 aS'vetoing' p13748 aS'vetoed' p13749 aS'vetoed' p13750 asS'apotheosize' p13751 (lp13752 S'apotheosizes' p13753 aS'apotheosizing' p13754 aS'apotheosized' p13755 aS'apotheosized' p13756 asS'putty' p13757 (lp13758 S'putties' p13759 aS'puttying' p13760 aS'puttied' p13761 aS'puttied' p13762 asS'mutilate' p13763 (lp13764 S'mutilates' p13765 aS'mutilating' p13766 aS'mutilated' p13767 aS'mutilated' p13768 asS'drench' p13769 (lp13770 S'drenches' p13771 aS'drenching' p13772 aS'drenched' p13773 aS'drenched' p13774 asS'renew' p13775 (lp13776 S'renews' p13777 aS'renewing' p13778 aS'renewed' p13779 aS'renewed' p13780 asS'oppose' p13781 (lp13782 S'opposes' p13783 aS'opposing' p13784 aS'opposed' p13785 aS'opposed' p13786 asS'recondition' p13787 (lp13788 S'reconditions' p13789 aS'reconditioning' p13790 aS'reconditioned' p13791 aS'reconditioned' p13792 asS'regress' p13793 (lp13794 S'regresses' p13795 aS'regressing' p13796 aS'regressed' p13797 aS'regressed' p13798 asS'disafforest' p13799 (lp13800 S'disafforests' p13801 aS'disafforesting' p13802 aS'disafforested' p13803 aS'disafforested' p13804 asS'vanquish' p13805 (lp13806 S'vanquishes' p13807 aS'vanquishing' p13808 aS'vanquished' p13809 aS'vanquished' p13810 asS'organize' p13811 (lp13812 S'organizes' p13813 aS'organizing' p13814 aS'organized' p13815 aS'organized' p13816 asS'render' p13817 (lp13818 S'renders' p13819 aS'rendering' p13820 aS'rendered' p13821 aS'rendered' p13822 asS'skive' p13823 (lp13824 S'skives' p13825 aS'skiving' p13826 aS'skived' p13827 aS'skived' p13828 asS'jackknife' p13829 (lp13830 sS'hamstring' p13831 (lp13832 S'hamstrings' p13833 aS'hamstringing' p13834 aS'hamstrung' p13835 aS'hamstrung' p13836 asS'operatize' p13837 (lp13838 S'operatizes' p13839 aS'operatizing' p13840 aS'operatized' p13841 aS'operatized' p13842 asS'guzzle' p13843 (lp13844 S'guzzles' p13845 aS'guzzling' p13846 aS'guzzled' p13847 aS'guzzled' p13848 asS'unsnap' p13849 (lp13850 S'unsnaps' p13851 aS'unsnapping' p13852 aS'unsnapped' p13853 aS'unsnapped' p13854 asS'disembark' p13855 (lp13856 S'disembarks' p13857 aS'disembarking' p13858 aS'disembarked' p13859 aS'disembarked' p13860 asS'headreach' p13861 (lp13862 S'headreaches' p13863 aS'headreaching' p13864 aS'headreached' p13865 aS'headreached' p13866 asS'tangle' p13867 (lp13868 S'tangles' p13869 aS'tangling' p13870 aS'tangled' p13871 aS'tangled' p13872 asS'equipoise' p13873 (lp13874 S'equipoises' p13875 aS'equipoising' p13876 aS'equipoised' p13877 aS'equipoised' p13878 asS'illustrate' p13879 (lp13880 S'illustrates' p13881 aS'illustrating' p13882 aS'illustrated' p13883 aS'illustrated' p13884 asS'centrifuge' p13885 (lp13886 S'centrifuges' p13887 aS'centrifuging' p13888 aS'centrifuged' p13889 aS'centrifuged' p13890 asS'unfetter' p13891 (lp13892 S'unfetters' p13893 aS'unfettering' p13894 aS'unfettered' p13895 aS'unfettered' p13896 asS'vibrate' p13897 (lp13898 S'vibrates' p13899 aS'vibrating' p13900 aS'vibrated' p13901 aS'vibrated' p13902 asS'compromise' p13903 (lp13904 S'compromises' p13905 aS'compromising' p13906 aS'compromised' p13907 aS'compromised' p13908 asS'fumble' p13909 (lp13910 S'fumbles' p13911 aS'fumbling' p13912 aS'fumbled' p13913 aS'fumbled' p13914 asS'gate-crash' p13915 (lp13916 S'gate-crashes' p13917 aS'gate-crashing' p13918 aS'gate-crashed' p13919 aS'gate-crashed' p13920 asS'inflate' p13921 (lp13922 S'inflates' p13923 aS'inflating' p13924 aS'inflated' p13925 aS'inflated' p13926 asS'filibuster' p13927 (lp13928 S'filibusters' p13929 aS'filibustering' p13930 aS'filibustered' p13931 aS'filibustered' p13932 asS'efface' p13933 (lp13934 S'effaces' p13935 aS'effacing' p13936 aS'effaced' p13937 aS'effaced' p13938 asS'decentralize' p13939 (lp13940 S'decentralizes' p13941 aS'decentralizing' p13942 aS'decentralized' p13943 aS'decentralized' p13944 asS'scant' p13945 (lp13946 S'scants' p13947 aS'scanting' p13948 aS'scanted' p13949 aS'scanted' p13950 asS'tithe' p13951 (lp13952 S'tithes' p13953 aS'tithing' p13954 aS'tithed' p13955 aS'tithed' p13956 asS'rebuff' p13957 (lp13958 S'rebuffs' p13959 aS'rebuffing' p13960 aS'rebuffed' p13961 aS'rebuffed' p13962 asS'earbash' p13963 (lp13964 S'earbashes' p13965 aS'earbashing' p13966 aS'earbashed' p13967 aS'earbashed' p13968 asS'septuple' p13969 (lp13970 S'septuples' p13971 aS'septupling' p13972 aS'septupled' p13973 aS'septupled' p13974 asS'hike' p13975 (lp13976 S'hikes' p13977 aS'hiking' p13978 aS'hiked' p13979 aS'hiked' p13980 asS'iron' p13981 (lp13982 S'irons' p13983 aS'ironing' p13984 aS'ironed' p13985 aS'ironed' p13986 asS'encash' p13987 (lp13988 S'encashes' p13989 aS'encashing' p13990 aS'encashed' p13991 aS'encashed' p13992 asS'tritiate' p13993 (lp13994 S'tritiates' p13995 aS'tritiating' p13996 aS'tritiated' p13997 aS'tritiated' p13998 asS'effectuate' p13999 (lp14000 S'effectuates' p14001 aS'effectuating' p14002 aS'effectuated' p14003 aS'effectuated' p14004 asS'rewrite' p14005 (lp14006 S'rewrites' p14007 aS'rewriting' p14008 aS'rewrote' p14009 aS'rewritten' p14010 asS'temporize' p14011 (lp14012 S'temporizes' p14013 aS'temporizing' p14014 aS'temporized' p14015 aS'temporized' p14016 asS'navigate' p14017 (lp14018 S'navigates' p14019 aS'navigating' p14020 aS'navigated' p14021 aS'navigated' p14022 asS'resound' p14023 (lp14024 S'resounds' p14025 aS'resounding' p14026 ag12612 aS'resounded' p14027 asS'metathesize' p14028 (lp14029 S'metathesizes' p14030 aS'metathesizing' p14031 aS'metathesized' p14032 aS'metathesized' p14033 asS'sconce' p14034 (lp14035 S'sconces' p14036 aS'sconcing' p14037 aS'sconced' p14038 aS'sconced' p14039 asS'lull' p14040 (lp14041 S'lulls' p14042 aS'lulling' p14043 aS'lulled' p14044 aS'lulled' p14045 asS'cadge' p14046 (lp14047 S'cadges' p14048 aS'cadging' p14049 aS'cadged' p14050 aS'cadged' p14051 asS'crossexamine' p14052 (lp14053 S'crossexamines' p14054 aS'crossexamining' p14055 aS'crossexamined' p14056 aS'crossexamined' p14057 asS'ponder' p14058 (lp14059 S'ponders' p14060 aS'pondering' p14061 aS'pondered' p14062 aS'pondered' p14063 asS'quarry' p14064 (lp14065 S'quarries' p14066 aS'quarrying' p14067 aS'quarried' p14068 aS'quarried' p14069 asS'widen' p14070 (lp14071 S'widens' p14072 aS'widening' p14073 aS'widened' p14074 aS'widened' p14075 asS'indorse' p14076 (lp14077 S'indorses' p14078 aS'indorsing' p14079 aS'indorsed' p14080 aS'indorsed' p14081 asS'rehouse' p14082 (lp14083 S'rehouses' p14084 aS'rehousing' p14085 aS'rehoused' p14086 aS'rehoused' p14087 asS'transmit' p14088 (lp14089 S'transmits' p14090 aS'transmitting' p14091 aS'transmitted' p14092 aS'transmitted' p14093 asS'pilgrimage' p14094 (lp14095 S'pilgrimages' p14096 aS'pilgrimaging' p14097 aS'pilgrimaged' p14098 aS'pilgrimaged' p14099 asS'finagle' p14100 (lp14101 S'finagles' p14102 aS'finagling' p14103 aS'finagled' p14104 aS'finagled' p14105 asS'quieten' p14106 (lp14107 S'quietens' p14108 aS'quietening' p14109 aS'quietened' p14110 aS'quietened' p14111 asS'writhe' p14112 (lp14113 S'writhes' p14114 aS'writhing' p14115 aS'writhed' p14116 aS'writhed' p14117 asS'backcross' p14118 (lp14119 S'backcrosses' p14120 aS'backcrossing' p14121 aS'backcrossed' p14122 aS'backcrossed' p14123 asS'affiance' p14124 (lp14125 S'affiances' p14126 aS'affiancing' p14127 aS'affianced' p14128 aS'affianced' p14129 asS'fillagree' p14130 (lp14131 sS'phase' p14132 (lp14133 S'phases' p14134 aS'phasing' p14135 aS'phased' p14136 aS'phased' p14137 asS'grave' p14138 (lp14139 S'graves' p14140 aS'graving' p14141 aS'graven' p14142 aS'graven' p14143 asS'unship' p14144 (lp14145 S'unships' p14146 aS'unshipping' p14147 aS'unshipped' p14148 aS'unshipped' p14149 asS'heattreat' p14150 (lp14151 S'heattreats' p14152 aS'heattreating' p14153 aS'heattreated' p14154 aS'heattreated' p14155 asS'syllabize' p14156 (lp14157 S'syllabizes' p14158 aS'syllabizing' p14159 aS'syllabized' p14160 aS'syllabized' p14161 asS'demagnetize' p14162 (lp14163 S'demagnetizes' p14164 aS'demagnetizing' p14165 aS'demagnetized' p14166 aS'demagnetized' p14167 asS'vouch' p14168 (lp14169 S'vouches' p14170 aS'vouching' p14171 aS'vouched' p14172 aS'vouched' p14173 asS'swamp' p14174 (lp14175 S'swamps' p14176 aS'swamping' p14177 aS'swamped' p14178 aS'swamped' p14179 asS'bracket' p14180 (lp14181 S'brackets' p14182 aS'bracketing' p14183 aS'bracketed' p14184 aS'bracketed' p14185 asS'oppress' p14186 (lp14187 S'oppresses' p14188 aS'oppressing' p14189 aS'oppressed' p14190 aS'oppressed' p14191 asS'reserve' p14192 (lp14193 S'reserves' p14194 aS'reserving' p14195 aS'reserved' p14196 aS'reserved' p14197 asS'iodate' p14198 (lp14199 S'iodates' p14200 aS'iodating' p14201 aS'iodated' p14202 aS'iodated' p14203 asS'toast' p14204 (lp14205 S'toasts' p14206 aS'toasting' p14207 aS'toasted' p14208 aS'toasted' p14209 asS'tauten' p14210 (lp14211 S'tautens' p14212 aS'tautening' p14213 aS'tautened' p14214 aS'tautened' p14215 asS'struggle' p14216 (lp14217 S'struggles' p14218 aS'struggling' p14219 aS'struggled' p14220 aS'struggled' p14221 asS're-dress' p14222 (lp14223 S're-dresses' p14224 aS're-dressing' p14225 aS'redressed' p14226 aS're-dressed' p14227 asS'do' p14228 (lp14229 S'does' p14230 aS'doing' p14231 aS'did' p14232 aS'done' p14233 aS"don't" p14234 aS"doesn't" p14235 aS"didn't" p14236 asS'reorientate' p14237 (lp14238 S'reorientates' p14239 aS'reorientating' p14240 aS'reorientated' p14241 aS'reorientated' p14242 asS'aestivate' p14243 (lp14244 S'aestivates' p14245 aS'aestivating' p14246 aS'aestivated' p14247 aS'aestivated' p14248 asS'wham' p14249 (lp14250 S'whams' p14251 aS'whamming' p14252 aS'whammed' p14253 aS'whammed' p14254 asS'photostat' p14255 (lp14256 S'photostats' p14257 aS'photostatting' p14258 aS'photostatted' p14259 aS'photostatted' p14260 asS'stead' p14261 (lp14262 S'steads' p14263 aS'steading' p14264 aS'steaded' p14265 aS'steaded' p14266 asS'recurve' p14267 (lp14268 S'recurves' p14269 aS'recurving' p14270 aS'recurved' p14271 aS'recurved' p14272 asS'disincline' p14273 (lp14274 S'disinclines' p14275 aS'disinclining' p14276 aS'disinclined' p14277 aS'disinclined' p14278 asS'bother' p14279 (lp14280 S'bothers' p14281 aS'bothering' p14282 aS'bothered' p14283 aS'bothered' p14284 asS'compere' p14285 (lp14286 S'comperes' p14287 aS'compering' p14288 aS'compered' p14289 aS'compered' p14290 asS'reread' p14291 (lp14292 S'rereads' p14293 aS'rereading' p14294 aS'reread' p14295 aS'reread' p14296 asS'misdirect' p14297 (lp14298 S'misdirects' p14299 aS'misdirecting' p14300 aS'misdirected' p14301 aS'misdirected' p14302 asS'unmake' p14303 (lp14304 S'unmakes' p14305 aS'unmaking' p14306 aS'unmade' p14307 aS'unmade' p14308 asS'misname' p14309 (lp14310 S'misnames' p14311 aS'misnaming' p14312 aS'misnamed' p14313 aS'misnamed' p14314 asS'ruffle' p14315 (lp14316 S'ruffles' p14317 aS'ruffling' p14318 aS'ruffled' p14319 aS'ruffled' p14320 asS'mitch' p14321 (lp14322 S'mitches' p14323 aS'mitching' p14324 aS'mitched' p14325 aS'mitched' p14326 asS'begrime' p14327 (lp14328 S'begrimes' p14329 aS'begriming' p14330 aS'begrimed' p14331 aS'begrimed' p14332 asS'drawl' p14333 (lp14334 S'drawls' p14335 aS'drawling' p14336 aS'drawled' p14337 aS'drawled' p14338 asS'breakaway' p14339 (lp14340 S'breakaways' p14341 aS'breakawaying' p14342 aS'breakawayed' p14343 aS'breakawayed' p14344 asS'disorganize' p14345 (lp14346 S'disorganizes' p14347 aS'disorganizing' p14348 aS'disorganized' p14349 aS'disorganized' p14350 asS'embody' p14351 (lp14352 S'embodies' p14353 aS'embodying' p14354 aS'embodied' p14355 aS'embodied' p14356 asS'emulsify' p14357 (lp14358 S'emulsifies' p14359 aS'emulsifying' p14360 aS'emulsified' p14361 aS'emulsified' p14362 asS'unfold' p14363 (lp14364 S'unfolds' p14365 aS'unfolding' p14366 aS'unfolded' p14367 aS'unfolded' p14368 asS'anele' p14369 (lp14370 S'aneles' p14371 aS'aneling' p14372 aS'aneled' p14373 aS'aneled' p14374 asS'cop' p14375 (lp14376 S'cops' p14377 aS'copping' p14378 aS'copped' p14379 aS'copped' p14380 asS'cow' p14381 (lp14382 S'cows' p14383 aS'cowing' p14384 aS'cowed' p14385 aS'cowed' p14386 asS'cox' p14387 (lp14388 S'coxes' p14389 aS'coxing' p14390 aS'coxed' p14391 aS'coxed' p14392 asS'bray' p14393 (lp14394 S'brays' p14395 aS'braying' p14396 aS'brayed' p14397 aS'brayed' p14398 asS'cob' p14399 (lp14400 S'cobs' p14401 aS'cobbing' p14402 aS'cobbed' p14403 aS'cobbed' p14404 asS'brag' p14405 (lp14406 S'brags' p14407 aS'bragging' p14408 aS'bragged' p14409 aS'bragged' p14410 asS'cod' p14411 (lp14412 S'cods' p14413 aS'codding' p14414 aS'codded' p14415 aS'codded' p14416 asS'cog' p14417 (lp14418 S'cogs' p14419 aS'cogging' p14420 aS'cogged' p14421 aS'cogged' p14422 asS'coo' p14423 (lp14424 S'coos' p14425 aS'cooing' p14426 aS'cooed' p14427 aS'cooed' p14428 asS'tone' p14429 (lp14430 S'tones' p14431 aS'toning' p14432 aS'toned' p14433 aS'toned' p14434 asS'abbreviate' p14435 (lp14436 S'abbreviates' p14437 aS'abbreviating' p14438 aS'abbreviated' p14439 aS'abbreviated' p14440 asS'spear' p14441 (lp14442 S'spears' p14443 aS'spearing' p14444 aS'speared' p14445 aS'speared' p14446 asS'boxhaul' p14447 (lp14448 S'boxhauls' p14449 aS'boxhauling' p14450 aS'boxhauled' p14451 aS'boxhauled' p14452 asS'refile' p14453 (lp14454 S'refiles' p14455 aS'refiling' p14456 aS'refiled' p14457 aS'refiled' p14458 asS'edulcorate' p14459 (lp14460 S'edulcorates' p14461 aS'edulcorating' p14462 aS'edulcorated' p14463 aS'edulcorated' p14464 asS'speak' p14465 (lp14466 S'speaks' p14467 aS'speaking' p14468 aS'spoke' p14469 aS'spoken' p14470 asS'impersonalize' p14471 (lp14472 S'impersonalizes' p14473 aS'impersonalizing' p14474 aS'impersonalized' p14475 aS'impersonalized' p14476 asS'revegetate' p14477 (lp14478 S'revegetates' p14479 aS'revegetating' p14480 aS'revegetated' p14481 aS'revegetated' p14482 asS'accentuate' p14483 (lp14484 S'accentuates' p14485 aS'accentuating' p14486 aS'accentuated' p14487 aS'accentuated' p14488 asS'backwash' p14489 (lp14490 S'backwashes' p14491 aS'backwashing' p14492 aS'backwashed' p14493 aS'backwashed' p14494 asS'Christianize' p14495 (lp14496 S'Christianizes' p14497 aS'Christianizing' p14498 aS'Christianized' p14499 aS'Christianized' p14500 asS'revoice' p14501 (lp14502 S'revoices' p14503 aS'revoicing' p14504 aS'revoiced' p14505 aS'revoiced' p14506 asS'excite' p14507 (lp14508 S'excites' p14509 aS'exciting' p14510 aS'excited' p14511 aS'excited' p14512 asS'hacksaw' p14513 (lp14514 S'hacksaws' p14515 aS'hacksawing' p14516 aS'hacksawed' p14517 aS'hacksawn' p14518 asS'overtax' p14519 (lp14520 S'overtaxes' p14521 aS'overtaxing' p14522 aS'overtaxed' p14523 aS'overtaxed' p14524 asS'hap' p14525 (lp14526 S'haps' p14527 aS'happing' p14528 aS'happed' p14529 aS'happed' p14530 asS'hoist' p14531 (lp14532 S'hoists' p14533 aS'hoisting' p14534 aS'hoisted' p14535 aS'hoisted' p14536 asS'spellbind' p14537 (lp14538 S'spellbinds' p14539 aS'spellbinding' p14540 aS'spellbound' p14541 aS'spellbound' p14542 asS'disarrange' p14543 (lp14544 S'disarranges' p14545 aS'disarranging' p14546 aS'disarranged' p14547 aS'disarranged' p14548 asS'inhibit' p14549 (lp14550 S'inhibits' p14551 aS'inhibiting' p14552 aS'inhibited' p14553 aS'inhibited' p14554 asS'solvate' p14555 (lp14556 S'solvates' p14557 aS'solvating' p14558 aS'solvated' p14559 aS'solvated' p14560 asS'sculpt' p14561 (lp14562 S'sculpts' p14563 aS'sculpting' p14564 aS'sculpted' p14565 aS'sculpted' p14566 asS'air' p14567 (lp14568 S'airs' p14569 aS'airing' p14570 aS'aired' p14571 aS'aired' p14572 asS'aim' p14573 (lp14574 S'aims' p14575 aS'aiming' p14576 aS'aimed' p14577 aS'aimed' p14578 asS'ail' p14579 (lp14580 S'ails' p14581 aS'ailing' p14582 aS'ailed' p14583 aS'ailed' p14584 asS'thrash' p14585 (lp14586 S'thrashes' p14587 aS'thrashing' p14588 aS'thrashed' p14589 aS'thrashed' p14590 asS'aid' p14591 (lp14592 S'aids' p14593 aS'aiding' p14594 aS'aided' p14595 aS'aided' p14596 asS'voice' p14597 (lp14598 S'voices' p14599 aS'voicing' p14600 aS'voiced' p14601 aS'voiced' p14602 asS'mistake' p14603 (lp14604 S'mistakes' p14605 aS'mistaking' p14606 aS'mistook' p14607 aS'mistaken' p14608 asS'souse' p14609 (lp14610 S'souses' p14611 aS'sousing' p14612 aS'soused' p14613 aS'soused' p14614 asS'dislimn' p14615 (lp14616 S'dislimns' p14617 aS'dislimning' p14618 aS'dislimned' p14619 aS'dislimned' p14620 asS'sting' p14621 (lp14622 S'stings' p14623 aS'stinging' p14624 aS'stung' p14625 aS'stung' p14626 asS'dizzy' p14627 (lp14628 S'dizzies' p14629 aS'dizzying' p14630 aS'dizzied' p14631 aS'dizzied' p14632 asS'brake' p14633 (lp14634 S'brakes' p14635 aS'braking' p14636 aS'braked' p14637 aS'braked' p14638 asS'cone' p14639 (lp14640 S'cones' p14641 aS'coning' p14642 aS'coned' p14643 aS'coned' p14644 asS'exile' p14645 (lp14646 S'exiles' p14647 aS'exiling' p14648 aS'exiled' p14649 aS'exiled' p14650 asS'uplift' p14651 (lp14652 S'uplifts' p14653 aS'uplifting' p14654 aS'uplifted' p14655 aS'uplifted' p14656 asS'conk' p14657 (lp14658 S'conks' p14659 aS'conking' p14660 aS'conked' p14661 aS'conked' p14662 asS'stint' p14663 (lp14664 S'stints' p14665 aS'stinting' p14666 aS'stinted' p14667 aS'stinted' p14668 asS'conn' p14669 (lp14670 S'cons' p14671 aS'conning' p14672 aS'conned' p14673 aS'conned' p14674 asS'deadhead' p14675 (lp14676 S'deadheads' p14677 aS'deadheading' p14678 aS'deadheaded' p14679 aS'deadheaded' p14680 asS'feaze' p14681 (lp14682 S'feazes' p14683 aS'feazing' p14684 aS'feazed' p14685 aS'feazed' p14686 asS'perform' p14687 (lp14688 S'performs' p14689 aS'performing' p14690 aS'performed' p14691 aS'performed' p14692 asS'grapple' p14693 (lp14694 S'grapples' p14695 aS'grappling' p14696 aS'grappled' p14697 aS'grappled' p14698 asS'descend' p14699 (lp14700 S'descends' p14701 aS'descending' p14702 aS'descended' p14703 aS'descended' p14704 asS'hank' p14705 (lp14706 S'hanks' p14707 aS'hanking' p14708 aS'hanked' p14709 aS'hanked' p14710 asS'raid' p14711 (lp14712 S'raids' p14713 aS'raiding' p14714 aS'raided' p14715 aS'raided' p14716 asS'fuss' p14717 (lp14718 S'fusses' p14719 aS'fussing' p14720 aS'fussed' p14721 aS'fussed' p14722 asS'recce' p14723 (lp14724 S'recces' p14725 aS'recceing' p14726 aS'recced' p14727 aS'recced' p14728 asS'swell' p14729 (lp14730 S'swells' p14731 aS'swelling' p14732 aS'swelled' p14733 aS'swollen' p14734 asS'hang' p14735 (lp14736 S'hangs' p14737 aS'hanging' p14738 aS'hung' p14739 aS'hung' p14740 asS'rain' p14741 (lp14742 S'rains' p14743 aS'raining' p14744 aS'rained' p14745 aS'rained' p14746 asS'hand' p14747 (lp14748 S'hands' p14749 aS'handing' p14750 aS'handed' p14751 aS'handed' p14752 asS'larrup' p14753 (lp14754 S'larrups' p14755 aS'larruping' p14756 aS'larruped' p14757 aS'larruped' p14758 asS'ingraft' p14759 (lp14760 S'ingrafts' p14761 aS'ingrafting' p14762 aS'ingrafted' p14763 aS'ingrafted' p14764 asS'depict' p14765 (lp14766 S'depicts' p14767 aS'depicting' p14768 aS'depicted' p14769 aS'depicted' p14770 asS'descry' p14771 (lp14772 S'descries' p14773 aS'descrying' p14774 aS'descried' p14775 aS'descried' p14776 asS'nip' p14777 (lp14778 S'nips' p14779 aS'nipping' p14780 aS'nipped' p14781 aS'nippped' p14782 asS'jangle' p14783 (lp14784 S'jangles' p14785 aS'jangling' p14786 aS'jangled' p14787 aS'jangled' p14788 asS'humble' p14789 (lp14790 S'humbles' p14791 aS'humbling' p14792 aS'humbled' p14793 aS'humbled' p14794 asS'drip' p14795 (lp14796 S'drips' p14797 aS'dripping' p14798 aS'dripped' p14799 aS'dripped' p14800 asS'gratulate' p14801 (lp14802 S'gratulates' p14803 aS'gratulating' p14804 aS'gratulated' p14805 aS'gratulated' p14806 asS'jay-walk' p14807 (lp14808 S'jay-walks' p14809 aS'jaywalking' p14810 aS'jaywalked' p14811 aS'jay-walked' p14812 asS'contact' p14813 (lp14814 S'contacts' p14815 aS'contacting' p14816 aS'contacted' p14817 aS'contacted' p14818 asS'snigger' p14819 (lp14820 S'sniggers' p14821 aS'sniggering' p14822 aS'sniggered' p14823 aS'sniggered' p14824 asS'skivvy' p14825 (lp14826 S'skivvies' p14827 aS'skivvying' p14828 aS'skivvied' p14829 aS'skivvied' p14830 asS'bereave' p14831 (lp14832 S'bereaves' p14833 aS'bereaving' p14834 aS'bereaved' p14835 aS'bereaved' p14836 asS'mingle' p14837 (lp14838 S'mingles' p14839 aS'mingling' p14840 aS'mingled' p14841 aS'mingled' p14842 asS'halloo' p14843 (lp14844 S'halloos' p14845 aS'hallooing' p14846 aS'hallooed' p14847 aS'hallooed' p14848 asS'dignify' p14849 (lp14850 S'dignifies' p14851 aS'dignifying' p14852 aS'dignified' p14853 aS'dignified' p14854 asS'repose' p14855 (lp14856 S'reposes' p14857 aS'reposing' p14858 aS'reposed' p14859 aS'reposed' p14860 asS'hallow' p14861 (lp14862 S'hallows' p14863 aS'hallowing' p14864 aS'hallowed' p14865 aS'hallowed' p14866 asS'interweave' p14867 (lp14868 S'interweaves' p14869 aS'interweaving' p14870 aS'interwove' p14871 aS'interwoven' p14872 asS'varitype' p14873 (lp14874 S'varitypes' p14875 aS'varityping' p14876 aS'varityped' p14877 aS'varityped' p14878 asS'attemper' p14879 (lp14880 S'attempers' p14881 aS'attempering' p14882 aS'attempered' p14883 aS'attempered' p14884 asS'exalt' p14885 (lp14886 S'exalts' p14887 aS'exalting' p14888 aS'exalted' p14889 aS'exalted' p14890 asS'shout' p14891 (lp14892 S'shouts' p14893 aS'shouting' p14894 aS'shouted' p14895 aS'shouted' p14896 asS'spread' p14897 (lp14898 S'spreads' p14899 aS'spreading' p14900 aS'spread' p14901 aS'spread' p14902 asS'board' p14903 (lp14904 S'boards' p14905 aS'boarding' p14906 aS'boarded' p14907 aS'boarded' p14908 asS'basset' p14909 (lp14910 S'bassets' p14911 aS'basseting' p14912 aS'basseted' p14913 aS'basseted' p14914 asS'retread' p14915 (lp14916 S'retreads' p14917 aS'retreading' p14918 aS'retreaded' p14919 aS'retreaded' p14920 asS'botanize' p14921 (lp14922 S'botanizes' p14923 aS'botanizing' p14924 aS'botanized' p14925 aS'botanized' p14926 asS'barge' p14927 (lp14928 S'barges' p14929 aS'barging' p14930 aS'barged' p14931 aS'barged' p14932 asS'retreat' p14933 (lp14934 S'retreats' p14935 aS'retreating' p14936 aS'retreated' p14937 aS'retreated' p14938 asS'disadvantage' p14939 (lp14940 S'disadvantages' p14941 aS'disadvantaging' p14942 aS'disadvantaged' p14943 aS'disadvantaged' p14944 asS'rustle' p14945 (lp14946 S'rustles' p14947 aS'rustling' p14948 aS'rustled' p14949 aS'rustled' p14950 asS'overfly' p14951 (lp14952 S'overflies' p14953 aS'overflying' p14954 aS'overflew' p14955 aS'overflown' p14956 asS'airdrop' p14957 (lp14958 S'airdrops' p14959 aS'airdropping' p14960 aS'airdropped' p14961 aS'airdropped' p14962 asS'kyanize' p14963 (lp14964 S'kyanizes' p14965 aS'kyanizing' p14966 aS'kyanized' p14967 aS'kyanized' p14968 asS'snug' p14969 (lp14970 S'snugs' p14971 aS'snugging' p14972 aS'snugged' p14973 aS'snugged' p14974 asS'revalorize' p14975 (lp14976 S'revalorizes' p14977 aS'revalorizing' p14978 aS'revalorized' p14979 aS'revalorized' p14980 asS'grizzle' p14981 (lp14982 S'grizzles' p14983 aS'grizzling' p14984 aS'grizzled' p14985 aS'grizzled' p14986 asS'reassign' p14987 (lp14988 S'reassigns' p14989 aS'reassigning' p14990 aS'reassigned' p14991 aS'reassigned' p14992 asS'augur' p14993 (lp14994 S'augurs' p14995 aS'auguring' p14996 aS'augured' p14997 aS'augured' p14998 asS'thole' p14999 (lp15000 S'tholes' p15001 aS'tholing' p15002 aS'tholed' p15003 aS'tholed' p15004 asS'antique' p15005 (lp15006 S'antiques' p15007 aS'antiquing' p15008 aS'antiqued' p15009 aS'antiqued' p15010 asS'aircool' p15011 (lp15012 S'aircools' p15013 aS'aircooling' p15014 aS'aircooled' p15015 aS'aircooled' p15016 asS'flatter' p15017 (lp15018 sS'rile' p15019 (lp15020 S'riles' p15021 aS'riling' p15022 aS'riled' p15023 aS'riled' p15024 asS'hassle' p15025 (lp15026 S'hassles' p15027 aS'hassling' p15028 aS'hassled' p15029 aS'hassled' p15030 asS'flatten' p15031 (lp15032 S'flattens' p15033 aS'flattening' p15034 aS'flattened' p15035 aS'flattened' p15036 asS'bore' p15037 (lp15038 S'bores' p15039 aS'boring' p15040 aS'bored' p15041 aS'bored' p15042 asS'cede' p15043 (lp15044 S'cedes' p15045 aS'ceding' p15046 aS'ceded' p15047 aS'ceded' p15048 asS'matriculate' p15049 (lp15050 S'matriculates' p15051 aS'matriculating' p15052 aS'matriculated' p15053 aS'matriculated' p15054 asS'vassalize' p15055 (lp15056 S'vassalizes' p15057 aS'vassalizing' p15058 aS'vassalized' p15059 aS'vassalized' p15060 asS'peek' p15061 (lp15062 S'peeks' p15063 aS'peeking' p15064 aS'peeked' p15065 aS'peeked' p15066 asS'peen' p15067 (lp15068 S'peens' p15069 aS'peening' p15070 aS'peened' p15071 aS'peened' p15072 asS'peel' p15073 (lp15074 S'peels' p15075 aS'peeling' p15076 aS'peeled' p15077 aS'peeled' p15078 asS'pulverize' p15079 (lp15080 S'pulverizes' p15081 aS'pulverizing' p15082 aS'pulverized' p15083 aS'pulverized' p15084 asS'elucidate' p15085 (lp15086 S'elucidates' p15087 aS'elucidating' p15088 aS'elucidated' p15089 aS'elucidated' p15090 asS'pose' p15091 (lp15092 S'poses' p15093 aS'posing' p15094 aS'posed' p15095 aS'posed' p15096 asS'confer' p15097 (lp15098 S'confers' p15099 aS'conferring' p15100 aS'conferred' p15101 aS'conferred' p15102 asS'ply' p15103 (lp15104 S'plies' p15105 aS'plying' p15106 aS'plied' p15107 aS'plied' p15108 asS'depoliticize' p15109 (lp15110 S'depoliticizes' p15111 aS'depoliticizing' p15112 aS'depoliticized' p15113 aS'depoliticized' p15114 asS'outrival' p15115 (lp15116 S'outrivals' p15117 aS'outrivalling' p15118 aS'outrivalled' p15119 aS'outrivalled' p15120 asS'peep' p15121 (lp15122 S'peeps' p15123 aS'peeping' p15124 aS'peeped' p15125 aS'peeped' p15126 asS'vault' p15127 (lp15128 S'vaults' p15129 aS'vaulting' p15130 aS'vaulted' p15131 aS'vaulted' p15132 asS'poss' p15133 (lp15134 S'posses' p15135 ag11329 ag11330 ag11331 asS'chafe' p15136 (lp15137 S'chafes' p15138 aS'chafing' p15139 aS'chafed' p15140 aS'chafed' p15141 asS'chaff' p15142 (lp15143 S'chaffs' p15144 aS'chaffing' p15145 aS'chaffed' p15146 aS'chaffed' p15147 asS'tryst' p15148 (lp15149 S'trysts' p15150 aS'trysting' p15151 aS'trysted' p15152 aS'trysted' p15153 asS'visa' p15154 (lp15155 S'visas' p15156 aS'visaing' p15157 aS'visaed' p15158 aS'visaed' p15159 asS'plenish' p15160 (lp15161 S'plenishes' p15162 aS'plenishing' p15163 aS'plenished' p15164 aS'plenished' p15165 asS'cherish' p15166 (lp15167 S'cherishes' p15168 aS'cherishing' p15169 aS'cherished' p15170 aS'cherished' p15171 asS'croak' p15172 (lp15173 S'croaks' p15174 aS'croaking' p15175 aS'croaked' p15176 aS'croaked' p15177 asS'clomb' p15178 (lp15179 S'clombs' p15180 aS'clombing' p15181 aS'clombed' p15182 aS'clombed' p15183 asS'mantle' p15184 (lp15185 S'mantles' p15186 aS'mantling' p15187 aS'mantled' p15188 aS'mantled' p15189 asS'float' p15190 (lp15191 S'floats' p15192 aS'floating' p15193 aS'floated' p15194 aS'floated' p15195 asS'bound' p15196 (lp15197 sS'clomp' p15198 (lp15199 S'clomps' p15200 aS'clomping' p15201 aS'clomped' p15202 aS'clomped' p15203 asS'obligate' p15204 (lp15205 S'obligates' p15206 aS'obligating' p15207 aS'obligated' p15208 aS'obligated' p15209 asS'stumble' p15210 (lp15211 S'stumbles' p15212 aS'stumbling' p15213 aS'stumbled' p15214 aS'stumbled' p15215 asS'wan' p15216 (lp15217 S'wans' p15218 aS'wanning' p15219 aS'wanned' p15220 aS'wanned' p15221 asS'familiarize' p15222 (lp15223 S'familiarizes' p15224 aS'familiarizing' p15225 aS'familiarized' p15226 aS'familiarized' p15227 asS'connote' p15228 (lp15229 S'connotes' p15230 aS'connoting' p15231 aS'connoted' p15232 aS'connoted' p15233 asS'wag' p15234 (lp15235 S'wags' p15236 aS'wagging' p15237 aS'wagged' p15238 aS'wagged' p15239 asS'segment' p15240 (lp15241 S'segments' p15242 aS'segmenting' p15243 aS'segmented' p15244 aS'segmented' p15245 asS'wad' p15246 (lp15247 S'wads' p15248 aS'wadding' p15249 aS'wadded' p15250 aS'wadded' p15251 asS'frill' p15252 (lp15253 S'frills' p15254 aS'frilling' p15255 aS'frilled' p15256 aS'frilled' p15257 asS'fight' p15258 (lp15259 S'fights' p15260 aS'fighting' p15261 aS'fought' p15262 aS'fought' p15263 asS'gybe' p15264 (lp15265 S'gybes' p15266 aS'gybing' p15267 aS'gybed' p15268 aS'gybed' p15269 asS'tartarize' p15270 (lp15271 S'tartarizes' p15272 aS'tartarizing' p15273 aS'tartarized' p15274 aS'tartarized' p15275 asS'fizz' p15276 (lp15277 S'fizzes' p15278 aS'fizzing' p15279 aS'fizzed' p15280 aS'fizzed' p15281 asS'pirouette' p15282 (lp15283 S'pirouettes' p15284 aS'pirouetting' p15285 aS'pirouetted' p15286 aS'pirouetted' p15287 asS'bespatter' p15288 (lp15289 S'bespatters' p15290 aS'bespattering' p15291 aS'bespattered' p15292 aS'bespattered' p15293 asS'converse' p15294 (lp15295 S'converses' p15296 aS'conversing' p15297 aS'conversed' p15298 aS'conversed' p15299 asS'imparadise' p15300 (lp15301 S'imparadises' p15302 aS'imparadising' p15303 aS'imparadised' p15304 aS'imparadised' p15305 asS'true' p15306 (lp15307 S'trues' p15308 aS'truing' p15309 aS'trued' p15310 aS'trued' p15311 asS'reset' p15312 (lp15313 S'resets' p15314 aS'resetting' p15315 aS'reset' p15316 aS'reset' p15317 asS'absent' p15318 (lp15319 S'absents' p15320 aS'absenting' p15321 aS'absented' p15322 aS'absented' p15323 asS'scrimmage' p15324 (lp15325 S'scrimmages' p15326 aS'scrimmaging' p15327 aS'scrimmaged' p15328 aS'scrimmaged' p15329 asS'detribalize' p15330 (lp15331 S'detribalizes' p15332 aS'detribalizing' p15333 aS'detribalized' p15334 aS'detribalized' p15335 asS'variolate' p15336 (lp15337 S'variolates' p15338 aS'variolating' p15339 aS'variolated' p15340 aS'variolated' p15341 asS'emit' p15342 (lp15343 S'emits' p15344 aS'emitting' p15345 aS'emitted' p15346 aS'emitted' p15347 asS'corrade' p15348 (lp15349 S'corrades' p15350 aS'corrading' p15351 aS'corraded' p15352 aS'corraded' p15353 asS'abstract' p15354 (lp15355 S'abstracts' p15356 aS'abstracting' p15357 aS'abstracted' p15358 aS'abstracted' p15359 asS'molt' p15360 (lp15361 S'molts' p15362 aS'molting' p15363 aS'molted' p15364 aS'molted' p15365 asS'evidence' p15366 (lp15367 S'evidences' p15368 aS'evidencing' p15369 aS'evidenced' p15370 aS'evidenced' p15371 asS'manure' p15372 (lp15373 S'manures' p15374 aS'manuring' p15375 aS'manured' p15376 aS'manured' p15377 asS'subsist' p15378 (lp15379 S'subsists' p15380 aS'subsisting' p15381 aS'subsisted' p15382 aS'subsisted' p15383 asS'face' p15384 (lp15385 S'faces' p15386 aS'facing' p15387 aS'faced' p15388 aS'faced' p15389 asS'chainsmoke' p15390 (lp15391 S'chainsmokes' p15392 aS'chainsmoking' p15393 aS'chainsmoked' p15394 aS'chainsmoked' p15395 asS'stake' p15396 (lp15397 S'stakes' p15398 aS'staking' p15399 aS'staked' p15400 aS'staked' p15401 asS'shrine' p15402 (lp15403 S'shrines' p15404 aS'shrining' p15405 aS'shrined' p15406 aS'shrined' p15407 asS'test' p15408 (lp15409 S'tests' p15410 aS'testing' p15411 aS'tested' p15412 aS'tested' p15413 asS'upholster' p15414 (lp15415 S'upholsters' p15416 aS'upholstering' p15417 aS'upholstered' p15418 aS'upholstered' p15419 asS'outmanoeuvre' p15420 (lp15421 S'outmanoeuvres' p15422 aS'outmanoeuvring' p15423 aS'outmanoeuvred' p15424 aS'outmanoeuvred' p15425 asS'frolic' p15426 (lp15427 S'frolics' p15428 aS'frolicking' p15429 aS'frolicked' p15430 aS'frolicked' p15431 asS'cicatrize' p15432 (lp15433 S'cicatrizes' p15434 aS'cicatrizing' p15435 aS'cicatrized' p15436 aS'cicatrized' p15437 asS'orate' p15438 (lp15439 S'orates' p15440 aS'orating' p15441 aS'orated' p15442 aS'orated' p15443 asS'unscramble' p15444 (lp15445 S'unscrambles' p15446 aS'unscrambling' p15447 aS'unscrambled' p15448 aS'unscrambled' p15449 asS'truncate' p15450 (lp15451 S'truncates' p15452 aS'truncating' p15453 aS'truncated' p15454 aS'truncated' p15455 asS'welcome' p15456 (lp15457 S'welcomes' p15458 aS'welcoming' p15459 aS'welcomed' p15460 aS'welcomed' p15461 asS'outreach' p15462 (lp15463 S'outreaches' p15464 aS'outreaching' p15465 aS'outreached' p15466 aS'outreached' p15467 asS'troupe' p15468 (lp15469 S'troupes' p15470 aS'trouping' p15471 aS'trouped' p15472 aS'trouped' p15473 asS'volcanize' p15474 (lp15475 S'volcanizes' p15476 aS'volcanizing' p15477 aS'volcanized' p15478 aS'volcanized' p15479 asS'ramify' p15480 (lp15481 S'ramifies' p15482 aS'ramifying' p15483 aS'ramified' p15484 aS'ramified' p15485 asS'contango' p15486 (lp15487 S'contangoes' p15488 aS'contangoing' p15489 aS'contangoed' p15490 aS'contangoed' p15491 asS'faze' p15492 (lp15493 S'fazes' p15494 aS'fazing' p15495 aS'fazed' p15496 aS'fazed' p15497 asS'tautologize' p15498 (lp15499 S'tautologizes' p15500 aS'tautologizing' p15501 aS'tautologized' p15502 aS'tautologized' p15503 asS'bottom' p15504 (lp15505 S'bottoms' p15506 aS'bottoming' p15507 aS'bottomed' p15508 aS'bottomed' p15509 asS'urbanize' p15510 (lp15511 S'urbanizes' p15512 aS'urbanizing' p15513 aS'urbanized' p15514 aS'urbanized' p15515 asS'gyrate' p15516 (lp15517 S'gyrates' p15518 aS'gyrating' p15519 aS'gyrated' p15520 aS'gyrated' p15521 asS're-trace' p15522 (lp15523 S're-traces' p15524 aS're-tracing' p15525 ag9329 aS're-traced' p15526 asS'denunciate' p15527 (lp15528 S'denunciates' p15529 aS'denunciating' p15530 aS'denunciated' p15531 aS'denunciated' p15532 asS'platemark' p15533 (lp15534 S'platemarks' p15535 aS'platemarking' p15536 aS'platemarked' p15537 aS'platemarked' p15538 asS'incarcerate' p15539 (lp15540 S'incarcerates' p15541 aS'incarcerating' p15542 aS'incarcerated' p15543 aS'incarcerated' p15544 asS'dance' p15545 (lp15546 S'dances' p15547 aS'dancing' p15548 aS'danced' p15549 aS'danced' p15550 asS'debauch' p15551 (lp15552 S'debauches' p15553 aS'debauching' p15554 aS'debauched' p15555 aS'debauched' p15556 asS'supplement' p15557 (lp15558 S'supplements' p15559 aS'supplementing' p15560 aS'supplemented' p15561 aS'supplemented' p15562 asS'battle' p15563 (lp15564 S'battles' p15565 aS'battling' p15566 aS'battled' p15567 aS'battled' p15568 asS'suffumigate' p15569 (lp15570 S'suffumigates' p15571 aS'suffumigating' p15572 aS'suffumigated' p15573 aS'suffumigated' p15574 asS'extoll' p15575 (lp15576 S'extols' p15577 aS'extolling' p15578 aS'extolled' p15579 aS'extolled' p15580 asS'matchmark' p15581 (lp15582 S'matchmarks' p15583 aS'matchmarking' p15584 aS'matchmarked' p15585 aS'matchmarked' p15586 asS'zone' p15587 (lp15588 S'zones' p15589 aS'zoning' p15590 aS'zoned' p15591 aS'zoned' p15592 asS'graph' p15593 (lp15594 S'graphs' p15595 aS'graphing' p15596 aS'graphed' p15597 aS'graphed' p15598 asS'hump' p15599 (lp15600 S'humps' p15601 aS'humping' p15602 aS'humped' p15603 aS'humped' p15604 asS'flash' p15605 (lp15606 S'flashes' p15607 aS'flashing' p15608 aS'flashed' p15609 aS'flashed' p15610 asS'compensate' p15611 (lp15612 S'compensates' p15613 aS'compensating' p15614 aS'compensated' p15615 aS'compensated' p15616 asS'tusk' p15617 (lp15618 S'tusks' p15619 aS'tusking' p15620 aS'tusked' p15621 aS'tusked' p15622 asS'overbuild' p15623 (lp15624 S'overbuilds' p15625 aS'overbuilding' p15626 aS'overbuilt' p15627 aS'overbuilt' p15628 asS'brown' p15629 (lp15630 S'browns' p15631 aS'browning' p15632 aS'browned' p15633 aS'browned' p15634 asS'predicate' p15635 (lp15636 S'predicates' p15637 aS'predicating' p15638 aS'predicated' p15639 aS'predicated' p15640 asS'congest' p15641 (lp15642 S'congests' p15643 aS'congesting' p15644 aS'congested' p15645 aS'congested' p15646 asS'chirrup' p15647 (lp15648 S'chirrups' p15649 aS'chirruping' p15650 aS'chirruped' p15651 aS'chirruped' p15652 asS'sunbathe' p15653 (lp15654 S'sunbathes' p15655 aS'sunbathing' p15656 aS'sunbathed' p15657 aS'sunbathed' p15658 asS'kitten' p15659 (lp15660 S'kittens' p15661 aS'kittening' p15662 aS'kittened' p15663 aS'kittened' p15664 asS'trouble' p15665 (lp15666 S'troubles' p15667 aS'troubling' p15668 aS'troubled' p15669 aS'troubled' p15670 asS'blast' p15671 (lp15672 S'blasts' p15673 aS'blasting' p15674 aS'blasted' p15675 aS'blasted' p15676 asS'pitterpatter' p15677 (lp15678 S'pitterpatters' p15679 aS'pitterpattering' p15680 aS'pitterpattered' p15681 aS'pitterpattered' p15682 asS'bring' p15683 (lp15684 S'brings' p15685 aS'bringing' p15686 aS'brought' p15687 aS'brought' p15688 asS'subinfeudate' p15689 (lp15690 S'subinfeudates' p15691 aS'subinfeudating' p15692 aS'subinfeudated' p15693 aS'subinfeudated' p15694 asS'sightread' p15695 (lp15696 S'sightreads' p15697 aS'sightreading' p15698 aS'sightread' p15699 aS'sightread' p15700 asS'Latinize' p15701 (lp15702 S'Latinizes' p15703 aS'Latinizing' p15704 aS'Latinized' p15705 aS'Latinized' p15706 asS'gun' p15707 (lp15708 S'guns' p15709 aS'gunning' p15710 aS'gunned' p15711 aS'gunned' p15712 asS'gum' p15713 (lp15714 S'gums' p15715 aS'gumming' p15716 aS'gummed' p15717 aS'gummed' p15718 asS'stylopize' p15719 (lp15720 S'stylopizes' p15721 aS'stylopizing' p15722 aS'stylopized' p15723 aS'stylopized' p15724 asS'burgeon' p15725 (lp15726 S'burgeons' p15727 aS'burgeoning' p15728 aS'burgeoned' p15729 aS'burgeoned' p15730 asS'guy' p15731 (lp15732 S'guys' p15733 aS'guying' p15734 aS'guyed' p15735 aS'guyed' p15736 asS'disqualify' p15737 (lp15738 S'disqualifies' p15739 aS'disqualifying' p15740 aS'disqualified' p15741 aS'disqualified' p15742 asS'Grecize' p15743 (lp15744 S'Grecizes' p15745 aS'Grecizing' p15746 aS'Grecized' p15747 aS'Grecized' p15748 asS'brave' p15749 (lp15750 S'braves' p15751 aS'braving' p15752 aS'braved' p15753 aS'braved' p15754 asS'regret' p15755 (lp15756 S'regrets' p15757 aS'regretting' p15758 aS'regretted' p15759 aS'regretted' p15760 asS'trill' p15761 (lp15762 S'trills' p15763 aS'trilling' p15764 aS'trilled' p15765 aS'trilled' p15766 asS'discover' p15767 (lp15768 S'discovers' p15769 aS'discovering' p15770 aS'discovered' p15771 aS'discovered' p15772 asS'agitate' p15773 (lp15774 S'agitates' p15775 aS'agitating' p15776 aS'agitated' p15777 aS'agitated' p15778 asS'cosh' p15779 (lp15780 S'coshes' p15781 aS'coshing' p15782 aS'coshed' p15783 aS'coshed' p15784 asS'circumnutate' p15785 (lp15786 S'circumnutates' p15787 aS'circumnutating' p15788 aS'circumnutated' p15789 aS'circumnutated' p15790 asS'grump' p15791 (lp15792 S'grumps' p15793 aS'grumping' p15794 aS'grumped' p15795 aS'grumped' p15796 asS'cost' p15797 (lp15798 S'costs' p15799 aS'costing' p15800 aS'cost' p15801 aS'cost' p15802 asS'stupefy' p15803 (lp15804 S'stupefies' p15805 aS'stupefying' p15806 aS'stupefied' p15807 aS'stupefied' p15808 asS'tempest' p15809 (lp15810 S'tempests' p15811 aS'tempesting' p15812 aS'tempested' p15813 aS'tempested' p15814 asS'curse' p15815 (lp15816 S'curses' p15817 aS'cursing' p15818 aS'curst' p15819 aS'curst' p15820 asS'appear' p15821 (lp15822 S'appears' p15823 aS'appearing' p15824 aS'appeared' p15825 aS'appeared' p15826 asS'avouch' p15827 (lp15828 S'avouches' p15829 aS'avouching' p15830 aS'avouched' p15831 aS'avouched' p15832 asS'galumph' p15833 (lp15834 S'galumphs' p15835 aS'galumphing' p15836 aS'galumphed' p15837 aS'galumphed' p15838 asS'havoc' p15839 (lp15840 S'havocs' p15841 aS'havocking' p15842 aS'havocked' p15843 aS'havocked' p15844 asS'chuff' p15845 (lp15846 S'chuffs' p15847 aS'chuffing' p15848 aS'chuffed' p15849 aS'chuffed' p15850 asS'telex' p15851 (lp15852 S'telexes' p15853 aS'telexing' p15854 aS'telexed' p15855 aS'telexed' p15856 asS'appeal' p15857 (lp15858 S'appeals' p15859 aS'appealing' p15860 aS'appealed' p15861 aS'appealed' p15862 asS'satisfy' p15863 (lp15864 S'satisfies' p15865 aS'satisfying' p15866 aS'satisfied' p15867 aS'satisfied' p15868 asS'trampoline' p15869 (lp15870 S'trampolines' p15871 aS'trampolining' p15872 aS'trampolined' p15873 aS'trampolined' p15874 asS'unbosom' p15875 (lp15876 S'unbosoms' p15877 aS'unbosoming' p15878 aS'unbosomed' p15879 aS'unbosomed' p15880 asS'aline' p15881 (lp15882 S'alines' p15883 aS'alining' p15884 aS'alined' p15885 aS'alined' p15886 asS'widow' p15887 (lp15888 S'widows' p15889 aS'widowing' p15890 aS'widowed' p15891 aS'widowed' p15892 asS'gawk' p15893 (lp15894 S'gawks' p15895 aS'gawking' p15896 aS'gawked' p15897 aS'gawked' p15898 asS'disclaim' p15899 (lp15900 S'disclaims' p15901 aS'disclaiming' p15902 aS'disclaimed' p15903 aS'disclaimed' p15904 asS'illumine' p15905 (lp15906 S'illumines' p15907 aS'illumining' p15908 aS'illumined' p15909 aS'illumined' p15910 asS'gawp' p15911 (lp15912 S'gawps' p15913 aS'gawping' p15914 aS'gawped' p15915 aS'gawped' p15916 asS'English' p15917 (lp15918 S'Englishes' p15919 aS'Englishing' p15920 aS'Englished' p15921 aS'Englished' p15922 asS'gorge' p15923 (lp15924 S'gorges' p15925 aS'gorging' p15926 aS'gorged' p15927 aS'gorged' p15928 asS'sieve' p15929 (lp15930 S'sieves' p15931 aS'sieving' p15932 aS'sieved' p15933 aS'sieved' p15934 asS'tubulate' p15935 (lp15936 S'tubulates' p15937 aS'tubulating' p15938 aS'tubulated' p15939 aS'tubulated' p15940 asS'change' p15941 (lp15942 S'changes' p15943 aS'changing' p15944 aS'changed' p15945 aS'changed' p15946 asS'buck' p15947 (lp15948 S'bucks' p15949 aS'bucking' p15950 aS'bucked' p15951 aS'bucked' p15952 asS'theorize' p15953 (lp15954 S'theorizes' p15955 aS'theorizing' p15956 aS'theorized' p15957 aS'theorized' p15958 asS'eke' p15959 (lp15960 S'ekes' p15961 aS'eking' p15962 aS'eked' p15963 aS'eked' p15964 asS'disavow' p15965 (lp15966 S'disavows' p15967 aS'disavowing' p15968 aS'disavowed' p15969 aS'disavowed' p15970 asS'detonate' p15971 (lp15972 S'detonates' p15973 aS'detonating' p15974 aS'detonated' p15975 aS'detonated' p15976 asS'conciliate' p15977 (lp15978 S'conciliates' p15979 aS'conciliating' p15980 aS'conciliated' p15981 aS'conciliated' p15982 asS'pillow' p15983 (lp15984 S'pillows' p15985 aS'pillowing' p15986 aS'pillowed' p15987 aS'pillowed' p15988 asS'sewer' p15989 (lp15990 S'sewers' p15991 aS'sewering' p15992 aS'sewered' p15993 aS'sewered' p15994 asS'solfa' p15995 (lp15996 S'solfas' p15997 aS'solfaing' p15998 aS'solfaed' p15999 aS'solfaed' p16000 asS'infract' p16001 (lp16002 S'infracts' p16003 aS'infracting' p16004 aS'infracted' p16005 aS'infracted' p16006 asS'paragon' p16007 (lp16008 S'paragons' p16009 aS'paragoning' p16010 aS'paragoned' p16011 aS'paragoned' p16012 asS'gesticulate' p16013 (lp16014 S'gesticulates' p16015 aS'gesticulating' p16016 aS'gesticulated' p16017 aS'gesticulated' p16018 asS'market' p16019 (lp16020 S'markets' p16021 aS'marketing' p16022 aS'marketed' p16023 aS'marketed' p16024 asS'desalinize' p16025 (lp16026 S'desalinizes' p16027 aS'desalinizing' p16028 aS'desalinized' p16029 aS'desalinized' p16030 asS'knurl' p16031 (lp16032 S'knurls' p16033 aS'knurling' p16034 aS'knurled' p16035 aS'knurled' p16036 asS'subvert' p16037 (lp16038 S'subverts' p16039 aS'subverting' p16040 aS'subverted' p16041 aS'subverted' p16042 asS'captivate' p16043 (lp16044 S'captivates' p16045 aS'captivating' p16046 aS'captivated' p16047 aS'captivated' p16048 asS'rejuvenate' p16049 (lp16050 S'rejuvenates' p16051 aS'rejuvenating' p16052 aS'rejuvenated' p16053 aS'rejuvenated' p16054 asS'coalesce' p16055 (lp16056 S'coalesces' p16057 aS'coalescing' p16058 aS'coalesced' p16059 aS'coalesced' p16060 asS'live' p16061 (lp16062 S'lives' p16063 aS'living' p16064 aS'lived' p16065 aS'lived' p16066 asS'slough' p16067 (lp16068 S'sloughs' p16069 aS'sloughing' p16070 aS'sloughed' p16071 aS'sloughed' p16072 asS'meliorate' p16073 (lp16074 S'meliorates' p16075 aS'meliorating' p16076 aS'meliorated' p16077 aS'meliorated' p16078 asS'stomach' p16079 (lp16080 S'stomaches' p16081 aS'stomaching' p16082 aS'stomached' p16083 aS'stomached' p16084 asS'privateer' p16085 (lp16086 S'privateers' p16087 aS'privateering' p16088 aS'privateered' p16089 aS'privateered' p16090 asS'entrance' p16091 (lp16092 S'entrances' p16093 aS'entrancing' p16094 aS'entranced' p16095 aS'entranced' p16096 asS'club' p16097 (lp16098 S'clubs' p16099 aS'clubbing' p16100 aS'clubbed' p16101 aS'clubbed' p16102 asS'cluck' p16103 (lp16104 S'clucks' p16105 aS'clucking' p16106 aS'clucked' p16107 aS'clucked' p16108 asS'clue' p16109 (lp16110 S'clues' p16111 aS'cluing' p16112 aS'clued' p16113 aS'clued' p16114 asS'interdigitate' p16115 (lp16116 S'interdigitates' p16117 aS'interdigitating' p16118 aS'interdigitated' p16119 aS'interdigitated' p16120 asS'reunify' p16121 (lp16122 S'reunifies' p16123 aS'reunifying' p16124 aS'reunified' p16125 aS'reunified' p16126 asS'judder' p16127 (lp16128 S'judders' p16129 aS'juddering' p16130 aS'juddered' p16131 aS'juddered' p16132 asS'slither' p16133 (lp16134 S'slithers' p16135 aS'slithering' p16136 aS'slithered' p16137 aS'slithered' p16138 asS'pedestrianize' p16139 (lp16140 S'pedestrianizes' p16141 aS'pedestrianizing' p16142 aS'pedestrianized' p16143 aS'pedestrianized' p16144 asS'eructate' p16145 (lp16146 S'eructs' p16147 aS'eructing' p16148 aS'eructed' p16149 aS'eructed' p16150 asS'douche' p16151 (lp16152 S'douches' p16153 aS'douching' p16154 aS'douched' p16155 aS'douched' p16156 asS'machicolate' p16157 (lp16158 S'machicolates' p16159 aS'machicolating' p16160 aS'machicolated' p16161 aS'machicolated' p16162 asS'cap' p16163 (lp16164 S'caps' p16165 aS'capping' p16166 aS'capped' p16167 aS'capped' p16168 asS'caw' p16169 (lp16170 S'caws' p16171 aS'cawing' p16172 aS'cawed' p16173 aS'cawed' p16174 asS'cat' p16175 (lp16176 S'cats' p16177 aS'catting' p16178 aS'catted' p16179 aS'catted' p16180 asS'purge' p16181 (lp16182 S'purges' p16183 aS'purging' p16184 aS'purged' p16185 aS'purged' p16186 asS'can' p16187 (lp16188 S'could' p16189 aS"can't" p16190 aS"couldn't" p16191 asS'heart' p16192 (lp16193 S'hearts' p16194 aS'hearting' p16195 aS'hearted' p16196 aS'hearted' p16197 asS'attribute' p16198 (lp16199 S'attributes' p16200 aS'attributing' p16201 aS'attributed' p16202 aS'attributed' p16203 asS'chip' p16204 (lp16205 S'chips' p16206 aS'chipping' p16207 aS'chipped' p16208 aS'chipped' p16209 asS'nock' p16210 (lp16211 S'nocks' p16212 aS'nocking' p16213 aS'nocked' p16214 aS'nocked' p16215 asS'waterski' p16216 (lp16217 S'waterskis' p16218 aS'waterskiing' p16219 aS'waterskied' p16220 aS'waterskied' p16221 asS'chondrify' p16222 (lp16223 S'chondrifies' p16224 aS'chondrifying' p16225 aS'chondrified' p16226 aS'chondrified' p16227 asS'abort' p16228 (lp16229 S'aborts' p16230 aS'aborting' p16231 aS'aborted' p16232 aS'aborted' p16233 asS'chin' p16234 (lp16235 S'chins' p16236 aS'chinning' p16237 aS'chinned' p16238 aS'chinned' p16239 asS'refine' p16240 (lp16241 S'refines' p16242 aS'refining' p16243 aS'refined' p16244 aS'refined' p16245 asS'exclude' p16246 (lp16247 S'excludes' p16248 aS'excluding' p16249 aS'excluded' p16250 aS'excluded' p16251 asS'occur' p16252 (lp16253 S'occurs' p16254 aS'occurring' p16255 aS'occurred' p16256 aS'occurred' p16257 asS'proportionate' p16258 (lp16259 S'proportionates' p16260 aS'proportionating' p16261 aS'proportionated' p16262 aS'proportionated' p16263 asS'bankrupt' p16264 (lp16265 S'bankrupts' p16266 aS'bankrupting' p16267 aS'bankrupted' p16268 aS'bankrupted' p16269 asS'lounge' p16270 (lp16271 S'lounges' p16272 aS'lounging' p16273 aS'lounged' p16274 aS'lounged' p16275 asS'despair' p16276 (lp16277 S'despairs' p16278 aS'despairing' p16279 aS'despaired' p16280 aS'despaired' p16281 asS'deteriorate' p16282 (lp16283 S'deteriorates' p16284 aS'deteriorating' p16285 aS'deteriorated' p16286 aS'deteriorated' p16287 asS'escalate' p16288 (lp16289 S'escalates' p16290 aS'escalating' p16291 aS'escalated' p16292 aS'escalated' p16293 asS'dive' p16294 (lp16295 S'dives' p16296 aS'diving' p16297 aS'dove' p16298 aS'dived' p16299 asS'bawl' p16300 (lp16301 S'bawls' p16302 aS'bawling' p16303 aS'bawled' p16304 aS'bawled' p16305 asS'countermand' p16306 (lp16307 S'countermands' p16308 aS'countermanding' p16309 aS'countermanded' p16310 aS'countermanded' p16311 asS'produce' p16312 (lp16313 S'produces' p16314 aS'producing' p16315 aS'produced' p16316 aS'produced' p16317 asS'pave' p16318 (lp16319 S'paves' p16320 aS'paving' p16321 aS'paved' p16322 aS'paved' p16323 asS'restate' p16324 (lp16325 S'restates' p16326 aS'restating' p16327 aS'restated' p16328 aS'restated' p16329 asS'coagulate' p16330 (lp16331 S'coagulates' p16332 aS'coagulating' p16333 aS'coagulated' p16334 aS'coagulated' p16335 asS'flourish' p16336 (lp16337 S'flourishes' p16338 aS'flourishing' p16339 aS'flourished' p16340 aS'flourished' p16341 asS'wainscot' p16342 (lp16343 S'wainscots' p16344 aS'wainscoting' p16345 aS'wainscoted' p16346 aS'wainscoted' p16347 asS'crepe' p16348 (lp16349 S'crepes' p16350 aS'creping' p16351 aS'creped' p16352 aS'creped' p16353 asS'remember' p16354 (lp16355 S'remembers' p16356 aS'remembering' p16357 aS'remembered' p16358 aS'remembered' p16359 asS'ammonify' p16360 (lp16361 S'ammonifies' p16362 aS'ammonifying' p16363 aS'ammonified' p16364 aS'ammonified' p16365 asS'rebut' p16366 (lp16367 S'rebuts' p16368 aS'rebutting' p16369 aS'rebutted' p16370 aS'rebutted' p16371 asS'denaturalize' p16372 (lp16373 S'denaturalizes' p16374 aS'denaturalizing' p16375 aS'denaturalized' p16376 aS'denaturalized' p16377 asS'offend' p16378 (lp16379 S'offends' p16380 aS'offending' p16381 aS'offended' p16382 aS'offended' p16383 asS'crumple' p16384 (lp16385 S'crumples' p16386 aS'crumpling' p16387 aS'crumpled' p16388 aS'crumpled' p16389 asS'stilt' p16390 (lp16391 S'stilts' p16392 aS'stilting' p16393 aS'stilted' p16394 aS'stilted' p16395 asS'forfeit' p16396 (lp16397 S'forfeits' p16398 aS'forfeiting' p16399 aS'forfeited' p16400 aS'forfeited' p16401 asS'utilize' p16402 (lp16403 S'utilizes' p16404 aS'utilizing' p16405 aS'utilized' p16406 aS'utilized' p16407 asS'brain' p16408 (lp16409 S'brains' p16410 aS'braining' p16411 aS'brained' p16412 aS'brained' p16413 asS'brail' p16414 (lp16415 S'brails' p16416 aS'brailing' p16417 aS'brailed' p16418 aS'brailed' p16419 asS'birdy' p16420 (lp16421 S'birdies' p16422 aS'birdying' p16423 aS'birdied' p16424 aS'birdied' p16425 asS'cachinnate' p16426 (lp16427 S'cachinnates' p16428 aS'cachinnating' p16429 aS'cachinnated' p16430 aS'cachinnated' p16431 asS'cold' p16432 (lp16433 S'colds' p16434 aS'colding' p16435 aS'colded' p16436 aS'colded' p16437 asS'still' p16438 (lp16439 S'stills' p16440 aS'stilling' p16441 aS'stilled' p16442 aS'stilled' p16443 asS'trifle' p16444 (lp16445 S'trifles' p16446 aS'trifling' p16447 aS'trifled' p16448 aS'trifled' p16449 asS'cosponsor' p16450 (lp16451 S'cosponsors' p16452 aS'cosponsoring' p16453 aS'cosponsored' p16454 aS'cosponsored' p16455 asS'acknowledge' p16456 (lp16457 S'acknowledges' p16458 aS'acknowledging' p16459 aS'acknowledged' p16460 aS'acknowledged' p16461 asS'moisturize' p16462 (lp16463 S'moisturizes' p16464 aS'moisturizing' p16465 aS'moisturized' p16466 aS'moisturized' p16467 asS'window' p16468 (lp16469 S'windows' p16470 aS'windowing' p16471 aS'windowed' p16472 aS'windowed' p16473 asS'suffocate' p16474 (lp16475 S'suffocates' p16476 aS'suffocating' p16477 aS'suffocated' p16478 aS'suffocated' p16479 asS'waggle' p16480 (lp16481 S'waggles' p16482 aS'waggling' p16483 aS'waggled' p16484 aS'waggled' p16485 asS'interrelate' p16486 (lp16487 S'interrelates' p16488 aS'interrelating' p16489 aS'interrelated' p16490 aS'interrelated' p16491 asS'fling' p16492 (lp16493 S'flings' p16494 aS'flinging' p16495 aS'flung' p16496 aS'flung' p16497 asS'nod' p16498 (lp16499 S'nods' p16500 aS'nodding' p16501 aS'nodded' p16502 aS'nodded' p16503 asS'rake' p16504 (lp16505 S'rakes' p16506 aS'raking' p16507 aS'raked' p16508 aS'raked' p16509 asS'overcrowd' p16510 (lp16511 S'overcrowds' p16512 aS'overcrowding' p16513 aS'overcrowded' p16514 aS'overcrowded' p16515 asS'introduce' p16516 (lp16517 S'introduces' p16518 aS'introducing' p16519 aS'introduced' p16520 aS'introduced' p16521 asS'flint' p16522 (lp16523 S'flints' p16524 aS'flinting' p16525 aS'flinted' p16526 aS'flinted' p16527 asS'recap' p16528 (lp16529 S'recaps' p16530 aS'recaping' p16531 aS'recaped' p16532 aS'recaped' p16533 asS'damnify' p16534 (lp16535 S'damnifies' p16536 aS'damnifying' p16537 aS'damnified' p16538 aS'damnified' p16539 asS'provision' p16540 (lp16541 S'provisions' p16542 aS'provisioning' p16543 aS'provisioned' p16544 aS'provisioned' p16545 asS'discuss' p16546 (lp16547 S'discusses' p16548 aS'discussing' p16549 aS'discussed' p16550 aS'discussed' p16551 asS'expedite' p16552 (lp16553 S'expedites' p16554 aS'expediting' p16555 aS'expedited' p16556 aS'expedited' p16557 asS'wont' p16558 (lp16559 S'wonts' p16560 aS'wonting' p16561 aS'wonted' p16562 aS'wonted' p16563 asS'daub' p16564 (lp16565 S'daubs' p16566 aS'daubing' p16567 aS'daubed' p16568 aS'daubed' p16569 asS'placate' p16570 (lp16571 S'placates' p16572 aS'placating' p16573 aS'placated' p16574 aS'placated' p16575 asS'sop' p16576 (lp16577 S'sops' p16578 aS'sopping' p16579 aS'sopped' p16580 aS'sopped' p16581 asS'drop' p16582 (lp16583 S'drops' p16584 aS'dropping' p16585 aS'dropped' p16586 aS'dropped' p16587 asS'deify' p16588 (lp16589 S'deifies' p16590 aS'deifying' p16591 aS'deified' p16592 aS'deified' p16593 asS'degauss' p16594 (lp16595 S'degausses' p16596 aS'degaussing' p16597 aS'degaussed' p16598 aS'degaussed' p16599 asS'outsail' p16600 (lp16601 S'outsails' p16602 aS'outsailing' p16603 aS'outsailed' p16604 aS'outsailed' p16605 asS'pommel' p16606 (lp16607 S'pommels' p16608 aS'pommelling' p16609 aS'pommelled' p16610 aS'pommelled' p16611 asS'double-fault' p16612 (lp16613 S'double-faults' p16614 aS'double-faulting' p16615 aS'double-faulted' p16616 aS'double-faulted' p16617 asS'enisle' p16618 (lp16619 S'enisles' p16620 aS'enisling' p16621 aS'enisled' p16622 aS'enisled' p16623 asS'grouse' p16624 (lp16625 S'grouses' p16626 aS'grousing' p16627 aS'groused' p16628 aS'groused' p16629 asS'yean' p16630 (lp16631 S'yeans' p16632 aS'yeaning' p16633 aS'yeaned' p16634 aS'yeaned' p16635 asS'obturate' p16636 (lp16637 S'obturates' p16638 aS'obturating' p16639 aS'obturated' p16640 aS'obturated' p16641 asS'replay' p16642 (lp16643 S'replays' p16644 aS'replaying' p16645 aS'replayed' p16646 aS'replayed' p16647 asS'forgat' p16648 (lp16649 S'forgats' p16650 aS'forgating' p16651 aS'forgated' p16652 aS'forgated' p16653 asS'counteract' p16654 (lp16655 S'counteracts' p16656 aS'counteracting' p16657 aS'counteracted' p16658 aS'counteracted' p16659 asS'accomplish' p16660 (lp16661 S'accomplishes' p16662 aS'accomplishing' p16663 aS'accomplished' p16664 aS'accomplished' p16665 asS'precontract' p16666 (lp16667 S'precontracts' p16668 aS'precontracting' p16669 aS'precontracted' p16670 aS'precontracted' p16671 asS'space' p16672 (lp16673 S'spaces' p16674 aS'spacing' p16675 aS'spaced' p16676 aS'spaced' p16677 asS'showd' p16678 (lp16679 S'showds' p16680 aS'showding' p16681 aS'showded' p16682 aS'showded' p16683 asS'thirst' p16684 (lp16685 S'thirsts' p16686 aS'thirsting' p16687 aS'thirsted' p16688 aS'thirsted' p16689 asS'increase' p16690 (lp16691 S'increases' p16692 aS'increasing' p16693 aS'increased' p16694 aS'increased' p16695 asS'hallucinate' p16696 (lp16697 S'hallucinates' p16698 aS'hallucinating' p16699 aS'hallucinated' p16700 aS'hallucinated' p16701 asS'instate' p16702 (lp16703 S'instates' p16704 aS'instating' p16705 aS'instated' p16706 aS'instated' p16707 asS'circumscribe' p16708 (lp16709 S'circumscribes' p16710 aS'circumscribing' p16711 aS'circumscribed' p16712 aS'circumscribed' p16713 asS'tweeze' p16714 (lp16715 S'tweezes' p16716 aS'tweezing' p16717 aS'tweezed' p16718 aS'tweezed' p16719 asS'scandalize' p16720 (lp16721 S'scandalizes' p16722 aS'scandalizing' p16723 aS'scandalized' p16724 aS'scandalized' p16725 asS'carp' p16726 (lp16727 S'carps' p16728 aS'carping' p16729 aS'carped' p16730 aS'carped' p16731 asS'preoccupy' p16732 (lp16733 S'preoccupies' p16734 aS'preoccupying' p16735 aS'preoccupied' p16736 aS'preoccupied' p16737 asS'cark' p16738 (lp16739 S'carks' p16740 aS'carking' p16741 aS'carked' p16742 aS'carked' p16743 asS'conglutinate' p16744 (lp16745 S'conglutinates' p16746 aS'conglutinating' p16747 aS'conglutinated' p16748 aS'conglutinated' p16749 asS'repurchase' p16750 (lp16751 S'repurchases' p16752 aS'repurchasing' p16753 aS'repurchased' p16754 aS'repurchased' p16755 asS'card' p16756 (lp16757 S'cards' p16758 aS'carding' p16759 aS'carded' p16760 aS'carded' p16761 asS'care' p16762 (lp16763 S'cares' p16764 aS'caring' p16765 aS'cared' p16766 aS'cared' p16767 asS'moult' p16768 (lp16769 S'moults' p16770 aS'moulting' p16771 aS'moulted' p16772 aS'moulted' p16773 asS'clarion' p16774 (lp16775 S'clarions' p16776 aS'clarioning' p16777 aS'clarioned' p16778 aS'clarioned' p16779 asS'outcry' p16780 (lp16781 S'outcries' p16782 aS'outcrying' p16783 aS'outcried' p16784 aS'outcried' p16785 asS'profess' p16786 (lp16787 S'professes' p16788 aS'professing' p16789 aS'professed' p16790 aS'professed' p16791 asS'support' p16792 (lp16793 S'supports' p16794 aS'supporting' p16795 aS'supported' p16796 aS'supported' p16797 asS'blind' p16798 (lp16799 S'blinds' p16800 aS'blinding' p16801 aS'blinded' p16802 aS'blinded' p16803 asS'trode' p16804 (lp16805 S'trodes' p16806 aS'troding' p16807 aS'troded' p16808 aS'troded' p16809 asS'antevert' p16810 (lp16811 S'anteverts' p16812 aS'anteverting' p16813 aS'anteverted' p16814 aS'anteverted' p16815 asS'blink' p16816 (lp16817 S'blinks' p16818 aS'blinking' p16819 aS'blinked' p16820 aS'blinked' p16821 asS'consecrate' p16822 (lp16823 S'consecrates' p16824 aS'consecrating' p16825 aS'consecrated' p16826 aS'consecrated' p16827 asS'demote' p16828 (lp16829 S'demotes' p16830 aS'demoting' p16831 aS'demoted' p16832 aS'demoted' p16833 asS'zap' p16834 (lp16835 S'zaps' p16836 aS'zapping' p16837 aS'zapped' p16838 aS'zapped' p16839 asS'size' p16840 (lp16841 S'sizes' p16842 aS'sizing' p16843 aS'sized' p16844 aS'sized' p16845 asS'imprecate' p16846 (lp16847 S'imprecates' p16848 aS'imprecating' p16849 aS'imprecated' p16850 aS'imprecated' p16851 asS'sheer' p16852 (lp16853 S'sheers' p16854 aS'sheering' p16855 aS'sheered' p16856 aS'sheered' p16857 asS'sheet' p16858 (lp16859 S'sheets' p16860 aS'sheeting' p16861 aS'sheeted' p16862 aS'sheeted' p16863 asS'breed' p16864 (lp16865 S'breeds' p16866 aS'breeding' p16867 aS'bred' p16868 aS'bred' p16869 asS'callous' p16870 (lp16871 S'callouses' p16872 aS'callousing' p16873 aS'calloused' p16874 aS'calloused' p16875 asS'purloin' p16876 (lp16877 S'purloins' p16878 aS'purloining' p16879 aS'purloined' p16880 aS'purloined' p16881 asS'checker' p16882 (lp16883 S'checkers' p16884 aS'checkering' p16885 aS'checkered' p16886 aS'checkered' p16887 asS'trephine' p16888 (lp16889 S'trephines' p16890 aS'trephining' p16891 aS'trephined' p16892 aS'trephined' p16893 asS'uncurl' p16894 (lp16895 S'uncurls' p16896 aS'uncurling' p16897 aS'uncurled' p16898 aS'uncurled' p16899 asS'friend' p16900 (lp16901 S'friends' p16902 aS'friending' p16903 aS'friended' p16904 aS'friended' p16905 asS'thaw' p16906 (lp16907 S'thaws' p16908 aS'thawing' p16909 aS'thawed' p16910 aS'thawed' p16911 asS'fraction' p16912 (lp16913 S'fractions' p16914 aS'fractioning' p16915 aS'fractioned' p16916 aS'fractioned' p16917 asS'delate' p16918 (lp16919 S'delates' p16920 aS'delating' p16921 aS'delated' p16922 aS'delated' p16923 asS'repossess' p16924 (lp16925 S'repossesses' p16926 aS'repossessing' p16927 aS'repossessed' p16928 aS'repossessed' p16929 asS'disabuse' p16930 (lp16931 S'disabuses' p16932 aS'disabusing' p16933 aS'disabused' p16934 aS'disabused' p16935 asS'glimmer' p16936 (lp16937 S'glimmers' p16938 aS'glimmering' p16939 aS'glimmered' p16940 aS'glimmered' p16941 asS'peck' p16942 (lp16943 S'pecks' p16944 aS'pecking' p16945 aS'pecked' p16946 aS'pecked' p16947 asS'aromatize' p16948 (lp16949 S'aromatizes' p16950 aS'aromatizing' p16951 aS'aromatized' p16952 aS'aromatized' p16953 asS'hypersensitize' p16954 (lp16955 S'hypersensitizes' p16956 aS'hypersensitizing' p16957 aS'hypersensitized' p16958 aS'hypersensitized' p16959 asS'recruit' p16960 (lp16961 S'recruits' p16962 aS'recruiting' p16963 aS'recruited' p16964 aS'recruited' p16965 asS'cockle' p16966 (lp16967 S'cockles' p16968 aS'cockling' p16969 aS'cockled' p16970 aS'cockled' p16971 asS'double-bank' p16972 (lp16973 S'double-banks' p16974 aS'double-banking' p16975 aS'double-banked' p16976 aS'double-banked' p16977 asS'impinge' p16978 (lp16979 S'impinges' p16980 aS'impinging' p16981 aS'impinged' p16982 aS'impinged' p16983 asS'gobble' p16984 (lp16985 S'gobbles' p16986 aS'gobbling' p16987 aS'gobbled' p16988 aS'gobbled' p16989 asS'extinguish' p16990 (lp16991 S'extinguishes' p16992 aS'extinguishing' p16993 aS'extinguished' p16994 aS'extinguished' p16995 asS'intercalate' p16996 (lp16997 S'intercalates' p16998 aS'intercalating' p16999 aS'intercalated' p17000 aS'intercalated' p17001 asS'decompose' p17002 (lp17003 S'decomposes' p17004 aS'decomposing' p17005 aS'decomposed' p17006 aS'decomposed' p17007 asS'boult' p17008 (lp17009 S'boults' p17010 aS'boulting' p17011 aS'boulted' p17012 aS'boulted' p17013 asS'surname' p17014 (lp17015 S'surnames' p17016 aS'surnaming' p17017 aS'surnamed' p17018 aS'surnamed' p17019 asS'evanish' p17020 (lp17021 S'evanishes' p17022 aS'evanishing' p17023 aS'evanished' p17024 aS'evanished' p17025 asS'slat' p17026 (lp17027 S'slats' p17028 aS'slatting' p17029 aS'slatted' p17030 aS'slatted' p17031 asS'premier' p17032 (lp17033 S'premiers' p17034 aS'premiering' p17035 aS'premiered' p17036 aS'premiered' p17037 asS'slap' p17038 (lp17039 S'slaps' p17040 aS'slapping' p17041 aS'slapped' p17042 aS'slapped' p17043 asS'slam' p17044 (lp17045 S'slams' p17046 aS'slamming' p17047 aS'slammed' p17048 aS'slammed' p17049 asS'anger' p17050 (lp17051 S'angers' p17052 aS'angering' p17053 aS'angered' p17054 aS'angered' p17055 asS'breakfast' p17056 (lp17057 S'breakfasts' p17058 aS'breakfasting' p17059 aS'breakfasted' p17060 aS'breakfasted' p17061 asS'recover' p17062 (lp17063 S'recovers' p17064 aS'recovering' p17065 aS'recovered' p17066 aS'recovered' p17067 asS'slab' p17068 (lp17069 S'slabs' p17070 aS'slabbing' p17071 aS'slabbed' p17072 aS'slabbed' p17073 asS'pong' p17074 (lp17075 S'pongs' p17076 aS'ponging' p17077 aS'ponged' p17078 aS'ponged' p17079 asS'wassail' p17080 (lp17081 S'wassails' p17082 aS'wassailing' p17083 aS'wassailed' p17084 aS'wassailed' p17085 asS'ladyfy' p17086 (lp17087 S'ladyfies' p17088 aS'ladyfying' p17089 aS'ladyfied' p17090 aS'ladyfied' p17091 asS'gangrene' p17092 (lp17093 S'gangrenes' p17094 aS'gangrening' p17095 aS'gangrened' p17096 aS'gangrened' p17097 asS'begin' p17098 (lp17099 S'begins' p17100 aS'beginning' p17101 aS'began' p17102 aS'begun' p17103 asS'mountaineer' p17104 (lp17105 S'mountaineers' p17106 aS'mountaineering' p17107 aS'mountaineered' p17108 aS'mountaineered' p17109 asS'sledge' p17110 (lp17111 S'sleds' p17112 aS'sleding' p17113 aS'sledged' p17114 aS'sledged' p17115 asS'price' p17116 (lp17117 S'prices' p17118 aS'pricing' p17119 aS'priced' p17120 aS'priced' p17121 asS'evaporate' p17122 (lp17123 S'evaporates' p17124 aS'evaporating' p17125 aS'evaporated' p17126 aS'evaporated' p17127 asS'syncretize' p17128 (lp17129 S'syncretizes' p17130 aS'syncretizing' p17131 aS'syncretized' p17132 aS'syncretized' p17133 asS'oxidate' p17134 (lp17135 S'oxidates' p17136 aS'oxidating' p17137 aS'oxidated' p17138 aS'oxidated' p17139 asS'dream' p17140 (lp17141 S'dreams' p17142 aS'dreaming' p17143 aS'dreamt' p17144 aS'dreamt' p17145 asS'reform' p17146 (lp17147 S'reforms' p17148 aS'reforming' p17149 aS'reformed' p17150 aS'reformed' p17151 asS'steady' p17152 (lp17153 S'steadies' p17154 aS'steadying' p17155 aS'steadied' p17156 aS'steadied' p17157 asS'tooth' p17158 (lp17159 S'tooths' p17160 aS'toothing' p17161 aS'toothed' p17162 aS'toothed' p17163 asS'slaver' p17164 (lp17165 S'slavers' p17166 aS'slavering' p17167 aS'slavered' p17168 aS'slavered' p17169 asS'claver' p17170 (lp17171 S'clavers' p17172 aS'clavering' p17173 aS'clavered' p17174 aS'clavered' p17175 asS'overdye' p17176 (lp17177 S'overdyes' p17178 aS'overdying' p17179 aS'overdyed' p17180 aS'overdyed' p17181 asS'boggle' p17182 (lp17183 S'boggles' p17184 aS'boggling' p17185 aS'boggled' p17186 aS'boggled' p17187 asS'ground' p17188 (lp17189 S'grounds' p17190 aS'grounding' p17191 aS'grounded' p17192 aS'grounded' p17193 asS'gnaw' p17194 (lp17195 S'gnaws' p17196 aS'gnawing' p17197 aS'gnawn' p17198 aS'gnawn' p17199 asS'title' p17200 (lp17201 S'titles' p17202 aS'titling' p17203 aS'titled' p17204 aS'titled' p17205 asS'waddy' p17206 (lp17207 S'waddies' p17208 aS'waddying' p17209 aS'waddied' p17210 aS'waddied' p17211 asS'industrialize' p17212 (lp17213 S'industrializes' p17214 aS'industrializing' p17215 aS'industrialized' p17216 aS'industrialized' p17217 asS'jolt' p17218 (lp17219 S'jolts' p17220 aS'jolting' p17221 aS'jolted' p17222 aS'jolted' p17223 asS'transude' p17224 (lp17225 S'transudes' p17226 aS'transuding' p17227 aS'transuded' p17228 aS'transuded' p17229 asS'unravel' p17230 (lp17231 S'unravels' p17232 aS'unravelling' p17233 aS'unravelled' p17234 aS'unravelled' p17235 asS'stain' p17236 (lp17237 S'stains' p17238 aS'staining' p17239 aS'stained' p17240 aS'stained' p17241 asS'skite' p17242 (lp17243 S'skites' p17244 aS'skiting' p17245 aS'skited' p17246 aS'skited' p17247 asS'shrill' p17248 (lp17249 S'shrills' p17250 aS'shrilling' p17251 aS'shrilled' p17252 aS'shrilled' p17253 asS'cannon' p17254 (lp17255 S'cannons' p17256 aS'cannoning' p17257 aS'cannoned' p17258 aS'cannoned' p17259 asS'drydock' p17260 (lp17261 S'drydocks' p17262 aS'drydocking' p17263 aS'drydocked' p17264 aS'drydocked' p17265 asS'celebrate' p17266 (lp17267 S'celebrates' p17268 aS'celebrating' p17269 aS'celebrated' p17270 aS'celebrated' p17271 asS'deprecate' p17272 (lp17273 S'deprecates' p17274 aS'deprecating' p17275 aS'deprecated' p17276 aS'deprecated' p17277 asS'leather' p17278 (lp17279 S'leathers' p17280 aS'leathering' p17281 aS'leathered' p17282 aS'leathered' p17283 asS'bullwhip' p17284 (lp17285 S'bullwhips' p17286 aS'bullwhipping' p17287 aS'bullwhipped' p17288 aS'bullwhipped' p17289 asS'entomb' p17290 (lp17291 S'entombs' p17292 aS'entombing' p17293 aS'entombed' p17294 aS'entombed' p17295 asS'husband' p17296 (lp17297 S'husbands' p17298 aS'husbanding' p17299 aS'husbanded' p17300 aS'husbanded' p17301 asS'murdabad' p17302 (lp17303 S'murdabads' p17304 aS'murdabading' p17305 aS'murdabaded' p17306 aS'murdabaded' p17307 asS'burst' p17308 (lp17309 S'bursts' p17310 aS'bursting' p17311 aS'burst' p17312 aS'burst' p17313 asS'allegorize' p17314 (lp17315 S'allegorizes' p17316 aS'allegorizing' p17317 aS'allegorized' p17318 aS'allegorized' p17319 asS'whitewash' p17320 (lp17321 S'whitewashes' p17322 aS'whitewashing' p17323 aS'whitewashed' p17324 aS'whitewashed' p17325 asS'unfit' p17326 (lp17327 S'unfits' p17328 aS'unfitting' p17329 aS'unfitted' p17330 aS'unfitted' p17331 asS'inseminate' p17332 (lp17333 S'inseminates' p17334 aS'inseminating' p17335 aS'inseminated' p17336 aS'inseminated' p17337 asS'habilitate' p17338 (lp17339 S'habilitates' p17340 aS'habilitating' p17341 aS'habilitated' p17342 aS'habilitated' p17343 asS'sport' p17344 (lp17345 S'sports' p17346 aS'sporting' p17347 aS'sported' p17348 aS'sported' p17349 asS're-tread' p17350 (lp17351 S're-treads' p17352 aS're-treading' p17353 aS'retrod' p17354 aS'retrodden' p17355 asS'laicize' p17356 (lp17357 S'laicizes' p17358 aS'laicizing' p17359 aS'laicized' p17360 aS'laicized' p17361 asS'concern' p17362 (lp17363 S'concerns' p17364 aS'concerning' p17365 aS'concerned' p17366 aS'concerned' p17367 asS'canoodle' p17368 (lp17369 S'canoodles' p17370 aS'canoodling' p17371 aS'canoodled' p17372 aS'canoodled' p17373 asS'pomade' p17374 (lp17375 S'pomades' p17376 aS'pomading' p17377 aS'pomaded' p17378 aS'pomaded' p17379 asS'incite' p17380 (lp17381 S'incites' p17382 aS'inciting' p17383 aS'incited' p17384 aS'incited' p17385 asS'glaze' p17386 (lp17387 S'glazes' p17388 aS'glazing' p17389 aS'glazed' p17390 aS'glazed' p17391 asS'rephrase' p17392 (lp17393 S'rephrases' p17394 aS'rephrasing' p17395 aS'rephrased' p17396 aS'rephrased' p17397 asS'gazette' p17398 (lp17399 S'gazettes' p17400 aS'gazetting' p17401 aS'gazetted' p17402 aS'gazetted' p17403 asS'import' p17404 (lp17405 S'imports' p17406 aS'importing' p17407 aS'imported' p17408 aS'imported' p17409 asS'clench' p17410 (lp17411 S'clenches' p17412 aS'clenching' p17413 aS'clenched' p17414 aS'clenched' p17415 asS'orchestrate' p17416 (lp17417 S'orchestrates' p17418 aS'orchestrating' p17419 aS'orchestrated' p17420 aS'orchestrated' p17421 asS'notice' p17422 (lp17423 S'notices' p17424 aS'noticing' p17425 aS'noticed' p17426 aS'noticed' p17427 asS'pettifog' p17428 (lp17429 S'pettifogs' p17430 aS'pettifogging' p17431 aS'pettifogged' p17432 aS'pettifogged' p17433 asS'transpose' p17434 (lp17435 S'transposes' p17436 aS'transposing' p17437 aS'transposed' p17438 aS'transposed' p17439 asS'rerun' p17440 (lp17441 S'reruns' p17442 aS'rerunning' p17443 aS'reran' p17444 aS'rerun' p17445 asS'pluck' p17446 (lp17447 S'plucks' p17448 aS'plucking' p17449 aS'plucked' p17450 aS'plucked' p17451 asS'blame' p17452 (lp17453 S'blames' p17454 aS'blaming' p17455 aS'blamed' p17456 aS'blamed' p17457 asS'powerdive' p17458 (lp17459 S'powerdives' p17460 aS'powerdiving' p17461 aS'powerdived' p17462 aS'powerdived' p17463 asS'decoke' p17464 (lp17465 S'decokes' p17466 aS'decoking' p17467 aS'decoked' p17468 aS'decoked' p17469 asS'hydrate' p17470 (lp17471 S'hydrates' p17472 aS'hydrating' p17473 aS'hydrated' p17474 aS'hydrated' p17475 asS'animalize' p17476 (lp17477 S'animalizes' p17478 aS'animalizing' p17479 aS'animalized' p17480 aS'animalized' p17481 asS'syllabify' p17482 (lp17483 S'syllabifies' p17484 aS'syllabifying' p17485 aS'syllabified' p17486 aS'syllabified' p17487 asS'cleave' p17488 (lp17489 S'cleaves' p17490 aS'cleaving' p17491 aS'clove' p17492 aS'cloven' p17493 asS'glide' p17494 (lp17495 S'glides' p17496 aS'gliding' p17497 aS'glided' p17498 aS'glided' p17499 asS'guffaw' p17500 (lp17501 S'guffaws' p17502 aS'guffawing' p17503 aS'guffawed' p17504 aS'guffawed' p17505 asS'pertain' p17506 (lp17507 S'pertains' p17508 aS'pertaining' p17509 aS'pertained' p17510 aS'pertained' p17511 asS'adhibit' p17512 (lp17513 S'adhibits' p17514 aS'adhibiting' p17515 aS'adhibited' p17516 aS'adhibited' p17517 asS'retort' p17518 (lp17519 S'retorts' p17520 aS'retorting' p17521 aS'retorted' p17522 aS'retorted' p17523 asS'evict' p17524 (lp17525 S'evicts' p17526 aS'evicting' p17527 aS'evicted' p17528 aS'evicted' p17529 asS'disentitle' p17530 (lp17531 S'disentitles' p17532 aS'disentitling' p17533 aS'disentitled' p17534 aS'disentitled' p17535 asS'despond' p17536 (lp17537 S'desponds' p17538 aS'desponding' p17539 aS'desponded' p17540 aS'desponded' p17541 asS'wreathe' p17542 (lp17543 S'wreathes' p17544 aS'wreathing' p17545 aS'wreathed' p17546 aS'wreathed' p17547 asS'mummify' p17548 (lp17549 S'mummifies' p17550 aS'mummifying' p17551 aS'mummified' p17552 aS'mummified' p17553 asS'dispatch' p17554 (lp17555 S'dispatches' p17556 aS'dispatching' p17557 aS'dispatched' p17558 aS'dispatched' p17559 asS'exploit' p17560 (lp17561 S'exploits' p17562 aS'exploiting' p17563 aS'exploited' p17564 aS'exploited' p17565 asS'forehand' p17566 (lp17567 S'forehands' p17568 aS'forehanding' p17569 aS'forehanded' p17570 aS'forehanded' p17571 asS'labialize' p17572 (lp17573 S'labializes' p17574 aS'labializing' p17575 aS'labialized' p17576 aS'labialized' p17577 asS'deregister' p17578 (lp17579 S'deregisters' p17580 aS'deregistering' p17581 aS'deregistered' p17582 aS'deregistered' p17583 asS'uglify' p17584 (lp17585 S'uglifies' p17586 aS'uglifying' p17587 aS'uglified' p17588 aS'uglified' p17589 asS'resort' p17590 (lp17591 S'resorts' p17592 aS'resorting' p17593 aS'resorted' p17594 aS'resorted' p17595 asS'sket' p17596 (lp17597 S'skets' p17598 aS'sketting' p17599 aS'sketted' p17600 aS'sketted' p17601 asS'invert' p17602 (lp17603 S'inverts' p17604 aS'inverting' p17605 aS'inverted' p17606 aS'inverted' p17607 asS'overjoy' p17608 (lp17609 S'overjoys' p17610 aS'overjoying' p17611 aS'overjoyed' p17612 aS'overjoyed' p17613 asS'toss' p17614 (lp17615 S'tosses' p17616 aS'tossing' p17617 aS'tossed' p17618 aS'tossed' p17619 asS'asphyxiate' p17620 (lp17621 S'asphyxiates' p17622 aS'asphyxiating' p17623 aS'asphyxiated' p17624 aS'asphyxiated' p17625 asS'conflate' p17626 (lp17627 S'conflates' p17628 aS'conflating' p17629 aS'conflated' p17630 aS'conflated' p17631 asS'deescalate' p17632 (lp17633 S'deescalates' p17634 aS'deescalating' p17635 aS'deescalated' p17636 aS'deescalated' p17637 asS'agglutinate' p17638 (lp17639 S'agglutinates' p17640 aS'agglutinating' p17641 aS'agglutinated' p17642 aS'agglutinated' p17643 asS'disport' p17644 (lp17645 S'disports' p17646 aS'disporting' p17647 aS'disported' p17648 aS'disported' p17649 asS'encage' p17650 (lp17651 S'encages' p17652 aS'encaging' p17653 aS'encaged' p17654 aS'encaged' p17655 asS'crumb' p17656 (lp17657 S'crumbs' p17658 aS'crumbing' p17659 aS'crumbed' p17660 aS'crumbed' p17661 asS'compartmentalize' p17662 (lp17663 S'compartmentalizes' p17664 aS'compartmentalizing' p17665 aS'compartmentalized' p17666 aS'compartmentalized' p17667 asS'soft-solder' p17668 (lp17669 S'soft-solders' p17670 aS'soft-soldering' p17671 aS'soft-soldered' p17672 aS'soft-soldered' p17673 asS'trick' p17674 (lp17675 S'tricks' p17676 aS'tricking' p17677 aS'tricked' p17678 aS'tricked' p17679 asS'scud' p17680 (lp17681 S'scuds' p17682 aS'scudding' p17683 aS'scudded' p17684 aS'scudded' p17685 asS'crump' p17686 (lp17687 S'crumps' p17688 aS'crumping' p17689 aS'crumped' p17690 aS'crumped' p17691 asS'scum' p17692 (lp17693 S'scums' p17694 aS'scumming' p17695 aS'scummed' p17696 aS'scummed' p17697 asS'prevue' p17698 (lp17699 S'prevues' p17700 aS'prevuing' p17701 aS'prevued' p17702 aS'prevued' p17703 asS'trice' p17704 (lp17705 S'trices' p17706 aS'tricing' p17707 aS'triced' p17708 aS'triced' p17709 asS'forbear' p17710 (lp17711 S'forbears' p17712 aS'forbearing' p17713 aS'forbore' p17714 aS'forborne' p17715 asS'Americanize' p17716 (lp17717 S'Americanizes' p17718 aS'Americanizing' p17719 aS'Americanized' p17720 aS'Americanized' p17721 asS'soil' p17722 (lp17723 S'soils' p17724 aS'soiling' p17725 aS'soiled' p17726 aS'soiled' p17727 asS'suss' p17728 (lp17729 S'susses' p17730 aS'sussing' p17731 aS'sussed' p17732 aS'sussed' p17733 asS'bias' p17734 (lp17735 S'biases' p17736 aS'biassing' p17737 aS'biassed' p17738 aS'biassed' p17739 asS'embrace' p17740 (lp17741 S'embraces' p17742 aS'embracing' p17743 aS'embraced' p17744 aS'embraced' p17745 asS'beaver' p17746 (lp17747 S'beavers' p17748 aS'beavering' p17749 aS'beavered' p17750 aS'beavered' p17751 asS'hent' p17752 (lp17753 S'hents' p17754 aS'henting' p17755 aS'hented' p17756 aS'hented' p17757 asS'worry' p17758 (lp17759 S'worries' p17760 aS'worrying' p17761 aS'worried' p17762 aS'worried' p17763 asS'impassion' p17764 (lp17765 S'impassions' p17766 aS'impassioning' p17767 aS'impassioned' p17768 aS'impassioned' p17769 asS'unbutton' p17770 (lp17771 S'unbuttons' p17772 aS'unbuttoning' p17773 aS'unbuttoned' p17774 aS'unbuttoned' p17775 asS'inquire' p17776 (lp17777 S'inquires' p17778 aS'inquiring' p17779 aS'inquired' p17780 aS'inquired' p17781 asS'pester' p17782 (lp17783 S'pesters' p17784 aS'pestering' p17785 aS'pestered' p17786 aS'pestered' p17787 asS'coke' p17788 (lp17789 S'cokes' p17790 aS'coking' p17791 aS'coked' p17792 aS'coked' p17793 asS'unthread' p17794 (lp17795 S'unthreads' p17796 aS'unthreading' p17797 aS'unthreaded' p17798 aS'unthreaded' p17799 asS'about-turn' p17800 (lp17801 S'about-turns' p17802 aS'about-turning' p17803 aS'about-turned' p17804 aS'about-turned' p17805 asS'document' p17806 (lp17807 S'documents' p17808 aS'documenting' p17809 aS'documented' p17810 aS'documented' p17811 asS'finish' p17812 (lp17813 S'finishes' p17814 aS'finishing' p17815 aS'finished' p17816 aS'finished' p17817 asS'iceskate' p17818 (lp17819 S'iceskates' p17820 aS'iceskating' p17821 aS'iceskated' p17822 aS'iceskated' p17823 asS'unlace' p17824 (lp17825 S'unlaces' p17826 aS'unlacing' p17827 aS'unlaced' p17828 aS'unlaced' p17829 asS'foal' p17830 (lp17831 S'foals' p17832 aS'foaling' p17833 aS'foaled' p17834 aS'foaled' p17835 asS'foam' p17836 (lp17837 S'foams' p17838 aS'foaming' p17839 aS'foamed' p17840 aS'foamed' p17841 asS'draghunt' p17842 (lp17843 S'drags' p17844 aS'draghunting' p17845 aS'draghunted' p17846 aS'draghunted' p17847 asS'fruit' p17848 (lp17849 S'fruits' p17850 aS'fruiting' p17851 aS'fruited' p17852 aS'fruited' p17853 asS'puff' p17854 (lp17855 S'puffs' p17856 aS'puffing' p17857 aS'puffed' p17858 aS'puffed' p17859 asS'obvert' p17860 (lp17861 S'obverts' p17862 aS'obverting' p17863 aS'obverted' p17864 aS'obverted' p17865 asS'smelt' p17866 (lp17867 S'smelts' p17868 aS'smelting' p17869 aS'smelted' p17870 aS'smelted' p17871 asS'validate' p17872 (lp17873 S'validates' p17874 aS'validating' p17875 aS'validated' p17876 aS'validated' p17877 asS'breeze' p17878 (lp17879 S'breezes' p17880 aS'breezing' p17881 aS'breezed' p17882 aS'breezed' p17883 asS'demean' p17884 (lp17885 S'demeans' p17886 aS'demeaning' p17887 aS'demeaned' p17888 aS'demeaned' p17889 asS'hypostatize' p17890 (lp17891 S'hypostatizes' p17892 aS'hypostatizing' p17893 aS'hypostatized' p17894 aS'hypostatized' p17895 asS'alleviate' p17896 (lp17897 S'alleviates' p17898 aS'alleviating' p17899 aS'alleviated' p17900 aS'alleviated' p17901 asS'perpend' p17902 (lp17903 S'perpends' p17904 aS'perpending' p17905 aS'perpended' p17906 aS'perpended' p17907 asS'coordinate' p17908 (lp17909 S'coordinates' p17910 aS'coordinating' p17911 aS'coordinated' p17912 aS'coordinated' p17913 asS'vomit' p17914 (lp17915 S'vomits' p17916 aS'vomiting' p17917 aS'vomited' p17918 aS'vomited' p17919 asS'taxi' p17920 (lp17921 S'taxies' p17922 aS'taxying' p17923 aS'taxied' p17924 aS'taxied' p17925 asS'vent' p17926 (lp17927 S'vents' p17928 aS'venting' p17929 aS'vented' p17930 aS'vented' p17931 asS'centuplicate' p17932 (lp17933 S'centuplicates' p17934 aS'centuplicating' p17935 aS'centuplicated' p17936 aS'centuplicated' p17937 asS'armour' p17938 (lp17939 S'armours' p17940 aS'armouring' p17941 aS'armoured' p17942 aS'armoured' p17943 asS'jaup' p17944 (lp17945 S'jaups' p17946 aS'jauping' p17947 aS'jauped' p17948 aS'jauped' p17949 asS'sulphate' p17950 (lp17951 S'sulphates' p17952 aS'sulphating' p17953 aS'sulphated' p17954 aS'sulphated' p17955 asS'touch' p17956 (lp17957 S'touches' p17958 aS'touching' p17959 aS'touched' p17960 aS'touched' p17961 asS'tare' p17962 (lp17963 S'tares' p17964 aS'taring' p17965 aS'tared' p17966 aS'tared' p17967 asS'speed' p17968 (lp17969 S'speeds' p17970 aS'speeding' p17971 aS'speeded' p17972 aS'speeded' p17973 asS'domicile' p17974 (lp17975 S'domicils' p17976 aS'domiciling' p17977 aS'domiciled' p17978 aS'domiciled' p17979 asS'refurbish' p17980 (lp17981 S'refurbishes' p17982 aS'refurbishing' p17983 aS'refurbished' p17984 aS'refurbished' p17985 asS'counterpunch' p17986 (lp17987 S'counterpunches' p17988 aS'counterpunching' p17989 aS'counterpunched' p17990 aS'counterpunched' p17991 asS'allude' p17992 (lp17993 S'alludes' p17994 aS'alluding' p17995 aS'alluded' p17996 aS'alluded' p17997 asS'verse' p17998 (lp17999 S'verses' p18000 aS'versing' p18001 aS'versed' p18002 aS'versed' p18003 asS'cogitate' p18004 (lp18005 S'cogitates' p18006 aS'cogitating' p18007 aS'cogitated' p18008 aS'cogitated' p18009 asS'Russianize' p18010 (lp18011 S'Russianizes' p18012 aS'Russianizing' p18013 aS'Russianized' p18014 aS'Russianized' p18015 asS'disproportionate' p18016 (lp18017 S'disproportionates' p18018 aS'disproportionating' p18019 aS'disproportionated' p18020 aS'disproportionated' p18021 asS'lade' p18022 (lp18023 S'lades' p18024 aS'lading' p18025 aS'laded' p18026 aS'laden' p18027 asS'ream' p18028 (lp18029 S'reams' p18030 aS'reaming' p18031 aS'reamed' p18032 aS'reamed' p18033 asS'hover' p18034 (lp18035 S'hovers' p18036 aS'hovering' p18037 aS'hovered' p18038 aS'hovered' p18039 asS'frown' p18040 (lp18041 S'frowns' p18042 aS'frowning' p18043 aS'frowned' p18044 aS'frowned' p18045 asS'stunk' p18046 (lp18047 S'stunks' p18048 aS'stunking' p18049 aS'stunked' p18050 aS'stunked' p18051 asS'read' p18052 (lp18053 S'reads' p18054 aS'reading' p18055 aS'read' p18056 aS'read' p18057 asS'swig' p18058 (lp18059 S'swigs' p18060 aS'swigging' p18061 aS'swigged' p18062 aS'swigged' p18063 asS'plodge' p18064 (lp18065 S'plodges' p18066 aS'plodging' p18067 aS'plodged' p18068 aS'plodged' p18069 asS'detoxify' p18070 (lp18071 S'detoxifies' p18072 aS'detoxifying' p18073 aS'detoxified' p18074 aS'detoxified' p18075 asS'leapfrog' p18076 (lp18077 S'leapfrogs' p18078 aS'leapfrogging' p18079 aS'leapfrogged' p18080 aS'leapfrogged' p18081 asS'detract' p18082 (lp18083 S'detracts' p18084 aS'detracting' p18085 aS'detracted' p18086 aS'detracted' p18087 asS'stunt' p18088 (lp18089 S'stunts' p18090 aS'stunting' p18091 aS'stunted' p18092 aS'stunted' p18093 asS'reap' p18094 (lp18095 S'reaps' p18096 aS'reaping' p18097 aS'reaped' p18098 aS'reaped' p18099 asS'hovel' p18100 (lp18101 S'hovels' p18102 aS'hovelling' p18103 aS'hovelled' p18104 aS'hovelled' p18105 asS'rear' p18106 (lp18107 S'rears' p18108 aS'rearing' p18109 aS'reared' p18110 aS'reared' p18111 asS'secularize' p18112 (lp18113 S'secularizes' p18114 aS'secularizing' p18115 aS'secularized' p18116 aS'secularized' p18117 asS'chainreact' p18118 (lp18119 S'chainreacts' p18120 aS'chainreacting' p18121 aS'chainreacted' p18122 aS'chainreacted' p18123 asS'commove' p18124 (lp18125 S'commoves' p18126 aS'commoving' p18127 aS'commoved' p18128 aS'commoved' p18129 asS'fortune' p18130 (lp18131 S'fortunes' p18132 aS'fortuning' p18133 aS'fortuned' p18134 aS'fortuned' p18135 asS'misquote' p18136 (lp18137 S'misquotes' p18138 aS'misquoting' p18139 aS'misquoted' p18140 aS'misquoted' p18141 asS'roll' p18142 (lp18143 S'rolls' p18144 aS'rolling' p18145 aS'rolled' p18146 aS'rolled' p18147 asS'engross' p18148 (lp18149 S'engrosses' p18150 aS'engrossing' p18151 aS'engrossed' p18152 aS'engrossed' p18153 asS'interleave' p18154 (lp18155 S'interleaves' p18156 aS'interleaving' p18157 aS'interleaved' p18158 aS'interleaved' p18159 asS'benefit' p18160 (lp18161 S'benefits' p18162 aS'benefiting' p18163 aS'benefited' p18164 aS'benefited' p18165 asS'hoarsen' p18166 (lp18167 S'hoarsens' p18168 aS'hoarsening' p18169 aS'hoarsened' p18170 aS'hoarsened' p18171 asS'ensile' p18172 (lp18173 S'ensiles' p18174 aS'ensiling' p18175 aS'ensiled' p18176 aS'ensiled' p18177 asS'laugh' p18178 (lp18179 S'laughs' p18180 aS'laughing' p18181 aS'laughed' p18182 aS'laughed' p18183 asS'Orientalize' p18184 (lp18185 S'Orientalizes' p18186 aS'Orientalizing' p18187 aS'Orientalized' p18188 aS'Orientalized' p18189 asS'hemorrhage' p18190 (lp18191 S'hemorrhages' p18192 aS'hemorrhaging' p18193 aS'hemorrhaged' p18194 aS'hemorrhaged' p18195 asS'squirm' p18196 (lp18197 S'squirms' p18198 aS'squirming' p18199 aS'squirmed' p18200 aS'squirmed' p18201 asS'hebetate' p18202 (lp18203 S'hebetates' p18204 aS'hebetating' p18205 aS'hebetated' p18206 aS'hebetated' p18207 asS'putter' p18208 (lp18209 S'putters' p18210 aS'puttering' p18211 aS'puttered' p18212 aS'puttered' p18213 asS'squire' p18214 (lp18215 S'squires' p18216 aS'squiring' p18217 aS'squired' p18218 aS'squired' p18219 asS'touchtype' p18220 (lp18221 S'touchtypes' p18222 aS'touchtyping' p18223 aS'touchtyped' p18224 aS'touchtyped' p18225 asS'circumnavigate' p18226 (lp18227 S'circumnavigates' p18228 aS'circumnavigating' p18229 aS'circumnavigated' p18230 aS'circumnavigated' p18231 asS'squirt' p18232 (lp18233 S'squirts' p18234 aS'squirting' p18235 aS'squirted' p18236 aS'squirted' p18237 asS'underbuy' p18238 (lp18239 S'underbuys' p18240 aS'underbuying' p18241 aS'underbought' p18242 aS'underbought' p18243 asS'unstring' p18244 (lp18245 S'unstrings' p18246 aS'unstringing' p18247 aS'unstrung' p18248 aS'unstrung' p18249 asS'hustle' p18250 (lp18251 S'hustles' p18252 aS'hustling' p18253 aS'hustled' p18254 aS'hustled' p18255 asS'sadden' p18256 (lp18257 S'saddens' p18258 aS'saddening' p18259 aS'saddened' p18260 aS'saddened' p18261 asS'revivify' p18262 (lp18263 S'revivifies' p18264 aS'revivifying' p18265 aS'revivified' p18266 aS'revivified' p18267 asS'seine' p18268 (lp18269 S'seines' p18270 aS'seining' p18271 aS'seined' p18272 aS'seined' p18273 asS'steam-heat' p18274 (lp18275 S'steam-heats' p18276 aS'steam-heating' p18277 aS'steam-heated' p18278 aS'steam-heated' p18279 asS'restring' p18280 (lp18281 S'restrings' p18282 aS'restringing' p18283 aS'restrung' p18284 aS'restrung' p18285 asS'assemble' p18286 (lp18287 S'assembles' p18288 aS'assembling' p18289 aS'assembled' p18290 aS'assembled' p18291 asS'throw' p18292 (lp18293 S'throws' p18294 aS'throwing' p18295 aS'threw' p18296 aS'thrown' p18297 asS'emasculate' p18298 (lp18299 S'emasculates' p18300 aS'emasculating' p18301 aS'emasculated' p18302 aS'emasculated' p18303 asS'placard' p18304 (lp18305 S'placards' p18306 aS'placarding' p18307 aS'placarded' p18308 aS'placarded' p18309 asS'cutinize' p18310 (lp18311 S'cutinizes' p18312 aS'cutinizing' p18313 aS'cutinized' p18314 aS'cutinized' p18315 asS'chop' p18316 (lp18317 S'chops' p18318 aS'chopping' p18319 aS'chopped' p18320 aS'chopped' p18321 asS'wolf' p18322 (lp18323 S'wolfs' p18324 aS'wolfing' p18325 aS'wolfed' p18326 aS'wolfed' p18327 asS'internalize' p18328 (lp18329 S'internalizes' p18330 aS'internalizing' p18331 aS'internalized' p18332 aS'internalized' p18333 asS'unquote' p18334 (lp18335 S'unquotes' p18336 aS'unquoting' p18337 aS'unquoted' p18338 aS'unquoted' p18339 asS'skunks' p18340 (lp18341 S'skunkses' p18342 aS'skunksing' p18343 aS'skunksed' p18344 aS'skunksed' p18345 asS'intromit' p18346 (lp18347 S'intromits' p18348 aS'intromitting' p18349 aS'intromitted' p18350 aS'intromitted' p18351 asS'lionize' p18352 (lp18353 S'lionizes' p18354 aS'lionizing' p18355 aS'lionized' p18356 aS'lionized' p18357 asS'resuscitate' p18358 (lp18359 S'resuscitates' p18360 aS'resuscitating' p18361 aS'resuscitated' p18362 aS'resuscitated' p18363 asS'lob' p18364 (lp18365 S'lobs' p18366 aS'lobbing' p18367 aS'lobbed' p18368 aS'lobbed' p18369 asS'log' p18370 (lp18371 S'logs' p18372 aS'logging' p18373 aS'logged' p18374 aS'logged' p18375 asS'countermine' p18376 (lp18377 S'countermines' p18378 aS'countermining' p18379 aS'countermined' p18380 aS'countermined' p18381 asS'preregister' p18382 (lp18383 S'preregisters' p18384 aS'preregistering' p18385 aS'preregistered' p18386 aS'preregistered' p18387 asS'criminate' p18388 (lp18389 S'criminates' p18390 aS'criminating' p18391 aS'criminated' p18392 aS'criminated' p18393 asS'wigwag' p18394 (lp18395 S'wigwags' p18396 aS'wigwagging' p18397 aS'wigwagged' p18398 aS'wigwagged' p18399 asS'doublepark' p18400 (lp18401 S'doubleparks' p18402 aS'doubleparking' p18403 aS'doubleparked' p18404 aS'doubleparked' p18405 asS'lop' p18406 (lp18407 S'lops' p18408 aS'lopping' p18409 aS'lopped' p18410 aS'lopped' p18411 asS'lot' p18412 (lp18413 S'lots' p18414 aS'lotting' p18415 aS'lotted' p18416 aS'lotted' p18417 asS'smock' p18418 (lp18419 S'smocks' p18420 aS'smocking' p18421 aS'smocked' p18422 aS'smocked' p18423 asS'gudgeon' p18424 (lp18425 S'gudgeons' p18426 aS'gudgeoning' p18427 aS'gudgeoned' p18428 aS'gudgeoned' p18429 asS'glaciate' p18430 (lp18431 S'glaciates' p18432 aS'glaciating' p18433 aS'glaciated' p18434 aS'glaciated' p18435 asS'groan' p18436 (lp18437 S'groans' p18438 aS'groaning' p18439 aS'groaned' p18440 aS'groaned' p18441 asS'garrotte' p18442 (lp18443 S'garrottes' p18444 aS'garrotting' p18445 aS'garrotted' p18446 aS'garrotted' p18447 asS'deject' p18448 (lp18449 S'dejects' p18450 aS'dejecting' p18451 aS'dejected' p18452 aS'dejected' p18453 asS'recoil' p18454 (lp18455 S'recoils' p18456 aS'recoiling' p18457 aS'recoiled' p18458 aS'recoiled' p18459 asS'gatecrash' p18460 (lp18461 S'gatecrashes' p18462 aS'gatecrashing' p18463 aS'gatecrashed' p18464 aS'gatecrashed' p18465 asS'hire' p18466 (lp18467 S'hires' p18468 aS'hiring' p18469 aS'hired' p18470 aS'hired' p18471 asS'expropriate' p18472 (lp18473 S'expropriates' p18474 aS'expropriating' p18475 aS'expropriated' p18476 aS'expropriated' p18477 asS'skedaddle' p18478 (lp18479 S'skedaddles' p18480 aS'skedaddling' p18481 aS'skedaddled' p18482 aS'skedaddled' p18483 asS'hoiden' p18484 (lp18485 S'hoidens' p18486 aS'hoidening' p18487 aS'hoidened' p18488 aS'hoidened' p18489 asS'default' p18490 (lp18491 S'defaults' p18492 aS'defaulting' p18493 aS'defaulted' p18494 aS'defaulted' p18495 asS'enchase' p18496 (lp18497 S'enchases' p18498 aS'enchasing' p18499 aS'enchased' p18500 aS'enchased' p18501 asS'bucket' p18502 (lp18503 S'buckets' p18504 aS'bucketing' p18505 aS'bucketed' p18506 aS'bucketed' p18507 asS'overpay' p18508 (lp18509 S'overpays' p18510 aS'overpaying' p18511 aS'overpaid' p18512 aS'overpaid' p18513 asS'cleck' p18514 (lp18515 S'clecks' p18516 aS'clecking' p18517 aS'clecked' p18518 aS'clecked' p18519 asS'dander' p18520 (lp18521 S'danders' p18522 aS'dandering' p18523 aS'dandered' p18524 aS'dandered' p18525 asS'popularize' p18526 (lp18527 S'popularizes' p18528 aS'popularizing' p18529 aS'popularized' p18530 aS'popularized' p18531 asS'electrolyze' p18532 (lp18533 S'electrolyzes' p18534 aS'electrolyzing' p18535 aS'electrolyzed' p18536 aS'electrolyzed' p18537 asS'undertake' p18538 (lp18539 S'undertakes' p18540 aS'undertaking' p18541 aS'undertook' p18542 aS'undertaken' p18543 asS'subdue' p18544 (lp18545 S'subdues' p18546 aS'subduing' p18547 aS'subdued' p18548 aS'subdued' p18549 asS'describe' p18550 (lp18551 S'describes' p18552 aS'describing' p18553 aS'described' p18554 aS'described' p18555 asS'denationalize' p18556 (lp18557 S'denationalizes' p18558 aS'denationalizing' p18559 aS'denationalized' p18560 aS'denationalized' p18561 asS'sheath' p18562 (lp18563 S'sheaths' p18564 aS'sheathing' p18565 aS'sheathed' p18566 aS'sheathed' p18567 asS'impend' p18568 (lp18569 S'impends' p18570 aS'impending' p18571 aS'impended' p18572 aS'impended' p18573 asS'confab' p18574 (lp18575 S'confabs' p18576 aS'confabbing' p18577 aS'confabbed' p18578 aS'confabbed' p18579 asS'backstroke' p18580 (lp18581 S'backstrokes' p18582 aS'backstroking' p18583 aS'backstroked' p18584 aS'backstroked' p18585 asS'trample' p18586 (lp18587 S'tramples' p18588 aS'trampling' p18589 aS'trampled' p18590 aS'trampled' p18591 asS'colly' p18592 (lp18593 S'collies' p18594 aS'collying' p18595 aS'collied' p18596 aS'collied' p18597 asS'quadrisect' p18598 (lp18599 S'quadrisects' p18600 aS'quadrisecting' p18601 aS'quadrisected' p18602 aS'quadrisected' p18603 asS'poop' p18604 (lp18605 S'poops' p18606 aS'pooping' p18607 aS'pooped' p18608 aS'pooped' p18609 asS'vaccinate' p18610 (lp18611 S'vaccinates' p18612 aS'vaccinating' p18613 aS'vaccinated' p18614 aS'vaccinated' p18615 asS'drift' p18616 (lp18617 S'drifts' p18618 aS'drifting' p18619 aS'drifted' p18620 aS'drifted' p18621 asS'carpenter' p18622 (lp18623 S'carpenters' p18624 aS'carpentering' p18625 aS'carpentered' p18626 aS'carpentered' p18627 asS'overreact' p18628 (lp18629 S'overreacts' p18630 aS'overreacting' p18631 aS'overreacted' p18632 aS'overreacted' p18633 asS'peal' p18634 (lp18635 S'peals' p18636 aS'pealing' p18637 aS'pealed' p18638 aS'pealed' p18639 asS'peak' p18640 (lp18641 S'peaks' p18642 aS'peaking' p18643 aS'peaked' p18644 aS'peaked' p18645 asS'pool' p18646 (lp18647 S'pools' p18648 aS'pooling' p18649 aS'pooled' p18650 aS'pooled' p18651 asS'assert' p18652 (lp18653 S'asserts' p18654 aS'asserting' p18655 aS'asserted' p18656 aS'asserted' p18657 asS'dabble' p18658 (lp18659 S'dabbles' p18660 aS'dabbling' p18661 aS'dabbled' p18662 aS'dabbled' p18663 asS'smooch' p18664 (lp18665 S'smooches' p18666 aS'smooching' p18667 aS'smooched' p18668 aS'smooched' p18669 asS'phonate' p18670 (lp18671 S'phonates' p18672 aS'phonating' p18673 aS'phonated' p18674 aS'phonated' p18675 asS'untidy' p18676 (lp18677 S'untidies' p18678 aS'untidying' p18679 aS'untidied' p18680 aS'untidied' p18681 asS'moonlight' p18682 (lp18683 S'moonlights' p18684 aS'moonlighting' p18685 aS'moonlighted' p18686 aS'moonlighted' p18687 asS'head-load' p18688 (lp18689 S'head-loads' p18690 aS'head-loading' p18691 aS'head-loaded' p18692 aS'head-loaded' p18693 asS'requisition' p18694 (lp18695 S'requisitions' p18696 aS'requisitioning' p18697 aS'requisitioned' p18698 aS'requisitioned' p18699 asS'forswear' p18700 (lp18701 S'forswears' p18702 aS'forswearing' p18703 aS'forswore' p18704 aS'forsworn' p18705 asS'disentail' p18706 (lp18707 S'disentails' p18708 aS'disentailing' p18709 aS'disentailed' p18710 aS'disentailed' p18711 asS'overwatch' p18712 (lp18713 S'overwatches' p18714 aS'overwatching' p18715 aS'overwatched' p18716 aS'overwatched' p18717 asS'peacock' p18718 (lp18719 S'peacocks' p18720 aS'peacocking' p18721 aS'peacocked' p18722 aS'peacocked' p18723 asS'expatiate' p18724 (lp18725 S'expatiates' p18726 aS'expatiating' p18727 aS'expatiated' p18728 aS'expatiated' p18729 asS'milt' p18730 (lp18731 S'milts' p18732 aS'milting' p18733 aS'milted' p18734 aS'milted' p18735 asS'testify' p18736 (lp18737 S'testifies' p18738 aS'testifying' p18739 aS'testified' p18740 aS'testified' p18741 asS'pique' p18742 (lp18743 S'piques' p18744 aS'piquing' p18745 aS'piqued' p18746 aS'piqued' p18747 asS'bequeath' p18748 (lp18749 S'bequeaths' p18750 aS'bequeathing' p18751 aS'bequeathed' p18752 aS'bequeathed' p18753 asS'rock-and-roll' p18754 (lp18755 S'rock-and-rolls' p18756 aS'rock-and-rolling' p18757 aS'rock-and-rolled' p18758 aS'rock-and-rolled' p18759 asS'delocalize' p18760 (lp18761 S'delocalizes' p18762 aS'delocalizing' p18763 aS'delocalized' p18764 aS'delocalized' p18765 asS'foreshow' p18766 (lp18767 S'foreshows' p18768 aS'foreshowing' p18769 aS'foreshowed' p18770 aS'foreshown' p18771 asS'adhere' p18772 (lp18773 S'adheres' p18774 aS'adhering' p18775 aS'adhered' p18776 aS'adhered' p18777 asS'obnubilate' p18778 (lp18779 S'obnubilates' p18780 aS'obnubilating' p18781 aS'obnubilated' p18782 aS'obnubilated' p18783 asS'carpet' p18784 (lp18785 S'carpets' p18786 aS'carpeting' p18787 aS'carpeted' p18788 aS'carpeted' p18789 asS'speechify' p18790 (lp18791 S'speechifies' p18792 aS'speechifying' p18793 aS'speechified' p18794 aS'speechified' p18795 asS'disassociate' p18796 (lp18797 S'disassociates' p18798 aS'disassociating' p18799 aS'disassociated' p18800 aS'disassociated' p18801 asS'carbolize' p18802 (lp18803 S'carbolizes' p18804 aS'carbolizing' p18805 aS'carbolized' p18806 aS'carbolized' p18807 asS'insulate' p18808 (lp18809 S'insulates' p18810 aS'insulating' p18811 aS'insulated' p18812 aS'insulated' p18813 asS'upbuild' p18814 (lp18815 S'upbuilds' p18816 aS'upbuilding' p18817 aS'upbuilt' p18818 aS'upbuilt' p18819 asS'foster' p18820 (lp18821 S'fosters' p18822 aS'fostering' p18823 aS'fostered' p18824 aS'fostered' p18825 asS'spearhead' p18826 (lp18827 S'spearheads' p18828 aS'spearheading' p18829 aS'spearheaded' p18830 aS'spearheaded' p18831 asS'solicit' p18832 (lp18833 S'solicits' p18834 aS'soliciting' p18835 aS'solicited' p18836 aS'solicited' p18837 asS'safety' p18838 (lp18839 S'safeties' p18840 aS'safetying' p18841 aS'safetied' p18842 aS'safetied' p18843 asS'desiderate' p18844 (lp18845 S'desiderates' p18846 aS'desiderating' p18847 aS'desiderated' p18848 aS'desiderated' p18849 asS'hearken' p18850 (lp18851 S'hearkens' p18852 aS'hearkening' p18853 aS'hearkened' p18854 aS'hearkened' p18855 asS'serrate' p18856 (lp18857 S'serrates' p18858 aS'serrating' p18859 aS'serrated' p18860 aS'serrated' p18861 asS'parry' p18862 (lp18863 S'parries' p18864 aS'parrying' p18865 aS'parried' p18866 aS'parried' p18867 asS'cypher' p18868 (lp18869 S'cyphers' p18870 aS'cyphering' p18871 aS'cyphered' p18872 aS'cyphered' p18873 asS'decide' p18874 (lp18875 S'decides' p18876 aS'deciding' p18877 aS'decided' p18878 aS'decided' p18879 asS'lapidify' p18880 (lp18881 S'lapidifies' p18882 aS'lapidifying' p18883 aS'lapidified' p18884 aS'lapidified' p18885 asS'underperform' p18886 (lp18887 S'underperforms' p18888 aS'underperforming' p18889 aS'underperformed' p18890 aS'underperformed' p18891 asS'curdle' p18892 (lp18893 S'curdles' p18894 aS'curdling' p18895 aS'curdled' p18896 aS'curdled' p18897 asS'fusillade' p18898 (lp18899 S'fusillades' p18900 aS'fusillading' p18901 aS'fusilladed' p18902 aS'fusilladed' p18903 asS'shimmy' p18904 (lp18905 S'shimmies' p18906 aS'shimmying' p18907 aS'shimmied' p18908 aS'shimmied' p18909 asS'skim' p18910 (lp18911 S'skims' p18912 aS'skimming' p18913 aS'skimmed' p18914 aS'skimmed' p18915 asS'blackout' p18916 (lp18917 S'blackouts' p18918 aS'blackouting' p18919 aS'blackouted' p18920 aS'blackouted' p18921 asS'dunk' p18922 (lp18923 S'dunks' p18924 aS'dunking' p18925 aS'dunked' p18926 aS'dunked' p18927 asS'fence' p18928 (lp18929 S'fences' p18930 aS'fencing' p18931 aS'fenced' p18932 aS'fenced' p18933 asS'French-polish' p18934 (lp18935 S'French-polishes' p18936 aS'French-polishing' p18937 aS'French-polished' p18938 aS'French-polished' p18939 asS'archaize' p18940 (lp18941 S'archaizes' p18942 aS'archaizing' p18943 aS'archaized' p18944 aS'archaized' p18945 asS'stigmatize' p18946 (lp18947 S'stigmatizes' p18948 aS'stigmatizing' p18949 aS'stigmatized' p18950 aS'stigmatized' p18951 asS'rival' p18952 (lp18953 S'rivals' p18954 aS'rivalling' p18955 aS'rivalled' p18956 aS'rivalled' p18957 asS'enfeeble' p18958 (lp18959 S'enfeebles' p18960 aS'enfeebling' p18961 aS'enfeebled' p18962 aS'enfeebled' p18963 asS'enjoin' p18964 (lp18965 S'enjoins' p18966 aS'enjoining' p18967 aS'enjoined' p18968 aS'enjoined' p18969 asS'hamper' p18970 (lp18971 S'hampers' p18972 aS'hampering' p18973 aS'hampered' p18974 aS'hampered' p18975 asS'chuckle' p18976 (lp18977 S'chuckles' p18978 aS'chuckling' p18979 aS'chuckled' p18980 aS'chuckled' p18981 asS'mediatize' p18982 (lp18983 S'mediatizes' p18984 aS'mediatizing' p18985 aS'mediatized' p18986 aS'mediatized' p18987 asS'tussle' p18988 (lp18989 S'tussles' p18990 aS'tussling' p18991 aS'tussled' p18992 aS'tussled' p18993 asS'f^ete' p18994 (lp18995 S'f^etes' p18996 aS'f^eting' p18997 aS'f^eted' p18998 aS'f^eted' p18999 asS'lurch' p19000 (lp19001 S'lurches' p19002 aS'lurching' p19003 aS'lurched' p19004 aS'lurched' p19005 asS'skid' p19006 (lp19007 S'skids' p19008 aS'skidding' p19009 aS'skidded' p19010 aS'skidded' p19011 asS'overrule' p19012 (lp19013 S'overrules' p19014 aS'overruling' p19015 aS'overruled' p19016 aS'overruled' p19017 asS'obtund' p19018 (lp19019 S'obtunds' p19020 aS'obtunding' p19021 aS'obtunded' p19022 aS'obtunded' p19023 asS'burglarize' p19024 (lp19025 S'burglarizes' p19026 aS'burglarizing' p19027 aS'burglarized' p19028 aS'burglarized' p19029 asS'loose' p19030 (lp19031 S'looses' p19032 aS'loosing' p19033 aS'loosed' p19034 aS'loosed' p19035 asS'modify' p19036 (lp19037 S'modifies' p19038 aS'modifying' p19039 aS'modified' p19040 aS'modified' p19041 asS'outdistance' p19042 (lp19043 S'outdistances' p19044 aS'outdistancing' p19045 aS'outdistanced' p19046 aS'outdistanced' p19047 asS'whine' p19048 (lp19049 S'whines' p19050 aS'whining' p19051 aS'whined' p19052 aS'whined' p19053 asS'soldier' p19054 (lp19055 S'soldiers' p19056 aS'soldiering' p19057 aS'soldiered' p19058 aS'soldiered' p19059 asS'amount' p19060 (lp19061 S'amounts' p19062 aS'amounting' p19063 aS'amounted' p19064 aS'amounted' p19065 asS'obtrude' p19066 (lp19067 S'obtrudes' p19068 aS'obtruding' p19069 aS'obtruded' p19070 aS'obtruded' p19071 asS'invalidate' p19072 (lp19073 S'invalidates' p19074 aS'invalidating' p19075 aS'invalidated' p19076 aS'invalidated' p19077 asS'polevault' p19078 (lp19079 S'polevaults' p19080 aS'polevaulting' p19081 aS'polevaulted' p19082 aS'polevaulted' p19083 asS'shuffle' p19084 (lp19085 S'shuffles' p19086 aS'shuffling' p19087 aS'shuffled' p19088 aS'shuffled' p19089 asS'misdemean' p19090 (lp19091 S'misdemeans' p19092 aS'misdemeaning' p19093 aS'misdemeaned' p19094 aS'misdemeaned' p19095 asS'ask' p19096 (lp19097 S'asks' p19098 aS'asking' p19099 aS'asked' p19100 aS'asked' p19101 asS'foretoken' p19102 (lp19103 S'foretokens' p19104 aS'foretokening' p19105 aS'foretokened' p19106 aS'foretokened' p19107 asS'aggress' p19108 (lp19109 S'aggresses' p19110 aS'aggressing' p19111 aS'aggressed' p19112 aS'aggressed' p19113 asS'decompound' p19114 (lp19115 S'decompounds' p19116 aS'decompounding' p19117 aS'decompounded' p19118 aS'decompounded' p19119 asS'injure' p19120 (lp19121 S'injures' p19122 aS'injuring' p19123 aS'injured' p19124 aS'injured' p19125 asS'generate' p19126 (lp19127 S'generates' p19128 aS'generating' p19129 aS'generated' p19130 aS'generated' p19131 asS'enwreath' p19132 (lp19133 S'enwreaths' p19134 aS'enwreathing' p19135 aS'enwreathed' p19136 aS'enwreathed' p19137 asS'handfeed' p19138 (lp19139 S'handfeeds' p19140 aS'handfeeding' p19141 aS'handfed' p19142 aS'handfed' p19143 asS'telepathize' p19144 (lp19145 S'telepathizes' p19146 aS'telepathizing' p19147 aS'telepathized' p19148 aS'telepathized' p19149 asS'coiffure' p19150 (lp19151 S'coiffures' p19152 aS'coiffuring' p19153 aS'coiffured' p19154 aS'coiffured' p19155 asS'erode' p19156 (lp19157 S'erodes' p19158 aS'eroding' p19159 aS'eroded' p19160 aS'eroded' p19161 asS'decrepitate' p19162 (lp19163 S'decrepitates' p19164 aS'decrepitating' p19165 aS'decrepitated' p19166 aS'decrepitated' p19167 asS'splosh' p19168 (lp19169 S'sploshes' p19170 aS'sploshing' p19171 aS'sploshed' p19172 aS'sploshed' p19173 asS'indenture' p19174 (lp19175 S'indentures' p19176 aS'indenturing' p19177 aS'indentured' p19178 aS'indentured' p19179 asS'excuse' p19180 (lp19181 S'excuses' p19182 aS'excusing' p19183 aS'excused' p19184 aS'excused' p19185 asS'hurry' p19186 (lp19187 S'hurries' p19188 aS'hurrying' p19189 aS'hurried' p19190 aS'hurried' p19191 asS'italicize' p19192 (lp19193 S'italicizes' p19194 aS'italicizing' p19195 aS'italicized' p19196 aS'italicized' p19197 asS'grill' p19198 (lp19199 S'grills' p19200 aS'grilling' p19201 aS'grilled' p19202 aS'grilled' p19203 asS'unyoke' p19204 (lp19205 S'unyokes' p19206 aS'unyoking' p19207 aS'unyoked' p19208 aS'unyoked' p19209 asS'titrate' p19210 (lp19211 S'titrates' p19212 aS'titrating' p19213 aS'titrated' p19214 aS'titrated' p19215 asS'muzz' p19216 (lp19217 S'muzzes' p19218 aS'muzzing' p19219 aS'muzzed' p19220 aS'muzzed' p19221 asS'swash' p19222 (lp19223 S'swashes' p19224 aS'swashing' p19225 aS'swashed' p19226 aS'swashed' p19227 asS'cowk' p19228 (lp19229 S'cowks' p19230 aS'cowking' p19231 aS'cowked' p19232 aS'cowked' p19233 asS'transcend' p19234 (lp19235 S'transcends' p19236 aS'transcending' p19237 aS'transcended' p19238 aS'transcended' p19239 asS'cowl' p19240 (lp19241 S'cowls' p19242 aS'cowling' p19243 aS'cowled' p19244 aS'cowled' p19245 asS'boycott' p19246 (lp19247 S'boycotts' p19248 aS'boycotting' p19249 aS'boycotted' p19250 aS'boycotted' p19251 asS'henpeck' p19252 (lp19253 S'henpecks' p19254 aS'henpecking' p19255 aS'henpecked' p19256 aS'henpecked' p19257 asS'appose' p19258 (lp19259 S'apposes' p19260 aS'apposing' p19261 aS'apposed' p19262 aS'apposed' p19263 asS'surcingle' p19264 (lp19265 S'surcingles' p19266 aS'surcingling' p19267 aS'surcingled' p19268 aS'surcingled' p19269 asS'phrase' p19270 (lp19271 S'phrases' p19272 aS'phrasing' p19273 aS'phrased' p19274 aS'phrased' p19275 asS'cowp' p19276 (lp19277 S'cowps' p19278 aS'cowping' p19279 aS'cowped' p19280 aS'cowped' p19281 asS'cornice' p19282 (lp19283 S'cornices' p19284 aS'cornicing' p19285 aS'corniced' p19286 aS'corniced' p19287 asS'dimidiate' p19288 (lp19289 S'dimidiates' p19290 aS'dimidiating' p19291 aS'dimidiated' p19292 aS'dimidiated' p19293 asS'fortress' p19294 (lp19295 S'fortresses' p19296 aS'fortressing' p19297 aS'fortressed' p19298 aS'fortressed' p19299 asS'thieve' p19300 (lp19301 S'thieves' p19302 aS'thieving' p19303 aS'thieved' p19304 aS'thieved' p19305 asS'ledger' p19306 (lp19307 S'ledgers' p19308 aS'ledgering' p19309 aS'ledgered' p19310 aS'ledgered' p19311 asS'bioassay' p19312 (lp19313 S'bioassays' p19314 aS'bioassaying' p19315 aS'bioassayed' p19316 aS'bioassayed' p19317 asS'gash' p19318 (lp19319 S'gashes' p19320 aS'gashing' p19321 aS'gashed' p19322 aS'gashed' p19323 asS'slipsheet' p19324 (lp19325 S'slipsheets' p19326 aS'slipsheeting' p19327 aS'slipsheeted' p19328 aS'slipsheeted' p19329 asS'threat' p19330 (lp19331 S'threats' p19332 aS'threating' p19333 aS'threated' p19334 aS'threated' p19335 asS'whirl' p19336 (lp19337 S'whirls' p19338 aS'whirling' p19339 aS'whirled' p19340 aS'whirled' p19341 asS'sneak' p19342 (lp19343 S'sneaks' p19344 aS'sneaking' p19345 aS'snuck' p19346 aS'snuck' p19347 asS'keelhaul' p19348 (lp19349 S'keelhauls' p19350 aS'keelhauling' p19351 aS'keelhauled' p19352 aS'keelhauled' p19353 asS'gasp' p19354 (lp19355 S'gasps' p19356 aS'gasping' p19357 aS'gasped' p19358 aS'gasped' p19359 asS'reelect' p19360 (lp19361 S'reelects' p19362 aS'reelecting' p19363 aS'reelected' p19364 aS'reelected' p19365 asS'hydrogenize' p19366 (lp19367 S'hydrogenizes' p19368 aS'hydrogenizing' p19369 aS'hydrogenized' p19370 aS'hydrogenized' p19371 asS'humbug' p19372 (lp19373 S'humbugs' p19374 aS'humbugging' p19375 aS'humbugged' p19376 aS'humbugged' p19377 asS'criticize' p19378 (lp19379 S'criticizes' p19380 aS'criticizing' p19381 aS'criticized' p19382 aS'criticized' p19383 asS'deluge' p19384 (lp19385 S'deluges' p19386 aS'deluging' p19387 aS'deluged' p19388 aS'deluged' p19389 asS'laminate' p19390 (lp19391 S'laminates' p19392 aS'laminating' p19393 aS'laminated' p19394 aS'laminated' p19395 asS'genuflect' p19396 (lp19397 S'genuflects' p19398 aS'genuflecting' p19399 aS'genuflected' p19400 aS'genuflected' p19401 asS'doublespace' p19402 (lp19403 S'doublespaces' p19404 aS'doublespacing' p19405 aS'doublespaced' p19406 aS'doublespaced' p19407 asS'dread' p19408 (lp19409 S'dreads' p19410 aS'dreading' p19411 aS'dreaded' p19412 aS'dreaded' p19413 asS'decamp' p19414 (lp19415 S'decamps' p19416 aS'decamping' p19417 aS'decamped' p19418 aS'decamped' p19419 asS'egg' p19420 (lp19421 S'eggs' p19422 aS'egging' p19423 aS'egged' p19424 aS'egged' p19425 asS'ding' p19426 (lp19427 S'dings' p19428 aS'dinging' p19429 aS'dinged' p19430 aS'dinged' p19431 asS'splay' p19432 (lp19433 S'splays' p19434 aS'splaying' p19435 aS'splayed' p19436 aS'splayed' p19437 asS'help' p19438 (lp19439 S'helps' p19440 aS'helping' p19441 aS'helped' p19442 aS'helped' p19443 asS'slouch' p19444 (lp19445 S'slouches' p19446 aS'slouching' p19447 aS'slouched' p19448 aS'slouched' p19449 asS'preempt' p19450 (lp19451 S'preempts' p19452 aS'preempting' p19453 aS'preempted' p19454 aS'preempted' p19455 asS'soot' p19456 (lp19457 S'soots' p19458 aS'sooting' p19459 aS'sooted' p19460 aS'sooted' p19461 asS'helm' p19462 (lp19463 S'helms' p19464 aS'helming' p19465 aS'helmed' p19466 aS'helmed' p19467 asS'staunch' p19468 (lp19469 S'staunches' p19470 aS'staunching' p19471 aS'staunched' p19472 aS'staunched' p19473 asS'expectorate' p19474 (lp19475 S'expectorates' p19476 aS'expectorating' p19477 aS'expectorated' p19478 aS'expectorated' p19479 asS'reseat' p19480 (lp19481 S'reseats' p19482 aS'reseating' p19483 aS'reseated' p19484 aS'reseated' p19485 asS'autoclave' p19486 (lp19487 S'autoclaves' p19488 aS'autoclaving' p19489 aS'autoclaved' p19490 aS'autoclaved' p19491 asS'astonish' p19492 (lp19493 S'astonishes' p19494 aS'astonishing' p19495 aS'astonished' p19496 aS'astonished' p19497 asS'rabble' p19498 (lp19499 S'rabbles' p19500 aS'rabbling' p19501 aS'rabbled' p19502 aS'rabbled' p19503 asS'team' p19504 (lp19505 S'teams' p19506 aS'teaming' p19507 aS'teamed' p19508 aS'teamed' p19509 asS'flabbergast' p19510 (lp19511 S'flabbergasts' p19512 aS'flabbergasting' p19513 aS'flabbergasted' p19514 aS'flabbergasted' p19515 asS'fool' p19516 (lp19517 S'fools' p19518 aS'fooling' p19519 aS'fooled' p19520 aS'fooled' p19521 asS'stiffen' p19522 (lp19523 S'stiffens' p19524 aS'stiffening' p19525 aS'stiffened' p19526 aS'stiffened' p19527 asS'programtrade' p19528 (lp19529 S'programtrades' p19530 aS'programtrading' p19531 aS'programtraded' p19532 aS'programtraded' p19533 asS'decollate' p19534 (lp19535 S'decollates' p19536 aS'decollating' p19537 aS'decollated' p19538 aS'decollated' p19539 asS'foot' p19540 (lp19541 S'foots' p19542 aS'footing' p19543 aS'footed' p19544 aS'footed' p19545 asS'menstruate' p19546 (lp19547 S'menstruates' p19548 aS'menstruating' p19549 aS'menstruated' p19550 aS'menstruated' p19551 asS'stopper' p19552 (lp19553 S'stoppers' p19554 aS'stoppering' p19555 aS'stoppered' p19556 aS'stoppered' p19557 asS'chamfer' p19558 (lp19559 S'chamfers' p19560 aS'chamfering' p19561 aS'chamfered' p19562 aS'chamfered' p19563 asS'intervene' p19564 (lp19565 S'intervenes' p19566 aS'intervening' p19567 aS'intervened' p19568 aS'intervened' p19569 asS'fanaticize' p19570 (lp19571 S'fanaticizes' p19572 aS'fanaticizing' p19573 aS'fanaticized' p19574 aS'fanaticized' p19575 asS'bless' p19576 (lp19577 S'blesses' p19578 aS'blessing' p19579 aS'blest' p19580 aS'blessed' p19581 asS'dint' p19582 (lp19583 S'dints' p19584 aS'dinting' p19585 aS'dinted' p19586 aS'dinted' p19587 asS'circularize' p19588 (lp19589 S'circularizes' p19590 aS'circularizing' p19591 aS'circularized' p19592 aS'circularized' p19593 asS'blest' p19594 (lp19595 S'blests' p19596 aS'blesting' p19597 aS'blested' p19598 aS'blested' p19599 asS'whirr' p19600 (lp19601 S'whirs' p19602 aS'whirring' p19603 aS'whirred' p19604 aS'whirred' p19605 asS'oppugn' p19606 (lp19607 S'oppugns' p19608 aS'oppugning' p19609 aS'oppugned' p19610 aS'oppugned' p19611 asS'contextualize' p19612 (lp19613 S'contextualizes' p19614 aS'contextualizing' p19615 aS'contextualized' p19616 aS'contextualized' p19617 asS'transcribe' p19618 (lp19619 S'transcribes' p19620 aS'transcribing' p19621 aS'transcribed' p19622 aS'transcribed' p19623 asS'pamper' p19624 (lp19625 S'pampers' p19626 aS'pampering' p19627 aS'pampered' p19628 aS'pampered' p19629 asS'trapes' p19630 (lp19631 S'trapesing' p19632 aS'trapesed' p19633 aS'trapesed' p19634 asS'tighten' p19635 (lp19636 S'tightens' p19637 aS'tightening' p19638 aS'tightened' p19639 aS'tightened' p19640 asS'deride' p19641 (lp19642 S'derides' p19643 aS'deriding' p19644 aS'derided' p19645 aS'derided' p19646 asS'unharness' p19647 (lp19648 S'unharnesses' p19649 aS'unharnessing' p19650 aS'unharnessed' p19651 aS'unharnessed' p19652 asS'unlead' p19653 (lp19654 S'unleads' p19655 aS'unleading' p19656 aS'unleaded' p19657 aS'unleaded' p19658 asS'heave' p19659 (lp19660 S'heaves' p19661 aS'heaving' p19662 aS'hove' p19663 aS'hove' p19664 asS'feoff' p19665 (lp19666 S'feoffing' p19667 aS'feoffed' p19668 aS'feoffed' p19669 asS'denaturize' p19670 (lp19671 S'denaturizes' p19672 aS'denaturizing' p19673 aS'denaturized' p19674 aS'denaturized' p19675 asS'publish' p19676 (lp19677 S'publishes' p19678 aS'publishing' p19679 aS'published' p19680 aS'published' p19681 asS'jolly' p19682 (lp19683 S'jollies' p19684 aS'jollying' p19685 aS'jollied' p19686 aS'jollied' p19687 asS'equate' p19688 (lp19689 S'equates' p19690 aS'equating' p19691 aS'equated' p19692 aS'equated' p19693 asS'desexualize' p19694 (lp19695 S'desexualizes' p19696 aS'desexualizing' p19697 aS'desexualized' p19698 aS'desexualized' p19699 asS'lord' p19700 (lp19701 S'lords' p19702 aS'lording' p19703 aS'lorded' p19704 aS'lorded' p19705 asS'issue' p19706 (lp19707 S'issues' p19708 aS'issuing' p19709 aS'issued' p19710 aS'issued' p19711 asS'outrun' p19712 (lp19713 S'outruns' p19714 aS'outrunning' p19715 aS'outran' p19716 aS'outrun' p19717 asS'coinsure' p19718 (lp19719 S'coinsures' p19720 aS'coinsuring' p19721 aS'coinsured' p19722 aS'coinsured' p19723 asS'reck' p19724 (lp19725 S'recks' p19726 aS'recking' p19727 aS'recked' p19728 aS'recked' p19729 asS'pun' p19730 (lp19731 S'puns' p19732 aS'punning' p19733 aS'punned' p19734 aS'punned' p19735 asS'swob' p19736 (lp19737 S'swobs' p19738 aS'swobbing' p19739 aS'swobbed' p19740 aS'swobbed' p19741 asS'pug' p19742 (lp19743 S'pugs' p19744 aS'pugging' p19745 aS'pugged' p19746 aS'pugged' p19747 asS'dung' p19748 (lp19749 S'dungs' p19750 aS'dunging' p19751 aS'dunged' p19752 aS'dunged' p19753 asS'derate' p19754 (lp19755 S'derates' p19756 aS'derating' p19757 aS'derated' p19758 aS'derated' p19759 asS'housel' p19760 (lp19761 S'housels' p19762 aS'houselling' p19763 aS'houselled' p19764 aS'houselled' p19765 asS'reason' p19766 (lp19767 S'reasons' p19768 aS'reasoning' p19769 aS'reasoned' p19770 aS'reasoned' p19771 asS'base' p19772 (lp19773 S'bases' p19774 aS'basing' p19775 aS'based' p19776 aS'based' p19777 asS'dirk' p19778 (lp19779 S'dirks' p19780 aS'dirking' p19781 aS'dirked' p19782 aS'dirked' p19783 asS'resettle' p19784 (lp19785 S'resettles' p19786 aS'resettling' p19787 aS'resettled' p19788 aS'resettled' p19789 asS'swop' p19790 (lp19791 S'swops' p19792 aS'swopping' p19793 aS'swopped' p19794 aS'swopped' p19795 asS'pup' p19796 (lp19797 S'pups' p19798 aS'pupping' p19799 aS'pupped' p19800 aS'pupped' p19801 asS'bask' p19802 (lp19803 S'basks' p19804 aS'basking' p19805 aS'basked' p19806 aS'basked' p19807 asS'bash' p19808 (lp19809 S'bashes' p19810 aS'bashing' p19811 aS'bashed' p19812 aS'bashed' p19813 asS'dunt' p19814 (lp19815 S'dunts' p19816 aS'dunting' p19817 aS'dunted' p19818 aS'dunted' p19819 asS'palpebrate' p19820 (lp19821 S'palpebrates' p19822 aS'palpebrating' p19823 aS'palpebrated' p19824 aS'palpebrated' p19825 asS'execrate' p19826 (lp19827 S'execrates' p19828 aS'execrating' p19829 aS'execrated' p19830 aS'execrated' p19831 asS'launch' p19832 (lp19833 S'launches' p19834 aS'launching' p19835 aS'launched' p19836 aS'launched' p19837 asS'caption' p19838 (lp19839 S'captions' p19840 aS'captioning' p19841 aS'captioned' p19842 aS'captioned' p19843 asS'blush' p19844 (lp19845 S'blushes' p19846 aS'blushing' p19847 aS'blushed' p19848 aS'blushed' p19849 asS'devolve' p19850 (lp19851 S'devolves' p19852 aS'devolving' p19853 aS'devolved' p19854 aS'devolved' p19855 asS'assign' p19856 (lp19857 S'assigns' p19858 aS'assigning' p19859 aS'assigned' p19860 aS'assigned' p19861 asS'prevent' p19862 (lp19863 S'prevents' p19864 aS'preventing' p19865 aS'prevented' p19866 aS'prevented' p19867 asS'chain-stitch' p19868 (lp19869 S'chain-stitches' p19870 aS'chain-stitching' p19871 aS'chain-stitched' p19872 aS'chain-stitched' p19873 asS'ingenerate' p19874 (lp19875 S'ingenerates' p19876 aS'ingenerating' p19877 aS'ingenerated' p19878 aS'ingenerated' p19879 asS'besteaded' p19880 (lp19881 S'besteads' p19882 aS'besteading' p19883 aS'besteadeded' p19884 aS'besteadeded' p19885 asS'mist' p19886 (lp19887 S'mists' p19888 aS'misting' p19889 aS'misted' p19890 aS'misted' p19891 asS'miss' p19892 (lp19893 S'misses' p19894 aS'missing' p19895 aS'missed' p19896 aS'missed' p19897 asS'horse' p19898 (lp19899 S'horses' p19900 aS'horsing' p19901 aS'horsed' p19902 aS'horsed' p19903 asS'inure' p19904 (lp19905 S'inures' p19906 aS'inuring' p19907 aS'inured' p19908 aS'inured' p19909 asS'ostracize' p19910 (lp19911 S'ostracizes' p19912 aS'ostracizing' p19913 aS'ostracized' p19914 aS'ostracized' p19915 asS'blossom' p19916 (lp19917 S'blossoms' p19918 aS'blossoming' p19919 aS'blossomed' p19920 aS'blossomed' p19921 asS'novelize' p19922 (lp19923 S'novelizes' p19924 aS'novelizing' p19925 aS'novelized' p19926 aS'novelized' p19927 asS'purvey' p19928 (lp19929 S'purveys' p19930 aS'purveying' p19931 aS'purveyed' p19932 aS'purveyed' p19933 asS'inurn' p19934 (lp19935 S'inurns' p19936 aS'inurning' p19937 aS'inurned' p19938 aS'inurned' p19939 asS'eddy' p19940 (lp19941 S'eddies' p19942 aS'eddying' p19943 aS'eddied' p19944 aS'eddied' p19945 asS'station' p19946 (lp19947 S'stations' p19948 aS'stationing' p19949 aS'stationed' p19950 aS'stationed' p19951 asS'scheme' p19952 (lp19953 S'schemes' p19954 aS'scheming' p19955 aS'schemed' p19956 aS'schemed' p19957 asS'demystify' p19958 (lp19959 S'demystifies' p19960 aS'demystifying' p19961 aS'demystified' p19962 aS'demystified' p19963 asS'slosh' p19964 (lp19965 S'sloshes' p19966 aS'sloshing' p19967 aS'sloshed' p19968 aS'sloshed' p19969 asS'underdevelop' p19970 (lp19971 S'underdevelops' p19972 aS'underdeveloping' p19973 aS'underdeveloped' p19974 aS'underdeveloped' p19975 asS'interplead' p19976 (lp19977 S'interpleads' p19978 aS'interpleading' p19979 aS'interpled' p19980 aS'interpled' p19981 asS'outrange' p19982 (lp19983 S'outranges' p19984 aS'outranging' p19985 aS'outranged' p19986 aS'outranged' p19987 asS'overdrive' p19988 (lp19989 S'overdrives' p19990 aS'overdriving' p19991 aS'overdrove' p19992 aS'overdriven' p19993 asS'dissemble' p19994 (lp19995 S'dissembles' p19996 aS'dissembling' p19997 aS'dissembled' p19998 aS'dissembled' p19999 asS'apprentice' p20000 (lp20001 S'apprentices' p20002 aS'apprenticing' p20003 aS'apprenticed' p20004 aS'apprenticed' p20005 asS'lament' p20006 (lp20007 S'laments' p20008 aS'lamenting' p20009 aS'lamented' p20010 aS'lamented' p20011 asS'anticipate' p20012 (lp20013 S'anticipates' p20014 aS'anticipating' p20015 aS'anticipated' p20016 aS'anticipated' p20017 asS'grey' p20018 (lp20019 S'greys' p20020 aS'greying' p20021 aS'greyed' p20022 aS'greyed' p20023 asS'gree' p20024 (lp20025 S'grees' p20026 aS'greeing' p20027 aS'greed' p20028 aS'greed' p20029 asS'obfuscate' p20030 (lp20031 S'obfuscates' p20032 aS'obfuscating' p20033 aS'obfuscated' p20034 aS'obfuscated' p20035 asS'kindle' p20036 (lp20037 S'kindles' p20038 aS'kindling' p20039 aS'kindled' p20040 aS'kindled' p20041 asS'garrison' p20042 (lp20043 S'garrisons' p20044 aS'garrisoning' p20045 aS'garrisoned' p20046 aS'garrisoned' p20047 asS'sty' p20048 (lp20049 S'sties' p20050 aS'stying' p20051 aS'stied' p20052 aS'stied' p20053 asS'bejewel' p20054 (lp20055 S'bejewels' p20056 aS'bejewelling' p20057 aS'bejewelled' p20058 aS'bejewelled' p20059 asS'vitriolize' p20060 (lp20061 S'vitriolizes' p20062 aS'vitriolizing' p20063 aS'vitriolized' p20064 aS'vitriolized' p20065 asS'footnote' p20066 (lp20067 S'footnotes' p20068 aS'footnoting' p20069 aS'footnoted' p20070 aS'footnoted' p20071 asS'overstate' p20072 (lp20073 S'overstates' p20074 aS'overstating' p20075 aS'overstated' p20076 aS'overstated' p20077 asS'controvert' p20078 (lp20079 S'controverts' p20080 aS'controverting' p20081 aS'controverted' p20082 aS'controverted' p20083 asS'hallal' p20084 (lp20085 S'hallals' p20086 aS'hallaling' p20087 aS'hallaled' p20088 aS'hallaled' p20089 asS'yowl' p20090 (lp20091 S'yowls' p20092 aS'yowling' p20093 aS'yowled' p20094 aS'yowled' p20095 asS'disbranch' p20096 (lp20097 S'disbranches' p20098 aS'disbranching' p20099 aS'disbranched' p20100 aS'disbranched' p20101 asS'upsweep' p20102 (lp20103 S'upsweeps' p20104 aS'upsweeping' p20105 aS'upswept' p20106 aS'upswept' p20107 asS'lie' p20108 (lp20109 S'lies' p20110 aS'lying' p20111 aS'lied' p20112 aS'lied' p20113 asS'trance' p20114 (lp20115 S'trances' p20116 aS'trancing' p20117 aS'tranced' p20118 aS'tranced' p20119 asS'cave' p20120 (lp20121 S'caves' p20122 aS'caving' p20123 aS'caved' p20124 aS'caved' p20125 asS'classicize' p20126 (lp20127 S'classicizes' p20128 aS'classicizing' p20129 aS'classicized' p20130 aS'classicized' p20131 asS'camouflage' p20132 (lp20133 S'camouflages' p20134 aS'camouflaging' p20135 aS'camouflaged' p20136 aS'camouflaged' p20137 asS'auctioneer' p20138 (lp20139 S'auctioneers' p20140 aS'auctioneering' p20141 aS'auctioneered' p20142 aS'auctioneered' p20143 asS'lit' p20144 (lp20145 S'lit' p20146 aS'lit' p20147 asS'steal' p20148 (lp20149 S'steals' p20150 aS'stealing' p20151 aS'stole' p20152 aS'stolen' p20153 asS'labour' p20154 (lp20155 S'labours' p20156 aS'labouring' p20157 aS'laboured' p20158 aS'laboured' p20159 asS'lip' p20160 (lp20161 S'lips' p20162 aS'lipping' p20163 aS'lipped' p20164 aS'lipped' p20165 asS'honeycomb' p20166 (lp20167 S'honeycombs' p20168 aS'honeycombing' p20169 aS'honeycombed' p20170 aS'honeycombed' p20171 asS'exsert' p20172 (lp20173 S'exserts' p20174 aS'exserting' p20175 aS'exserted' p20176 aS'exserted' p20177 asS'quote' p20178 (lp20179 S'quotes' p20180 aS'quoting' p20181 aS'quoth' p20182 aS'quoted' p20183 asS'venge' p20184 (lp20185 S'venges' p20186 aS'venging' p20187 aS'venged' p20188 aS'venged' p20189 asS'promenade' p20190 (lp20191 S'promenades' p20192 aS'promenading' p20193 aS'promenaded' p20194 aS'promenaded' p20195 asS'plunder' p20196 (lp20197 S'plunders' p20198 aS'plundering' p20199 aS'plundered' p20200 aS'plundered' p20201 asS'bridle' p20202 (lp20203 S'bridles' p20204 aS'bridling' p20205 aS'bridled' p20206 aS'bridled' p20207 asS'diversify' p20208 (lp20209 S'diversifies' p20210 aS'diversifying' p20211 aS'diversified' p20212 aS'diversified' p20213 asS'deflocculate' p20214 (lp20215 S'deflocculates' p20216 aS'deflocculating' p20217 aS'deflocculated' p20218 aS'deflocculated' p20219 asS'detoxicate' p20220 (lp20221 S'detoxicates' p20222 aS'detoxicating' p20223 aS'detoxicated' p20224 aS'detoxicated' p20225 asS'ballyhoo' p20226 (lp20227 S'ballyhoos' p20228 aS'ballyhooing' p20229 aS'ballyhooed' p20230 aS'ballyhooed' p20231 asS'scumble' p20232 (lp20233 S'scumbles' p20234 aS'scumbling' p20235 aS'scumbled' p20236 aS'scumbled' p20237 asS'smoulder' p20238 (lp20239 S'smoulders' p20240 aS'smouldering' p20241 aS'smouldered' p20242 aS'smouldered' p20243 asS'clear' p20244 (lp20245 S'clears' p20246 aS'clearing' p20247 aS'cleared' p20248 aS'cleared' p20249 asS'cleat' p20250 (lp20251 S'cleats' p20252 aS'cleating' p20253 aS'cleated' p20254 aS'cleated' p20255 asS'adulate' p20256 (lp20257 S'adulates' p20258 aS'adulating' p20259 aS'adulated' p20260 aS'adulated' p20261 asS'clean' p20262 (lp20263 S'cleans' p20264 aS'cleaning' p20265 aS'cleaned' p20266 aS'cleaned' p20267 asS'displant' p20268 (lp20269 S'displants' p20270 aS'displanting' p20271 aS'displanted' p20272 aS'displanted' p20273 asS'blend' p20274 (lp20275 S'blends' p20276 aS'blending' p20277 aS'blended' p20278 aS'blended' p20279 asS'counterplot' p20280 (lp20281 S'counterplots' p20282 aS'counterplotting' p20283 aS'counterplotted' p20284 aS'counterplotted' p20285 asS'ennoble' p20286 (lp20287 S'ennobles' p20288 aS'ennobling' p20289 aS'ennobled' p20290 aS'ennobled' p20291 asS'tincture' p20292 (lp20293 S'tinctures' p20294 aS'tincturing' p20295 aS'tinctured' p20296 aS'tinctured' p20297 asS'adsorb' p20298 (lp20299 S'adsorbs' p20300 aS'adsorbing' p20301 aS'adsorbed' p20302 aS'adsorbed' p20303 asS'booze' p20304 (lp20305 S'boozes' p20306 aS'boozing' p20307 aS'boozed' p20308 aS'boozed' p20309 asS'crayon' p20310 (lp20311 S'crayons' p20312 aS'crayoning' p20313 aS'crayoned' p20314 aS'crayoned' p20315 asS'illegalize' p20316 (lp20317 S'illegalizes' p20318 aS'illegalizing' p20319 aS'illegalized' p20320 aS'illegalized' p20321 asS'sheave' p20322 (lp20323 S'sheaving' p20324 aS'sheaved' p20325 aS'sheaved' p20326 asS'acidulate' p20327 (lp20328 S'acidulates' p20329 aS'acidulating' p20330 aS'acidulated' p20331 aS'acidulated' p20332 asS'inlace' p20333 (lp20334 S'inlaces' p20335 aS'inlacing' p20336 aS'inlaced' p20337 aS'inlaced' p20338 asS'copyright' p20339 (lp20340 S'copyrights' p20341 aS'copyrighting' p20342 aS'copyrighted' p20343 aS'copyrighted' p20344 asS'undersell' p20345 (lp20346 S'undersells' p20347 aS'underselling' p20348 aS'undersold' p20349 aS'undersold' p20350 asS'circle' p20351 (lp20352 S'circles' p20353 aS'circling' p20354 aS'circled' p20355 aS'circled' p20356 asS'waterproof' p20357 (lp20358 S'waterproofs' p20359 aS'waterproofing' p20360 aS'waterproofed' p20361 aS'waterproofed' p20362 asS'outlast' p20363 (lp20364 S'outlasts' p20365 aS'outlasting' p20366 aS'outlasted' p20367 aS'outlasted' p20368 asS'strut' p20369 (lp20370 S'struts' p20371 aS'strutting' p20372 aS'strutted' p20373 aS'strutted' p20374 asS'bedew' p20375 (lp20376 S'bedews' p20377 aS'bedewing' p20378 aS'bedewed' p20379 aS'bedewed' p20380 asS'strum' p20381 (lp20382 S'strums' p20383 aS'strumming' p20384 aS'strummed' p20385 aS'strummed' p20386 asS'intensify' p20387 (lp20388 S'intensifies' p20389 aS'intensifying' p20390 aS'intensified' p20391 aS'intensified' p20392 asS'adlib' p20393 (lp20394 S'adlibs' p20395 aS'adlibbing' p20396 aS'adlibbed' p20397 aS'adlibbed' p20398 asS'fluff' p20399 (lp20400 S'fluffs' p20401 aS'fluffing' p20402 aS'fluffed' p20403 aS'fluffed' p20404 asS'immerse' p20405 (lp20406 S'immerses' p20407 aS'immersing' p20408 aS'immersed' p20409 aS'immersed' p20410 asS'withe' p20411 (lp20412 S'withes' p20413 aS'withing' p20414 aS'withed' p20415 aS'withed' p20416 asS'perfume' p20417 (lp20418 S'perfumes' p20419 aS'perfuming' p20420 aS'perfumed' p20421 aS'perfumed' p20422 asS'unsaddle' p20423 (lp20424 S'unsaddles' p20425 aS'unsaddling' p20426 aS'unsaddled' p20427 aS'unsaddled' p20428 asS'rejig' p20429 (lp20430 S'rejigs' p20431 aS'rejigging' p20432 aS'rejigged' p20433 aS'rejigged' p20434 asS'geld' p20435 (lp20436 S'gelds' p20437 aS'gelding' p20438 aS'gelt' p20439 aS'gelt' p20440 asS'meld' p20441 (lp20442 S'melds' p20443 aS'melding' p20444 aS'melded' p20445 aS'melded' p20446 asS'carnify' p20447 (lp20448 S'carnifies' p20449 aS'carnifying' p20450 aS'carnified' p20451 aS'carnified' p20452 asS'dissertate' p20453 (lp20454 S'dissertates' p20455 aS'dissertating' p20456 aS'dissertated' p20457 aS'dissertated' p20458 asS'cramp' p20459 (lp20460 S'cramps' p20461 aS'cramping' p20462 aS'cramped' p20463 aS'cramped' p20464 asS'backtrack' p20465 (lp20466 S'backtracks' p20467 aS'backtracking' p20468 aS'backtracked' p20469 aS'backtracked' p20470 asS'crackle' p20471 (lp20472 S'crackles' p20473 aS'crackling' p20474 aS'crackled' p20475 aS'crackled' p20476 asS'plough' p20477 (lp20478 S'ploughs' p20479 aS'ploughing' p20480 aS'ploughed' p20481 aS'ploughed' p20482 asS'culture' p20483 (lp20484 S'cultures' p20485 aS'culturing' p20486 aS'cultured' p20487 aS'cultured' p20488 asS'venerate' p20489 (lp20490 S'venerates' p20491 aS'venerating' p20492 aS'venerated' p20493 aS'venerated' p20494 asS'becloud' p20495 (lp20496 S'beclouds' p20497 aS'beclouding' p20498 aS'beclouded' p20499 aS'beclouded' p20500 asS'despatch' p20501 (lp20502 S'despatches' p20503 aS'despatching' p20504 aS'despatched' p20505 aS'despatched' p20506 asS'introject' p20507 (lp20508 S'introjects' p20509 aS'introjecting' p20510 aS'introjected' p20511 aS'introjected' p20512 asS'bifurcate' p20513 (lp20514 S'bifurcates' p20515 aS'bifurcating' p20516 aS'bifurcated' p20517 aS'bifurcated' p20518 asS'pish' p20519 (lp20520 S'pishes' p20521 aS'pishing' p20522 aS'pished' p20523 aS'pished' p20524 asS'podzolize' p20525 (lp20526 S'podzolizes' p20527 aS'podzolizing' p20528 aS'podzolized' p20529 aS'podzolized' p20530 asS'throve' p20531 (lp20532 S'throves' p20533 aS'throving' p20534 aS'throved' p20535 aS'throved' p20536 asS'wow' p20537 (lp20538 S'wows' p20539 aS'wowing' p20540 aS'wowed' p20541 aS'wowed' p20542 asS'wail' p20543 (lp20544 S'wails' p20545 aS'wailing' p20546 aS'wailed' p20547 aS'wailed' p20548 asS'deepfry' p20549 (lp20550 S'deepfries' p20551 aS'deepfrying' p20552 aS'deepfried' p20553 aS'deepfried' p20554 asS'woo' p20555 (lp20556 S'woos' p20557 aS'wooing' p20558 aS'wooed' p20559 aS'wooed' p20560 asS'premeditate' p20561 (lp20562 S'premeditates' p20563 aS'premeditating' p20564 aS'premeditated' p20565 aS'premeditated' p20566 asS'checkmate' p20567 (lp20568 S'checkmates' p20569 aS'checkmating' p20570 aS'checkmated' p20571 aS'checkmated' p20572 asS'delouse' p20573 (lp20574 S'delouses' p20575 aS'delousing' p20576 aS'deloused' p20577 aS'deloused' p20578 asS'philander' p20579 (lp20580 S'philanders' p20581 aS'philandering' p20582 aS'philandered' p20583 aS'philandered' p20584 asS'vitalize' p20585 (lp20586 S'vitalizes' p20587 aS'vitalizing' p20588 aS'vitalized' p20589 aS'vitalized' p20590 asS'piss' p20591 (lp20592 S'pisses' p20593 aS'pissing' p20594 aS'pissed' p20595 aS'pissed' p20596 asS'backfill' p20597 (lp20598 S'backfills' p20599 aS'backfilling' p20600 aS'backfilled' p20601 aS'backfilled' p20602 asS'conjoin' p20603 (lp20604 S'conjoins' p20605 aS'conjoining' p20606 aS'conjoined' p20607 aS'conjoined' p20608 asS'spray' p20609 (lp20610 S'sprays' p20611 aS'spraying' p20612 aS'sprayed' p20613 aS'sprayed' p20614 asS'aggrieve' p20615 (lp20616 S'aggrieves' p20617 aS'aggrieving' p20618 aS'aggrieved' p20619 aS'aggrieved' p20620 asS'distinguish' p20621 (lp20622 S'distinguishes' p20623 aS'distinguishing' p20624 aS'distinguished' p20625 aS'distinguished' p20626 asS'dally' p20627 (lp20628 S'dallies' p20629 aS'dallying' p20630 aS'dallied' p20631 aS'dallied' p20632 asS'league' p20633 (lp20634 S'leagues' p20635 aS'leaguing' p20636 aS'leagued' p20637 aS'leagued' p20638 asS'suspire' p20639 (lp20640 S'suspires' p20641 aS'suspiring' p20642 aS'suspired' p20643 aS'suspired' p20644 asS'buzz' p20645 (lp20646 S'buzzes' p20647 aS'buzzing' p20648 aS'buzzed' p20649 aS'buzzed' p20650 asS'stymy' p20651 (lp20652 S'stymies' p20653 aS'stymying' p20654 aS'stymied' p20655 aS'stymied' p20656 asS'stargaze' p20657 (lp20658 S'stargazes' p20659 aS'stargazing' p20660 aS'stargazed' p20661 aS'stargazed' p20662 asS'secrete' p20663 (lp20664 S'secretes' p20665 aS'secreting' p20666 aS'secreted' p20667 aS'secreted' p20668 asS'oversleep' p20669 (lp20670 S'oversleeps' p20671 aS'oversleeping' p20672 aS'overslept' p20673 aS'overslept' p20674 asS'liken' p20675 (lp20676 S'likens' p20677 aS'likening' p20678 aS'likened' p20679 aS'likened' p20680 asS'rebate' p20681 (lp20682 S'rebates' p20683 aS'rebating' p20684 aS'rebated' p20685 aS'rebated' p20686 asS'mumble' p20687 (lp20688 S'mumbles' p20689 aS'mumbling' p20690 aS'mumbled' p20691 aS'mumbled' p20692 asS'arrest' p20693 (lp20694 S'arrests' p20695 aS'arresting' p20696 aS'arrested' p20697 aS'arrested' p20698 asS'stamp' p20699 (lp20700 S'stamps' p20701 aS'stamping' p20702 aS'stamped' p20703 aS'stamped' p20704 asS'damp' p20705 (lp20706 S'damps' p20707 aS'damping' p20708 aS'damped' p20709 aS'damped' p20710 asS'bobsleigh' p20711 (lp20712 S'bobsleighs' p20713 aS'bobsleighing' p20714 aS'bobsleighed' p20715 aS'bobsleighed' p20716 asS'reciprocate' p20717 (lp20718 S'reciprocates' p20719 aS'reciprocating' p20720 aS'reciprocated' p20721 aS'reciprocated' p20722 asS'damn' p20723 (lp20724 S'damns' p20725 aS'damning' p20726 aS'damned' p20727 aS'damned' p20728 asS'mutiny' p20729 (lp20730 S'mutinies' p20731 aS'mutinying' p20732 aS'mutinied' p20733 aS'mutinied' p20734 asS'threaten' p20735 (lp20736 S'threatens' p20737 aS'threatening' p20738 aS'threatened' p20739 aS'threatened' p20740 asS'empty' p20741 (lp20742 S'empties' p20743 aS'emptying' p20744 aS'emptied' p20745 aS'emptied' p20746 asS'dialogue' p20747 (lp20748 S'dialogues' p20749 aS'dialoguing' p20750 aS'dialogued' p20751 aS'dialogued' p20752 asS'regroup' p20753 (lp20754 S'regroups' p20755 aS'regrouping' p20756 aS'regrouped' p20757 aS'regrouped' p20758 asS'liven' p20759 (lp20760 S'livens' p20761 aS'livening' p20762 aS'livened' p20763 aS'livened' p20764 asS'hoodoo' p20765 (lp20766 S'hoodoos' p20767 aS'hoodooing' p20768 aS'hoodooed' p20769 aS'hoodooed' p20770 asS'crack' p20771 (lp20772 S'cracks' p20773 aS'cracking' p20774 aS'cracked' p20775 aS'cracked' p20776 asS'misconceive' p20777 (lp20778 S'misconceives' p20779 aS'misconceiving' p20780 aS'misconceived' p20781 aS'misconceived' p20782 asS'deter' p20783 (lp20784 S'deters' p20785 aS'deterring' p20786 aS'deterred' p20787 aS'deterred' p20788 asS'bight' p20789 (lp20790 S'bights' p20791 aS'bighting' p20792 aS'bighted' p20793 aS'bighted' p20794 asS'panegyrize' p20795 (lp20796 S'panegyrizes' p20797 aS'panegyrizing' p20798 aS'panegyrized' p20799 aS'panegyrized' p20800 asS'hobnob' p20801 (lp20802 S'hobnobs' p20803 aS'hobnobbing' p20804 aS'hobnobbed' p20805 aS'hobnobbed' p20806 asS'furrow' p20807 (lp20808 S'furrows' p20809 aS'furrowing' p20810 aS'furrowed' p20811 aS'furrowed' p20812 asS'loom' p20813 (lp20814 S'looms' p20815 aS'looming' p20816 aS'loomed' p20817 aS'loomed' p20818 asS'overplay' p20819 (lp20820 S'overplays' p20821 aS'overplaying' p20822 aS'overplayed' p20823 aS'overplayed' p20824 asS'look' p20825 (lp20826 S'looks' p20827 aS'looking' p20828 aS'looked' p20829 aS'looked' p20830 asS'subjectify' p20831 (lp20832 S'subjectifies' p20833 aS'subjectifying' p20834 aS'subjectified' p20835 aS'subjectified' p20836 asS'institute' p20837 (lp20838 S'institutes' p20839 aS'instituting' p20840 aS'instituted' p20841 aS'instituted' p20842 asS'infamize' p20843 (lp20844 S'infamizes' p20845 aS'infamizing' p20846 aS'infamized' p20847 aS'infamized' p20848 asS'match' p20849 (lp20850 S'matches' p20851 aS'matching' p20852 aS'matched' p20853 aS'matched' p20854 asS'deplane' p20855 (lp20856 S'deplanes' p20857 aS'deplaning' p20858 aS'deplaned' p20859 aS'deplaned' p20860 asS'immaterialize' p20861 (lp20862 S'immaterializes' p20863 aS'immaterializing' p20864 aS'immaterialized' p20865 aS'immaterialized' p20866 asS'fleet' p20867 (lp20868 S'fleets' p20869 aS'fleeting' p20870 aS'fleeted' p20871 aS'fleeted' p20872 asS'loot' p20873 (lp20874 S'loots' p20875 aS'looting' p20876 aS'looted' p20877 aS'looted' p20878 asS'pinchhit' p20879 (lp20880 S'pinchhits' p20881 aS'pinchhitting' p20882 aS'pinchhit' p20883 aS'pinchhit' p20884 asS'guide' p20885 (lp20886 S'guides' p20887 aS'guiding' p20888 aS'guided' p20889 aS'guided' p20890 asS'loop' p20891 (lp20892 S'loops' p20893 aS'looping' p20894 aS'looped' p20895 aS'looped' p20896 asS'pack' p20897 (lp20898 S'packs' p20899 aS'packing' p20900 aS'packed' p20901 aS'packed' p20902 asS'consociate' p20903 (lp20904 S'consociates' p20905 aS'consociating' p20906 aS'consociated' p20907 aS'consociated' p20908 asS'sluice' p20909 (lp20910 S'sluices' p20911 aS'sluicing' p20912 aS'sluiced' p20913 aS'sluiced' p20914 asS'curette' p20915 (lp20916 S'curettes' p20917 aS'curetting' p20918 aS'curetted' p20919 aS'curetted' p20920 asS'crossrefer' p20921 (lp20922 S'crossrefers' p20923 aS'crossrefering' p20924 aS'crossrefered' p20925 aS'crossrefered' p20926 asS'sharecrop' p20927 (lp20928 S'sharecrops' p20929 aS'sharecropping' p20930 aS'sharecropped' p20931 aS'sharecropped' p20932 asS'etherize' p20933 (lp20934 S'etherizes' p20935 aS'etherizing' p20936 aS'etherized' p20937 aS'etherized' p20938 asS'grant' p20939 (lp20940 S'grants' p20941 aS'granting' p20942 aS'granted' p20943 aS'granted' p20944 asS'fluorinate' p20945 (lp20946 S'fluorinates' p20947 aS'fluorinating' p20948 aS'fluorinated' p20949 aS'fluorinated' p20950 asS'refocuse' p20951 (lp20952 S'refocuses' p20953 aS'refocusing' p20954 aS'refocused' p20955 aS'refocused' p20956 asS'belong' p20957 (lp20958 S'belongs' p20959 aS'belonging' p20960 aS'belonged' p20961 aS'belonged' p20962 asS'discredit' p20963 (lp20964 S'discredits' p20965 aS'discrediting' p20966 aS'discredited' p20967 aS'discredited' p20968 asS'shag' p20969 (lp20970 S'shags' p20971 aS'shagging' p20972 aS'shagged' p20973 aS'shagged' p20974 asS'vermiculate' p20975 (lp20976 S'vermiculates' p20977 aS'vermiculating' p20978 aS'vermiculated' p20979 aS'vermiculated' p20980 asS'conflict' p20981 (lp20982 S'conflicts' p20983 aS'conflicting' p20984 aS'conflicted' p20985 aS'conflicted' p20986 asS'sham' p20987 (lp20988 S'shams' p20989 aS'shamming' p20990 aS'shammed' p20991 aS'shammed' p20992 asS'used' p20993 (lp20994 S'uses' p20995 aS'using' p20996 aS'used' p20997 aS'used' p20998 asS'banter' p20999 (lp21000 S'banters' p21001 aS'bantering' p21002 aS'bantered' p21003 aS'bantered' p21004 asS'overweight' p21005 (lp21006 S'overweights' p21007 aS'overweighting' p21008 aS'overweighted' p21009 aS'overweighted' p21010 asS'dryclean' p21011 (lp21012 S'drycleans' p21013 aS'drycleaning' p21014 aS'drycleaned' p21015 aS'drycleaned' p21016 asS'spiritualize' p21017 (lp21018 S'spiritualizes' p21019 aS'spiritualizing' p21020 aS'spiritualized' p21021 aS'spiritualized' p21022 asS'racemize' p21023 (lp21024 S'racemizes' p21025 aS'racemizing' p21026 aS'racemized' p21027 aS'racemized' p21028 asS'infibulate' p21029 (lp21030 S'infibulates' p21031 aS'infibulating' p21032 aS'infibulated' p21033 aS'infibulated' p21034 asS'vitriol' p21035 (lp21036 S'vitriols' p21037 aS'vitrioling' p21038 aS'vitrioled' p21039 aS'vitrioled' p21040 asS'faceoff' p21041 (lp21042 S'facesoff' p21043 aS'facingoff' p21044 aS'facedoff' p21045 aS'facedoff' p21046 asS'unbalance' p21047 (lp21048 S'unbalances' p21049 aS'unbalancing' p21050 aS'unbalanced' p21051 aS'unbalanced' p21052 asS'grind' p21053 (lp21054 S'grinds' p21055 aS'grinding' p21056 aS'ground' p21057 aS'grinded' p21058 asS'reclaim' p21059 (lp21060 S'reclaims' p21061 aS'reclaiming' p21062 aS'reclaimed' p21063 aS'reclaimed' p21064 asS'savvy' p21065 (lp21066 S'savvies' p21067 aS'savvying' p21068 aS'savvied' p21069 aS'savvied' p21070 asS'docket' p21071 (lp21072 S'dockets' p21073 aS'docketing' p21074 aS'docketed' p21075 aS'docketed' p21076 asS'romanticize' p21077 (lp21078 S'romanticizes' p21079 aS'romanticizing' p21080 aS'romanticized' p21081 aS'romanticized' p21082 asS'abstain' p21083 (lp21084 S'abstains' p21085 aS'abstaining' p21086 aS'abstained' p21087 aS'abstained' p21088 asS'pillory' p21089 (lp21090 S'pillories' p21091 aS'pillorying' p21092 aS'pilloried' p21093 aS'pilloried' p21094 asS'rebellow' p21095 (lp21096 S'rebellows' p21097 aS'rebellowing' p21098 aS'rebellowed' p21099 aS'rebellowed' p21100 asS'behove' p21101 (lp21102 S'behoves' p21103 aS'behoving' p21104 aS'behoved' p21105 aS'behoved' p21106 asS'kedge' p21107 (lp21108 S'kedges' p21109 aS'kedging' p21110 aS'kedged' p21111 aS'kedged' p21112 asS're-fund' p21113 (lp21114 S're-funds' p21115 aS're-funding' p21116 aS'refunded' p21117 aS're-funded' p21118 asS'gormandize' p21119 (lp21120 S'gormandizes' p21121 aS'gormandizing' p21122 aS'gormandized' p21123 aS'gormandized' p21124 asS'disseminate' p21125 (lp21126 S'disseminates' p21127 aS'disseminating' p21128 aS'disseminated' p21129 aS'disseminated' p21130 asS'superheat' p21131 (lp21132 S'superheats' p21133 aS'superheating' p21134 aS'superheated' p21135 aS'superheated' p21136 asS'exhilarate' p21137 (lp21138 S'exhilarates' p21139 aS'exhilarating' p21140 aS'exhilarated' p21141 aS'exhilarated' p21142 asS'habituate' p21143 (lp21144 S'habituates' p21145 aS'habituating' p21146 aS'habituated' p21147 aS'habituated' p21148 asS'oversteer' p21149 (lp21150 S'oversteers' p21151 aS'oversteering' p21152 aS'oversteered' p21153 aS'oversteered' p21154 asS'doublebogey' p21155 (lp21156 S'doublebogeys' p21157 aS'doublebogeying' p21158 aS'doublebogeyed' p21159 aS'doublebogeyed' p21160 asS'march' p21161 (lp21162 S'marches' p21163 aS'marching' p21164 aS'marched' p21165 aS'marched' p21166 asS'filmset' p21167 (lp21168 S'filmsets' p21169 aS'filmseting' p21170 aS'filmseted' p21171 aS'filmseted' p21172 asS'finalize' p21173 (lp21174 S'finalizes' p21175 aS'finalizing' p21176 aS'finalized' p21177 aS'finalized' p21178 asS'sneck' p21179 (lp21180 S'snecks' p21181 aS'snecking' p21182 aS'snecked' p21183 aS'snecked' p21184 asS'evaluate' p21185 (lp21186 S'evaluates' p21187 aS'evaluating' p21188 aS'evaluated' p21189 aS'evaluated' p21190 asS'pullulate' p21191 (lp21192 S'pullulates' p21193 aS'pullulating' p21194 aS'pullulated' p21195 aS'pullulated' p21196 asS'game' p21197 (lp21198 S'games' p21199 aS'gaming' p21200 aS'gamed' p21201 aS'gamed' p21202 asS'jibe' p21203 (lp21204 S'jibes' p21205 aS'jibing' p21206 aS'jibed' p21207 aS'jibed' p21208 asS'rusticate' p21209 (lp21210 S'rusticates' p21211 aS'rusticating' p21212 aS'rusticated' p21213 aS'rusticated' p21214 asS'sandblast' p21215 (lp21216 S'sandblasts' p21217 aS'sandblasting' p21218 aS'sandblasted' p21219 aS'sandblasted' p21220 asS'pillar' p21221 (lp21222 S'pillars' p21223 aS'pillaring' p21224 aS'pillared' p21225 aS'pillared' p21226 asS'stagnate' p21227 (lp21228 S'stagnates' p21229 aS'stagnating' p21230 aS'stagnated' p21231 aS'stagnated' p21232 asS'manifest' p21233 (lp21234 S'manifests' p21235 aS'manifesting' p21236 aS'manifested' p21237 aS'manifested' p21238 asS'redound' p21239 (lp21240 S'redounds' p21241 aS'redounding' p21242 aS'redounded' p21243 aS'redounded' p21244 asS'coldweld' p21245 (lp21246 S'coldwelds' p21247 aS'coldwelding' p21248 aS'coldwelded' p21249 aS'coldwelded' p21250 asS'pre-digest' p21251 (lp21252 S'pre-digests' p21253 aS'pre-digesting' p21254 aS'predigested' p21255 aS'pre-digested' p21256 asS'sleigh' p21257 (lp21258 S'sleighs' p21259 aS'sleighing' p21260 aS'sleighed' p21261 aS'sleighed' p21262 asS'resole' p21263 (lp21264 S'resoles' p21265 aS'resoling' p21266 aS'resoled' p21267 aS'resoled' p21268 asS'centralize' p21269 (lp21270 S'centralizes' p21271 aS'centralizing' p21272 aS'centralized' p21273 aS'centralized' p21274 asS'sketch' p21275 (lp21276 S'sketches' p21277 aS'sketching' p21278 aS'sketched' p21279 aS'sketched' p21280 asS'wrack' p21281 (lp21282 S'wracks' p21283 aS'wracking' p21284 aS'wracked' p21285 aS'wracked' p21286 asS'parade' p21287 (lp21288 S'parades' p21289 aS'parading' p21290 aS'paraded' p21291 aS'paraded' p21292 asS'aliment' p21293 (lp21294 S'aliments' p21295 aS'alimenting' p21296 aS'alimented' p21297 aS'alimented' p21298 asS'furbish' p21299 (lp21300 S'furbishes' p21301 aS'furbishing' p21302 aS'furbished' p21303 aS'furbished' p21304 asS'lathe' p21305 (lp21306 S'lathes' p21307 aS'lathing' p21308 aS'lathed' p21309 aS'lathed' p21310 asS'undress' p21311 (lp21312 S'undresses' p21313 aS'undressing' p21314 aS'undressed' p21315 aS'undressed' p21316 asS'outnumber' p21317 (lp21318 S'outnumbers' p21319 aS'outnumbering' p21320 aS'outnumbered' p21321 aS'outnumbered' p21322 asS'collocate' p21323 (lp21324 S'collocates' p21325 aS'collocating' p21326 aS'collocated' p21327 aS'collocated' p21328 asS'impoverish' p21329 (lp21330 S'impoverishes' p21331 aS'impoverishing' p21332 aS'impoverished' p21333 aS'impoverished' p21334 asS'stir' p21335 (lp21336 S'stirs' p21337 aS'stirring' p21338 aS'stirred' p21339 aS'stirred' p21340 asS'interlaminate' p21341 (lp21342 S'interlaminates' p21343 aS'interlaminating' p21344 aS'interlaminated' p21345 aS'interlaminated' p21346 asS'savage' p21347 (lp21348 S'savages' p21349 aS'savaging' p21350 aS'savaged' p21351 aS'savaged' p21352 asS'sheen' p21353 (lp21354 S'sheens' p21355 aS'sheening' p21356 aS'sheened' p21357 aS'sheened' p21358 asS'fettle' p21359 (lp21360 S'fettles' p21361 aS'fettling' p21362 aS'fettled' p21363 aS'fettled' p21364 asS'gild' p21365 (lp21366 S'gilds' p21367 aS'gilding' p21368 aS'gilt' p21369 aS'gilt' p21370 asS'unbonnet' p21371 (lp21372 S'unbonnets' p21373 aS'unbonneting' p21374 aS'unbonneted' p21375 aS'unbonneted' p21376 asS'simmer' p21377 (lp21378 S'simmers' p21379 aS'simmering' p21380 aS'simmered' p21381 aS'simmered' p21382 asS'slash' p21383 (lp21384 S'slashes' p21385 aS'slashing' p21386 aS'slashed' p21387 aS'slashed' p21388 asS'flameout' p21389 (lp21390 S'flameouts' p21391 aS'flameouting' p21392 aS'flameouted' p21393 aS'flameouted' p21394 asS'dehydrate' p21395 (lp21396 S'dehydrates' p21397 aS'dehydrating' p21398 aS'dehydrated' p21399 aS'dehydrated' p21400 asS'run' p21401 (lp21402 S'runs' p21403 aS'running' p21404 aS'ran' p21405 aS'run' p21406 asS'rub' p21407 (lp21408 S'rubs' p21409 aS'rubbing' p21410 aS'rubbed' p21411 aS'rubbed' p21412 asS'triple-tongue' p21413 (lp21414 S'triple-tongues' p21415 aS'triple-tonguing' p21416 aS'triple-tongued' p21417 aS'triple-tongued' p21418 asS'rue' p21419 (lp21420 S'rues' p21421 aS'ruing' p21422 aS'rued' p21423 aS'rued' p21424 asS'step' p21425 (lp21426 S'steps' p21427 aS'stepping' p21428 aS'stepped' p21429 aS'stepped' p21430 asS'stew' p21431 (lp21432 S'stews' p21433 aS'stewing' p21434 aS'stewed' p21435 aS'stewed' p21436 asS'bastinado' p21437 (lp21438 S'bastinadoes' p21439 aS'bastinadoing' p21440 aS'bastinadoed' p21441 aS'bastinadoed' p21442 asS'ache' p21443 (lp21444 S'aches' p21445 aS'aching' p21446 aS'ached' p21447 aS'ached' p21448 asS'panhandle' p21449 (lp21450 S'panhandles' p21451 aS'panhandling' p21452 aS'panhandled' p21453 aS'panhandled' p21454 asS'ochre' p21455 (lp21456 S'ochres' p21457 aS'ochring' p21458 aS'ochred' p21459 aS'ochred' p21460 asS'rut' p21461 (lp21462 S'ruts' p21463 aS'rutting' p21464 aS'rutted' p21465 aS'rutted' p21466 asS'shine' p21467 (lp21468 S'shines' p21469 aS'shining' p21470 aS'shone' p21471 aS'shone' p21472 asS'react' p21473 (lp21474 S'reacts' p21475 aS'reacting' p21476 ag4454 aS'reacted' p21477 asS'reappear' p21478 (lp21479 S'reappears' p21480 aS'reappearing' p21481 aS'reappeared' p21482 aS'reappeared' p21483 asS'yirr' p21484 (lp21485 S'yirrs' p21486 aS'yirring' p21487 aS'yirred' p21488 aS'yirred' p21489 asS'stonewall' p21490 (lp21491 S'stonewalls' p21492 aS'stonewalling' p21493 aS'stonewalled' p21494 aS'stonewalled' p21495 asS'hinge' p21496 (lp21497 S'hinges' p21498 aS'hinging' p21499 aS'hinged' p21500 aS'hinged' p21501 asS'perk' p21502 (lp21503 S'perks' p21504 aS'perking' p21505 aS'perked' p21506 aS'perked' p21507 asS'ullage' p21508 (lp21509 S'ullages' p21510 aS'ullaging' p21511 aS'ullaged' p21512 aS'ullaged' p21513 asS'posturize' p21514 (lp21515 S'posturizes' p21516 aS'posturizing' p21517 aS'posturized' p21518 aS'posturized' p21519 asS'misspend' p21520 (lp21521 S'misspends' p21522 aS'misspending' p21523 aS'misspent' p21524 aS'misspent' p21525 asS'block' p21526 (lp21527 S'blocks' p21528 aS'blocking' p21529 aS'blocked' p21530 aS'blocked' p21531 asS'foreswear' p21532 (lp21533 S'foreswears' p21534 aS'foreswearing' p21535 aS'foreswore' p21536 aS'foresworn' p21537 asS'decertify' p21538 (lp21539 S'decertifies' p21540 aS'decertifying' p21541 aS'decertified' p21542 aS'decertified' p21543 asS'ensue' p21544 (lp21545 S'ensues' p21546 aS'ensuing' p21547 aS'ensued' p21548 aS'ensued' p21549 asS'roughhew' p21550 (lp21551 S'roughhews' p21552 aS'roughhewing' p21553 aS'roughhewn' p21554 aS'roughhewn' p21555 asS'calcine' p21556 (lp21557 S'calcines' p21558 aS'calcining' p21559 aS'calcined' p21560 aS'calcined' p21561 asS'disbar' p21562 (lp21563 S'disbars' p21564 aS'disbarring' p21565 aS'disbarred' p21566 aS'disbarred' p21567 asS'douse' p21568 (lp21569 S'douses' p21570 aS'dousing' p21571 aS'doused' p21572 aS'doused' p21573 asS'manufacture' p21574 (lp21575 S'manufactures' p21576 aS'manufacturing' p21577 aS'manufactured' p21578 aS'manufactured' p21579 asS'rummage' p21580 (lp21581 S'rummages' p21582 aS'rummaging' p21583 aS'rummaged' p21584 aS'rummaged' p21585 asS'sizzle' p21586 (lp21587 S'sizzles' p21588 aS'sizzling' p21589 aS'sizzled' p21590 aS'sizzled' p21591 asS'foredo' p21592 (lp21593 S'foredoes' p21594 aS'foredoing' p21595 aS'foredid' p21596 aS'foredone' p21597 asS'sideswipe' p21598 (lp21599 S'sideswipes' p21600 aS'sideswiping' p21601 aS'sideswiped' p21602 aS'sideswiped' p21603 asS'frost' p21604 (lp21605 S'frosts' p21606 aS'frosting' p21607 aS'frosted' p21608 aS'frosted' p21609 asS'disaffirm' p21610 (lp21611 S'disaffirms' p21612 aS'disaffirming' p21613 aS'disaffirmed' p21614 aS'disaffirmed' p21615 asS'inclose' p21616 (lp21617 S'incloses' p21618 aS'inclosing' p21619 aS'inclosed' p21620 aS'inclosed' p21621 asS'higgle' p21622 (lp21623 S'higgles' p21624 aS'higgling' p21625 aS'higgled' p21626 aS'higgled' p21627 asS'reef' p21628 (lp21629 S'reefs' p21630 aS'reefing' p21631 aS'reefed' p21632 aS'reefed' p21633 asS'reek' p21634 (lp21635 S'reeks' p21636 aS'reeking' p21637 aS'reeked' p21638 aS'reeked' p21639 asS'reel' p21640 (lp21641 S'reels' p21642 aS'reeling' p21643 aS'reeled' p21644 aS'reeled' p21645 asS'dull' p21646 (lp21647 S'dulls' p21648 aS'dulling' p21649 aS'dulled' p21650 aS'dulled' p21651 asS'maraud' p21652 (lp21653 S'marauds' p21654 aS'marauding' p21655 aS'marauded' p21656 aS'marauded' p21657 asS'skulk' p21658 (lp21659 S'skulks' p21660 aS'skulking' p21661 aS'skulked' p21662 aS'skulked' p21663 asS'chronicle' p21664 (lp21665 S'chronicles' p21666 aS'chronicling' p21667 aS'chronicled' p21668 aS'chronicled' p21669 asS'immure' p21670 (lp21671 S'immures' p21672 aS'immuring' p21673 aS'immured' p21674 aS'immured' p21675 asS'maffick' p21676 (lp21677 S'mafficks' p21678 aS'mafficking' p21679 aS'mafficked' p21680 aS'mafficked' p21681 asS'nestle' p21682 (lp21683 S'nestles' p21684 aS'nestling' p21685 aS'nestled' p21686 aS'nestled' p21687 asS'watercool' p21688 (lp21689 S'watercools' p21690 aS'watercooling' p21691 aS'watercooled' p21692 aS'watercooled' p21693 asS'blent' p21694 (lp21695 S'blents' p21696 aS'blenting' p21697 aS'blented' p21698 aS'blented' p21699 asS'seethe' p21700 (lp21701 S'seethes' p21702 aS'seething' p21703 aS'seethed' p21704 aS'seethed' p21705 asS'underquote' p21706 (lp21707 S'underquotes' p21708 aS'underquoting' p21709 aS'underquoted' p21710 aS'underquoted' p21711 asS'unwish' p21712 (lp21713 S'unwishes' p21714 aS'unwishing' p21715 aS'unwished' p21716 aS'unwished' p21717 asS'surmise' p21718 (lp21719 S'surmises' p21720 aS'surmising' p21721 aS'surmised' p21722 aS'surmised' p21723 asS'nab' p21724 (lp21725 S'nabs' p21726 aS'nabbing' p21727 aS'nabbed' p21728 aS'nabbed' p21729 asS'liberalize' p21730 (lp21731 S'liberalizes' p21732 aS'liberalizing' p21733 aS'liberalized' p21734 aS'liberalized' p21735 asS'nag' p21736 (lp21737 S'nags' p21738 aS'nagging' p21739 aS'nagged' p21740 aS'nagged' p21741 asS'upstage' p21742 (lp21743 S'upstages' p21744 aS'upstaging' p21745 aS'upstaged' p21746 aS'upstaged' p21747 asS'nap' p21748 (lp21749 S'naps' p21750 aS'napping' p21751 aS'napped' p21752 aS'napped' p21753 asS'haft' p21754 (lp21755 S'hafts' p21756 aS'hafting' p21757 aS'hafted' p21758 aS'hafted' p21759 asS'forge' p21760 (lp21761 S'forges' p21762 aS'forging' p21763 aS'forged' p21764 aS'forged' p21765 asS'deuterate' p21766 (lp21767 S'deuterates' p21768 aS'deuterating' p21769 aS'deuterated' p21770 aS'deuterated' p21771 asS'disfavour' p21772 (lp21773 S'disfavours' p21774 aS'disfavouring' p21775 aS'disfavoured' p21776 aS'disfavoured' p21777 asS'kibitz' p21778 (lp21779 S'kibitzes' p21780 aS'kibitzing' p21781 aS'kibitzed' p21782 aS'kibitzed' p21783 asS'drat' p21784 (lp21785 S'drats' p21786 aS'dratting' p21787 aS'dratted' p21788 aS'dratted' p21789 asS'draw' p21790 (lp21791 S'draws' p21792 aS'drawing' p21793 aS'drew' p21794 aS'drawn' p21795 asS'depolarize' p21796 (lp21797 S'depolarizes' p21798 aS'depolarizing' p21799 aS'depolarized' p21800 aS'depolarized' p21801 asS'out-herod' p21802 (lp21803 S'out-herods' p21804 aS'out-heroding' p21805 aS'out-heroded' p21806 aS'out-heroded' p21807 asS'recalesce' p21808 (lp21809 S'recalesces' p21810 aS'recalescing' p21811 aS'recalesced' p21812 aS'recalesced' p21813 asS'resign' p21814 (lp21815 S'resigns' p21816 aS'resigning' p21817 aS'resigned' p21818 aS'resigned' p21819 asS'tepefy' p21820 (lp21821 S'tepefies' p21822 aS'tepefying' p21823 aS'tepefied' p21824 aS'tepefied' p21825 asS'diphthongize' p21826 (lp21827 S'diphthongizes' p21828 aS'diphthongizing' p21829 aS'diphthongized' p21830 aS'diphthongized' p21831 asS'drab' p21832 (lp21833 S'drabs' p21834 aS'drabbing' p21835 aS'drabbed' p21836 aS'drabbed' p21837 asS'structure' p21838 (lp21839 S'structures' p21840 aS'structuring' p21841 aS'structured' p21842 aS'structured' p21843 asS'miscue' p21844 (lp21845 S'miscues' p21846 aS'miscuing' p21847 aS'miscued' p21848 aS'miscued' p21849 asS'windlass' p21850 (lp21851 S'windlasses' p21852 aS'windlassing' p21853 aS'windlassed' p21854 aS'windlassed' p21855 asS'demagogue' p21856 (lp21857 S'demagogues' p21858 aS'demagoguing' p21859 aS'demagogued' p21860 aS'demagogued' p21861 asS'orbit' p21862 (lp21863 S'orbits' p21864 aS'orbiting' p21865 aS'orbited' p21866 aS'orbited' p21867 asS'bribe' p21868 (lp21869 S'bribes' p21870 aS'bribing' p21871 aS'bribed' p21872 aS'bribed' p21873 asS'rencounter' p21874 (lp21875 S'rencounters' p21876 aS'rencountering' p21877 aS'rencountered' p21878 aS'rencountered' p21879 asS'pinion' p21880 (lp21881 S'pinions' p21882 aS'pinioning' p21883 aS'pinioned' p21884 aS'pinioned' p21885 asS'psyche' p21886 (lp21887 S'psyches' p21888 aS'psyching' p21889 aS'psyched' p21890 aS'psyched' p21891 asS'proposition' p21892 (lp21893 S'propositions' p21894 aS'propositioning' p21895 aS'propositioned' p21896 aS'propositioned' p21897 asS'ionize' p21898 (lp21899 S'ionizes' p21900 aS'ionizing' p21901 aS'ionized' p21902 aS'ionized' p21903 asS'go' p21904 (lp21905 S'goes' p21906 aS'going' p21907 aS'went' p21908 aS'gone' p21909 asS'emboss' p21910 (lp21911 S'embosses' p21912 aS'embossing' p21913 aS'embossed' p21914 aS'embossed' p21915 asS'compact' p21916 (lp21917 S'compacts' p21918 aS'compacting' p21919 aS'compacted' p21920 aS'compacted' p21921 asS'asphalt' p21922 (lp21923 S'asphalts' p21924 aS'asphalting' p21925 aS'asphalted' p21926 aS'asphalted' p21927 asS'analogize' p21928 (lp21929 S'analogizes' p21930 aS'analogizing' p21931 aS'analogized' p21932 aS'analogized' p21933 asS'stave' p21934 (lp21935 S'staves' p21936 aS'staving' p21937 aS'staved' p21938 aS'staved' p21939 asS'teethe' p21940 (lp21941 S'teethes' p21942 aS'teething' p21943 aS'teethed' p21944 aS'teethed' p21945 asS'incrassate' p21946 (lp21947 S'incrassates' p21948 aS'incrassating' p21949 aS'incrassated' p21950 aS'incrassated' p21951 asS'flicker' p21952 (lp21953 S'flickers' p21954 aS'flickering' p21955 aS'flickered' p21956 aS'flickered' p21957 asS'chirre' p21958 (lp21959 S'chirrs' p21960 aS'chirring' p21961 aS'chirred' p21962 aS'chirred' p21963 asS'concertize' p21964 (lp21965 S'concertizes' p21966 aS'concertizing' p21967 aS'concertized' p21968 aS'concertized' p21969 asS'simulcast' p21970 (lp21971 S'simulcasts' p21972 aS'simulcasting' p21973 aS'simulcasted' p21974 aS'simulcasted' p21975 asS'wave' p21976 (lp21977 S'waves' p21978 aS'waving' p21979 aS'waved' p21980 aS'waved' p21981 asS'disinter' p21982 (lp21983 S'disinters' p21984 aS'disinterring' p21985 aS'disinterred' p21986 aS'disinterred' p21987 asS'Germanize' p21988 (lp21989 S'Germanizes' p21990 aS'Germanizing' p21991 aS'Germanized' p21992 aS'Germanized' p21993 asS'underscore' p21994 (lp21995 S'underscores' p21996 aS'underscoring' p21997 aS'underscored' p21998 aS'underscored' p21999 asS'testfire' p22000 (lp22001 S'testfires' p22002 aS'testfiring' p22003 aS'testfired' p22004 aS'testfired' p22005 asS'button' p22006 (lp22007 S'buttons' p22008 aS'buttoning' p22009 aS'buttoned' p22010 aS'buttoned' p22011 asS'plasmolyze' p22012 (lp22013 S'plasmolyzes' p22014 aS'plasmolyzing' p22015 aS'plasmolyzed' p22016 aS'plasmolyzed' p22017 asS'hive' p22018 (lp22019 S'hives' p22020 aS'hiving' p22021 aS'hived' p22022 aS'hived' p22023 asS'mewl' p22024 (lp22025 S'mewls' p22026 aS'mewling' p22027 aS'mewled' p22028 aS'mewled' p22029 asS'evangelize' p22030 (lp22031 S'evangelizes' p22032 aS'evangelizing' p22033 aS'evangelized' p22034 aS'evangelized' p22035 asS'cloister' p22036 (lp22037 S'cloisters' p22038 aS'cloistering' p22039 aS'cloistered' p22040 aS'cloistered' p22041 asS'castrate' p22042 (lp22043 S'castrates' p22044 aS'castrating' p22045 aS'castrated' p22046 aS'castrated' p22047 asS'enforce' p22048 (lp22049 S'enforces' p22050 aS'enforcing' p22051 aS'enforced' p22052 aS'enforced' p22053 asS'slow' p22054 (lp22055 S'slows' p22056 aS'slowing' p22057 aS'slowed' p22058 aS'slowed' p22059 asS'dilute' p22060 (lp22061 S'dilutes' p22062 aS'diluting' p22063 aS'diluted' p22064 aS'diluted' p22065 asS'renegotiate' p22066 (lp22067 S'renegotiates' p22068 aS'renegotiating' p22069 aS'renegotiated' p22070 aS'renegotiated' p22071 asS'picket' p22072 (lp22073 S'pickets' p22074 aS'picketing' p22075 aS'picketed' p22076 aS'picketed' p22077 asS'reline' p22078 (lp22079 S'relines' p22080 aS'relining' p22081 aS'relined' p22082 aS'relined' p22083 asS'blitz' p22084 (lp22085 S'blitzes' p22086 aS'blitzing' p22087 aS'blitzed' p22088 aS'blitzed' p22089 asS'jump' p22090 (lp22091 S'jumps' p22092 aS'jumping' p22093 aS'jumped' p22094 aS'jumped' p22095 asS'hose' p22096 (lp22097 S'hoses' p22098 aS'hosing' p22099 aS'hosed' p22100 aS'hosed' p22101 asS'click' p22102 (lp22103 S'clicks' p22104 aS'clicking' p22105 aS'clicked' p22106 aS'clicked' p22107 asS'poke' p22108 (lp22109 S'pokes' p22110 aS'poking' p22111 aS'poked' p22112 aS'poked' p22113 asS'impearl' p22114 (lp22115 S'impearls' p22116 aS'impearling' p22117 aS'impearled' p22118 aS'impearled' p22119 asS'opaque' p22120 (lp22121 S'opaques' p22122 aS'opaquing' p22123 aS'opaqued' p22124 aS'opaqued' p22125 asS'sepulchre' p22126 (lp22127 S'sepulchres' p22128 aS'sepulchring' p22129 aS'sepulchred' p22130 aS'sepulchred' p22131 asS'schedule' p22132 (lp22133 S'schedules' p22134 aS'scheduling' p22135 aS'scheduled' p22136 aS'scheduled' p22137 asS'exacerbate' p22138 (lp22139 S'exacerbates' p22140 aS'exacerbating' p22141 aS'exacerbated' p22142 aS'exacerbated' p22143 asS'valet' p22144 (lp22145 S'valets' p22146 aS'valeting' p22147 aS'valeted' p22148 aS'valeted' p22149 asS'experiment' p22150 (lp22151 S'experiments' p22152 aS'experimenting' p22153 aS'experimented' p22154 aS'experimented' p22155 asS'unspeak' p22156 (lp22157 S'unspeaks' p22158 aS'unspeaking' p22159 aS'unspoke' p22160 aS'unspoken' p22161 asS'infuse' p22162 (lp22163 S'infuses' p22164 aS'infusing' p22165 aS'infused' p22166 aS'infused' p22167 asS'old-talk' p22168 (lp22169 S'old-talks' p22170 aS'old-talking' p22171 aS'old-talked' p22172 aS'old-talked' p22173 asS'hysterectomize' p22174 (lp22175 S'hysterectomizes' p22176 aS'hysterectomizing' p22177 aS'hysterectomized' p22178 aS'hysterectomized' p22179 asS'Teutonize' p22180 (lp22181 S'Teutonizes' p22182 aS'Teutonizing' p22183 aS'Teutonized' p22184 aS'Teutonized' p22185 asS'embowel' p22186 (lp22187 S'embowels' p22188 aS'emboweling' p22189 aS'emboweled' p22190 aS'emboweled' p22191 asS'prescribe' p22192 (lp22193 S'prescribes' p22194 aS'prescribing' p22195 aS'prescribed' p22196 aS'prescribed' p22197 asS'mothproof' p22198 (lp22199 sS'quell' p22200 (lp22201 S'quells' p22202 aS'quelling' p22203 aS'quelled' p22204 aS'quelled' p22205 asS'bowdlerize' p22206 (lp22207 S'bowdlerizes' p22208 aS'bowdlerizing' p22209 aS'bowdlerized' p22210 aS'bowdlerized' p22211 asS'adulterate' p22212 (lp22213 S'adulterates' p22214 aS'adulterating' p22215 aS'adulterated' p22216 aS'adulterated' p22217 asS'traject' p22218 (lp22219 S'trajects' p22220 aS'trajecting' p22221 aS'trajected' p22222 aS'trajected' p22223 asS'convert' p22224 (lp22225 S'converts' p22226 aS'converting' p22227 aS'converted' p22228 aS'converted' p22229 asS'copper-bottom' p22230 (lp22231 S'copper-bottoms' p22232 aS'copper-bottoming' p22233 aS'copper-bottomed' p22234 aS'copper-bottomed' p22235 asS'chant' p22236 (lp22237 S'chants' p22238 aS'chanting' p22239 aS'chanted' p22240 aS'chanted' p22241 asS'perfuse' p22242 (lp22243 S'perfuses' p22244 aS'perfusing' p22245 aS'perfused' p22246 aS'perfused' p22247 asS'repel' p22248 (lp22249 S'repels' p22250 aS'repelling' p22251 aS'repelled' p22252 aS'repelled' p22253 asS'behead' p22254 (lp22255 S'beheads' p22256 aS'beheading' p22257 aS'beheaded' p22258 aS'beheaded' p22259 asS'wig' p22260 (lp22261 S'wigs' p22262 aS'wigging' p22263 aS'wigged' p22264 aS'wigged' p22265 asS'foresee' p22266 (lp22267 S'foresees' p22268 aS'foreseeing' p22269 aS'foresaw' p22270 aS'foreseen' p22271 asS'shake' p22272 (lp22273 S'shakes' p22274 aS'shaking' p22275 aS'shook' p22276 aS'shaken' p22277 asS'win' p22278 (lp22279 S'wins' p22280 aS'winning' p22281 aS'won' p22282 aS'won' p22283 asS'manage' p22284 (lp22285 S'manages' p22286 aS'managing' p22287 aS'managed' p22288 aS'managed' p22289 asS'clout' p22290 (lp22291 S'clouts' p22292 aS'clouting' p22293 aS'clouted' p22294 aS'clouted' p22295 asS'subserve' p22296 (lp22297 S'subserves' p22298 aS'subserving' p22299 aS'subserved' p22300 aS'subserved' p22301 asS'wis' p22302 (lp22303 S'wises' p22304 aS'wising' p22305 aS'wised' p22306 aS'wised' p22307 asS'infest' p22308 (lp22309 S'infests' p22310 aS'infesting' p22311 aS'infested' p22312 aS'infested' p22313 asS'submerse' p22314 (lp22315 S'submerses' p22316 aS'submersing' p22317 aS'submersed' p22318 aS'submersed' p22319 asS'cybernate' p22320 (lp22321 S'cybernates' p22322 aS'cybernating' p22323 aS'cybernated' p22324 aS'cybernated' p22325 asS'manipulate' p22326 (lp22327 S'manipulates' p22328 aS'manipulating' p22329 aS'manipulated' p22330 aS'manipulated' p22331 asS'imbue' p22332 (lp22333 S'imbues' p22334 aS'imbuing' p22335 aS'imbued' p22336 aS'imbued' p22337 asS'crap' p22338 (lp22339 S'craps' p22340 aS'crapping' p22341 aS'crapped' p22342 aS'crapped' p22343 asS'opalesce' p22344 (lp22345 S'opalesces' p22346 aS'opalescing' p22347 aS'opalesced' p22348 aS'opalesced' p22349 asS'snood' p22350 (lp22351 S'snoods' p22352 aS'snooding' p22353 aS'snooded' p22354 aS'snooded' p22355 asS'plasticize' p22356 (lp22357 S'plasticizes' p22358 aS'plasticizing' p22359 aS'plasticized' p22360 aS'plasticized' p22361 asS'platitudinize' p22362 (lp22363 S'platitudinizes' p22364 aS'platitudinizing' p22365 aS'platitudinized' p22366 aS'platitudinized' p22367 asS'crab' p22368 (lp22369 S'crabs' p22370 aS'crabbing' p22371 aS'crabbed' p22372 aS'crabs' p22373 asS'mercurate' p22374 (lp22375 S'mercurates' p22376 aS'mercurating' p22377 aS'mercurated' p22378 aS'mercurated' p22379 asS'cram' p22380 (lp22381 S'crams' p22382 aS'cramming' p22383 aS'crammed' p22384 aS'crammed' p22385 asS'recompose' p22386 (lp22387 S'recomposes' p22388 aS'recomposing' p22389 aS'recomposed' p22390 aS'recomposed' p22391 asS'depreciate' p22392 (lp22393 S'depreciates' p22394 aS'depreciating' p22395 aS'depreciated' p22396 aS'depreciated' p22397 asS'sand-blast' p22398 (lp22399 S'sand-blasts' p22400 ag21218 ag21219 ag21220 asS'stem' p22401 (lp22402 S'stems' p22403 aS'stemming' p22404 aS'stemmed' p22405 aS'stemmed' p22406 asS'cackle' p22407 (lp22408 S'cackles' p22409 aS'cackling' p22410 aS'cackled' p22411 aS'cackled' p22412 asS'lacerate' p22413 (lp22414 S'lacerates' p22415 aS'lacerating' p22416 aS'lacerated' p22417 aS'lacerated' p22418 asS'mismatch' p22419 (lp22420 S'mismatches' p22421 aS'mismatching' p22422 aS'mismatched' p22423 aS'mismatched' p22424 asS'hotfoot' p22425 (lp22426 S'hotfoots' p22427 aS'hotfooting' p22428 aS'hotfooted' p22429 aS'hotfooted' p22430 asS'deschool' p22431 (lp22432 S'deschools' p22433 aS'deschooling' p22434 aS'deschooled' p22435 aS'deschooled' p22436 asS'reindict' p22437 (lp22438 S'reindicts' p22439 aS'reindicting' p22440 aS'reindicted' p22441 aS'reindicted' p22442 asS're-cover' p22443 (lp22444 S're-covers' p22445 aS're-covering' p22446 ag17066 aS're-covered' p22447 asS'felicitate' p22448 (lp22449 S'felicitates' p22450 aS'felicitating' p22451 aS'felicitated' p22452 aS'felicitated' p22453 asS'disrobe' p22454 (lp22455 S'disrobes' p22456 aS'disrobing' p22457 aS'disrobed' p22458 aS'disrobed' p22459 asS'consort' p22460 (lp22461 S'consorts' p22462 aS'consorting' p22463 aS'consorted' p22464 aS'consorted' p22465 asS'lapse' p22466 (lp22467 S'lapses' p22468 aS'lapsing' p22469 aS'lapsed' p22470 aS'lapsed' p22471 asS'squaredance' p22472 (lp22473 S'squaredances' p22474 aS'squaredancing' p22475 aS'squaredanced' p22476 aS'squaredanced' p22477 asS'meet' p22478 (lp22479 S'meets' p22480 aS'meeting' p22481 aS'met' p22482 aS'met' p22483 asS'nurture' p22484 (lp22485 S'nurtures' p22486 aS'nurturing' p22487 aS'nurtured' p22488 aS'nurtured' p22489 asS'vaunt' p22490 (lp22491 S'vaunts' p22492 aS'vaunting' p22493 aS'vaunted' p22494 aS'vaunted' p22495 asS'control' p22496 (lp22497 S'controls' p22498 aS'controlling' p22499 aS'controlled' p22500 aS'controlled' p22501 asS'wharf' p22502 (lp22503 S'wharfs' p22504 aS'wharfing' p22505 aS'wharfed' p22506 aS'wharfed' p22507 asS'skirl' p22508 (lp22509 S'skirls' p22510 aS'skirling' p22511 aS'skirled' p22512 aS'skirled' p22513 asS'crevasse' p22514 (lp22515 S'crevasses' p22516 aS'crevassing' p22517 aS'crevassed' p22518 aS'crevassed' p22519 asS'beleaguer' p22520 (lp22521 S'beleaguers' p22522 aS'beleaguering' p22523 aS'beleaguered' p22524 aS'beleaguered' p22525 asS'uppercase' p22526 (lp22527 S'uppercases' p22528 aS'uppercasing' p22529 aS'uppercased' p22530 aS'uppercased' p22531 asS'atone' p22532 (lp22533 S'atones' p22534 aS'atoning' p22535 aS'atoned' p22536 aS'atoned' p22537 asS'skirr' p22538 (lp22539 S'skirrs' p22540 aS'skirring' p22541 aS'skirred' p22542 aS'skirred' p22543 asS'skirt' p22544 (lp22545 S'skirts' p22546 aS'skirting' p22547 aS'skirted' p22548 aS'skirted' p22549 asS'undeceive' p22550 (lp22551 S'undeceives' p22552 aS'undeceiving' p22553 aS'undeceived' p22554 aS'undeceived' p22555 asS'hesitate' p22556 (lp22557 S'hesitates' p22558 aS'hesitating' p22559 aS'hesitated' p22560 aS'hesitated' p22561 asS'over-expose' p22562 (lp22563 S'over-exposes' p22564 aS'over-exposing' p22565 ag6400 aS'over-exposed' p22566 asS'scramb' p22567 (lp22568 S'scrambs' p22569 aS'scrambing' p22570 aS'scrambed' p22571 aS'scrambed' p22572 asS'perspire' p22573 (lp22574 S'perspires' p22575 aS'perspiring' p22576 aS'perspired' p22577 aS'perspired' p22578 asS'nark' p22579 (lp22580 S'narks' p22581 aS'narking' p22582 aS'narked' p22583 aS'narked' p22584 asS'reestablish' p22585 (lp22586 S'reestablishes' p22587 aS'reestablishing' p22588 aS'reestablished' p22589 aS'reestablished' p22590 asS'deplore' p22591 (lp22592 S'deplores' p22593 aS'deploring' p22594 aS'deplored' p22595 aS'deplored' p22596 asS'inweave' p22597 (lp22598 S'inweaves' p22599 aS'inweaving' p22600 aS'inwove' p22601 aS'inwoven' p22602 asS'mislike' p22603 (lp22604 S'mislikes' p22605 aS'misliking' p22606 aS'misliked' p22607 aS'misliked' p22608 asS'free-select' p22609 (lp22610 S'free-selects' p22611 aS'free-selecting' p22612 aS'free-selected' p22613 aS'free-selected' p22614 asS'pink' p22615 (lp22616 S'pinks' p22617 aS'pinking' p22618 aS'pinked' p22619 aS'pinked' p22620 asS'farm' p22621 (lp22622 S'farms' p22623 aS'farming' p22624 aS'farmed' p22625 aS'farmed' p22626 asS'canker' p22627 (lp22628 S'cankers' p22629 aS'cankering' p22630 aS'cankered' p22631 aS'cankered' p22632 asS'fart' p22633 (lp22634 S'farts' p22635 aS'farting' p22636 aS'farted' p22637 aS'farted' p22638 asS'cantillate' p22639 (lp22640 S'cantillates' p22641 aS'cantillating' p22642 aS'cantillated' p22643 aS'cantillated' p22644 asS'fatigue' p22645 (lp22646 S'fatigues' p22647 aS'fatiguing' p22648 aS'fatigued' p22649 aS'fatigued' p22650 asS'prance' p22651 (lp22652 S'prances' p22653 aS'prancing' p22654 aS'pranced' p22655 aS'pranced' p22656 asS'queer' p22657 (lp22658 S'queers' p22659 aS'queering' p22660 aS'queered' p22661 aS'queered' p22662 asS'tomb' p22663 (lp22664 S'tombs' p22665 aS'tombing' p22666 aS'tombed' p22667 aS'tombed' p22668 asS'foment' p22669 (lp22670 S'foments' p22671 aS'fomenting' p22672 aS'fomented' p22673 aS'fomented' p22674 asS'unmuzzle' p22675 (lp22676 S'unmuzzles' p22677 aS'unmuzzling' p22678 aS'unmuzzled' p22679 aS'unmuzzled' p22680 asS'prettify' p22681 (lp22682 S'prettifies' p22683 aS'prettifying' p22684 aS'prettified' p22685 aS'prettified' p22686 asS'overdress' p22687 (lp22688 S'overdresses' p22689 aS'overdressing' p22690 aS'overdressed' p22691 aS'overdressed' p22692 asS'encamp' p22693 (lp22694 S'encamps' p22695 aS'encamping' p22696 aS'encamped' p22697 aS'encamped' p22698 asS'decorticate' p22699 (lp22700 S'decorticates' p22701 aS'decorticating' p22702 aS'decorticated' p22703 aS'decorticated' p22704 asS'day-dream' p22705 (lp22706 S"daydreams'" p22707 aS'daydream' p22708 ag12834 aS'day-dreamed' p22709 asS'corral' p22710 (lp22711 S'corrals' p22712 aS'corralling' p22713 aS'corralled' p22714 aS'corralled' p22715 asS'scoop' p22716 (lp22717 S'scoops' p22718 aS'scooping' p22719 aS'scooped' p22720 aS'scooped' p22721 asS'scoot' p22722 (lp22723 S'scoots' p22724 aS'scooting' p22725 aS'scooted' p22726 aS'scooted' p22727 asS'wadset' p22728 (lp22729 S'wadsets' p22730 aS'wadsetting' p22731 aS'wadsetted' p22732 aS'wadsetted' p22733 asS'shush' p22734 (lp22735 S'shushes' p22736 aS'shushing' p22737 aS'shushed' p22738 aS'shushed' p22739 asS'acetylate' p22740 (lp22741 S'acetylates' p22742 aS'acetylating' p22743 aS'acetylated' p22744 aS'acetylated' p22745 asS'costume' p22746 (lp22747 S'costumes' p22748 aS'costuming' p22749 aS'costumed' p22750 aS'costumed' p22751 asS'cruise' p22752 (lp22753 S'cruises' p22754 aS'cruising' p22755 aS'cruised' p22756 aS'cruised' p22757 asS'embezzle' p22758 (lp22759 S'embezzles' p22760 aS'embezzling' p22761 aS'embezzled' p22762 aS'embezzled' p22763 asS'vilify' p22764 (lp22765 S'vilifies' p22766 aS'vilifying' p22767 aS'vilified' p22768 aS'vilified' p22769 asS'hock' p22770 (lp22771 S'hocks' p22772 aS'hocking' p22773 aS'hocked' p22774 aS'hocked' p22775 asS'brood' p22776 (lp22777 S'broods' p22778 aS'brooding' p22779 aS'brooded' p22780 aS'brooded' p22781 asS'brook' p22782 (lp22783 S'brooks' p22784 aS'brooking' p22785 aS'brooked' p22786 aS'brooked' p22787 asS'intercrop' p22788 (lp22789 S'intercrops' p22790 aS'intercropping' p22791 aS'intercropped' p22792 aS'intercropped' p22793 asS'stallfeed' p22794 (lp22795 S'stallfeeds' p22796 aS'stallfeeding' p22797 aS'stallfed' p22798 aS'stallfed' p22799 asS'bestialize' p22800 (lp22801 S'bestializes' p22802 aS'bestializing' p22803 aS'bestialized' p22804 aS'bestialized' p22805 asS'demoralize' p22806 (lp22807 S'demoralizes' p22808 aS'demoralizing' p22809 aS'demoralized' p22810 aS'demoralized' p22811 asS'swaddle' p22812 (lp22813 S'swaddles' p22814 aS'swaddling' p22815 aS'swaddled' p22816 aS'swaddled' p22817 asS'frogmarch' p22818 (lp22819 S'frogmarches' p22820 aS'frogmarching' p22821 aS'frogmarched' p22822 aS'frogmarched' p22823 asS'dike' p22824 (lp22825 S'dikes' p22826 aS'diking' p22827 aS'diked' p22828 aS'diked' p22829 asS'snorkel' p22830 (lp22831 S'snorkels' p22832 aS'snorkeling' p22833 aS'snorkeled' p22834 aS'snorkeled' p22835 asS'propound' p22836 (lp22837 S'propounds' p22838 aS'propounding' p22839 aS'propounded' p22840 aS'propounded' p22841 asS'front' p22842 (lp22843 S'fronts' p22844 aS'fronting' p22845 aS'fronted' p22846 aS'fronted' p22847 asS'refuel' p22848 (lp22849 S'refuels' p22850 aS'refuelling' p22851 aS'refuelled' p22852 aS'refuelled' p22853 asS'chasten' p22854 (lp22855 S'chastens' p22856 aS'chastening' p22857 aS'chastened' p22858 aS'chastened' p22859 asS'spoon-feed' p22860 (lp22861 S'spoon-feeds' p22862 aS'spoon-feeding' p22863 aS'spoon-fed' p22864 aS'spoon-fed' p22865 asS'muff' p22866 (lp22867 S'muffs' p22868 aS'muffing' p22869 aS'muffed' p22870 aS'muffed' p22871 asS'beshrew' p22872 (lp22873 S'beshrews' p22874 aS'beshrewing' p22875 aS'beshrewed' p22876 aS'beshrewed' p22877 asS'unwind' p22878 (lp22879 S'unwinds' p22880 aS'unwinding' p22881 aS'unwound' p22882 aS'unwound' p22883 asS'illuminate' p22884 (lp22885 S'illuminates' p22886 aS'illuminating' p22887 aS'illuminated' p22888 aS'illuminated' p22889 asS'globe' p22890 (lp22891 S'globes' p22892 aS'globing' p22893 aS'globed' p22894 aS'globed' p22895 asS'constitute' p22896 (lp22897 S'constitutes' p22898 aS'constituting' p22899 aS'constituted' p22900 aS'constituted' p22901 asS'seesaw' p22902 (lp22903 S'seesaws' p22904 aS'seesawing' p22905 aS'seesawed' p22906 aS'seesawed' p22907 asS'muckamuck' p22908 (lp22909 S'muckamucks' p22910 aS'muckamucking' p22911 aS'muckamucked' p22912 aS'muckamucked' p22913 asS'measure' p22914 (lp22915 S'measures' p22916 aS'measuring' p22917 aS'measured' p22918 aS'measured' p22919 asS'gallant' p22920 (lp22921 S'gallants' p22922 aS'gallanting' p22923 aS'gallanted' p22924 aS'gallanted' p22925 asS'bobol' p22926 (lp22927 S'bobols' p22928 aS'boboling' p22929 aS'boboled' p22930 aS'boboled' p22931 asS'remise' p22932 (lp22933 S'remises' p22934 aS'remising' p22935 aS'remised' p22936 aS'remised' p22937 asS'confess' p22938 (lp22939 S'confesses' p22940 aS'confessing' p22941 aS'confessed' p22942 aS'confessed' p22943 asS'geologize' p22944 (lp22945 S'geologizes' p22946 aS'geologizing' p22947 aS'geologized' p22948 aS'geologized' p22949 asS'prepay' p22950 (lp22951 S'prepays' p22952 aS'prepaying' p22953 aS'prepaid' p22954 aS'prepaid' p22955 asS'complect' p22956 (lp22957 S'complects' p22958 aS'complecting' p22959 aS'complected' p22960 aS'complected' p22961 asS'cause' p22962 (lp22963 S'causes' p22964 aS'causing' p22965 aS'caused' p22966 aS'caused' p22967 asS'slush' p22968 (lp22969 S'slushes' p22970 aS'slushing' p22971 aS'slushed' p22972 aS'slushed' p22973 asS'obsess' p22974 (lp22975 S'obsesses' p22976 aS'obsessing' p22977 aS'obsessed' p22978 aS'obsessed' p22979 asS'contemporize' p22980 (lp22981 S'contemporizes' p22982 aS'contemporizing' p22983 aS'contemporized' p22984 aS'contemporized' p22985 asS'watermark' p22986 (lp22987 S'watermarks' p22988 aS'watermarking' p22989 aS'watermarked' p22990 aS'watermarked' p22991 asS'chitchat' p22992 (lp22993 S'chitchats' p22994 aS'chitchatting' p22995 aS'chitchatted' p22996 aS'chitchatted' p22997 asS'chunter' p22998 (lp22999 S'chunters' p23000 aS'chuntering' p23001 aS'chuntered' p23002 aS'chuntered' p23003 asS'jilt' p23004 (lp23005 S'jilts' p23006 aS'jilting' p23007 aS'jilted' p23008 aS'jilted' p23009 asS'undo' p23010 (lp23011 S'undoes' p23012 aS'undoing' p23013 aS'undid' p23014 aS'undone' p23015 asS'reive' p23016 (lp23017 S'reives' p23018 aS'reiving' p23019 aS'reived' p23020 aS'reived' p23021 asS'darkle' p23022 (lp23023 S'darkles' p23024 aS'darkling' p23025 aS'darkled' p23026 aS'darkled' p23027 asS'sneer' p23028 (lp23029 S'sneers' p23030 aS'sneering' p23031 aS'sneered' p23032 aS'sneered' p23033 asS'brattice' p23034 (lp23035 S'brattices' p23036 aS'bratticing' p23037 aS'bratticed' p23038 aS'bratticed' p23039 asS'route' p23040 (lp23041 S'routes' p23042 aS'routing' p23043 aS'routed' p23044 aS'routed' p23045 asS'keep' p23046 (lp23047 S'keeps' p23048 aS'keeping' p23049 aS'kept' p23050 aS'kept' p23051 asS'keen' p23052 (lp23053 S'keens' p23054 aS'keening' p23055 aS'keened' p23056 aS'keened' p23057 asS'keel' p23058 (lp23059 S'keels' p23060 aS'keeling' p23061 aS'keeled' p23062 aS'keeled' p23063 asS'keek' p23064 (lp23065 S'keeks' p23066 aS'keeking' p23067 aS'keeked' p23068 aS'keeked' p23069 asS'bootlick' p23070 (lp23071 S'bootlicks' p23072 aS'bootlicking' p23073 aS'bootlicked' p23074 aS'bootlicked' p23075 asS'manumit' p23076 (lp23077 S'manumits' p23078 aS'manumitting' p23079 aS'manumitted' p23080 aS'manumitted' p23081 asS'incarnate' p23082 (lp23083 S'incarnates' p23084 aS'incarnating' p23085 aS'incarnated' p23086 aS'incarnated' p23087 asS'clamour' p23088 (lp23089 S'clamours' p23090 aS'clamouring' p23091 aS'clamoured' p23092 aS'clamoured' p23093 asS'confuse' p23094 (lp23095 S'confuses' p23096 aS'confusing' p23097 aS'confused' p23098 aS'confused' p23099 asS'insnare' p23100 (lp23101 S'insnares' p23102 aS'insnaring' p23103 aS'insnared' p23104 aS'insnared' p23105 asS'extrude' p23106 (lp23107 S'extrudes' p23108 aS'extruding' p23109 aS'extruded' p23110 aS'extruded' p23111 asS'deplume' p23112 (lp23113 S'deplumes' p23114 aS'depluming' p23115 aS'deplumed' p23116 aS'deplumed' p23117 asS'maturate' p23118 (lp23119 S'maturates' p23120 aS'maturating' p23121 aS'maturated' p23122 aS'maturated' p23123 asS'stump' p23124 (lp23125 S'stumps' p23126 aS'stumping' p23127 aS'stumped' p23128 aS'stumped' p23129 asS'conga' p23130 (lp23131 S'congas' p23132 aS'congaing' p23133 aS'congaed' p23134 aS'congaed' p23135 asS'unsteel' p23136 (lp23137 S'unsteels' p23138 aS'unsteeling' p23139 aS'unsteeled' p23140 aS'unsteeled' p23141 asS'metricate' p23142 (lp23143 S'metricates' p23144 aS'metricating' p23145 aS'metricated' p23146 aS'metricated' p23147 asS'attach' p23148 (lp23149 S'attaches' p23150 aS'attaching' p23151 aS'attached' p23152 aS'attached' p23153 asS'attack' p23154 (lp23155 S'attacks' p23156 aS'attacking' p23157 aS'attacked' p23158 aS'attacked' p23159 asS'inearth' p23160 (lp23161 S'inearths' p23162 aS'inearthing' p23163 aS'inearthed' p23164 aS'inearthed' p23165 asS'prolapse' p23166 (lp23167 S'prolapses' p23168 aS'prolapsing' p23169 aS'prolapsed' p23170 aS'prolapsed' p23171 asS'man' p23172 (lp23173 S'mans' p23174 aS'manning' p23175 aS'manned' p23176 aS'manned' p23177 asS'advertize' p23178 (lp23179 S'advertizes' p23180 aS'advertizing' p23181 aS'advertized' p23182 aS'advertized' p23183 asS'circulate' p23184 (lp23185 S'circulates' p23186 aS'circulating' p23187 aS'circulated' p23188 aS'circulated' p23189 asS'relinquish' p23190 (lp23191 S'relinquishes' p23192 aS'relinquishing' p23193 aS'relinquished' p23194 aS'relinquished' p23195 asS'misspell' p23196 (lp23197 S'misspells' p23198 aS'misspelling' p23199 aS'misspelt' p23200 aS'misspelt' p23201 asS'punish' p23202 (lp23203 S'punishes' p23204 aS'punishing' p23205 aS'punished' p23206 aS'punished' p23207 asS'curarize' p23208 (lp23209 S'curarizes' p23210 aS'curarizing' p23211 aS'curarized' p23212 aS'curarized' p23213 asS'minute' p23214 (lp23215 S'minutes' p23216 aS'minuting' p23217 aS'minuted' p23218 aS'minuted' p23219 asS'innovate' p23220 (lp23221 S'innovates' p23222 aS'innovating' p23223 aS'innovated' p23224 aS'innovated' p23225 asS'feint' p23226 (lp23227 S'feints' p23228 aS'feinting' p23229 aS'feinted' p23230 aS'feinted' p23231 asS'neck' p23232 (lp23233 S'necks' p23234 aS'necking' p23235 aS'necked' p23236 aS'necked' p23237 asS'photograph' p23238 (lp23239 S'photographs' p23240 aS'photographing' p23241 aS'photographed' p23242 aS'photographed' p23243 asS'spurn' p23244 (lp23245 S'spurns' p23246 aS'spurning' p23247 aS'spurned' p23248 aS'spurned' p23249 asS'bloat' p23250 (lp23251 S'bloats' p23252 aS'bloating' p23253 aS'bloated' p23254 aS'bloated' p23255 asS'glisten' p23256 (lp23257 S'glistens' p23258 aS'glistening' p23259 aS'glistened' p23260 aS'glistened' p23261 asS'girdle' p23262 (lp23263 S'girdles' p23264 aS'girdling' p23265 aS'girdled' p23266 aS'girdled' p23267 asS'beg' p23268 (lp23269 S'begs' p23270 aS'begging' p23271 aS'begged' p23272 aS'begged' p23273 asS'bed' p23274 (lp23275 S'beds' p23276 aS'bedding' p23277 aS'bedded' p23278 aS'bedded' p23279 asS'spurt' p23280 (lp23281 S'spurts' p23282 aS'spurting' p23283 aS'spurted' p23284 aS'spurted' p23285 asS'subjoin' p23286 (lp23287 S'subjoins' p23288 aS'subjoining' p23289 aS'subjoined' p23290 aS'subjoined' p23291 asS'bet' p23292 (lp23293 S'bets' p23294 aS'betting' p23295 aS'betted' p23296 aS'betted' p23297 asS'exhibit' p23298 (lp23299 S'exhibits' p23300 aS'exhibiting' p23301 aS'exhibited' p23302 aS'exhibited' p23303 asS'tabu' p23304 (lp23305 S'tabus' p23306 aS'tabuing' p23307 aS'tabued' p23308 aS'tabued' p23309 asS'torment' p23310 (lp23311 S'torments' p23312 aS'tormenting' p23313 aS'tormented' p23314 aS'tormented' p23315 asS'close' p23316 (lp23317 S'closes' p23318 aS'closing' p23319 aS'closed' p23320 aS'closed' p23321 asS'need' p23322 (lp23323 S'needs' p23324 aS'needing' p23325 aS'needed' p23326 aS'needed' p23327 aS"needn't" p23328 asS'border' p23329 (lp23330 S'borders' p23331 aS'bordering' p23332 aS'bordered' p23333 aS'bordered' p23334 asS'sendoff' p23335 (lp23336 S'sendoffs' p23337 aS'sendoffing' p23338 aS'sendoffed' p23339 aS'sendoffed' p23340 asS'screw' p23341 (lp23342 S'screws' p23343 aS'screwing' p23344 aS'screwed' p23345 aS'screwed' p23346 asS'arrogate' p23347 (lp23348 S'arrogates' p23349 aS'arrogating' p23350 aS'arrogated' p23351 aS'arrogated' p23352 asS'switch' p23353 (lp23354 S'switches' p23355 aS'switching' p23356 aS'switched' p23357 aS'switched' p23358 asS'instance' p23359 (lp23360 S'instances' p23361 aS'instancing' p23362 aS'instanced' p23363 aS'instanced' p23364 asS'jaunt' p23365 (lp23366 S'jaunts' p23367 aS'jaunting' p23368 aS'jaunted' p23369 aS'jaunted' p23370 asS'singe' p23371 (lp23372 S'singes' p23373 aS'singeing' p23374 aS'singed' p23375 aS'singed' p23376 asS'metricize' p23377 (lp23378 S'metricizes' p23379 aS'metricizing' p23380 aS'metricized' p23381 aS'metricized' p23382 asS'visor' p23383 (lp23384 S'visors' p23385 aS'visoring' p23386 aS'visored' p23387 aS'visored' p23388 asS'platinize' p23389 (lp23390 S'platinizes' p23391 aS'platinizing' p23392 aS'platinized' p23393 aS'platinized' p23394 asS'redpencil' p23395 (lp23396 S'redpencils' p23397 aS'redpencilling' p23398 aS'redpencilled' p23399 aS'redpencilled' p23400 asS'demist' p23401 (lp23402 S'demists' p23403 aS'demisting' p23404 aS'demisted' p23405 aS'demisted' p23406 asS'deceive' p23407 (lp23408 S'deceives' p23409 aS'deceiving' p23410 aS'deceived' p23411 aS'deceived' p23412 asS'deploy' p23413 (lp23414 S'deploys' p23415 aS'deploying' p23416 aS'deployed' p23417 aS'deployed' p23418 asS'disgorge' p23419 (lp23420 S'disgorges' p23421 aS'disgorging' p23422 aS'disgorged' p23423 aS'disgorged' p23424 asS'airdry' p23425 (lp23426 S'airdries' p23427 aS'airdrying' p23428 aS'airdried' p23429 aS'airdried' p23430 asS'rackrent' p23431 (lp23432 S'rackrents' p23433 aS'rackrenting' p23434 aS'rackrented' p23435 aS'rackrented' p23436 asS'demise' p23437 (lp23438 S'demises' p23439 aS'demising' p23440 aS'demised' p23441 aS'demised' p23442 asS'counterbalance' p23443 (lp23444 S'counterbalances' p23445 aS'counterbalancing' p23446 aS'counterbalanced' p23447 aS'counterbalanced' p23448 asS'pepsinate' p23449 (lp23450 S'pepsinates' p23451 aS'pepsinating' p23452 aS'pepsinated' p23453 aS'pepsinated' p23454 asS'awe' p23455 (lp23456 S'awes' p23457 aS'awing' p23458 aS'awed' p23459 aS'awed' p23460 asS'detrain' p23461 (lp23462 S'detrains' p23463 aS'detraining' p23464 aS'detrained' p23465 aS'detrained' p23466 asS'damascene' p23467 (lp23468 S'damascenes' p23469 aS'damascening' p23470 aS'damascened' p23471 aS'damascened' p23472 asS'gallivant' p23473 (lp23474 S'gallivants' p23475 aS'gallivanting' p23476 aS'gallivanted' p23477 aS'gallivanted' p23478 asS'eject' p23479 (lp23480 S'ejects' p23481 aS'ejecting' p23482 aS'ejected' p23483 aS'ejected' p23484 asS'upset' p23485 (lp23486 S'upsets' p23487 aS'upsetting' p23488 aS'upset' p23489 aS'upset' p23490 asS'prickle' p23491 (lp23492 S'prickles' p23493 aS'prickling' p23494 aS'prickled' p23495 aS'prickled' p23496 asS'carburize' p23497 (lp23498 S'carburizes' p23499 aS'carburizing' p23500 aS'carburized' p23501 aS'carburized' p23502 asS'suture' p23503 (lp23504 S'sutures' p23505 aS'suturing' p23506 aS'sutured' p23507 aS'sutured' p23508 asS'talk' p23509 (lp23510 S'talks' p23511 aS'talking' p23512 aS'talked' p23513 aS'talked' p23514 asS'constrain' p23515 (lp23516 S'constrains' p23517 aS'constraining' p23518 aS'constrained' p23519 aS'constrained' p23520 asS'deface' p23521 (lp23522 S'defaces' p23523 aS'defacing' p23524 aS'defaced' p23525 aS'defaced' p23526 asS'unsettle' p23527 (lp23528 S'unsettles' p23529 aS'unsettling' p23530 aS'unsettled' p23531 aS'unsettled' p23532 asS'seclude' p23533 (lp23534 S'secludes' p23535 aS'secluding' p23536 aS'secluded' p23537 aS'secluded' p23538 asS'crate' p23539 (lp23540 S'crates' p23541 aS'crating' p23542 aS'crated' p23543 aS'crated' p23544 asS'conventionalize' p23545 (lp23546 S'conventionalizes' p23547 aS'conventionalizing' p23548 aS'conventionalized' p23549 aS'conventionalized' p23550 asS'molest' p23551 (lp23552 S'molests' p23553 aS'molesting' p23554 aS'molested' p23555 aS'molested' p23556 asS'wrestle' p23557 (lp23558 S'wrestles' p23559 aS'wrestling' p23560 aS'wrestled' p23561 aS'wrestled' p23562 asS'half-volley' p23563 (lp23564 S'half-volleys' p23565 aS'half-volleying' p23566 aS'half-volleyed' p23567 aS'half-volleyed' p23568 asS'envy' p23569 (lp23570 S'envies' p23571 aS'envying' p23572 aS'envied' p23573 aS'envied' p23574 asS'cavort' p23575 (lp23576 S'cavorts' p23577 aS'cavorting' p23578 aS'cavorted' p23579 aS'cavorted' p23580 asS'tire' p23581 (lp23582 S'tires' p23583 aS'tiring' p23584 aS'tired' p23585 aS'tired' p23586 asS'outflank' p23587 (lp23588 S'outflanks' p23589 aS'outflanking' p23590 aS'outflanked' p23591 aS'outflanked' p23592 asS'hade' p23593 (lp23594 S'hades' p23595 aS'hading' p23596 aS'haded' p23597 aS'haded' p23598 asS'brighten' p23599 (lp23600 S'brightens' p23601 aS'brightening' p23602 aS'brightened' p23603 aS'brightened' p23604 asS'rash' p23605 (lp23606 S'rashes' p23607 aS'rashing' p23608 aS'rashed' p23609 aS'rashed' p23610 asS'hector' p23611 (lp23612 S'hectors' p23613 aS'hectoring' p23614 aS'hectored' p23615 aS'hectored' p23616 asS'rasp' p23617 (lp23618 S'rasps' p23619 aS'rasping' p23620 aS'rasped' p23621 aS'rasped' p23622 asS'enface' p23623 (lp23624 S'enfaces' p23625 aS'enfacing' p23626 aS'enfaced' p23627 aS'enfaced' p23628 asS'achieve' p23629 (lp23630 S'achieves' p23631 aS'achieving' p23632 aS'achieved' p23633 aS'achieved' p23634 asS'dodge' p23635 (lp23636 S'dodges' p23637 aS'dodging' p23638 aS'dodged' p23639 aS'dodged' p23640 asS'gratify' p23641 (lp23642 S'gratifies' p23643 aS'gratifying' p23644 aS'gratified' p23645 aS'gratified' p23646 asS'tropicalize' p23647 (lp23648 S'tropicalizes' p23649 aS'tropicalizing' p23650 aS'tropicalized' p23651 aS'tropicalized' p23652 asS'joint' p23653 (lp23654 S'joints' p23655 aS'jointing' p23656 aS'jointed' p23657 aS'jointed' p23658 asS'legitimate' p23659 (lp23660 S'legitimates' p23661 aS'legitimating' p23662 aS'legitimated' p23663 aS'legitimated' p23664 asS'computerize' p23665 (lp23666 S'computerizes' p23667 aS'computerizing' p23668 aS'computerized' p23669 aS'computerized' p23670 asS'shy' p23671 (lp23672 S'shies' p23673 aS'shying' p23674 aS'shied' p23675 aS'shied' p23676 asS'quarantine' p23677 (lp23678 S'quarantines' p23679 aS'quarantining' p23680 aS'quarantined' p23681 aS'quarantined' p23682 asS'instantiate' p23683 (lp23684 S'instantiates' p23685 aS'instantiating' p23686 aS'instantiated' p23687 aS'instantiated' p23688 asS'ordain' p23689 (lp23690 S'ordains' p23691 aS'ordaining' p23692 aS'ordained' p23693 aS'ordained' p23694 asS'trammel' p23695 (lp23696 S'trammels' p23697 aS'trammelling' p23698 aS'trammelled' p23699 aS'trammelled' p23700 asS'gush' p23701 (lp23702 S'gushes' p23703 aS'gushing' p23704 aS'gushed' p23705 aS'gushed' p23706 asS'contain' p23707 (lp23708 S'contains' p23709 aS'containing' p23710 aS'contained' p23711 aS'contained' p23712 asS'grab' p23713 (lp23714 S'grabs' p23715 aS'grabbing' p23716 aS'grabbed' p23717 aS'grabbed' p23718 asS'preach' p23719 (lp23720 S'preaches' p23721 aS'preaching' p23722 aS'preached' p23723 aS'preached' p23724 asS'Occidentalize' p23725 (lp23726 S'Occidentalizes' p23727 aS'Occidentalizing' p23728 aS'Occidentalized' p23729 aS'Occidentalized' p23730 asS'smooth' p23731 (lp23732 S'smooths' p23733 aS'smoothing' p23734 aS'smoothed' p23735 aS'smoothed' p23736 asS'encarnalize' p23737 (lp23738 S'encarnalizes' p23739 aS'encarnalizing' p23740 aS'encarnalized' p23741 aS'encarnalized' p23742 asS'orphan' p23743 (lp23744 S'orphans' p23745 aS'orphaning' p23746 aS'orphaned' p23747 aS'orphaned' p23748 asS'oversubscribe' p23749 (lp23750 S'oversubscribes' p23751 aS'oversubscribing' p23752 aS'oversubscribed' p23753 aS'oversubscribed' p23754 asS'reinforce' p23755 (lp23756 S'reinforces' p23757 aS'reinforcing' p23758 aS'reinforced' p23759 aS'reinforced' p23760 asS'powder' p23761 (lp23762 S'powders' p23763 aS'powdering' p23764 aS'powdered' p23765 aS'powdered' p23766 asS'solder' p23767 (lp23768 S'solders' p23769 aS'soldering' p23770 aS'soldered' p23771 aS'soldered' p23772 asS'joypop' p23773 (lp23774 S'joypops' p23775 aS'joypopping' p23776 aS'joypopped' p23777 aS'joypopped' p23778 asS'unearth' p23779 (lp23780 S'unearths' p23781 aS'unearthing' p23782 aS'unearthed' p23783 aS'unearthed' p23784 asS'metrify' p23785 (lp23786 S'metrifies' p23787 aS'metrifying' p23788 aS'metrified' p23789 aS'metrified' p23790 asS'thumb' p23791 (lp23792 S'thumbs' p23793 aS'thumbing' p23794 aS'thumbed' p23795 aS'thumbed' p23796 asS'tend' p23797 (lp23798 S'tends' p23799 aS'tending' p23800 aS'tended' p23801 aS'tended' p23802 asS'realign' p23803 (lp23804 S'realigns' p23805 aS'realigning' p23806 aS'realigned' p23807 aS'realigned' p23808 asS'state' p23809 (lp23810 S'states' p23811 aS'stating' p23812 aS'stated' p23813 aS'stated' p23814 asS'beautify' p23815 (lp23816 S'beautifies' p23817 aS'beautifying' p23818 aS'beautified' p23819 aS'beautified' p23820 asS'tyre' p23821 (lp23822 S'tyres' p23823 aS'tyring' p23824 aS'tyred' p23825 aS'tyred' p23826 asS'lug' p23827 (lp23828 S'lugs' p23829 aS'lugging' p23830 aS'lugged' p23831 aS'lugged' p23832 asS'juggle' p23833 (lp23834 S'juggles' p23835 aS'juggling' p23836 aS'juggled' p23837 aS'juggled' p23838 asS'wouldst' p23839 (lp23840 S'wouldsts' p23841 aS'wouldsting' p23842 aS'wouldsted' p23843 aS'wouldsted' p23844 asS'sabotage' p23845 (lp23846 S'sabotages' p23847 aS'sabotaging' p23848 aS'sabotaged' p23849 aS'sabotaged' p23850 asS'tent' p23851 (lp23852 S'tents' p23853 aS'tenting' p23854 aS'tented' p23855 aS'tented' p23856 asS'ken' p23857 (lp23858 S'kens' p23859 aS'kenning' p23860 aS'kent' p23861 aS'kent' p23862 asS'castoff' p23863 (lp23864 S'castoffs' p23865 aS'castoffing' p23866 aS'castoffed' p23867 aS'castoffed' p23868 asS'splurge' p23869 (lp23870 S'splurges' p23871 aS'splurging' p23872 aS'splurged' p23873 aS'splurged' p23874 asS'demur' p23875 (lp23876 S'demurs' p23877 aS'demurring' p23878 aS'demurred' p23879 aS'demurred' p23880 asS'interfere' p23881 (lp23882 S'interferes' p23883 aS'interfering' p23884 aS'interfered' p23885 aS'interfered' p23886 asS'foreshadow' p23887 (lp23888 S'foreshadows' p23889 aS'foreshadowing' p23890 aS'foreshadowed' p23891 aS'foreshadowed' p23892 asS'relegate' p23893 (lp23894 S'relegates' p23895 aS'relegating' p23896 aS'relegated' p23897 aS'relegated' p23898 asS'key' p23899 (lp23900 S'keys' p23901 aS'keying' p23902 aS'keyed' p23903 aS'keyed' p23904 asS'bedraggle' p23905 (lp23906 S'bedraggles' p23907 aS'bedraggling' p23908 aS'bedraggled' p23909 aS'bedraggled' p23910 asS'disconnect' p23911 (lp23912 S'disconnects' p23913 aS'disconnecting' p23914 aS'disconnected' p23915 aS'disconnected' p23916 asS'kep' p23917 (lp23918 S'keps' p23919 aS'keping' p23920 aS'keped' p23921 aS'keped' p23922 asS'inundate' p23923 (lp23924 S'inundates' p23925 aS'inundating' p23926 aS'inundated' p23927 aS'inundated' p23928 asS'sniff' p23929 (lp23930 S'sniffs' p23931 aS'sniffing' p23932 aS'sniffed' p23933 aS'sniffed' p23934 asS'ballyrag' p23935 (lp23936 S'ballyrags' p23937 aS'ballyragging' p23938 aS'ballyragged' p23939 aS'ballyragged' p23940 asS'career' p23941 (lp23942 S'careers' p23943 aS'careering' p23944 aS'careered' p23945 aS'careered' p23946 asS'outrank' p23947 (lp23948 S'outranks' p23949 aS'outranking' p23950 aS'outranked' p23951 aS'outranked' p23952 asS'delimitate' p23953 (lp23954 S'delimits' p23955 aS'delimiting' p23956 aS'delimited' p23957 aS'delimited' p23958 asS'roil' p23959 (lp23960 S'roils' p23961 aS'roiling' p23962 aS'roiled' p23963 aS'roiled' p23964 asS'admit' p23965 (lp23966 S'admits' p23967 aS'admitting' p23968 aS'admitted' p23969 aS'admitted' p23970 asS'careen' p23971 (lp23972 S'careens' p23973 aS'careening' p23974 aS'careened' p23975 aS'careened' p23976 asS'propagandize' p23977 (lp23978 S'propagandizes' p23979 aS'propagandizing' p23980 aS'propagandized' p23981 aS'propagandized' p23982 asS'admix' p23983 (lp23984 S'admixes' p23985 aS'admixing' p23986 aS'admixed' p23987 aS'admixed' p23988 asS'synthetize' p23989 (lp23990 S'synthetizes' p23991 aS'synthetizing' p23992 aS'synthetized' p23993 aS'synthetized' p23994 asS'christen' p23995 (lp23996 S'christens' p23997 aS'christening' p23998 aS'christened' p23999 aS'christened' p24000 asS'subtitle' p24001 (lp24002 S'subtitles' p24003 aS'subtitling' p24004 aS'subtitled' p24005 aS'subtitled' p24006 asS'illude' p24007 (lp24008 S'illudes' p24009 aS'illuding' p24010 aS'illuded' p24011 aS'illuded' p24012 asS'maximize' p24013 (lp24014 S'maximizes' p24015 aS'maximizing' p24016 aS'maximized' p24017 aS'maximized' p24018 asS'cohere' p24019 (lp24020 S'coheres' p24021 aS'cohering' p24022 aS'cohered' p24023 aS'cohered' p24024 asS'substantialize' p24025 (lp24026 S'substantializes' p24027 aS'substantializing' p24028 aS'substantialized' p24029 aS'substantialized' p24030 asS'quit' p24031 (lp24032 S'quits' p24033 aS'quitting' p24034 aS'quitted' p24035 aS'quitted' p24036 asS'inhale' p24037 (lp24038 S'inhales' p24039 aS'inhaling' p24040 aS'inhaled' p24041 aS'inhaled' p24042 asS'quip' p24043 (lp24044 S'quips' p24045 aS'quipping' p24046 aS'quipped' p24047 aS'quipped' p24048 asS'disintegrate' p24049 (lp24050 S'disintegrates' p24051 aS'disintegrating' p24052 aS'disintegrated' p24053 aS'disintegrated' p24054 asS'yaw' p24055 (lp24056 S'yaws' p24057 aS'yawing' p24058 aS'yawed' p24059 aS'yawed' p24060 asS'polka' p24061 (lp24062 S'polkas' p24063 aS'polkaing' p24064 aS'polkaed' p24065 aS'polkaed' p24066 asS'yap' p24067 (lp24068 S'yaps' p24069 aS'yapping' p24070 aS'yapped' p24071 aS'yapped' p24072 asS'undercoat' p24073 (lp24074 S'undercoats' p24075 aS'undercoating' p24076 aS'undercoated' p24077 aS'undercoated' p24078 asS'quiz' p24079 (lp24080 S'quizzes' p24081 aS'quizzing' p24082 aS'quizzed' p24083 aS'quizzed' p24084 asS'spoliate' p24085 (lp24086 S'spoliates' p24087 aS'spoliating' p24088 aS'spoliated' p24089 aS'spoliated' p24090 asS'treat' p24091 (lp24092 S'treats' p24093 aS'treating' p24094 aS'treated' p24095 aS'treated' p24096 asS'misapply' p24097 (lp24098 S'misapplies' p24099 aS'misapplying' p24100 aS'misapplied' p24101 aS'misapplied' p24102 asS'disannul' p24103 (lp24104 S'disannuls' p24105 aS'disannulling' p24106 aS'disannulled' p24107 aS'disannulled' p24108 asS'overprotect' p24109 (lp24110 S'overprotects' p24111 aS'overprotecting' p24112 aS'overprotected' p24113 aS'overprotected' p24114 asS'snivel' p24115 (lp24116 S'snivels' p24117 aS'snivelling' p24118 aS'snivelled' p24119 aS'snivelled' p24120 asS'undertrump' p24121 (lp24122 S'undertrumps' p24123 aS'undertrumping' p24124 aS'undertrumped' p24125 aS'undertrumped' p24126 asS'titter' p24127 (lp24128 S'titters' p24129 aS'tittering' p24130 aS'tittered' p24131 aS'tittered' p24132 asS'outspread' p24133 (lp24134 S'outspreads' p24135 aS'outspreading' p24136 aS'outspread' p24137 aS'outspread' p24138 asS'steep' p24139 (lp24140 S'steeps' p24141 aS'steeping' p24142 aS'steeped' p24143 aS'steeped' p24144 asS'ripen' p24145 (lp24146 S'ripens' p24147 aS'ripening' p24148 aS'ripened' p24149 aS'ripened' p24150 asS'harden' p24151 (lp24152 S'hardens' p24153 aS'hardening' p24154 aS'hardened' p24155 aS'hardened' p24156 asS'metaphysicize' p24157 (lp24158 S'metaphysicizes' p24159 aS'metaphysicizing' p24160 aS'metaphysicized' p24161 aS'metaphysicized' p24162 asS'riposte' p24163 (lp24164 S'riposts' p24165 aS'riposting' p24166 aS'riposted' p24167 aS'riposted' p24168 asS'dight' p24169 (lp24170 S'dights' p24171 aS'dighting' p24172 aS'dighted' p24173 aS'dighted' p24174 asS'backcomb' p24175 (lp24176 S'backcombs' p24177 aS'backcombing' p24178 aS'backcombed' p24179 aS'backcombed' p24180 asS'backdate' p24181 (lp24182 S'backdates' p24183 aS'backdating' p24184 aS'backdated' p24185 aS'backdated' p24186 asS'surface' p24187 (lp24188 S'surfaces' p24189 aS'surfacing' p24190 aS'surfaced' p24191 aS'surfaced' p24192 asS'unstop' p24193 (lp24194 S'unstops' p24195 aS'unstopping' p24196 aS'unstopped' p24197 aS'unstopped' p24198 asS'equilibrate' p24199 (lp24200 S'equilibrates' p24201 aS'equilibrating' p24202 aS'equilibrated' p24203 aS'equilibrated' p24204 asS'hearten' p24205 (lp24206 S'heartens' p24207 aS'heartening' p24208 aS'heartened' p24209 aS'heartened' p24210 asS'wreck' p24211 (lp24212 S'wrecks' p24213 aS'wrecking' p24214 aS'wrecked' p24215 aS'wrecked' p24216 asS'capture' p24217 (lp24218 S'captures' p24219 aS'capturing' p24220 aS'captured' p24221 aS'captured' p24222 asS'steer' p24223 (lp24224 S'steers' p24225 aS'steering' p24226 aS'steered' p24227 aS'steered' p24228 asS'balloon' p24229 (lp24230 S'balloons' p24231 aS'ballooning' p24232 aS'ballooned' p24233 aS'ballooned' p24234 asS'wangle' p24235 (lp24236 S'wangles' p24237 aS'wangling' p24238 aS'wangled' p24239 aS'wangled' p24240 asS'wheel' p24241 (lp24242 S'wheels' p24243 aS'wheeling' p24244 aS'wheeled' p24245 aS'wheeled' p24246 asS'blight' p24247 (lp24248 S'blights' p24249 aS'blighting' p24250 aS'blighted' p24251 aS'blighted' p24252 asS'insolate' p24253 (lp24254 S'insolates' p24255 aS'insolating' p24256 aS'insolated' p24257 aS'insolated' p24258 asS'nonpros' p24259 (lp24260 S'nonprosses' p24261 aS'nonprossing' p24262 aS'nonprossed' p24263 aS'nonprossed' p24264 asS'joist' p24265 (lp24266 S'joists' p24267 aS'joisting' p24268 aS'joisted' p24269 aS'joisted' p24270 asS'absorb' p24271 (lp24272 S'absorbs' p24273 aS'absorbing' p24274 aS'absorbed' p24275 aS'absorbed' p24276 asS'proscribe' p24277 (lp24278 S'proscribes' p24279 aS'proscribing' p24280 aS'proscribed' p24281 aS'proscribed' p24282 asS'singularize' p24283 (lp24284 S'singularizes' p24285 aS'singularizing' p24286 aS'singularized' p24287 aS'singularized' p24288 asS'effect' p24289 (lp24290 S'effects' p24291 aS'effecting' p24292 aS'effected' p24293 aS'effected' p24294 asS'overset' p24295 (lp24296 S'oversets' p24297 aS'oversetting' p24298 aS'overset' p24299 aS'overset' p24300 asS'oversew' p24301 (lp24302 S'oversews' p24303 aS'oversewing' p24304 aS'oversewed' p24305 aS'oversewn' p24306 asS'rift' p24307 (lp24308 S'rifts' p24309 aS'rifting' p24310 aS'rifted' p24311 aS'rifted' p24312 asS'weld' p24313 (lp24314 S'welds' p24315 aS'welding' p24316 aS'welded' p24317 aS'welded' p24318 asS'intercede' p24319 (lp24320 S'intercedes' p24321 aS'interceding' p24322 aS'interceded' p24323 aS'interceded' p24324 asS'glower' p24325 (lp24326 S'glowers' p24327 aS'glowering' p24328 aS'glowered' p24329 aS'glowered' p24330 asS'universalize' p24331 (lp24332 S'universalizes' p24333 aS'universalizing' p24334 aS'universalized' p24335 aS'universalized' p24336 asS'well' p24337 (lp24338 S'wells' p24339 aS'welling' p24340 aS'welled' p24341 aS'welled' p24342 asS'scunge' p24343 (lp24344 S'scunges' p24345 aS'scunging' p24346 aS'scunged' p24347 aS'scunged' p24348 asS'drone' p24349 (lp24350 S'drones' p24351 aS'droning' p24352 aS'droned' p24353 aS'droned' p24354 asS'welt' p24355 (lp24356 S'welts' p24357 aS'welting' p24358 aS'welted' p24359 aS'welted' p24360 asS'mottle' p24361 (lp24362 S'mottles' p24363 aS'mottling' p24364 aS'mottled' p24365 aS'mottled' p24366 asS'barr_e' p24367 (lp24368 S'barr_ing' p24369 aS'barr_ed' p24370 aS'barr_ed' p24371 asS'wee-wee' p24372 (lp24373 S'wee-wees' p24374 aS'wee-weeing' p24375 aS'wee-weed' p24376 aS'wee-weed' p24377 asS'restore' p24378 (lp24379 S'restores' p24380 aS'restoring' p24381 aS'restored' p24382 aS'restored' p24383 asS'discord' p24384 (lp24385 S'discords' p24386 aS'discording' p24387 aS'discorded' p24388 aS'discorded' p24389 asS'dose' p24390 (lp24391 S'doses' p24392 aS'dosing' p24393 aS'dosed' p24394 aS'dosed' p24395 asS'doss' p24396 (lp24397 S'dosses' p24398 aS'dossing' p24399 aS'dossed' p24400 aS'dossed' p24401 asS'snicker' p24402 (lp24403 S'snickers' p24404 aS'snickering' p24405 aS'snickered' p24406 aS'snickered' p24407 asS'outvote' p24408 (lp24409 S'outvotes' p24410 aS'outvoting' p24411 aS'outvoted' p24412 aS'outvoted' p24413 asS'mitre' p24414 (lp24415 S'mitres' p24416 aS'mitring' p24417 aS'mitred' p24418 aS'mitred' p24419 asS'ensanguine' p24420 (lp24421 S'ensanguines' p24422 aS'ensanguining' p24423 aS'ensanguined' p24424 aS'ensanguined' p24425 asS'warrant' p24426 (lp24427 S'warrants' p24428 aS'warranting' p24429 aS'warranted' p24430 aS'warranted' p24431 asS'kick' p24432 (lp24433 S'kicks' p24434 aS'kicking' p24435 aS'kicked' p24436 aS'kicked' p24437 asS'canter' p24438 (lp24439 sS'kick-start' p24440 (lp24441 S'kick-starts' p24442 aS'kick-starting' p24443 aS'kick-started' p24444 aS'kick-started' p24445 asS'fate' p24446 (lp24447 S'fates' p24448 aS'fating' p24449 aS'fated' p24450 aS'fated' p24451 asS'interlap' p24452 (lp24453 S'interlaps' p24454 aS'interlapping' p24455 aS'interlapped' p24456 aS'interlapped' p24457 asS'burden' p24458 (lp24459 S'burdens' p24460 aS'burdening' p24461 aS'burdened' p24462 aS'burdened' p24463 asS'interlay' p24464 (lp24465 S'interlays' p24466 aS'interlaying' p24467 aS'interlaid' p24468 aS'interlaid' p24469 asS'candy' p24470 (lp24471 S'candies' p24472 aS'candying' p24473 aS'candied' p24474 aS'candied' p24475 asS'tipple' p24476 (lp24477 S'tipples' p24478 aS'tippling' p24479 aS'tippled' p24480 aS'tippled' p24481 asS'lose' p24482 (lp24483 S'loses' p24484 aS'losing' p24485 aS'lost' p24486 aS'lost' p24487 asS'divest' p24488 (lp24489 S'divests' p24490 aS'divesting' p24491 aS'divested' p24492 aS'divested' p24493 asS'recrystallize' p24494 (lp24495 S'recrystallizes' p24496 aS'recrystallizing' p24497 aS'recrystallized' p24498 aS'recrystallized' p24499 asS'page' p24500 (lp24501 S'pages' p24502 aS'paging' p24503 aS'paged' p24504 aS'paged' p24505 asS'shed' p24506 (lp24507 S'sheds' p24508 aS'shedding' p24509 aS'shed' p24510 aS'shed' p24511 asS'glare' p24512 (lp24513 S'glares' p24514 aS'glaring' p24515 aS'glared' p24516 aS'glared' p24517 asS'startle' p24518 (lp24519 S'startles' p24520 aS'startling' p24521 aS'startled' p24522 aS'startled' p24523 asS'twitter' p24524 (lp24525 S'twitters' p24526 aS'twittering' p24527 aS'twittered' p24528 aS'twittered' p24529 asS'scuffle' p24530 (lp24531 S'scuffles' p24532 aS'scuffling' p24533 aS'scuffled' p24534 aS'scuffled' p24535 asS'motive' p24536 (lp24537 S'motives' p24538 aS'motiving' p24539 aS'motived' p24540 aS'motived' p24541 asS'shew' p24542 (lp24543 S'shews' p24544 aS'shewing' p24545 aS'shewed' p24546 aS'shewn' p24547 asS'profiteer' p24548 (lp24549 S'profiteers' p24550 aS'profiteering' p24551 aS'profiteered' p24552 aS'profiteered' p24553 asS'fumigate' p24554 (lp24555 S'fumigates' p24556 aS'fumigating' p24557 aS'fumigated' p24558 aS'fumigated' p24559 asS'mizzle' p24560 (lp24561 S'mizzles' p24562 aS'mizzling' p24563 aS'mizzled' p24564 aS'mizzled' p24565 asS'home' p24566 (lp24567 S'homes' p24568 aS'homing' p24569 aS'homed' p24570 aS'homed' p24571 asS'peter' p24572 (lp24573 S'peters' p24574 aS'petering' p24575 aS'petered' p24576 aS'petered' p24577 asS'drizzle' p24578 (lp24579 S'drizzles' p24580 aS'drizzling' p24581 aS'drizzled' p24582 aS'drizzled' p24583 asS'pinpoint' p24584 (lp24585 sS'overlay' p24586 (lp24587 S'overlays' p24588 aS'overlaying' p24589 aS'overlaid' p24590 aS'overlaid' p24591 asS'swarth' p24592 (lp24593 S'swarths' p24594 aS'swarthing' p24595 aS'swarthed' p24596 aS'swarthed' p24597 asS'upswing' p24598 (lp24599 S'upswings' p24600 aS'upswinging' p24601 aS'upswung' p24602 aS'upswung' p24603 asS'overlap' p24604 (lp24605 S'overlaps' p24606 aS'overlapping' p24607 aS'overlapped' p24608 aS'overlapped' p24609 asS'outgo' p24610 (lp24611 S'outgoes' p24612 aS'outgoing' p24613 aS'outwent' p24614 aS'outgone' p24615 asS'percolate' p24616 (lp24617 S'percolates' p24618 aS'percolating' p24619 aS'percolated' p24620 aS'percolated' p24621 asS'radiotelephone' p24622 (lp24623 S'radiotelephones' p24624 aS'radiotelephoning' p24625 aS'radiotelephoned' p24626 aS'radiotelephoned' p24627 asS'miscreate' p24628 (lp24629 S'miscreates' p24630 aS'miscreating' p24631 aS'miscreated' p24632 aS'miscreated' p24633 asS'prerecord' p24634 (lp24635 S'prerecords' p24636 aS'prerecording' p24637 aS'prerecorded' p24638 aS'prerecorded' p24639 asS'disentangle' p24640 (lp24641 S'disentangles' p24642 aS'disentangling' p24643 aS'disentangled' p24644 aS'disentangled' p24645 asS'superabound' p24646 (lp24647 S'superabounds' p24648 aS'superabounding' p24649 aS'superabounded' p24650 aS'superabounded' p24651 asS'standardize' p24652 (lp24653 S'standardizes' p24654 aS'standardizing' p24655 aS'standardized' p24656 aS'standardized' p24657 asS'offset' p24658 (lp24659 S'offsets' p24660 aS'offsetting' p24661 aS'offset' p24662 aS'offset' p24663 asS'refuge' p24664 (lp24665 S'refuges' p24666 aS'refuging' p24667 aS'refuged' p24668 aS'refuged' p24669 asS'eradiate' p24670 (lp24671 S'eradiates' p24672 aS'eradiating' p24673 aS'eradiated' p24674 aS'eradiated' p24675 asS'spot-weld' p24676 (lp24677 S'spot-welds' p24678 aS'spot-welding' p24679 aS'spot-welded' p24680 aS'spot-welded' p24681 asS'twirl' p24682 (lp24683 S'twirls' p24684 aS'twirling' p24685 aS'twirled' p24686 aS'twirled' p24687 asS'formicate' p24688 (lp24689 S'formicates' p24690 aS'formicating' p24691 aS'formicated' p24692 aS'formicated' p24693 asS'epitomize' p24694 (lp24695 S'epitomizes' p24696 aS'epitomizing' p24697 aS'epitomized' p24698 aS'epitomized' p24699 asS'fuddle' p24700 (lp24701 S'fuddles' p24702 aS'fuddling' p24703 aS'fuddled' p24704 aS'fuddled' p24705 asS'tongue' p24706 (lp24707 S'tongues' p24708 aS'tonguing' p24709 aS'tongued' p24710 aS'tongued' p24711 asS'dub' p24712 (lp24713 S'dubs' p24714 aS'dubbing' p24715 aS'dubbed' p24716 aS'dubbed' p24717 asS'attaint' p24718 (lp24719 S'attaints' p24720 aS'attainting' p24721 aS'attainted' p24722 aS'attainted' p24723 asS'articulate' p24724 (lp24725 S'articulates' p24726 aS'articulating' p24727 aS'articulated' p24728 aS'articulated' p24729 asS'black-lead' p24730 (lp24731 S'black-leads' p24732 aS'black-leading' p24733 aS'black-leaded' p24734 aS'black-leaded' p24735 asS'congregate' p24736 (lp24737 S'congregates' p24738 aS'congregating' p24739 aS'congregated' p24740 aS'congregated' p24741 asS'holpen' p24742 (lp24743 S'holpens' p24744 aS'holpening' p24745 aS'holpened' p24746 aS'holpened' p24747 asS'miscount' p24748 (lp24749 S'miscounts' p24750 aS'miscounting' p24751 aS'miscounted' p24752 aS'miscounted' p24753 asS'veil' p24754 (lp24755 S'veils' p24756 aS'veiling' p24757 aS'veiled' p24758 aS'veiled' p24759 asS'jink' p24760 (lp24761 S'jinks' p24762 aS'jinking' p24763 aS'jinked' p24764 aS'jinked' p24765 asS'jinx' p24766 (lp24767 S'jinxes' p24768 aS'jinxing' p24769 aS'jinxed' p24770 aS'jinxed' p24771 asS'backhand' p24772 (lp24773 S'backhands' p24774 aS'backhanding' p24775 aS'backhanded' p24776 aS'backhanded' p24777 asS'elate' p24778 (lp24779 S'elates' p24780 aS'elating' p24781 aS'elated' p24782 aS'elated' p24783 asS'revalue' p24784 (lp24785 S'revalues' p24786 aS'revaluing' p24787 aS'revalued' p24788 aS'revalued' p24789 asS'seise' p24790 (lp24791 S'seises' p24792 aS'seising' p24793 aS'seised' p24794 aS'seised' p24795 asS'evacuate' p24796 (lp24797 S'evacuates' p24798 aS'evacuating' p24799 aS'evacuated' p24800 aS'evacuated' p24801 asS'admonish' p24802 (lp24803 S'admonishes' p24804 aS'admonishing' p24805 aS'admonished' p24806 aS'admonished' p24807 asS'gain' p24808 (lp24809 S'gains' p24810 aS'gaining' p24811 aS'gained' p24812 aS'gained' p24813 asS'wince' p24814 (lp24815 S'winces' p24816 aS'wincing' p24817 aS'winced' p24818 aS'winced' p24819 asS'overflow' p24820 (lp24821 S'overflows' p24822 aS'overflowing' p24823 aS'overflowed' p24824 aS'overflowed' p24825 asS'ear' p24826 (lp24827 S'ears' p24828 aS'earing' p24829 aS'eared' p24830 aS'eared' p24831 asS'eat' p24832 (lp24833 S'eats' p24834 aS'eating' p24835 aS'ate' p24836 aS'eaten' p24837 asS'badmouth' p24838 (lp24839 S'badmouths' p24840 aS'badmouthing' p24841 aS'badmouthed' p24842 aS'badmouthed' p24843 asS'denominate' p24844 (lp24845 S'denominates' p24846 aS'denominating' p24847 aS'denominated' p24848 aS'denominated' p24849 asS'outgun' p24850 (lp24851 S'outguns' p24852 aS'outgunning' p24853 aS'outgunned' p24854 aS'outgunned' p24855 asS'unlock' p24856 (lp24857 S'unlocks' p24858 aS'unlocking' p24859 aS'unlocked' p24860 aS'unlocked' p24861 asS'pinprick' p24862 (lp24863 S'pinpricks' p24864 aS'pinpricking' p24865 aS'pinpricked' p24866 aS'pinpricked' p24867 asS'rootle' p24868 (lp24869 S'rootles' p24870 aS'rootling' p24871 aS'rootled' p24872 aS'rootled' p24873 asS'limit' p24874 (lp24875 S'limits' p24876 aS'limiting' p24877 aS'limited' p24878 aS'limited' p24879 asS'piece' p24880 (lp24881 S'pieces' p24882 aS'piecing' p24883 aS'pieced' p24884 aS'pieced' p24885 asS'display' p24886 (lp24887 S'displays' p24888 aS'displaying' p24889 aS'displayed' p24890 aS'displayed' p24891 asS'signet' p24892 (lp24893 S'signets' p24894 aS'signeting' p24895 aS'signeted' p24896 aS'signeted' p24897 asS'sponsor' p24898 (lp24899 S'sponsors' p24900 aS'sponsoring' p24901 aS'sponsored' p24902 aS'sponsored' p24903 asS'steeplechase' p24904 (lp24905 S'steeplechases' p24906 aS'steeplechasing' p24907 aS'steeplechased' p24908 aS'steeplechased' p24909 asS'devise' p24910 (lp24911 S'devises' p24912 aS'devising' p24913 aS'devised' p24914 aS'devised' p24915 asS'hinny' p24916 (lp24917 S'hinnies' p24918 aS'hinnying' p24919 aS'hinnied' p24920 aS'hinnied' p24921 asS'horsewhip' p24922 (lp24923 S'horsewhips' p24924 aS'horsewhipping' p24925 aS'horsewhipped' p24926 aS'horsewhipped' p24927 asS'insoul' p24928 (lp24929 S'insouls' p24930 aS'insouling' p24931 aS'insouled' p24932 aS'insouled' p24933 asS'Teletype' p24934 (lp24935 S'Teletypes' p24936 aS'Teletyping' p24937 aS'Teletyped' p24938 aS'Teletyped' p24939 asS'baksheesh' p24940 (lp24941 S'baksheeshes' p24942 aS'baksheeshing' p24943 aS'baksheeshed' p24944 aS'baksheeshed' p24945 asS'folio' p24946 (lp24947 S'folios' p24948 aS'folioing' p24949 aS'folioed' p24950 aS'folioed' p24951 asS'contest' p24952 (lp24953 S'contests' p24954 aS'contesting' p24955 aS'contested' p24956 aS'contested' p24957 asS'humidify' p24958 (lp24959 S'humidifies' p24960 aS'humidifying' p24961 aS'humidified' p24962 aS'humidified' p24963 asS'fodder' p24964 (lp24965 S'fodders' p24966 aS'foddering' p24967 aS'foddered' p24968 aS'foddered' p24969 asS'star' p24970 (lp24971 S'stars' p24972 aS'starring' p24973 aS'starred' p24974 aS'starred' p24975 asS'lubricate' p24976 (lp24977 S'lubricates' p24978 aS'lubricating' p24979 aS'lubricated' p24980 aS'lubricated' p24981 asS'stay' p24982 (lp24983 S'stays' p24984 aS'staying' p24985 aS'stayed' p24986 aS'stayed' p24987 asS'foin' p24988 (lp24989 S'foins' p24990 aS'foining' p24991 aS'foined' p24992 aS'foined' p24993 asS'dragoon' p24994 (lp24995 S'dragoons' p24996 aS'dragooning' p24997 aS'dragooned' p24998 aS'dragooned' p24999 asS'foil' p25000 (lp25001 S'foils' p25002 aS'foiling' p25003 aS'foiled' p25004 aS'foiled' p25005 asS'stab' p25006 (lp25007 S'stabs' p25008 aS'stabbing' p25009 aS'stabbed' p25010 aS'stabbed' p25011 asS'entoil' p25012 (lp25013 S'entoils' p25014 aS'entoiling' p25015 aS'entoiled' p25016 aS'entoiled' p25017 asS'photosensitize' p25018 (lp25019 S'photosensitizes' p25020 aS'photosensitizing' p25021 aS'photosensitized' p25022 aS'photosensitized' p25023 asS'appoint' p25024 (lp25025 S'appoints' p25026 aS'appointing' p25027 aS'appointed' p25028 aS'appointed' p25029 asS'shunt' p25030 (lp25031 S'shunts' p25032 aS'shunting' p25033 aS'shunted' p25034 aS'shunted' p25035 asS'fertilize' p25036 (lp25037 S'fertilizes' p25038 aS'fertilizing' p25039 aS'fertilized' p25040 aS'fertilized' p25041 asS'unlive' p25042 (lp25043 S'unlives' p25044 aS'unliving' p25045 aS'unlived' p25046 aS'unlived' p25047 asS'inset' p25048 (lp25049 S'insets' p25050 aS'insetting' p25051 aS'inset' p25052 aS'inset' p25053 asS'overleap' p25054 (lp25055 S'overleaps' p25056 aS'overleaping' p25057 aS'overleapt' p25058 aS'overleapt' p25059 asS'pardon' p25060 (lp25061 S'pardons' p25062 aS'pardoning' p25063 aS'pardoned' p25064 aS'pardoned' p25065 asS'predestine' p25066 (lp25067 S'predestines' p25068 aS'predestining' p25069 aS'predestined' p25070 aS'predestined' p25071 asS'unfurl' p25072 (lp25073 S'unfurls' p25074 aS'unfurling' p25075 aS'unfurled' p25076 aS'unfurled' p25077 asS'single-step' p25078 (lp25079 S'single-steps' p25080 aS'single-stepping' p25081 aS'single-stepped' p25082 aS'single-stepped' p25083 asS'protest' p25084 (lp25085 S'protests' p25086 aS'protesting' p25087 aS'protested' p25088 aS'protested' p25089 asS'psycho-analyse' p25090 (lp25091 S'psycho-analyses' p25092 aS'psycho-analysing' p25093 aS'psycho-analysed' p25094 aS'psycho-analysed' p25095 asS'Romanize' p25096 (lp25097 S'Romanizes' p25098 aS'Romanizing' p25099 aS'Romanized' p25100 aS'Romanized' p25101 asS'rampart' p25102 (lp25103 S'ramparts' p25104 aS'ramparting' p25105 aS'ramparted' p25106 aS'ramparted' p25107 asS'toenail' p25108 (lp25109 S'toenails' p25110 aS'toenailing' p25111 aS'toenailed' p25112 aS'toenailed' p25113 asS'captain' p25114 (lp25115 S'captains' p25116 aS'captaining' p25117 aS'captained' p25118 aS'captained' p25119 asS'exenterate' p25120 (lp25121 S'exenterates' p25122 aS'exenterating' p25123 aS'exenterated' p25124 aS'exenterated' p25125 asS'swag' p25126 (lp25127 S'swags' p25128 aS'swagging' p25129 aS'swagged' p25130 aS'swagged' p25131 asS'calculate' p25132 (lp25133 S'calculates' p25134 aS'calculating' p25135 aS'calculated' p25136 aS'calculated' p25137 asS'swab' p25138 (lp25139 S'swabs' p25140 aS'swabbing' p25141 aS'swabbed' p25142 aS'swabbed' p25143 asS'disembarrass' p25144 (lp25145 S'disembarrasses' p25146 aS'disembarrassing' p25147 aS'disembarrassed' p25148 aS'disembarrassed' p25149 asS'swat' p25150 (lp25151 S'swats' p25152 aS'swatting' p25153 aS'swatted' p25154 aS'swatted' p25155 asS'unroll' p25156 (lp25157 S'unrolls' p25158 aS'unrolling' p25159 aS'unrolled' p25160 aS'unrolled' p25161 asS'swap' p25162 (lp25163 S'swaps' p25164 aS'swapping' p25165 ag19794 aS'swapped' p25166 asS'recycle' p25167 (lp25168 S'recycles' p25169 aS'recycling' p25170 aS'recycled' p25171 aS'recycled' p25172 asS'sway' p25173 (lp25174 S'sways' p25175 aS'swaying' p25176 aS'swayed' p25177 aS'swayed' p25178 asS'collaborate' p25179 (lp25180 S'collaborates' p25181 aS'collaborating' p25182 aS'collaborated' p25183 aS'collaborated' p25184 asS'rescue' p25185 (lp25186 S'rescues' p25187 aS'rescuing' p25188 aS'rescued' p25189 aS'rescued' p25190 asS'void' p25191 (lp25192 S'voids' p25193 aS'voiding' p25194 aS'voided' p25195 aS'voided' p25196 asS'untruss' p25197 (lp25198 S'untrusses' p25199 aS'untrussing' p25200 aS'untrussed' p25201 aS'untrussed' p25202 asS'redact' p25203 (lp25204 S'redacts' p25205 aS'redacting' p25206 aS'redacted' p25207 aS'redacted' p25208 asS'smack' p25209 (lp25210 S'smacks' p25211 aS'smacking' p25212 aS'smacked' p25213 aS'smacked' p25214 asS'govern' p25215 (lp25216 S'governs' p25217 aS'governing' p25218 aS'governed' p25219 aS'governed' p25220 asS'affect' p25221 (lp25222 S'affects' p25223 aS'affecting' p25224 aS'affected' p25225 aS'affected' p25226 asS'sleek' p25227 (lp25228 S'sleeks' p25229 aS'sleeking' p25230 aS'sleeked' p25231 aS'sleeked' p25232 asS'embroider' p25233 (lp25234 S'embroiders' p25235 aS'embroidering' p25236 aS'embroidered' p25237 aS'embroidered' p25238 asS'indurate' p25239 (lp25240 S'indurates' p25241 aS'indurating' p25242 aS'indurated' p25243 aS'indurated' p25244 asS'propend' p25245 (lp25246 S'propends' p25247 aS'propending' p25248 aS'propended' p25249 aS'propended' p25250 asS'boohoo' p25251 (lp25252 S'boohoos' p25253 aS'boohooing' p25254 aS'boohooed' p25255 aS'boohooed' p25256 asS'vector' p25257 (lp25258 S'vectors' p25259 aS'vectoring' p25260 aS'vectored' p25261 aS'vectored' p25262 asS'enhance' p25263 (lp25264 S'enhances' p25265 aS'enhancing' p25266 aS'enhanced' p25267 aS'enhanced' p25268 asS'interfile' p25269 (lp25270 S'interfiles' p25271 aS'interfiling' p25272 aS'interfiled' p25273 aS'interfiled' p25274 asS'rollick' p25275 (lp25276 S'rollicks' p25277 aS'rollicking' p25278 aS'rollicked' p25279 aS'rollicked' p25280 asS'force' p25281 (lp25282 S'forces' p25283 aS'forcing' p25284 aS'forced' p25285 aS'forced' p25286 asS'quilt' p25287 (lp25288 S'quilts' p25289 aS'quilting' p25290 aS'quilted' p25291 aS'quilted' p25292 asS'lustre' p25293 (lp25294 S'lustres' p25295 aS'lustring' p25296 aS'lustred' p25297 aS'lustred' p25298 asS'colligate' p25299 (lp25300 S'colligates' p25301 aS'colligating' p25302 aS'colligated' p25303 aS'colligated' p25304 asS'crave' p25305 (lp25306 S'craves' p25307 aS'craving' p25308 aS'craved' p25309 aS'craved' p25310 asS'yack' p25311 (lp25312 S'yacks' p25313 aS'yacking' p25314 aS'yacked' p25315 aS'yacked' p25316 asS'subordinate' p25317 (lp25318 S'subordinates' p25319 aS'subordinating' p25320 aS'subordinated' p25321 aS'subordinated' p25322 asS'kidnap' p25323 (lp25324 S'kidnaps' p25325 aS'kidnapping' p25326 aS'kidnapped' p25327 aS'kidnapped' p25328 asS'quill' p25329 (lp25330 S'quills' p25331 aS'quilling' p25332 aS'quilled' p25333 aS'quilled' p25334 asS'even' p25335 (lp25336 S'evens' p25337 aS'evening' p25338 aS'evened' p25339 aS'evened' p25340 asS'coquet' p25341 (lp25342 S'coquets' p25343 aS'coquetting' p25344 aS'coquetted' p25345 aS'coquetted' p25346 asS'pace' p25347 (lp25348 S'paces' p25349 aS'pacing' p25350 aS'paced' p25351 aS'paced' p25352 asS'unbrace' p25353 (lp25354 S'unbraces' p25355 aS'unbracing' p25356 aS'unbraced' p25357 aS'unbraced' p25358 asS'blow-wave' p25359 (lp25360 S'blow-waves' p25361 aS'blow-waving' p25362 aS'blow-waved' p25363 aS'blow-waved' p25364 asS'siege' p25365 (lp25366 S'sieges' p25367 aS'sieging' p25368 aS'sieged' p25369 aS'sieged' p25370 asS'haze' p25371 (lp25372 S'hazes' p25373 aS'hazing' p25374 aS'hazed' p25375 aS'hazed' p25376 asS'sunder' p25377 (lp25378 S'sunders' p25379 aS'sundering' p25380 aS'sundered' p25381 aS'sundered' p25382 asS'net' p25383 (lp25384 S'nets' p25385 aS'netting' p25386 aS'netted' p25387 aS'netted' p25388 asS'battledore' p25389 (lp25390 S'battledores' p25391 aS'battledoring' p25392 aS'battledored' p25393 aS'battledored' p25394 asS'endanger' p25395 (lp25396 S'endangers' p25397 aS'endangering' p25398 aS'endangered' p25399 aS'endangered' p25400 asS'mew' p25401 (lp25402 S'mews' p25403 aS'mewing' p25404 aS'mewed' p25405 aS'mewed' p25406 asS'disoblige' p25407 (lp25408 S'disobliges' p25409 aS'disobliging' p25410 aS'disobliged' p25411 aS'disobliged' p25412 asS'nosedive' p25413 (lp25414 S'nosedives' p25415 aS'nosediving' p25416 aS'nosedived' p25417 aS'nosedived' p25418 asS'dree' p25419 (lp25420 S'drees' p25421 aS'dreeing' p25422 aS'dreed' p25423 aS'dreed' p25424 asS'interpret' p25425 (lp25426 S'interprets' p25427 aS'interpreting' p25428 aS'interpreted' p25429 aS'interpreted' p25430 asS'depasture' p25431 (lp25432 S'depastures' p25433 aS'depasturing' p25434 aS'depastured' p25435 aS'depastured' p25436 asS'taper' p25437 (lp25438 S'tapers' p25439 aS'tapering' p25440 aS'tapered' p25441 aS'tapered' p25442 asS'buckler' p25443 (lp25444 S'bucklers' p25445 aS'bucklering' p25446 aS'bucklered' p25447 aS'bucklered' p25448 asS'harass' p25449 (lp25450 S'harasses' p25451 aS'harassing' p25452 aS'harassed' p25453 aS'harassed' p25454 asS'permit' p25455 (lp25456 S'permits' p25457 aS'permitting' p25458 aS'permitted' p25459 aS'permitted' p25460 asS'fleer' p25461 (lp25462 S'fleers' p25463 aS'fleering' p25464 aS'fleered' p25465 aS'fleered' p25466 asS'intrigue' p25467 (lp25468 S'intrigues' p25469 aS'intriguing' p25470 aS'intrigued' p25471 aS'intrigued' p25472 asS'excoriate' p25473 (lp25474 S'excoriates' p25475 aS'excoriating' p25476 aS'excoriated' p25477 aS'excoriated' p25478 asS'prelect' p25479 (lp25480 S'prelects' p25481 aS'prelecting' p25482 aS'prelected' p25483 aS'prelected' p25484 asS'hunch' p25485 (lp25486 S'hunches' p25487 aS'hunching' p25488 aS'hunched' p25489 aS'hunched' p25490 asS'campaign' p25491 (lp25492 S'campaigns' p25493 aS'campaigning' p25494 aS'campaigned' p25495 aS'campaigned' p25496 asS'bayonet' p25497 (lp25498 S'bayonets' p25499 aS'bayoneting' p25500 aS'bayoneted' p25501 aS'bayoneted' p25502 asS'dehumanize' p25503 (lp25504 S'dehumanizes' p25505 aS'dehumanizing' p25506 aS'dehumanized' p25507 aS'dehumanized' p25508 asS'oxygenize' p25509 (lp25510 S'oxygenizes' p25511 aS'oxygenizing' p25512 aS'oxygenized' p25513 aS'oxygenized' p25514 asS'elude' p25515 (lp25516 S'eludes' p25517 aS'eluding' p25518 aS'eluded' p25519 aS'eluded' p25520 asS'immix' p25521 (lp25522 S'immixes' p25523 aS'immixing' p25524 aS'immixed' p25525 aS'immixed' p25526 asS'worrit' p25527 (lp25528 S'worrits' p25529 aS'worriting' p25530 aS'worrited' p25531 aS'worrited' p25532 asS'overstuff' p25533 (lp25534 S'overstuffs' p25535 aS'overstuffing' p25536 aS'overstuffed' p25537 aS'overstuffed' p25538 asS'welch' p25539 (lp25540 S'welches' p25541 aS'welching' p25542 aS'welched' p25543 aS'welched' p25544 asS'remould' p25545 (lp25546 S'remoulds' p25547 aS'remoulding' p25548 aS'remoulded' p25549 aS'remoulded' p25550 asS'circumvent' p25551 (lp25552 S'circumvents' p25553 aS'circumventing' p25554 aS'circumvented' p25555 aS'circumvented' p25556 asS'landscape' p25557 (lp25558 S'landscapes' p25559 aS'landscaping' p25560 aS'landscaped' p25561 aS'landscaped' p25562 asS'mooch' p25563 (lp25564 S'mooches' p25565 aS'mooching' p25566 aS'mooched' p25567 aS'mooched' p25568 asS'overhear' p25569 (lp25570 S'overhears' p25571 aS'overhearing' p25572 aS'overheard' p25573 aS'overheard' p25574 asS'overheat' p25575 (lp25576 S'overheats' p25577 aS'overheating' p25578 aS'overheated' p25579 aS'overheated' p25580 asS'embrangle' p25581 (lp25582 S'embrangles' p25583 aS'embrangling' p25584 aS'embrangled' p25585 aS'embrangled' p25586 asS'calk' p25587 (lp25588 S'calks' p25589 aS'calking' p25590 aS'calked' p25591 aS'calked' p25592 asS'call' p25593 (lp25594 S'calls' p25595 aS'calling' p25596 aS'called' p25597 aS'called' p25598 asS'calm' p25599 (lp25600 S'calms' p25601 aS'calming' p25602 aS'calmed' p25603 aS'calmed' p25604 asS'intrust' p25605 (lp25606 S'intrusts' p25607 aS'intrusting' p25608 aS'intrusted' p25609 aS'intrusted' p25610 asS'recommend' p25611 (lp25612 S'recommends' p25613 aS'recommending' p25614 aS'recommended' p25615 aS'recommended' p25616 asS'survive' p25617 (lp25618 S'survives' p25619 aS'surviving' p25620 aS'survived' p25621 aS'survived' p25622 asS'type' p25623 (lp25624 S'types' p25625 aS'typing' p25626 aS'typed' p25627 aS'typed' p25628 asS'tell' p25629 (lp25630 S'tells' p25631 aS'telling' p25632 aS'told' p25633 aS'told' p25634 asS'expose' p25635 (lp25636 S'exposes' p25637 aS'exposing' p25638 aS'exposed' p25639 aS'exposed' p25640 asS'moulder' p25641 (lp25642 S'moulders' p25643 aS'mouldering' p25644 aS'mouldered' p25645 aS'mouldered' p25646 asS'warp' p25647 (lp25648 S'warps' p25649 aS'warping' p25650 aS'warped' p25651 aS'warped' p25652 asS'lunge' p25653 (lp25654 S'lunges' p25655 aS'lunging' p25656 aS'lunged' p25657 aS'lunged' p25658 asS'warm' p25659 (lp25660 S'warms' p25661 aS'warming' p25662 aS'warmed' p25663 aS'warmed' p25664 asS'bewray' p25665 (lp25666 S'bewrays' p25667 aS'bewraying' p25668 aS'bewrayed' p25669 aS'bewrayed' p25670 asS'sparge' p25671 (lp25672 S'sparges' p25673 aS'sparging' p25674 aS'sparged' p25675 aS'sparged' p25676 asS'ware' p25677 (lp25678 S'wares' p25679 aS'waring' p25680 aS'wared' p25681 aS'wared' p25682 asS'blindfold' p25683 (lp25684 S'blindfolds' p25685 aS'blindfolding' p25686 aS'blindfolded' p25687 aS'blindfolded' p25688 asS'prescind' p25689 (lp25690 S'prescinds' p25691 aS'prescinding' p25692 aS'prescinded' p25693 aS'prescinded' p25694 asS'hoax' p25695 (lp25696 S'hoaxes' p25697 aS'hoaxing' p25698 aS'hoaxed' p25699 aS'hoaxed' p25700 asS'retouch' p25701 (lp25702 S'retouches' p25703 aS'retouching' p25704 aS'retouched' p25705 aS'retouched' p25706 asS'restock' p25707 (lp25708 S'restocks' p25709 aS'restocking' p25710 aS'restocked' p25711 aS'restocked' p25712 asS'roof' p25713 (lp25714 S'roofs' p25715 aS'roofing' p25716 aS'roofed' p25717 aS'roofed' p25718 asS'worth' p25719 (lp25720 S'worths' p25721 aS'worthing' p25722 aS'worthed' p25723 aS'worthed' p25724 asS'guise' p25725 (lp25726 S'guises' p25727 aS'guising' p25728 aS'guised' p25729 aS'guised' p25730 asS'hansel' p25731 (lp25732 S'hansels' p25733 aS'hanseling' p25734 aS'hanseled' p25735 aS'hanseled' p25736 asS'glac_e' p25737 (lp25738 S'glac_es' p25739 aS'glac_eing' p25740 aS'glac_eed' p25741 aS'glac_eed' p25742 asS'endow' p25743 (lp25744 S'endows' p25745 aS'endowing' p25746 aS'endowed' p25747 aS'endowed' p25748 asS'crosshatch' p25749 (lp25750 S'crosshatches' p25751 aS'crosshatching' p25752 aS'crosshatched' p25753 aS'crosshatched' p25754 asS'defer' p25755 (lp25756 S'defers' p25757 aS'deferring' p25758 aS'deferred' p25759 aS'deferred' p25760 asS'give' p25761 (lp25762 S'gives' p25763 aS'giving' p25764 aS'gave' p25765 aS'given' p25766 asS'climax' p25767 (lp25768 S'climaxes' p25769 aS'climaxing' p25770 aS'climaxed' p25771 aS'climaxed' p25772 asS'slenderize' p25773 (lp25774 S'slenderizes' p25775 aS'slenderizing' p25776 aS'slenderized' p25777 aS'slenderized' p25778 asS'assent' p25779 (lp25780 S'assents' p25781 aS'assenting' p25782 aS'assented' p25783 aS'assented' p25784 asS'lure' p25785 (lp25786 S'luring' p25787 aS'lured' p25788 aS'lured' p25789 asS'honey' p25790 (lp25791 S'honeys' p25792 aS'honeying' p25793 aS'honied' p25794 aS'honied' p25795 asS'ready' p25796 (lp25797 S'readies' p25798 aS'readying' p25799 aS'readied' p25800 aS'readied' p25801 asS'degenerate' p25802 (lp25803 S'degenerates' p25804 aS'degenerating' p25805 aS'degenerated' p25806 aS'degenerated' p25807 asS'rig' p25808 (lp25809 S'rigs' p25810 aS'rigging' p25811 aS'rigged' p25812 aS'rigged' p25813 asS'freshen' p25814 (lp25815 S'freshens' p25816 aS'freshening' p25817 aS'freshened' p25818 aS'freshened' p25819 asS'loathe' p25820 (lp25821 S'loathes' p25822 aS'loathing' p25823 aS'loathed' p25824 aS'loathed' p25825 asS'cross-fade' p25826 (lp25827 S'cross-fades' p25828 aS'cross-fading' p25829 aS'cross-faded' p25830 aS'cross-faded' p25831 asS'strow' p25832 (lp25833 S'strows' p25834 aS'strowing' p25835 aS'strowed' p25836 aS'strowed' p25837 asS'sideline' p25838 (lp25839 S'sidelines' p25840 aS'sidelining' p25841 aS'sidelined' p25842 aS'sidelined' p25843 asS'strop' p25844 (lp25845 S'strops' p25846 aS'stropping' p25847 aS'stropped' p25848 aS'stropped' p25849 asS'fribble' p25850 (lp25851 S'fribbles' p25852 aS'fribbling' p25853 aS'fribbled' p25854 aS'fribbled' p25855 asS'raddle' p25856 (lp25857 S'raddles' p25858 aS'raddling' p25859 aS'raddled' p25860 aS'raddled' p25861 asS'rib' p25862 (lp25863 S'ribs' p25864 aS'ribbing' p25865 aS'ribbed' p25866 aS'ribbed' p25867 asS'stroy' p25868 (lp25869 S'stroys' p25870 aS'stroying' p25871 aS'stroyed' p25872 aS'stroyed' p25873 asS'salivate' p25874 (lp25875 S'salivates' p25876 aS'salivating' p25877 aS'salivated' p25878 aS'salivated' p25879 asS'sate' p25880 (lp25881 S'sates' p25882 aS'sating' p25883 aS'sated' p25884 aS'sated' p25885 asS'egotrip' p25886 (lp25887 S"egotrips'" p25888 aS'egotripping' p25889 aS'egotripped' p25890 aS'egotripped' p25891 asS'answer' p25892 (lp25893 S'answers' p25894 aS'answering' p25895 aS'answered' p25896 aS'answered' p25897 asS'bedight' p25898 (lp25899 S'bedights' p25900 aS'bedighting' p25901 aS'bedighted' p25902 aS'bedighted' p25903 asS'construe' p25904 (lp25905 S'construes' p25906 aS'construing' p25907 aS'construed' p25908 aS'construed' p25909 asS'disassemble' p25910 (lp25911 S'disassembles' p25912 aS'disassembling' p25913 aS'disassembled' p25914 aS'disassembled' p25915 asS'misfit' p25916 (lp25917 S'misfits' p25918 aS'misfitting' p25919 aS'misfitted' p25920 aS'misfitted' p25921 asS'hydroplane' p25922 (lp25923 S'hydroplanes' p25924 aS'hydroplaning' p25925 aS'hydroplaned' p25926 aS'hydroplaned' p25927 asS'purchase' p25928 (lp25929 S'purchases' p25930 aS'purchasing' p25931 aS'purchased' p25932 aS'purchased' p25933 asS'attempt' p25934 (lp25935 S'attempts' p25936 aS'attempting' p25937 aS'attempted' p25938 aS'attempted' p25939 asS'fecundate' p25940 (lp25941 S'fecundates' p25942 aS'fecundating' p25943 aS'fecundated' p25944 aS'fecundated' p25945 asS'pulsate' p25946 (lp25947 S'pulsates' p25948 aS'pulsating' p25949 aS'pulsated' p25950 aS'pulsated' p25951 asS'oviposit' p25952 (lp25953 S'oviposits' p25954 aS'ovipositing' p25955 aS'oviposited' p25956 aS'oviposited' p25957 asS'thirl' p25958 (lp25959 S'thirls' p25960 aS'thirling' p25961 aS'thirled' p25962 aS'thirled' p25963 asS'bedazzle' p25964 (lp25965 S'bedazzles' p25966 aS'bedazzling' p25967 aS'bedazzled' p25968 aS'bedazzled' p25969 asS'squiggle' p25970 (lp25971 S'squiggles' p25972 aS'squiggling' p25973 aS'squiggled' p25974 aS'squiggled' p25975 asS'embow' p25976 (lp25977 S'embows' p25978 aS'embowing' p25979 aS'embowed' p25980 aS'embowed' p25981 asS'incrust' p25982 (lp25983 S'incrusts' p25984 aS'incrusting' p25985 aS'incrusted' p25986 aS'incrusted' p25987 asS'fife' p25988 (lp25989 S'fifes' p25990 aS'fifing' p25991 aS'fifed' p25992 aS'fifed' p25993 asS'deck' p25994 (lp25995 S'decks' p25996 aS'decking' p25997 aS'decked' p25998 aS'decked' p25999 asS'befall' p26000 (lp26001 S'befalls' p26002 aS'befalling' p26003 aS'befell' p26004 aS'befallen' p26005 asS'fortify' p26006 (lp26007 S'fortifies' p26008 aS'fortifying' p26009 aS'fortified' p26010 aS'fortified' p26011 asS'fable' p26012 (lp26013 S'fables' p26014 aS'fabling' p26015 aS'fabled' p26016 aS'fabled' p26017 asS'toady' p26018 (lp26019 S'toadies' p26020 aS'toadying' p26021 aS'toadied' p26022 aS'toadied' p26023 asS'miscarry' p26024 (lp26025 S'miscarries' p26026 aS'miscarrying' p26027 aS'miscarried' p26028 aS'miscarried' p26029 asS'outleap' p26030 (lp26031 S'outleaps' p26032 aS'outleaping' p26033 aS'outleaped' p26034 aS'outleaped' p26035 asS'shackle' p26036 (lp26037 S'shackles' p26038 aS'shackling' p26039 aS'shackled' p26040 aS'shackled' p26041 asS'crew' p26042 (lp26043 S'crews' p26044 aS'crewing' p26045 aS'crewed' p26046 aS'crewed' p26047 asS'better' p26048 (lp26049 S'betters' p26050 aS'bettering' p26051 aS'bettered' p26052 aS'bettered' p26053 asS'persist' p26054 (lp26055 S'persists' p26056 aS'persisting' p26057 aS'persisted' p26058 aS'persisted' p26059 asS'carve' p26060 (lp26061 S'carves' p26062 aS'carving' p26063 aS'carved' p26064 aS'carven' p26065 asS'containerize' p26066 (lp26067 S'containerizes' p26068 aS'containerizing' p26069 aS'containerized' p26070 aS'containerized' p26071 asS'unsling' p26072 (lp26073 S'unslings' p26074 aS'unslinging' p26075 aS'unslung' p26076 aS'unslung' p26077 asS'overcome' p26078 (lp26079 S'overcomes' p26080 aS'overcoming' p26081 aS'overcame' p26082 aS'overcome' p26083 asS'misstate' p26084 (lp26085 S'misstates' p26086 aS'misstating' p26087 aS'misstated' p26088 aS'misstated' p26089 asS'demythologize' p26090 (lp26091 S'demythologizes' p26092 aS'demythologizing' p26093 aS'demythologized' p26094 aS'demythologized' p26095 asS'unthink' p26096 (lp26097 S'unthinks' p26098 aS'unthinking' p26099 aS'unthought' p26100 aS'unthought' p26101 asS'deglutinate' p26102 (lp26103 S'deglutinates' p26104 aS'deglutinating' p26105 aS'deglutinated' p26106 aS'deglutinated' p26107 asS'bankroll' p26108 (lp26109 S'bankrolls' p26110 aS'bankrolling' p26111 aS'bankrolled' p26112 aS'bankrolled' p26113 asS'indulge' p26114 (lp26115 S'indulges' p26116 aS'indulging' p26117 aS'indulged' p26118 aS'indulged' p26119 asS'singlefoot' p26120 (lp26121 S'singlefoots' p26122 aS'singlefooting' p26123 aS'singlefooted' p26124 aS'singlefooted' p26125 asS'rhapsodize' p26126 (lp26127 S'rhapsodizes' p26128 aS'rhapsodizing' p26129 aS'rhapsodized' p26130 aS'rhapsodized' p26131 asS'shirk' p26132 (lp26133 S'shirks' p26134 aS'shirking' p26135 aS'shirked' p26136 aS'shirked' p26137 asS'whisk' p26138 (lp26139 S'whisks' p26140 aS'whisking' p26141 aS'whisked' p26142 aS'whisked' p26143 asS'wend' p26144 (lp26145 S'wends' p26146 aS'wending' p26147 aS'wended' p26148 aS'wended' p26149 asS'exaggerate' p26150 (lp26151 S'exaggerates' p26152 aS'exaggerating' p26153 aS'exaggerated' p26154 aS'exaggerated' p26155 asS'mistrust' p26156 (lp26157 S'mistrusts' p26158 aS'mistrusting' p26159 aS'mistrusted' p26160 aS'mistrusted' p26161 asS'roast' p26162 (lp26163 S'roasts' p26164 aS'roasting' p26165 aS'roasted' p26166 aS'roasted' p26167 asS'demount' p26168 (lp26169 S'demounts' p26170 aS'demounting' p26171 aS'demounted' p26172 aS'demounted' p26173 asS'bong' p26174 (lp26175 S'bongs' p26176 aS'bonging' p26177 aS'bonged' p26178 aS'bonged' p26179 asS'side' p26180 (lp26181 S'sides' p26182 aS'siding' p26183 aS'sided' p26184 aS'sided' p26185 asS'bone' p26186 (lp26187 S'bones' p26188 aS'boning' p26189 aS'boned' p26190 aS'boned' p26191 asS'bond' p26192 (lp26193 S'bonds' p26194 aS'bonding' p26195 aS'bonded' p26196 aS'bonded' p26197 asS'improvise' p26198 (lp26199 S'improvises' p26200 aS'improvising' p26201 aS'improvised' p26202 aS'improvised' p26203 asS'siwash' p26204 (lp26205 S'siwashes' p26206 aS'siwashing' p26207 aS'siwashed' p26208 aS'siwashed' p26209 asS'vote' p26210 (lp26211 S'votes' p26212 aS'voting' p26213 aS'voted' p26214 aS'voted' p26215 asS'combust' p26216 (lp26217 S'combusts' p26218 aS'combusting' p26219 aS'combusted' p26220 aS'combusted' p26221 asS'besmear' p26222 (lp26223 S'besmears' p26224 aS'besmearing' p26225 aS'besmeared' p26226 aS'besmeared' p26227 asS'extract' p26228 (lp26229 S'extracts' p26230 aS'extracting' p26231 aS'extracted' p26232 aS'extracted' p26233 asS'inosculate' p26234 (lp26235 S'inosculates' p26236 aS'inosculating' p26237 aS'inosculated' p26238 aS'inosculated' p26239 asS'jell' p26240 (lp26241 S'jells' p26242 aS'jelling' p26243 aS'jelled' p26244 aS'jelled' p26245 asS'contend' p26246 (lp26247 S'contends' p26248 aS'contending' p26249 aS'contended' p26250 aS'contended' p26251 asS'decree' p26252 (lp26253 S'decrees' p26254 aS'decreeing' p26255 aS'decreed' p26256 aS'decreed' p26257 asS'typecast' p26258 (lp26259 S'typecasts' p26260 aS'typecasting' p26261 aS'typecast' p26262 aS'typecast' p26263 asS'videotape' p26264 (lp26265 S'videotapes' p26266 aS'videotapeing' p26267 aS'videotapeed' p26268 aS'videotapeed' p26269 asS'contraindicate' p26270 (lp26271 S'contraindicates' p26272 aS'contraindicating' p26273 aS'contraindicated' p26274 aS'contraindicated' p26275 asS'portend' p26276 (lp26277 S'portends' p26278 aS'portending' p26279 aS'portended' p26280 aS'portended' p26281 asS'devitrify' p26282 (lp26283 S'devitrifies' p26284 aS'devitrifying' p26285 aS'devitrified' p26286 aS'devitrified' p26287 asS'content' p26288 (lp26289 S'contents' p26290 aS'contenting' p26291 aS'contented' p26292 aS'contented' p26293 asS'sparkle' p26294 (lp26295 S'sparkles' p26296 aS'sparkling' p26297 aS'sparkled' p26298 aS'sparkled' p26299 asS'debit' p26300 (lp26301 S'debits' p26302 aS'debiting' p26303 aS'debited' p26304 aS'debited' p26305 asS'surprise' p26306 (lp26307 S'surprises' p26308 aS'surprising' p26309 aS'surprised' p26310 aS'surprised' p26311 asS'palaver' p26312 (lp26313 S'palavers' p26314 aS'palavering' p26315 aS'palavered' p26316 aS'palavered' p26317 asS'instigate' p26318 (lp26319 S'instigates' p26320 aS'instigating' p26321 aS'instigated' p26322 aS'instigated' p26323 asS'overrefine' p26324 (lp26325 S'overrefines' p26326 aS'overrefining' p26327 aS'overrefined' p26328 aS'overrefined' p26329 asS'grease' p26330 (lp26331 S'greases' p26332 aS'greasing' p26333 aS'greased' p26334 aS'greased' p26335 asS'totalize' p26336 (lp26337 S'totalizes' p26338 aS'totalizing' p26339 aS'totalized' p26340 aS'totalized' p26341 asS'breathalyze' p26342 (lp26343 S'breathalyzes' p26344 aS'breathalyzing' p26345 aS'breathalyzed' p26346 aS'breathalyzed' p26347 asS'resume' p26348 (lp26349 S'resumes' p26350 aS'resuming' p26351 aS'resumed' p26352 aS'resumed' p26353 asS'revenge' p26354 (lp26355 S'revenges' p26356 aS'revenging' p26357 aS'revenged' p26358 aS'revenged' p26359 asS'dodder' p26360 (lp26361 S'dodders' p26362 aS'doddering' p26363 aS'doddered' p26364 aS'doddered' p26365 asS'bestow' p26366 (lp26367 S'bestows' p26368 aS'bestowing' p26369 aS'bestowed' p26370 aS'bestowed' p26371 asS'censure' p26372 (lp26373 S'censures' p26374 aS'censuring' p26375 aS'censured' p26376 aS'censured' p26377 asS'abate' p26378 (lp26379 S'abates' p26380 aS'abating' p26381 aS'abated' p26382 aS'abated' p26383 asS'entrap' p26384 (lp26385 S'entraps' p26386 aS'entrapping' p26387 aS'entrapped' p26388 aS'entrapped' p26389 asS'infix' p26390 (lp26391 S'infixes' p26392 aS'infixing' p26393 aS'infixed' p26394 aS'infixed' p26395 asS'chortle' p26396 (lp26397 S'chortles' p26398 aS'chortling' p26399 aS'chortled' p26400 aS'chortled' p26401 asS'lour' p26402 (lp26403 S'lours' p26404 aS'louring' p26405 aS'loured' p26406 aS'loured' p26407 asS'lout' p26408 (lp26409 S'louts' p26410 aS'louting' p26411 aS'louted' p26412 aS'louted' p26413 asS'scrounge' p26414 (lp26415 S'scrounges' p26416 aS'scrounging' p26417 aS'scrounged' p26418 aS'scrounged' p26419 asS'steward' p26420 (lp26421 S'stewards' p26422 aS'stewarding' p26423 aS'stewarded' p26424 aS'stewarded' p26425 asS'skyjack' p26426 (lp26427 S'skyjacks' p26428 aS'skyjacking' p26429 aS'skyjacked' p26430 aS'skyjacked' p26431 asS'fleck' p26432 (lp26433 S'flecks' p26434 aS'flecking' p26435 aS'flecked' p26436 aS'flecked' p26437 asS'attune' p26438 (lp26439 S'attunes' p26440 aS'attuning' p26441 aS'attuned' p26442 aS'attuned' p26443 asS'heckle' p26444 (lp26445 S'heckles' p26446 aS'heckling' p26447 aS'heckled' p26448 aS'heckled' p26449 asS'inbred' p26450 (lp26451 S'inbred' p26452 aS'inbred' p26453 asS'repoint' p26454 (lp26455 S'repoints' p26456 aS'repointing' p26457 aS'repointed' p26458 aS'repointed' p26459 asS'squilgee' p26460 (lp26461 S'squilgees' p26462 aS'squilgeeing' p26463 aS'squilgeed' p26464 aS'squilgeed' p26465 asS'grade' p26466 (lp26467 S'grades' p26468 aS'grading' p26469 aS'graded' p26470 aS'graded' p26471 asS'hoop' p26472 (lp26473 S'hoops' p26474 aS'hooping' p26475 aS'hooped' p26476 aS'hooped' p26477 asS'superpose' p26478 (lp26479 S'superposes' p26480 aS'superposing' p26481 aS'superposed' p26482 aS'superposed' p26483 asS'reassure' p26484 (lp26485 S'reassures' p26486 aS'reassuring' p26487 aS'reassured' p26488 aS'reassured' p26489 asS'hoot' p26490 (lp26491 S'hoots' p26492 aS'hooting' p26493 aS'hooted' p26494 aS'hooted' p26495 asS'hook' p26496 (lp26497 S'hooks' p26498 aS'hooking' p26499 aS'hooked' p26500 aS'hooked' p26501 asS'deplete' p26502 (lp26503 S'depletes' p26504 aS'depleting' p26505 aS'depleted' p26506 aS'depleted' p26507 asS'enumerate' p26508 (lp26509 S'enumerates' p26510 aS'enumerating' p26511 aS'enumerated' p26512 aS'enumerated' p26513 asS'radiate' p26514 (lp26515 S'radiates' p26516 aS'radiating' p26517 aS'radiated' p26518 aS'radiated' p26519 asS'ditch' p26520 (lp26521 S'ditches' p26522 aS'ditching' p26523 aS'ditched' p26524 aS'ditched' p26525 asS'hoof' p26526 (lp26527 S'hoofs' p26528 aS'hoofing' p26529 aS'hoofed' p26530 aS'hoofed' p26531 asS'hood' p26532 (lp26533 S'hoods' p26534 aS'hooding' p26535 aS'hooded' p26536 aS'hooded' p26537 asS'discompose' p26538 (lp26539 S'discomposes' p26540 aS'discomposing' p26541 aS'discomposed' p26542 aS'discomposed' p26543 asS'debase' p26544 (lp26545 S'debases' p26546 aS'debasing' p26547 aS'debased' p26548 aS'debased' p26549 asS'acquaint' p26550 (lp26551 S'acquaints' p26552 aS'acquainting' p26553 aS'acquainted' p26554 aS'acquainted' p26555 asS'scrape' p26556 (lp26557 S'scrapes' p26558 aS'scraping' p26559 aS'scraped' p26560 aS'scraped' p26561 asS'wreak' p26562 (lp26563 S'wreaks' p26564 aS'wreaking' p26565 aS'wreaked' p26566 aS'wreaked' p26567 asS'sidle' p26568 (lp26569 S'sidles' p26570 aS'sidling' p26571 aS'sidled' p26572 aS'sidled' p26573 asS'brabble' p26574 (lp26575 S'brabbles' p26576 aS'brabbling' p26577 aS'brabbled' p26578 aS'brabbled' p26579 asS'brainwash' p26580 (lp26581 S'brainwashes' p26582 aS'brainwashing' p26583 aS'brainwashed' p26584 aS'brainwashed' p26585 asS'dwell' p26586 (lp26587 S'dwells' p26588 aS'dwelling' p26589 aS'dwelt' p26590 aS'dwelt' p26591 asS'mutate' p26592 (lp26593 S'mutates' p26594 aS'mutating' p26595 aS'mutated' p26596 aS'mutated' p26597 asS'reprobate' p26598 (lp26599 S'reprobates' p26600 aS'reprobating' p26601 aS'reprobated' p26602 aS'reprobated' p26603 asS'foreclose' p26604 (lp26605 S'forecloses' p26606 aS'foreclosing' p26607 aS'foreclosed' p26608 aS'foreclosed' p26609 asS'heroworship' p26610 (lp26611 S'heroworships' p26612 aS'heroworshipping' p26613 aS'heroworshipped' p26614 aS'heroworshipped' p26615 asS'gyp' p26616 (lp26617 S'gyps' p26618 aS'gypping' p26619 aS'gypped' p26620 aS'gypped' p26621 asS'ravin' p26622 (lp26623 S'ravins' p26624 aS'ravining' p26625 aS'ravined' p26626 aS'ravined' p26627 asS'cuirass' p26628 (lp26629 S'cuirasses' p26630 aS'cuirassing' p26631 aS'cuirassed' p26632 aS'cuirassed' p26633 asS'distance' p26634 (lp26635 S'distances' p26636 aS'distancing' p26637 aS'distanced' p26638 aS'distanced' p26639 asS'affront' p26640 (lp26641 S'affronts' p26642 aS'affronting' p26643 aS'affronted' p26644 aS'affronted' p26645 asS'dredge' p26646 (lp26647 S'dredges' p26648 aS'dredging' p26649 aS'dredged' p26650 aS'dredged' p26651 asS'sky-rocket' p26652 (lp26653 S'sky-rockets' p26654 aS'sky-rocketing' p26655 ag6706 aS'sky-rocketed' p26656 asS'legalize' p26657 (lp26658 S'legalizes' p26659 aS'legalizing' p26660 aS'legalized' p26661 aS'legalized' p26662 asS'matter' p26663 (lp26664 S'matters' p26665 aS'mattering' p26666 aS'mattered' p26667 aS'mattered' p26668 asS'pitapat' p26669 (lp26670 S'pitapats' p26671 aS'pitapatting' p26672 aS'pitapatted' p26673 aS'pitapatted' p26674 asS'mammock' p26675 (lp26676 S'mammocks' p26677 aS'mammocking' p26678 aS'mammocked' p26679 aS'mammocked' p26680 asS'espouse' p26681 (lp26682 S'espouses' p26683 aS'espousing' p26684 aS'espoused' p26685 aS'espoused' p26686 asS'churr' p26687 (lp26688 S'churrs' p26689 aS'churring' p26690 aS'churred' p26691 aS'churred' p26692 asS'quench' p26693 (lp26694 S'quenches' p26695 aS'quenching' p26696 aS'quenched' p26697 aS'quenched' p26698 asS'mind' p26699 (lp26700 S'minds' p26701 aS'minding' p26702 aS'minded' p26703 aS'minded' p26704 asS'mine' p26705 (lp26706 S'mines' p26707 aS'mining' p26708 aS'mined' p26709 aS'mined' p26710 asS'ginger' p26711 (lp26712 S'gingers' p26713 aS'gingering' p26714 aS'gingered' p26715 aS'gingered' p26716 asS'seed' p26717 (lp26718 S'seeds' p26719 aS'seeding' p26720 aS'seeded' p26721 aS'seeded' p26722 asS'seem' p26723 (lp26724 S'seems' p26725 aS'seeming' p26726 aS'seemed' p26727 aS'seemed' p26728 asS'churn' p26729 (lp26730 S'churns' p26731 aS'churning' p26732 aS'churned' p26733 aS'churned' p26734 asS'mint' p26735 (lp26736 S'mints' p26737 aS'minting' p26738 aS'minted' p26739 aS'minted' p26740 asS'unfasten' p26741 (lp26742 S'unfastens' p26743 aS'unfastening' p26744 aS'unfastened' p26745 aS'unfastened' p26746 asS'wabble' p26747 (lp26748 S'wabbles' p26749 aS'wabbling' p26750 aS'wabbled' p26751 aS'wabbled' p26752 asS'reprieve' p26753 (lp26754 S'reprieves' p26755 aS'reprieving' p26756 aS'reprieved' p26757 aS'reprieved' p26758 asS'horde' p26759 (lp26760 S'hordes' p26761 aS'hording' p26762 aS'horded' p26763 aS'horded' p26764 asS'alibi' p26765 (lp26766 S'alibis' p26767 aS'alibiing' p26768 aS'alibied' p26769 aS'alibied' p26770 asS'draggle' p26771 (lp26772 S'draggles' p26773 aS'draggling' p26774 aS'draggled' p26775 aS'draggled' p26776 asS'divulge' p26777 (lp26778 S'divulges' p26779 aS'divulging' p26780 aS'divulged' p26781 aS'divulged' p26782 asS'desist' p26783 (lp26784 S'desists' p26785 aS'desisting' p26786 aS'desisted' p26787 aS'desisted' p26788 asS'ransack' p26789 (lp26790 S'ransacks' p26791 aS'ransacking' p26792 aS'ransacked' p26793 aS'ransacked' p26794 asS'narcotize' p26795 (lp26796 S'narcotizes' p26797 aS'narcotizing' p26798 aS'narcotized' p26799 aS'narcotized' p26800 asS'flense' p26801 (lp26802 S'flenses' p26803 aS'flensing' p26804 aS'flensed' p26805 aS'flensed' p26806 asS'scarify' p26807 (lp26808 S'scarifies' p26809 aS'scarifying' p26810 aS'scarified' p26811 aS'scarified' p26812 asS'iterate' p26813 (lp26814 S'iterates' p26815 aS'iterating' p26816 aS'iterated' p26817 aS'iterated' p26818 asS'subtotal' p26819 (lp26820 S'subtotals' p26821 aS'subtotalling' p26822 aS'subtotalled' p26823 aS'subtotalled' p26824 asS'exonerate' p26825 (lp26826 S'exonerates' p26827 aS'exonerating' p26828 aS'exonerated' p26829 aS'exonerated' p26830 asS'crossstitch' p26831 (lp26832 S'crossstitches' p26833 aS'crossstitching' p26834 aS'crossstitched' p26835 aS'crossstitched' p26836 asS'blacklist' p26837 (lp26838 S'blacklists' p26839 aS'blacklisting' p26840 aS'blacklisted' p26841 aS'blacklisted' p26842 asS'mitigate' p26843 (lp26844 S'mitigates' p26845 aS'mitigating' p26846 aS'mitigated' p26847 aS'mitigated' p26848 asS'euphemize' p26849 (lp26850 S'euphemizes' p26851 aS'euphemizing' p26852 aS'euphemized' p26853 aS'euphemized' p26854 asS'don' p26855 (lp26856 S'dons' p26857 aS'donning' p26858 aS'donned' p26859 aS'donned' p26860 asS'entrain' p26861 (lp26862 S'entrains' p26863 aS'entraining' p26864 aS'entrained' p26865 aS'entrained' p26866 asS'alarm' p26867 (lp26868 S'alarms' p26869 aS'alarming' p26870 aS'alarmed' p26871 aS'alarmed' p26872 asS'dog' p26873 (lp26874 S'dogs' p26875 aS'dogging' p26876 aS'dogged' p26877 aS'dogged' p26878 asS'vizor' p26879 (lp26880 S'vizors' p26881 aS'vizoring' p26882 aS'vizored' p26883 aS'vizored' p26884 asS'digress' p26885 (lp26886 S'digresses' p26887 aS'digressing' p26888 aS'digressed' p26889 aS'digressed' p26890 asS'constrict' p26891 (lp26892 S'constricts' p26893 aS'constricting' p26894 aS'constricted' p26895 aS'constricted' p26896 asS'throwaway' p26897 (lp26898 S'throwaways' p26899 aS'throwawaying' p26900 aS'throwawayed' p26901 aS'throwawayed' p26902 asS'scotch' p26903 (lp26904 S'scotches' p26905 aS'scotching' p26906 aS'scotched' p26907 aS'scotched' p26908 asS'dow' p26909 (lp26910 S'dows' p26911 aS'dowing' p26912 aS'dowed' p26913 aS'dowed' p26914 asS'dot' p26915 (lp26916 S'dots' p26917 aS'dotting' p26918 aS'dotted' p26919 aS'dotted' p26920 asS'discontent' p26921 (lp26922 S'discontents' p26923 aS'discontenting' p26924 aS'discontented' p26925 aS'discontented' p26926 asS'hunger' p26927 (lp26928 S'hungers' p26929 aS'hungering' p26930 aS'hungered' p26931 aS'hungered' p26932 asS'rapture' p26933 (lp26934 S'raptures' p26935 aS'rapturing' p26936 aS'raptured' p26937 aS'raptured' p26938 asS'spangle' p26939 (lp26940 S'spangles' p26941 aS'spangling' p26942 aS'spangled' p26943 aS'spangled' p26944 asS'probe' p26945 (lp26946 S'probes' p26947 aS'probing' p26948 aS'probed' p26949 aS'probed' p26950 asS'bespread' p26951 (lp26952 S'bespreads' p26953 aS'bespreading' p26954 aS'bespreaded' p26955 aS'bespreaded' p26956 asS'chord' p26957 (lp26958 S'chords' p26959 aS'chording' p26960 aS'chorded' p26961 aS'chorded' p26962 asS'camphorate' p26963 (lp26964 S'camphorates' p26965 aS'camphorating' p26966 aS'camphorated' p26967 aS'camphorated' p26968 asS'subvene' p26969 (lp26970 S'subvenes' p26971 aS'subvening' p26972 aS'subvened' p26973 aS'subvened' p26974 asS'capitulate' p26975 (lp26976 S'capitulates' p26977 aS'capitulating' p26978 aS'capitulated' p26979 aS'capitulated' p26980 asS'acquit' p26981 (lp26982 S'acquits' p26983 aS'acquitting' p26984 aS'acquitted' p26985 aS'acquitted' p26986 asS'overtask' p26987 (lp26988 S'overtasks' p26989 aS'overtasking' p26990 aS'overtasked' p26991 aS'overtasked' p26992 asS'cleanse' p26993 (lp26994 S'cleanses' p26995 aS'cleansing' p26996 aS'cleansed' p26997 aS'cleansed' p26998 asS'explain' p26999 (lp27000 S'explains' p27001 aS'explaining' p27002 aS'explained' p27003 aS'explained' p27004 asS'cripple' p27005 (lp27006 S'cripples' p27007 aS'crippling' p27008 aS'crippled' p27009 aS'crippled' p27010 asS'sugar' p27011 (lp27012 S'sugars' p27013 aS'sugaring' p27014 aS'sugared' p27015 aS'sugared' p27016 asS'mutualize' p27017 (lp27018 S'mutualizes' p27019 aS'mutualizing' p27020 aS'mutualized' p27021 aS'mutualized' p27022 asS'integrate' p27023 (lp27024 S'integrates' p27025 aS'integrating' p27026 aS'integrated' p27027 aS'integrated' p27028 asS'hoard' p27029 (lp27030 S'hoards' p27031 aS'hoarding' p27032 aS'hoarded' p27033 aS'hoarded' p27034 asS'razor-cut' p27035 (lp27036 S'razor-cuts' p27037 aS'razor-cutting' p27038 aS'razor-cut' p27039 aS'razor-cut' p27040 asS'patter' p27041 (lp27042 S'patters' p27043 aS'pattering' p27044 aS'pattered' p27045 aS'pattered' p27046 asS'stot' p27047 (lp27048 S'stots' p27049 aS'stotting' p27050 aS'stotted' p27051 aS'stotted' p27052 asS'deforest' p27053 (lp27054 S'deforests' p27055 aS'deforesting' p27056 aS'deforested' p27057 aS'deforested' p27058 asS'conduct' p27059 (lp27060 S'conducts' p27061 aS'conducting' p27062 aS'conducted' p27063 aS'conducted' p27064 asS'stop' p27065 (lp27066 S'stops' p27067 aS'stopping' p27068 aS'stopped' p27069 aS'stopped' p27070 asS'perceive' p27071 (lp27072 S'perceives' p27073 aS'perceiving' p27074 aS'perceived' p27075 aS'perceived' p27076 asS'coast' p27077 (lp27078 S'coasts' p27079 aS'coasting' p27080 aS'coasted' p27081 aS'coasted' p27082 asS'meditate' p27083 (lp27084 S'meditates' p27085 aS'meditating' p27086 aS'meditated' p27087 aS'meditated' p27088 asS'subminiaturize' p27089 (lp27090 S'subminiaturizes' p27091 aS'subminiaturizing' p27092 aS'subminiaturized' p27093 aS'subminiaturized' p27094 asS'comply' p27095 (lp27096 S'complies' p27097 aS'complying' p27098 aS'complied' p27099 aS'complied' p27100 asS'bat' p27101 (lp27102 S'bats' p27103 aS'batting' p27104 aS'batted' p27105 aS'batted' p27106 asS'bar' p27107 (lp27108 S'bars' p27109 aS'barring' p27110 aS'barred' p27111 aS'barred' p27112 asS'braze' p27113 (lp27114 S'brazes' p27115 aS'brazing' p27116 aS'brazed' p27117 aS'brazed' p27118 asS'bay' p27119 (lp27120 S'bays' p27121 aS'baying' p27122 aS'bayed' p27123 aS'bayed' p27124 asS'bag' p27125 (lp27126 S'bags' p27127 aS'bagging' p27128 aS'bagged' p27129 aS'bagged' p27130 asS'troop' p27131 (lp27132 S'troops' p27133 aS'trooping' p27134 aS'trooped' p27135 aS'trooped' p27136 asS'baa' p27137 (lp27138 S'baas' p27139 aS'baaing' p27140 aS'baaed' p27141 aS'baaed' p27142 asS'ban' p27143 (lp27144 S'bans' p27145 aS'banning' p27146 aS'banned' p27147 aS'banned' p27148 asS'enchant' p27149 (lp27150 S'enchants' p27151 aS'enchanting' p27152 aS'enchanted' p27153 aS'enchanted' p27154 asS'attest' p27155 (lp27156 S'attests' p27157 aS'attesting' p27158 aS'attested' p27159 aS'attested' p27160 asS'reference' p27161 (lp27162 S'references' p27163 aS'referencing' p27164 aS'referenced' p27165 aS'referenced' p27166 asS'imitate' p27167 (lp27168 S'imitates' p27169 aS'imitating' p27170 aS'imitated' p27171 aS'imitated' p27172 asS'prophesy' p27173 (lp27174 S'prophesies' p27175 aS'prophesying' p27176 aS'prophesied' p27177 aS'prophesied' p27178 asS'allure' p27179 (lp27180 S'allures' p27181 aS'alluring' p27182 aS'allured' p27183 aS'allured' p27184 asS'insalivate' p27185 (lp27186 S'insalivates' p27187 aS'insalivating' p27188 aS'insalivated' p27189 aS'insalivated' p27190 asS'decerebrate' p27191 (lp27192 S'decerebrates' p27193 aS'decerebrating' p27194 aS'decerebrated' p27195 aS'decerebrated' p27196 asS'subject' p27197 (lp27198 S'subjects' p27199 aS'subjecting' p27200 aS'subjected' p27201 aS'subjected' p27202 asS'misrule' p27203 (lp27204 S'misrules' p27205 aS'misruling' p27206 aS'misruled' p27207 aS'misruled' p27208 asS'snuff' p27209 (lp27210 S'snuffs' p27211 aS'snuffing' p27212 aS'snuffed' p27213 aS'snuffed' p27214 asS'duff' p27215 (lp27216 S'duffs' p27217 aS'duffing' p27218 aS'duffed' p27219 aS'duffed' p27220 asS'sain' p27221 (lp27222 S'sains' p27223 aS'saining' p27224 aS'sained' p27225 aS'sained' p27226 asS'scrap' p27227 (lp27228 S'scraps' p27229 aS'scrapping' p27230 aS'scrapped' p27231 aS'scrapped' p27232 asS'sail' p27233 (lp27234 S'sails' p27235 aS'sailing' p27236 aS'sailed' p27237 aS'sailed' p27238 asS'disprove' p27239 (lp27240 S'disproves' p27241 aS'disproving' p27242 aS'disproved' p27243 aS'disproved' p27244 asS'scram' p27245 (lp27246 S'scrams' p27247 aS'scramming' p27248 aS'scrammed' p27249 aS'scrammed' p27250 asS'unriddle' p27251 (lp27252 S'unriddles' p27253 aS'unriddling' p27254 aS'unriddled' p27255 aS'unriddled' p27256 asS'scrag' p27257 (lp27258 S'scrags' p27259 aS'scragging' p27260 aS'scragged' p27261 aS'scragged' p27262 asS'juxtapose' p27263 (lp27264 S'juxtaposes' p27265 aS'juxtaposing' p27266 aS'juxtaposed' p27267 aS'juxtaposed' p27268 asS'personate' p27269 (lp27270 S'personates' p27271 aS'personating' p27272 aS'personated' p27273 aS'personated' p27274 asS'bemuse' p27275 (lp27276 S'bemuses' p27277 aS'bemusing' p27278 aS'bemused' p27279 aS'bemused' p27280 asS'craunch' p27281 (lp27282 S'craunches' p27283 aS'craunching' p27284 aS'craunched' p27285 aS'craunched' p27286 asS'sulphonate' p27287 (lp27288 S'sulphonates' p27289 aS'sulphonating' p27290 aS'sulphonated' p27291 aS'sulphonated' p27292 asS'excavate' p27293 (lp27294 S'excavates' p27295 aS'excavating' p27296 aS'excavated' p27297 aS'excavated' p27298 asS'laze' p27299 (lp27300 S'lazes' p27301 aS'lazing' p27302 aS'lazed' p27303 aS'lazed' p27304 asS'socialize' p27305 (lp27306 S'socializes' p27307 aS'socializing' p27308 aS'socialized' p27309 aS'socialized' p27310 asS'short-list' p27311 (lp27312 S'short-lists' p27313 aS'short-listing' p27314 aS'short-listed' p27315 aS'short-listed' p27316 asS'botch' p27317 (lp27318 S'botches' p27319 aS'botching' p27320 aS'botched' p27321 aS'botched' p27322 asS'synopsize' p27323 (lp27324 S'synopsizes' p27325 aS'synopsizing' p27326 aS'synopsized' p27327 aS'synopsized' p27328 asS'discommode' p27329 (lp27330 S'discommodes' p27331 aS'discommoding' p27332 aS'discommoded' p27333 aS'discommoded' p27334 asS'monopolize' p27335 (lp27336 S'monopolizes' p27337 aS'monopolizing' p27338 aS'monopolized' p27339 aS'monopolized' p27340 asS'estreat' p27341 (lp27342 S'estreats' p27343 aS'estreating' p27344 aS'estreated' p27345 aS'estreated' p27346 asS'regrate' p27347 (lp27348 S'regrates' p27349 aS'regrating' p27350 aS'regrated' p27351 aS'regrated' p27352 asS'burthen' p27353 (lp27354 S'burthens' p27355 aS'burthening' p27356 aS'burthened' p27357 aS'burthened' p27358 asS'burble' p27359 (lp27360 S'burbles' p27361 aS'burbling' p27362 aS'burbled' p27363 aS'burbled' p27364 asS'cobble' p27365 (lp27366 S'cobbles' p27367 aS'cobbling' p27368 aS'cobbled' p27369 aS'cobbled' p27370 asS'whisper' p27371 (lp27372 S'whispers' p27373 aS'whispering' p27374 aS'whispered' p27375 aS'whispered' p27376 asS'foray' p27377 (lp27378 S'forays' p27379 aS'foraying' p27380 aS'forayed' p27381 aS'forayed' p27382 asS'paralyze' p27383 (lp27384 S'paralyzes' p27385 aS'paralyzing' p27386 aS'paralyzed' p27387 aS'paralyzed' p27388 asS'accustom' p27389 (lp27390 S'accustoms' p27391 aS'accustoming' p27392 aS'accustomed' p27393 aS'accustomed' p27394 asS'pupate' p27395 (lp27396 S'pupates' p27397 aS'pupating' p27398 aS'pupated' p27399 aS'pupated' p27400 asS'recur' p27401 (lp27402 S'recurs' p27403 aS'recurring' p27404 aS'recurred' p27405 aS'recurred' p27406 asS'regenerate' p27407 (lp27408 S'regenerates' p27409 aS'regenerating' p27410 aS'regenerated' p27411 aS'regenerated' p27412 asS'dillydally' p27413 (lp27414 S'dillydallies' p27415 aS'dillydallying' p27416 aS'dillydallied' p27417 aS'dillydallied' p27418 asS'erect' p27419 (lp27420 S'erects' p27421 aS'erecting' p27422 aS'erected' p27423 aS'erected' p27424 asS'chelp' p27425 (lp27426 S'chelps' p27427 aS'chelping' p27428 aS'chelped' p27429 aS'chelped' p27430 asS'ting' p27431 (lp27432 S'tings' p27433 aS'tinging' p27434 ag2105 ag2106 asS'commission' p27435 (lp27436 S'commissions' p27437 aS'commissioning' p27438 aS'commissioned' p27439 aS'commissioned' p27440 asS'trigger' p27441 (lp27442 S'triggers' p27443 aS'triggering' p27444 aS'triggered' p27445 aS'triggered' p27446 asS'replicate' p27447 (lp27448 S'replicates' p27449 aS'replicating' p27450 aS'replicated' p27451 aS'replicated' p27452 asS'interest' p27453 (lp27454 S'interests' p27455 aS'interesting' p27456 aS'interested' p27457 aS'interested' p27458 asS'chug' p27459 (lp27460 S'chugs' p27461 aS'chugging' p27462 aS'chugged' p27463 aS'chugged' p27464 asS'wheedle' p27465 (lp27466 S'wheedles' p27467 aS'wheedling' p27468 aS'wheedled' p27469 aS'wheedled' p27470 asS'mushroom' p27471 (lp27472 S'mushrooms' p27473 aS'mushrooming' p27474 aS'mushroomed' p27475 aS'mushroomed' p27476 asS'suppress' p27477 (lp27478 S'suppresses' p27479 aS'suppressing' p27480 aS'suppressed' p27481 aS'suppressed' p27482 asS'chum' p27483 (lp27484 S'chums' p27485 aS'chumming' p27486 aS'chummed' p27487 aS'chummed' p27488 asS'harmonize' p27489 (lp27490 S'harmonizes' p27491 aS'harmonizing' p27492 aS'harmonized' p27493 aS'harmonized' p27494 asS'deepen' p27495 (lp27496 S'deepens' p27497 aS'deepening' p27498 aS'deepened' p27499 aS'deepened' p27500 asS'downplay' p27501 (lp27502 S'downplays' p27503 aS'downplaying' p27504 aS'downplayed' p27505 aS'downplayed' p27506 asS'diffract' p27507 (lp27508 S'diffracts' p27509 aS'diffracting' p27510 aS'diffracted' p27511 aS'diffracted' p27512 asS'intubate' p27513 (lp27514 S'intubates' p27515 aS'intubating' p27516 aS'intubated' p27517 aS'intubated' p27518 asS'originate' p27519 (lp27520 S'originates' p27521 aS'originating' p27522 aS'originated' p27523 aS'originated' p27524 asS'near' p27525 (lp27526 S'nears' p27527 aS'nearing' p27528 aS'neared' p27529 aS'neared' p27530 asS'suppose' p27531 (lp27532 S'supposes' p27533 aS'supposing' p27534 aS'supposed' p27535 aS'supposed' p27536 asS'convalesce' p27537 (lp27538 S'convalesces' p27539 aS'convalescing' p27540 aS'convalesced' p27541 aS'convalesced' p27542 asS'balance' p27543 (lp27544 S'balances' p27545 aS'balancing' p27546 aS'balanced' p27547 aS'balanced' p27548 asS'mangle' p27549 (lp27550 S'mangles' p27551 aS'mangling' p27552 aS'mangled' p27553 aS'mangled' p27554 asS'anchor' p27555 (lp27556 S'anchors' p27557 aS'anchoring' p27558 aS'anchored' p27559 aS'anchored' p27560 asS'spawn' p27561 (lp27562 S'spawns' p27563 aS'spawning' p27564 aS'spawned' p27565 aS'spawned' p27566 asS'upgrade' p27567 (lp27568 S'upgrades' p27569 aS'upgrading' p27570 aS'upgraded' p27571 aS'upgraded' p27572 asS'cane' p27573 (lp27574 S'canes' p27575 aS'caning' p27576 aS'caned' p27577 aS'caned' p27578 asS'recuperate' p27579 (lp27580 S'recuperates' p27581 aS'recuperating' p27582 aS'recuperated' p27583 aS'recuperated' p27584 asS'womanize' p27585 (lp27586 S'womanizes' p27587 aS'womanizing' p27588 aS'womanized' p27589 aS'womanized' p27590 asS'remount' p27591 (lp27592 S'remounts' p27593 aS'remounting' p27594 aS'remounted' p27595 aS'remounted' p27596 asS'jess' p27597 (lp27598 S'jesses' p27599 aS'jessing' p27600 aS'jessed' p27601 aS'jessed' p27602 asS'lyophilize' p27603 (lp27604 S'lyophilizes' p27605 aS'lyophilizing' p27606 aS'lyophilized' p27607 aS'lyophilized' p27608 asS'jest' p27609 (lp27610 S'jests' p27611 aS'jesting' p27612 aS'jested' p27613 aS'jested' p27614 asS'mouse' p27615 (lp27616 S'mouses' p27617 aS'mousing' p27618 aS'moused' p27619 aS'moused' p27620 asS'disappear' p27621 (lp27622 S'disappears' p27623 aS'disappearing' p27624 aS'disappeared' p27625 aS'disappeared' p27626 asS'abscess' p27627 (lp27628 S'abscesses' p27629 aS'abscessing' p27630 aS'abscessed' p27631 aS'abscessed' p27632 asS'growl' p27633 (lp27634 S'growls' p27635 aS'growling' p27636 aS'growled' p27637 aS'growled' p27638 asS'reimport' p27639 (lp27640 S'reimports' p27641 aS'reimporting' p27642 aS'reimported' p27643 aS'reimported' p27644 asS'make' p27645 (lp27646 S'makes' p27647 aS'making' p27648 aS'made' p27649 aS'made' p27650 asS'quant' p27651 (lp27652 S'quants' p27653 aS'quanting' p27654 aS'quanted' p27655 aS'quanted' p27656 asS'belly' p27657 (lp27658 S'bellies' p27659 aS'bellying' p27660 aS'bellied' p27661 aS'bellied' p27662 asS'contaminate' p27663 (lp27664 S'contaminates' p27665 aS'contaminating' p27666 aS'contaminated' p27667 aS'contaminated' p27668 asS'sodden' p27669 (lp27670 S'soddens' p27671 aS'soddening' p27672 aS'soddened' p27673 aS'soddened' p27674 asS'surprint' p27675 (lp27676 S'surprints' p27677 aS'surprinting' p27678 aS'surprinted' p27679 aS'surprinted' p27680 asS'evolve' p27681 (lp27682 S'evolves' p27683 aS'evolving' p27684 aS'evolved' p27685 aS'evolved' p27686 asS'smoke' p27687 (lp27688 S'smokes' p27689 aS'smoking' p27690 aS'smoked' p27691 aS'smoked' p27692 asS'kip' p27693 (lp27694 S'kips' p27695 aS'kipping' p27696 aS'kipped' p27697 aS'kipped' p27698 asS'delight' p27699 (lp27700 S'delights' p27701 aS'delighting' p27702 aS'delighted' p27703 aS'delighted' p27704 asS'consternate' p27705 (lp27706 S'consternates' p27707 aS'consternating' p27708 aS'consternated' p27709 aS'consternated' p27710 asS'misconstrue' p27711 (lp27712 S'misconstrues' p27713 aS'misconstruing' p27714 aS'misconstrued' p27715 aS'misconstrued' p27716 asS'ruff' p27717 (lp27718 S'ruffs' p27719 aS'ruffing' p27720 aS'ruffed' p27721 aS'ruffed' p27722 asS'kid' p27723 (lp27724 S'kids' p27725 aS'kidding' p27726 aS'kidded' p27727 aS'kidded' p27728 asS'butter' p27729 (lp27730 S'butters' p27731 aS'buttering' p27732 aS'buttered' p27733 aS'buttered' p27734 asS'reest' p27735 (lp27736 S'reests' p27737 aS'reesting' p27738 aS'reested' p27739 aS'reested' p27740 asS'romp' p27741 (lp27742 S'romps' p27743 aS'romping' p27744 aS'romped' p27745 aS'romped' p27746 asS'whicker' p27747 (lp27748 S'whickers' p27749 aS'whickering' p27750 aS'whickered' p27751 aS'whickered' p27752 asS'strangulate' p27753 (lp27754 S'strangulates' p27755 aS'strangulating' p27756 aS'strangulated' p27757 aS'strangulated' p27758 asS'inherit' p27759 (lp27760 S'inherits' p27761 aS'inheriting' p27762 aS'inherited' p27763 aS'inherited' p27764 asS'berate' p27765 (lp27766 S'berates' p27767 aS'berating' p27768 aS'berated' p27769 aS'berated' p27770 asS'dialyze' p27771 (lp27772 S'dialyzes' p27773 aS'dialyzing' p27774 aS'dialyzed' p27775 aS'dialyzed' p27776 asS'left' p27777 (lp27778 S'left' p27779 aS'left' p27780 asS'sentence' p27781 (lp27782 S'sentences' p27783 aS'sentencing' p27784 aS'sentenced' p27785 aS'sentenced' p27786 asS'plash' p27787 (lp27788 S'plashes' p27789 aS'plashing' p27790 aS'plashed' p27791 aS'plashed' p27792 asS'alliterate' p27793 (lp27794 S'alliterates' p27795 aS'alliterating' p27796 aS'alliterated' p27797 aS'alliterated' p27798 asS'presume' p27799 (lp27800 S'presumes' p27801 aS'presuming' p27802 aS'presumed' p27803 aS'presumed' p27804 asS'identify' p27805 (lp27806 S'identifies' p27807 aS'identifying' p27808 aS'identified' p27809 aS'identified' p27810 asS'achromatize' p27811 (lp27812 S'achromatizes' p27813 aS'achromatizing' p27814 aS'achromatized' p27815 aS'achromatized' p27816 asS'secure' p27817 (lp27818 S'secures' p27819 aS'securing' p27820 aS'secured' p27821 aS'secured' p27822 asS'outbalance' p27823 (lp27824 S'outbalances' p27825 aS'outbalancing' p27826 aS'outbalanced' p27827 aS'outbalanced' p27828 asS'nudge' p27829 (lp27830 S'nudges' p27831 aS'nudging' p27832 aS'nudged' p27833 aS'nudged' p27834 asS'character' p27835 (lp27836 S'characters' p27837 aS'charactering' p27838 aS'charactered' p27839 aS'charactered' p27840 asS'defray' p27841 (lp27842 S'defrays' p27843 aS'defraying' p27844 aS'defrayed' p27845 aS'defrayed' p27846 asS'save' p27847 (lp27848 S'saves' p27849 aS'saving' p27850 aS'saved' p27851 aS'saved' p27852 asS'dehisce' p27853 (lp27854 S'dehisces' p27855 aS'dehiscing' p27856 aS'dehisced' p27857 aS'dehisced' p27858 asS'designate' p27859 (lp27860 S'designates' p27861 aS'designating' p27862 aS'designated' p27863 aS'designated' p27864 asS'opt' p27865 (lp27866 S'opts' p27867 aS'opting' p27868 aS'opted' p27869 aS'opted' p27870 asS'ope' p27871 (lp27872 S'opes' p27873 aS'oping' p27874 aS'oped' p27875 aS'oped' p27876 asS'commentate' p27877 (lp27878 S'commentates' p27879 aS'commentating' p27880 aS'commentated' p27881 aS'commentated' p27882 asS'shoulder' p27883 (lp27884 S'shoulders' p27885 aS'shouldering' p27886 aS'shouldered' p27887 aS'shouldered' p27888 asS'implead' p27889 (lp27890 S'impleads' p27891 aS'impleading' p27892 aS'impleaded' p27893 aS'impleaded' p27894 asS'handpick' p27895 (lp27896 S'handpicks' p27897 aS'handpicking' p27898 aS'handpicked' p27899 aS'handpicked' p27900 asS'chlorinate' p27901 (lp27902 S'chlorinates' p27903 aS'chlorinating' p27904 aS'chlorinated' p27905 aS'chlorinated' p27906 asS'jugulate' p27907 (lp27908 S'jugulates' p27909 aS'jugulating' p27910 aS'jugulated' p27911 aS'jugulated' p27912 asS'radioactivate' p27913 (lp27914 S'radioactivates' p27915 aS'radioactivating' p27916 aS'radioactivated' p27917 aS'radioactivated' p27918 asS'signal' p27919 (lp27920 S'signals' p27921 aS'signalling' p27922 aS'signalled' p27923 aS'signalled' p27924 asS'squander' p27925 (lp27926 S'squanders' p27927 aS'squandering' p27928 aS'squandered' p27929 aS'squandered' p27930 asS'deal' p27931 (lp27932 S'deals' p27933 aS'dealing' p27934 aS'dealt' p27935 aS'dealt' p27936 asS'repudiate' p27937 (lp27938 S'repudiates' p27939 aS'repudiating' p27940 aS'repudiated' p27941 aS'repudiated' p27942 asS'revet' p27943 (lp27944 S'revets' p27945 aS'revetting' p27946 aS'revetted' p27947 aS'revetted' p27948 asS'slack' p27949 (lp27950 S'slacks' p27951 aS'slacking' p27952 aS'slacked' p27953 aS'slacked' p27954 asS'revel' p27955 (lp27956 S'revels' p27957 aS'revelling' p27958 aS'revelled' p27959 aS'revelled' p27960 asS'intern' p27961 (lp27962 S'interns' p27963 aS'interning' p27964 aS'interned' p27965 aS'interned' p27966 asS'arterialize' p27967 (lp27968 S'arterializes' p27969 aS'arterializing' p27970 aS'arterialized' p27971 aS'arterialized' p27972 asS'invoice' p27973 (lp27974 S'invoices' p27975 aS'invoicing' p27976 aS'invoiced' p27977 aS'invoiced' p27978 asS'sprawl' p27979 (lp27980 S'sprawls' p27981 aS'sprawling' p27982 aS'sprawled' p27983 aS'sprawled' p27984 asS'collect' p27985 (lp27986 S'collects' p27987 aS'collecting' p27988 aS'collected' p27989 aS'collected' p27990 asS'defilade' p27991 (lp27992 S'defilades' p27993 aS'defilading' p27994 aS'defiladed' p27995 aS'defiladed' p27996 asS'superfuse' p27997 (lp27998 S'superfuses' p27999 aS'superfusing' p28000 aS'superfused' p28001 aS'superfused' p28002 asS'flounder' p28003 (lp28004 S'flounders' p28005 aS'floundering' p28006 aS'floundered' p28007 aS'floundered' p28008 asS'drudge' p28009 (lp28010 S'drudges' p28011 aS'drudging' p28012 aS'drudged' p28013 aS'drudged' p28014 asS'overcook' p28015 (lp28016 S'overcooks' p28017 aS'overcooking' p28018 aS'overcooked' p28019 aS'overcooked' p28020 asS'beget' p28021 (lp28022 S'begets' p28023 aS'begetting' p28024 aS'begot' p28025 aS'begotten' p28026 asS'egest' p28027 (lp28028 S'egests' p28029 aS'egesting' p28030 aS'egested' p28031 aS'egested' p28032 asS'bamboozle' p28033 (lp28034 S'bamboozles' p28035 aS'bamboozling' p28036 aS'bamboozled' p28037 aS'bamboozled' p28038 asS'burl' p28039 (lp28040 S'burls' p28041 aS'burling' p28042 aS'burled' p28043 aS'burled' p28044 asS'protuberate' p28045 (lp28046 S'protuberates' p28047 aS'protuberating' p28048 aS'protuberated' p28049 aS'protuberated' p28050 asS'burn' p28051 (lp28052 S'burns' p28053 aS'burning' p28054 aS'burnt' p28055 aS'burnt' p28056 asS'blackmail' p28057 (lp28058 S'blackmails' p28059 aS'blackmailing' p28060 aS'blackmailed' p28061 aS'blackmailed' p28062 asS'sift' p28063 (lp28064 S'sifts' p28065 aS'sifting' p28066 aS'sifted' p28067 aS'sifted' p28068 asS'etiolate' p28069 (lp28070 S'etiolates' p28071 aS'etiolating' p28072 aS'etiolated' p28073 aS'etiolated' p28074 asS'burp' p28075 (lp28076 S'burps' p28077 aS'burping' p28078 aS'burped' p28079 aS'burped' p28080 asS'bury' p28081 (lp28082 S'buries' p28083 aS'burying' p28084 aS'buried' p28085 aS'buried' p28086 asS'conceal' p28087 (lp28088 S'conceals' p28089 aS'concealing' p28090 aS'concealed' p28091 aS'concealed' p28092 asS'palisade' p28093 (lp28094 S'palisades' p28095 aS'palisading' p28096 aS'palisaded' p28097 aS'palisaded' p28098 asS'stow' p28099 (lp28100 S'stows' p28101 aS'stowing' p28102 aS'stowed' p28103 aS'stowed' p28104 asS'commix' p28105 (lp28106 S'commixes' p28107 aS'commixing' p28108 aS'commixed' p28109 aS'commixed' p28110 asS'commit' p28111 (lp28112 S'commits' p28113 aS'committing' p28114 aS'committed' p28115 aS'committed' p28116 asS'clapboard' p28117 (lp28118 S'clapboards' p28119 aS'clapboarding' p28120 aS'clapboarded' p28121 aS'clapboarded' p28122 asS'marshal' p28123 (lp28124 S'marshals' p28125 aS'marshalling' p28126 aS'marshalled' p28127 aS'marshalled' p28128 asS'unsay' p28129 (lp28130 S'unsays' p28131 aS'unsaying' p28132 aS'unsaid' p28133 aS'unsaid' p28134 asS'gestate' p28135 (lp28136 S'gestates' p28137 aS'gestating' p28138 aS'gestated' p28139 aS'gestated' p28140 asS'nerve' p28141 (lp28142 S'nerves' p28143 aS'nerving' p28144 aS'nerved' p28145 aS'nerved' p28146 asS'motivate' p28147 (lp28148 S'motivates' p28149 aS'motivating' p28150 aS'motivated' p28151 aS'motivated' p28152 asS'stone-wall' p28153 (lp28154 S'stone-walls' p28155 ag21493 ag21494 aS'stone-walled' p28156 asS'Frenchify' p28157 (lp28158 S'Frenchifies' p28159 aS'Frenchifying' p28160 aS'Frenchified' p28161 aS'Frenchified' p28162 asS'down' p28163 (lp28164 S'downs' p28165 aS'downing' p28166 aS'downed' p28167 aS'downed' p28168 asS'slurp' p28169 (lp28170 S'slurps' p28171 aS'slurping' p28172 aS'slurped' p28173 aS'slurped' p28174 asS'translocate' p28175 (lp28176 S'translocates' p28177 aS'translocating' p28178 aS'translocated' p28179 aS'translocated' p28180 asS'chime' p28181 (lp28182 S'chimes' p28183 aS'chiming' p28184 aS'chimed' p28185 aS'chimed' p28186 asS'unseal' p28187 (lp28188 S'unseals' p28189 aS'unsealing' p28190 aS'unsealed' p28191 aS'unsealed' p28192 asS'unseam' p28193 (lp28194 S'unseams' p28195 aS'unseaming' p28196 aS'unseamed' p28197 aS'unseamed' p28198 asS'chitter' p28199 (lp28200 S'chitters' p28201 aS'chittering' p28202 aS'chittered' p28203 aS'chittered' p28204 asS'initial' p28205 (lp28206 S'initials' p28207 aS'initialling' p28208 aS'initialled' p28209 aS'initialled' p28210 asS'subdivide' p28211 (lp28212 S'subdivides' p28213 aS'subdividing' p28214 aS'subdivided' p28215 aS'subdivided' p28216 asS'chelate' p28217 (lp28218 S'chelates' p28219 aS'chelating' p28220 aS'chelated' p28221 aS'chelated' p28222 asS'misbecome' p28223 (lp28224 S'misbecomes' p28225 aS'misbecoming' p28226 aS'misbecame' p28227 aS'misbecame' p28228 asS'lampoon' p28229 (lp28230 S'lampoons' p28231 aS'lampooning' p28232 aS'lampooned' p28233 aS'lampooned' p28234 asS'deputize' p28235 (lp28236 S'deputizes' p28237 aS'deputizing' p28238 aS'deputized' p28239 aS'deputized' p28240 asS'unseat' p28241 (lp28242 S'unseats' p28243 aS'unseating' p28244 aS'unseated' p28245 aS'unseated' p28246 asS'stalk' p28247 (lp28248 S'stalks' p28249 aS'stalking' p28250 aS'stalked' p28251 aS'stalked' p28252 asS'smoodge' p28253 (lp28254 S'smoodges' p28255 aS'smoodging' p28256 aS'smoodged' p28257 aS'smoodged' p28258 asS'fork' p28259 (lp28260 S'forks' p28261 aS'forking' p28262 aS'forked' p28263 aS'forked' p28264 asS'starve' p28265 (lp28266 S'starves' p28267 aS'starving' p28268 aS'starved' p28269 aS'starved' p28270 asS'form' p28271 (lp28272 S'forms' p28273 aS'forming' p28274 aS'formed' p28275 aS'formed' p28276 asS'ford' p28277 (lp28278 S'fords' p28279 aS'fording' p28280 aS'forded' p28281 aS'forded' p28282 asS'diaper' p28283 (lp28284 S'diapers' p28285 aS'diapering' p28286 aS'diapered' p28287 aS'diapered' p28288 asS'turpentine' p28289 (lp28290 S'turpentines' p28291 aS'turpentining' p28292 aS'turpentined' p28293 aS'turpentined' p28294 asS'syndicate' p28295 (lp28296 S'syndicates' p28297 aS'syndicating' p28298 aS'syndicated' p28299 aS'syndicated' p28300 asS'overburden' p28301 (lp28302 S'overburdens' p28303 aS'overburdening' p28304 aS'overburdened' p28305 aS'overburdened' p28306 asS'surrender' p28307 (lp28308 S'surrenders' p28309 aS'surrendering' p28310 aS'surrendered' p28311 aS'surrendered' p28312 asS'pavilion' p28313 (lp28314 S'pavilions' p28315 aS'pavilioning' p28316 aS'pavilioned' p28317 aS'pavilioned' p28318 asS'LHlike' p28319 (lp28320 S'LHlikes' p28321 aS'LHliking' p28322 aS'LHliked' p28323 aS'LHliked' p28324 asS'litter' p28325 (lp28326 S'litters' p28327 aS'littering' p28328 aS'littered' p28329 aS'littered' p28330 asS'boomerang' p28331 (lp28332 S'boomerangs' p28333 aS'boomeranging' p28334 aS'boomeranged' p28335 aS'boomeranged' p28336 asS'temper' p28337 (lp28338 S'tempers' p28339 aS'tempering' p28340 aS'tempered' p28341 aS'tempered' p28342 asS'delete' p28343 (lp28344 S'deletes' p28345 aS'deleting' p28346 aS'deleted' p28347 aS'deleted' p28348 asS'diagnose' p28349 (lp28350 S'diagnoses' p28351 aS'diagnosing' p28352 aS'diagnosed' p28353 aS'diagnosed' p28354 asS'forespeak' p28355 (lp28356 S'forespeaks' p28357 aS'forespeaking' p28358 aS'forespoke' p28359 aS'forespoken' p28360 asS'shin' p28361 (lp28362 S'shins' p28363 aS'shinning' p28364 aS'shinned' p28365 aS'shinned' p28366 asS'shim' p28367 (lp28368 S'shims' p28369 aS'shimming' p28370 aS'shimmed' p28371 aS'shimmed' p28372 asS'bureaucratize' p28373 (lp28374 S'bureaucratizes' p28375 aS'bureaucratizing' p28376 aS'bureaucratized' p28377 aS'bureaucratized' p28378 asS'sidestep' p28379 (lp28380 S'sidesteps' p28381 aS'sidestepping' p28382 aS'sidestepped' p28383 aS'sidestepped' p28384 asS'sticky' p28385 (lp28386 S'stickies' p28387 aS'stickying' p28388 aS'stickied' p28389 aS'stickied' p28390 asS'scrawl' p28391 (lp28392 S'scrawls' p28393 aS'scrawling' p28394 aS'scrawled' p28395 aS'scrawled' p28396 asS'revitalize' p28397 (lp28398 S'revitalizes' p28399 aS'revitalizing' p28400 aS'revitalized' p28401 aS'revitalized' p28402 asS'vivify' p28403 (lp28404 S'vivifies' p28405 aS'vivifying' p28406 aS'vivified' p28407 aS'vivified' p28408 asS'ship' p28409 (lp28410 S'ships' p28411 aS'shipping' p28412 aS'shipped' p28413 aS'shipped' p28414 asS'swill' p28415 (lp28416 S'swills' p28417 aS'swilling' p28418 aS'swilled' p28419 aS'swilled' p28420 asS'addle' p28421 (lp28422 S'addles' p28423 aS'addling' p28424 aS'addled' p28425 aS'addled' p28426 asS'shit' p28427 (lp28428 S'shits' p28429 aS'shitting' p28430 aS'shit' p28431 aS'shit' p28432 asS'graft' p28433 (lp28434 S'grafts' p28435 aS'grafting' p28436 aS'grafted' p28437 aS'grafted' p28438 asS'discriminate' p28439 (lp28440 S'discriminates' p28441 aS'discriminating' p28442 aS'discriminated' p28443 aS'discriminated' p28444 asS'disaccord' p28445 (lp28446 S'disaccords' p28447 aS'disaccording' p28448 aS'disaccorded' p28449 aS'disaccorded' p28450 asS'excel' p28451 (lp28452 S'excels' p28453 aS'excelling' p28454 aS'excelled' p28455 aS'excelled' p28456 asS'maledict' p28457 (lp28458 S'maledicts' p28459 aS'maledicting' p28460 aS'maledicted' p28461 aS'maledicted' p28462 asS'congeal' p28463 (lp28464 S'congeals' p28465 aS'congealing' p28466 aS'congealed' p28467 aS'congealed' p28468 asS'repay' p28469 (lp28470 S'repays' p28471 aS'repaying' p28472 aS'repaid' p28473 aS'repaid' p28474 asS'warehouse' p28475 (lp28476 S'warehouses' p28477 aS'warehousing' p28478 aS'warehoused' p28479 aS'warehoused' p28480 asS'interlard' p28481 (lp28482 S'interlards' p28483 aS'interlarding' p28484 aS'interlarded' p28485 aS'interlarded' p28486 asS'garland' p28487 (lp28488 S'garlands' p28489 aS'garlanding' p28490 aS'garlanded' p28491 aS'garlanded' p28492 asS'handicap' p28493 (lp28494 S'handicaps' p28495 aS'handicapping' p28496 aS'handicapped' p28497 aS'handicapped' p28498 asS'bilge' p28499 (lp28500 S'bilges' p28501 aS'bilging' p28502 aS'bilged' p28503 aS'bilged' p28504 asS'slink' p28505 (lp28506 S'slinks' p28507 aS'slinking' p28508 aS'slunk' p28509 aS'slunk' p28510 asS'diet' p28511 (lp28512 S'diets' p28513 aS'dieting' p28514 aS'dieted' p28515 aS'dieted' p28516 asS'infatuate' p28517 (lp28518 S'infatuates' p28519 aS'infatuating' p28520 aS'infatuated' p28521 aS'infatuated' p28522 asS'journey' p28523 (lp28524 S'journeys' p28525 aS'journeying' p28526 aS'journeyed' p28527 aS'journeyed' p28528 asS'reign' p28529 (lp28530 S'reigns' p28531 aS'reigning' p28532 aS'reigned' p28533 aS'reigned' p28534 asS'stoke' p28535 (lp28536 S'stokes' p28537 aS'stoking' p28538 aS'stoked' p28539 aS'stoked' p28540 asS'weekend' p28541 (lp28542 S'weekends' p28543 aS'weekending' p28544 aS'weekended' p28545 aS'weekended' p28546 asS'endamage' p28547 (lp28548 S'endamages' p28549 aS'endamaging' p28550 aS'endamaged' p28551 aS'endamaged' p28552 asS'derail' p28553 (lp28554 S'derails' p28555 aS'derailing' p28556 aS'derailed' p28557 aS'derailed' p28558 asS'assume' p28559 (lp28560 S'assumes' p28561 aS'assuming' p28562 aS'assumed' p28563 aS'assumed' p28564 asS'jacket' p28565 (lp28566 S'jackets' p28567 aS'jacketing' p28568 aS'jacketed' p28569 aS'jacketed' p28570 asS'reroute' p28571 (lp28572 S'reroutes' p28573 aS'rerouting' p28574 aS'rerouted' p28575 aS'rerouted' p28576 asS'meander' p28577 (lp28578 S'meanders' p28579 aS'meandering' p28580 aS'meandered' p28581 aS'meandered' p28582 asS'decelerate' p28583 (lp28584 S'decelerates' p28585 aS'decelerating' p28586 aS'decelerated' p28587 aS'decelerated' p28588 asS'camber' p28589 (lp28590 S'cambers' p28591 aS'cambering' p28592 aS'cambered' p28593 aS'cambered' p28594 asS'befriend' p28595 (lp28596 S'befriends' p28597 aS'befriending' p28598 aS'befriended' p28599 aS'befriended' p28600 asS'revoke' p28601 (lp28602 S'revokes' p28603 aS'revoking' p28604 aS'revoked' p28605 aS'revoked' p28606 asS'fletch' p28607 (lp28608 S'fletches' p28609 aS'fletching' p28610 aS'fletched' p28611 aS'fletched' p28612 asS'skip' p28613 (lp28614 S'skips' p28615 aS'skipping' p28616 aS'skipped' p28617 aS'skipped' p28618 asS'relieve' p28619 (lp28620 S'relieves' p28621 aS'relieving' p28622 aS'relieved' p28623 aS'relieved' p28624 asS'peruse' p28625 (lp28626 S'peruses' p28627 aS'perusing' p28628 aS'perused' p28629 aS'perused' p28630 asS'invent' p28631 (lp28632 S'invents' p28633 aS'inventing' p28634 aS'invented' p28635 aS'invented' p28636 asS'muss' p28637 (lp28638 S'musses' p28639 aS'mussing' p28640 aS'mussed' p28641 aS'mussed' p28642 asS'redouble' p28643 (lp28644 S'redoubles' p28645 aS'redoubling' p28646 aS'redoubled' p28647 aS'redoubled' p28648 asS'skin' p28649 (lp28650 S'skins' p28651 aS'skinning' p28652 aS'skinned' p28653 aS'skinned' p28654 asS'spruik' p28655 (lp28656 S'spruiks' p28657 aS'spruiking' p28658 aS'spruiked' p28659 aS'spruiked' p28660 asS'mill' p28661 (lp28662 S'mills' p28663 aS'milling' p28664 aS'milled' p28665 aS'milled' p28666 asS'forcefeed' p28667 (lp28668 S'forcefeeds' p28669 aS'forcefeeding' p28670 aS'forcefed' p28671 aS'forcefed' p28672 asS'milk' p28673 (lp28674 S'milks' p28675 aS'milking' p28676 aS'milked' p28677 aS'milked' p28678 asS'skeletonize' p28679 (lp28680 S'skeletonizes' p28681 aS'skeletonizing' p28682 aS'skeletonized' p28683 aS'skeletonized' p28684 asS'misread' p28685 (lp28686 S'misreads' p28687 aS'misreading' p28688 aS'misread' p28689 aS'misread' p28690 asS'depend' p28691 (lp28692 S'depends' p28693 aS'depending' p28694 aS'depended' p28695 aS'depended' p28696 asS'summersault' p28697 (lp28698 sS'tariff' p28699 (lp28700 S'tariffs' p28701 aS'tariffing' p28702 aS'tariffed' p28703 aS'tariffed' p28704 asS'swoon' p28705 (lp28706 S'swoons' p28707 aS'swooning' p28708 aS'swooned' p28709 aS'swooned' p28710 asS'father' p28711 (lp28712 S'fathers' p28713 aS'fathering' p28714 aS'fathered' p28715 aS'fathered' p28716 asS'amaze' p28717 (lp28718 S'amazes' p28719 aS'amazing' p28720 aS'amazed' p28721 aS'amazed' p28722 asS'swoop' p28723 (lp28724 S'swoops' p28725 aS'swooping' p28726 aS'swooped' p28727 aS'swooped' p28728 asS'quintuplicate' p28729 (lp28730 S'quintuplicates' p28731 aS'quintuplicating' p28732 aS'quintuplicated' p28733 aS'quintuplicated' p28734 asS'overproduce' p28735 (lp28736 S'overproduces' p28737 aS'overproducing' p28738 aS'overproduced' p28739 aS'overproduced' p28740 asS'unburden' p28741 (lp28742 S'unburdens' p28743 aS'unburdening' p28744 aS'unburdened' p28745 aS'unburdened' p28746 asS'encircle' p28747 (lp28748 S'encircles' p28749 aS'encircling' p28750 aS'encircled' p28751 aS'encircled' p28752 asS'keck' p28753 (lp28754 S'kecks' p28755 aS'kecking' p28756 aS'kecked' p28757 aS'kecked' p28758 asS'string' p28759 (lp28760 S'strings' p28761 aS'stringing' p28762 aS'strung' p28763 aS'strung' p28764 asS'shoogle' p28765 (lp28766 S'shoogles' p28767 aS'shoogling' p28768 aS'shoogled' p28769 aS'shoogled' p28770 asS'bullyrag' p28771 (lp28772 S'bullyrags' p28773 aS'bullyragging' p28774 aS'bullyragged' p28775 aS'bullyragged' p28776 asS'nationalize' p28777 (lp28778 S'nationalizes' p28779 aS'nationalizing' p28780 aS'nationalized' p28781 aS'nationalized' p28782 asS'woosh' p28783 (lp28784 S'wooshes' p28785 aS'wooshing' p28786 aS'wooshed' p28787 aS'wooshed' p28788 asS'Europeanize' p28789 (lp28790 S'Europeanizes' p28791 aS'Europeanizing' p28792 aS'Europeanized' p28793 aS'Europeanized' p28794 asS'lynch' p28795 (lp28796 S'lynches' p28797 aS'lynching' p28798 aS'lynched' p28799 aS'lynched' p28800 asS'jettison' p28801 (lp28802 S'jettisons' p28803 aS'jettisoning' p28804 aS'jettisoned' p28805 aS'jettisoned' p28806 asS'materialize' p28807 (lp28808 S'materializes' p28809 aS'materializing' p28810 aS'materialized' p28811 aS'materialized' p28812 asS'dim' p28813 (lp28814 S'dims' p28815 aS'dimming' p28816 aS'dimmed' p28817 aS'dimmed' p28818 asS'din' p28819 (lp28820 S'dins' p28821 aS'dinning' p28822 aS'dinned' p28823 aS'dinned' p28824 asS'die' p28825 (lp28826 S'dies' p28827 aS'dying' p28828 aS'died' p28829 aS'died' p28830 asS'economize' p28831 (lp28832 S'economizes' p28833 aS'economizing' p28834 aS'economized' p28835 aS'economized' p28836 asS'dig' p28837 (lp28838 S'digs' p28839 aS'digging' p28840 aS'dug' p28841 aS'dug' p28842 asS'dib' p28843 (lp28844 S'dibs' p28845 aS'dibbing' p28846 aS'dibbed' p28847 aS'dibbed' p28848 asS'hooray' p28849 (lp28850 S'hoorays' p28851 aS'hooraying' p28852 aS'hoorayed' p28853 aS'hoorayed' p28854 asS'item' p28855 (lp28856 S'items' p28857 aS'iteming' p28858 aS'itemed' p28859 aS'itemed' p28860 asS'grimace' p28861 (lp28862 S'grimaces' p28863 aS'grimacing' p28864 aS'grimaced' p28865 aS'grimaced' p28866 asS'dip' p28867 (lp28868 S'dips' p28869 aS'dipping' p28870 aS'dipped' p28871 aS'dipped' p28872 asS'round' p28873 (lp28874 S'rounds' p28875 aS'rounding' p28876 aS'rounded' p28877 aS'rounded' p28878 asS'shave' p28879 (lp28880 S'shaves' p28881 aS'shaving' p28882 aS'shaved' p28883 aS'shaven' p28884 asS'worm' p28885 (lp28886 S'worms' p28887 aS'worming' p28888 aS'wormed' p28889 aS'wormed' p28890 asS'slake' p28891 (lp28892 S'slakes' p28893 aS'slaking' p28894 aS'slaked' p28895 aS'slaked' p28896 asS'trisect' p28897 (lp28898 S'trisects' p28899 aS'trisecting' p28900 aS'trisected' p28901 aS'trisected' p28902 asS'twaddle' p28903 (lp28904 S'twaddles' p28905 aS'twaddling' p28906 aS'twaddled' p28907 aS'twaddled' p28908 asS'unbar' p28909 (lp28910 S'unbars' p28911 aS'unbarring' p28912 aS'unbarred' p28913 aS'unbarred' p28914 asS'favour' p28915 (lp28916 S'favours' p28917 aS'favouring' p28918 aS'favoured' p28919 aS'favoured' p28920 asS'fillet' p28921 (lp28922 S'fillets' p28923 aS'filleting' p28924 aS'filleted' p28925 aS'filleted' p28926 asS'reunite' p28927 (lp28928 S'reunites' p28929 aS'reuniting' p28930 aS'reunited' p28931 aS'reunited' p28932 asS'suspect' p28933 (lp28934 S'suspects' p28935 aS'suspecting' p28936 aS'suspected' p28937 aS'suspected' p28938 asS'divinize' p28939 (lp28940 S'divinizes' p28941 aS'divinizing' p28942 aS'divinized' p28943 aS'divinized' p28944 asS'extemporize' p28945 (lp28946 S'extemporizes' p28947 aS'extemporizing' p28948 aS'extemporized' p28949 aS'extemporized' p28950 asS'dwarf' p28951 (lp28952 S'dwarfs' p28953 aS'dwarfing' p28954 aS'dwarfed' p28955 aS'dwarfed' p28956 asS'etherealize' p28957 (lp28958 S'etherealizes' p28959 aS'etherealizing' p28960 aS'etherealized' p28961 aS'etherealized' p28962 asS'clerk' p28963 (lp28964 S'clerks' p28965 aS'clerking' p28966 aS'clerked' p28967 aS'clerked' p28968 asS'briquette' p28969 (lp28970 S'briquettes' p28971 aS'briquetting' p28972 aS'briquetted' p28973 aS'briquetted' p28974 asS'overwinter' p28975 (lp28976 S'overwinters' p28977 aS'overwintering' p28978 aS'overwintered' p28979 aS'overwintered' p28980 asS'detest' p28981 (lp28982 S'detests' p28983 aS'detesting' p28984 aS'detested' p28985 aS'detested' p28986 asS'decipher' p28987 (lp28988 S'deciphers' p28989 aS'deciphering' p28990 aS'deciphered' p28991 aS'deciphered' p28992 asS'oversimplify' p28993 (lp28994 S'oversimplifies' p28995 aS'oversimplifying' p28996 aS'oversimplified' p28997 aS'oversimplified' p28998 asS'wait' p28999 (lp29000 S'waits' p29001 aS'waiting' p29002 aS'waited' p29003 aS'waited' p29004 asS'box' p29005 (lp29006 S'boxes' p29007 aS'boxing' p29008 aS'boxed' p29009 aS'boxed' p29010 asS'cuckoo' p29011 (lp29012 S'cuckoos' p29013 aS'cuckooing' p29014 aS'cuckooed' p29015 aS'cuckooed' p29016 asS'bop' p29017 (lp29018 S'bops' p29019 aS'bopping' p29020 aS'bopped' p29021 aS'bopped' p29022 asS'shift' p29023 (lp29024 S'shifts' p29025 aS'shifting' p29026 aS'shifted' p29027 aS'shifted' p29028 asS'bow' p29029 (lp29030 S'bows' p29031 aS'bowing' p29032 aS'bowed' p29033 aS'bowed' p29034 asS'dither' p29035 (lp29036 S'dithers' p29037 aS'dithering' p29038 aS'dithered' p29039 aS'dithered' p29040 asS'boo' p29041 (lp29042 S'boos' p29043 aS'booing' p29044 aS'booed' p29045 aS'booed' p29046 asS'bob' p29047 (lp29048 S'bobs' p29049 aS'bobbing' p29050 aS'bobbed' p29051 aS'bobbed' p29052 asS'conglobate' p29053 (lp29054 S'conglobates' p29055 aS'conglobating' p29056 aS'conglobated' p29057 aS'conglobated' p29058 asS'massage' p29059 (lp29060 S'massages' p29061 aS'massaging' p29062 aS'massaged' p29063 aS'massaged' p29064 asS'demodulate' p29065 (lp29066 S'demodulates' p29067 aS'demodulating' p29068 aS'demodulated' p29069 aS'demodulated' p29070 asS'treasure' p29071 (lp29072 S'treasures' p29073 aS'treasuring' p29074 aS'treasured' p29075 aS'treasured' p29076 asS'elect' p29077 (lp29078 S'elects' p29079 aS'electing' p29080 aS'elected' p29081 aS'elected' p29082 asS'stet' p29083 (lp29084 S'stets' p29085 aS'stetting' p29086 aS'stetted' p29087 aS'stetted' p29088 asS'supinate' p29089 (lp29090 S'supinates' p29091 aS'supinating' p29092 aS'supinated' p29093 aS'supinated' p29094 asS'quibble' p29095 (lp29096 S'quibbles' p29097 aS'quibbling' p29098 aS'quibbled' p29099 aS'quibbled' p29100 asS'verge' p29101 (lp29102 S'verges' p29103 aS'verging' p29104 aS'verged' p29105 aS'verged' p29106 asS'surmount' p29107 (lp29108 S'surmounts' p29109 aS'surmounting' p29110 aS'surmounted' p29111 aS'surmounted' p29112 asS'torrify' p29113 (lp29114 S'torrifies' p29115 aS'torrifying' p29116 aS'torrified' p29117 aS'torrified' p29118 asS'transplant' p29119 (lp29120 S'transplants' p29121 aS'transplanting' p29122 aS'transplanted' p29123 aS'transplanted' p29124 asS'anthropomorphize' p29125 (lp29126 S'anthropomorphizes' p29127 aS'anthropomorphizing' p29128 aS'anthropomorphized' p29129 aS'anthropomorphized' p29130 asS'telpher' p29131 (lp29132 S'telphers' p29133 aS'telphering' p29134 aS'telphered' p29135 aS'telphered' p29136 asS'confound' p29137 (lp29138 S'confounds' p29139 aS'confounding' p29140 aS'confounded' p29141 aS'confounded' p29142 asS'subtract' p29143 (lp29144 S'subtracts' p29145 aS'subtracting' p29146 aS'subtracted' p29147 aS'subtracted' p29148 asS'visit' p29149 (lp29150 S'visits' p29151 aS'visiting' p29152 aS'visited' p29153 aS'visited' p29154 asS'deepsix' p29155 (lp29156 S'deepsixes' p29157 aS'deepsixing' p29158 aS'deepsixed' p29159 aS'deepsixed' p29160 asS'encode' p29161 (lp29162 S'encodes' p29163 aS'encoding' p29164 aS'encoded' p29165 aS'encoded' p29166 asS'sharpen' p29167 (lp29168 S'sharpens' p29169 aS'sharpening' p29170 aS'sharpened' p29171 aS'sharpened' p29172 asS'swagger' p29173 (lp29174 S'swaggers' p29175 aS'swaggering' p29176 aS'swaggered' p29177 aS'swaggered' p29178 asS'excide' p29179 (lp29180 S'excides' p29181 aS'exciding' p29182 aS'excided' p29183 aS'excided' p29184 asS'cremate' p29185 (lp29186 S'cremates' p29187 aS'cremating' p29188 aS'cremated' p29189 aS'cremated' p29190 asS'repast' p29191 (lp29192 S'repasts' p29193 aS'repasting' p29194 aS'repasted' p29195 aS'repasted' p29196 asS'anagrammatize' p29197 (lp29198 S'anagrammatizes' p29199 aS'anagrammatizing' p29200 aS'anagrammatized' p29201 aS'anagrammatized' p29202 asS'fly' p29203 (lp29204 S'flies' p29205 aS'flying' p29206 aS'flew' p29207 aS'flown' p29208 asS'demolish' p29209 (lp29210 S'demolishes' p29211 aS'demolishing' p29212 aS'demolished' p29213 aS'demolished' p29214 asS'impel' p29215 (lp29216 S'impels' p29217 aS'impelling' p29218 aS'impelled' p29219 aS'impelled' p29220 asS'sour' p29221 (lp29222 S'sours' p29223 aS'souring' p29224 aS'soured' p29225 aS'soured' p29226 asS'symmetrize' p29227 (lp29228 S'symmetrizes' p29229 aS'symmetrizing' p29230 aS'symmetrized' p29231 aS'symmetrized' p29232 asS'arrive' p29233 (lp29234 S'arrives' p29235 aS'arriving' p29236 aS'arrived' p29237 aS'arrived' p29238 asS'claim' p29239 (lp29240 S'claims' p29241 aS'claiming' p29242 aS'claimed' p29243 aS'claimed' p29244 asS'immortalize' p29245 (lp29246 S'immortalizes' p29247 aS'immortalizing' p29248 aS'immortalized' p29249 aS'immortalized' p29250 asS'intergrade' p29251 (lp29252 S'intergrades' p29253 aS'intergrading' p29254 aS'intergraded' p29255 aS'intergraded' p29256 asS'predict' p29257 (lp29258 S'predicts' p29259 aS'predicting' p29260 aS'predicted' p29261 aS'predicted' p29262 asS'fuck' p29263 (lp29264 S'fucks' p29265 aS'fucking' p29266 aS'fucked' p29267 aS'fucked' p29268 asS'sample' p29269 (lp29270 S'samples' p29271 aS'sampling' p29272 aS'sampled' p29273 aS'sampled' p29274 asS'disbelieve' p29275 (lp29276 S'disbelieves' p29277 aS'disbelieving' p29278 aS'disbelieved' p29279 aS'disbelieved' p29280 asS'craze' p29281 (lp29282 S'crazes' p29283 aS'crazing' p29284 aS'crazed' p29285 aS'crazed' p29286 asS'normalize' p29287 (lp29288 S'normalizes' p29289 aS'normalizing' p29290 aS'normalized' p29291 aS'normalized' p29292 asS'purr' p29293 (lp29294 S'purrs' p29295 aS'purring' p29296 aS'purred' p29297 aS'purred' p29298 asS'shinty' p29299 (lp29300 S'shinties' p29301 aS'shintying' p29302 aS'shintied' p29303 aS'shintied' p29304 asS'tilt' p29305 (lp29306 S'tilts' p29307 aS'tilting' p29308 aS'tilted' p29309 aS'tilted' p29310 asS'ping' p29311 (lp29312 S'pings' p29313 aS'pinging' p29314 aS'pinged' p29315 aS'pinged' p29316 asS'parch' p29317 (lp29318 S'parches' p29319 aS'parching' p29320 aS'parched' p29321 aS'parched' p29322 asS'pine' p29323 (lp29324 S'pines' p29325 aS'pining' p29326 aS'pined' p29327 aS'pined' p29328 asS'till' p29329 (lp29330 S'tills' p29331 aS'tilling' p29332 aS'tilled' p29333 aS'tilled' p29334 asS'tile' p29335 (lp29336 S'tiles' p29337 aS'tiling' p29338 aS'tiled' p29339 aS'tiled' p29340 asS'purl' p29341 (lp29342 S'purls' p29343 aS'purling' p29344 aS'purled' p29345 aS'purled' p29346 asS'map' p29347 (lp29348 S'maps' p29349 aS'mapping' p29350 aS'mapped' p29351 aS'mapped' p29352 asS'mar' p29353 (lp29354 S'mars' p29355 aS'marring' p29356 aS'marred' p29357 aS'marred' p29358 asS'mat' p29359 (lp29360 S'mats' p29361 aS'matting' p29362 aS'matted' p29363 aS'matted' p29364 asS'legislate' p29365 (lp29366 S'legislates' p29367 aS'legislating' p29368 aS'legislated' p29369 aS'legislated' p29370 asS'may' p29371 (lp29372 S'mayest' p29373 aS"mayn't" p29374 asS'mad' p29375 (lp29376 S'mads' p29377 aS'madding' p29378 aS'madded' p29379 aS'madded' p29380 asS'methylate' p29381 (lp29382 S'methylates' p29383 aS'methylating' p29384 aS'methylated' p29385 aS'methylated' p29386 asS'subrogate' p29387 (lp29388 S'subrogates' p29389 aS'subrogating' p29390 aS'subrogated' p29391 aS'subrogated' p29392 asS'catcall' p29393 (lp29394 S'catcalls' p29395 aS'catcalling' p29396 aS'catcalled' p29397 aS'catcalled' p29398 asS'grow' p29399 (lp29400 S'grows' p29401 aS'growing' p29402 aS'grew' p29403 aS'grown' p29404 asS'fossilize' p29405 (lp29406 S'fossilizes' p29407 aS'fossilizing' p29408 aS'fossilized' p29409 aS'fossilized' p29410 asS'itinerate' p29411 (lp29412 S'itinerates' p29413 aS'itinerating' p29414 aS'itinerated' p29415 aS'itinerated' p29416 asS'omen' p29417 (lp29418 S'omens' p29419 aS'omening' p29420 aS'omened' p29421 aS'omened' p29422 asS'perambulate' p29423 (lp29424 S'perambulates' p29425 aS'perambulating' p29426 aS'perambulated' p29427 aS'perambulated' p29428 asS'purify' p29429 (lp29430 S'purifies' p29431 aS'purifying' p29432 aS'purified' p29433 aS'purified' p29434 asS'disembowel' p29435 (lp29436 S'disembowels' p29437 aS'disembowelling' p29438 aS'disembowelled' p29439 aS'disembowelled' p29440 asS'cascade' p29441 (lp29442 S'cascades' p29443 aS'cascading' p29444 aS'cascaded' p29445 aS'cascaded' p29446 asS'absquatulate' p29447 (lp29448 S'absquatulates' p29449 aS'absquatulating' p29450 aS'absquatulated' p29451 aS'absquatulated' p29452 asS'jail' p29453 (lp29454 S'jails' p29455 aS'jailing' p29456 aS'jailed' p29457 aS'jailed' p29458 asS'deposit' p29459 (lp29460 S'deposits' p29461 aS'depositing' p29462 aS'deposited' p29463 aS'deposited' p29464 asS'crossfertilize' p29465 (lp29466 S'crossfertilizes' p29467 aS'crossfertilizing' p29468 aS'crossfertilized' p29469 aS'crossfertilized' p29470 asS'unleash' p29471 (lp29472 S'unleashes' p29473 aS'unleashing' p29474 aS'unleashed' p29475 aS'unleashed' p29476 asS'tawse' p29477 (lp29478 S'tawses' p29479 aS'tawsing' p29480 aS'tawsed' p29481 aS'tawsed' p29482 asS'bungle' p29483 (lp29484 S'bungles' p29485 aS'bungling' p29486 aS'bungled' p29487 aS'bungled' p29488 asS'gesture' p29489 (lp29490 S'gestures' p29491 aS'gesturing' p29492 aS'gestured' p29493 aS'gestured' p29494 asS'uncork' p29495 (lp29496 S'uncorks' p29497 aS'uncorking' p29498 aS'uncorked' p29499 aS'uncorked' p29500 asS'shop-lift' p29501 (lp29502 S'shop-lifts' p29503 aS'shop-lifting' p29504 aS'shop-lifted' p29505 aS'shop-lifted' p29506 asS'shield' p29507 (lp29508 S'shields' p29509 aS'shielding' p29510 aS'shielded' p29511 aS'shielded' p29512 asS're-sign' p29513 (lp29514 S're-signs' p29515 aS're-signing' p29516 aS're-signed' p29517 aS're-signed' p29518 asS'clubhaul' p29519 (lp29520 S'clubhauls' p29521 aS'clubhauling' p29522 aS'clubhauled' p29523 aS'clubhauled' p29524 asS'recoup' p29525 (lp29526 S'recoups' p29527 aS'recouping' p29528 aS'recouped' p29529 aS'recouped' p29530 asS'terrace' p29531 (lp29532 S'terraces' p29533 aS'terracing' p29534 aS'terraced' p29535 aS'terraced' p29536 asS'pitch' p29537 (lp29538 S'pitches' p29539 aS'pitching' p29540 aS'pitched' p29541 aS'pitched' p29542 asS'incapsulate' p29543 (lp29544 S'incapsulates' p29545 aS'incapsulating' p29546 aS'incapsulated' p29547 aS'incapsulated' p29548 asS'equip' p29549 (lp29550 S'equips' p29551 aS'equipping' p29552 aS'equipped' p29553 aS'equipped' p29554 asS'grout' p29555 (lp29556 S'grouts' p29557 aS'grouting' p29558 aS'grouted' p29559 aS'grouted' p29560 asS'outbrave' p29561 (lp29562 S'outbraves' p29563 aS'outbraving' p29564 aS'outbraved' p29565 aS'outbraved' p29566 asS'group' p29567 (lp29568 S'groups' p29569 aS'grouping' p29570 aS'grouped' p29571 aS'grouped' p29572 asS'monitor' p29573 (lp29574 S'monitors' p29575 aS'monitoring' p29576 aS'monitored' p29577 aS'monitored' p29578 asS'hyphenate' p29579 (lp29580 S'hyphenates' p29581 aS'hyphening' p29582 aS'hyphened' p29583 aS'hyphened' p29584 asS'tellurize' p29585 (lp29586 S'tellurizes' p29587 aS'tellurizing' p29588 aS'tellurized' p29589 aS'tellurized' p29590 asS'maim' p29591 (lp29592 S'maims' p29593 aS'maiming' p29594 aS'maimed' p29595 aS'maimed' p29596 asS'mail' p29597 (lp29598 S'mails' p29599 aS'mailing' p29600 aS'mailed' p29601 aS'mailed' p29602 asS'enfeoff' p29603 (lp29604 S'enfeoffs' p29605 aS'enfeoffing' p29606 aS'enfeoffed' p29607 aS'enfeoffed' p29608 asS'mollycoddle' p29609 (lp29610 S'mollycoddles' p29611 aS'mollycoddling' p29612 aS'mollycoddled' p29613 aS'mollycoddled' p29614 asS'finance' p29615 (lp29616 S'finances' p29617 aS'financing' p29618 aS'financed' p29619 aS'financed' p29620 asS'shatter' p29621 (lp29622 S'shatters' p29623 aS'shattering' p29624 aS'shattered' p29625 aS'shattered' p29626 asS'emplane' p29627 (lp29628 S'emplanes' p29629 aS'emplaning' p29630 aS'emplaned' p29631 aS'emplaned' p29632 asS'tucker' p29633 (lp29634 S'tuckers' p29635 aS'tuckering' p29636 aS'tuckered' p29637 aS'tuckered' p29638 asS'lunch' p29639 (lp29640 S'lunches' p29641 aS'lunching' p29642 aS'lunched' p29643 aS'lunched' p29644 asS'titillate' p29645 (lp29646 S'titillates' p29647 aS'titillating' p29648 aS'titillated' p29649 aS'titillated' p29650 asS'bullshit' p29651 (lp29652 S'bullshits' p29653 aS'bullshitting' p29654 aS'bullshitted' p29655 aS'bullshitted' p29656 asS'possess' p29657 (lp29658 S'possesses' p29659 aS'possessing' p29660 aS'possessed' p29661 aS'possessed' p29662 asS'outweigh' p29663 (lp29664 S'outweighs' p29665 aS'outweighing' p29666 aS'outweighed' p29667 aS'outweighed' p29668 asS'fudge' p29669 (lp29670 S'fudges' p29671 aS'fudging' p29672 aS'fudged' p29673 aS'fudged' p29674 asS'promulgate' p29675 (lp29676 S'promulgates' p29677 aS'promulgating' p29678 aS'promulgated' p29679 aS'promulgated' p29680 asS'gamble' p29681 (lp29682 S'gambles' p29683 aS'gambling' p29684 aS'gambled' p29685 aS'gambled' p29686 asS'rock' p29687 (lp29688 S'rocks' p29689 aS'rocking' p29690 aS'rocked' p29691 aS'rocked' p29692 asS'hijack' p29693 (lp29694 S'hijacks' p29695 aS'hijacking' p29696 aS'hijacked' p29697 aS'hijacked' p29698 asS'redraw' p29699 (lp29700 S'redraws' p29701 aS'redrawing' p29702 aS'redrawed' p29703 aS'redrawed' p29704 asS'precancel' p29705 (lp29706 S'precancels' p29707 aS'precancelling' p29708 aS'precancelled' p29709 aS'precancelled' p29710 asS'surfeit' p29711 (lp29712 S'surfeits' p29713 aS'surfeiting' p29714 aS'surfeited' p29715 aS'surfeited' p29716 asS'gird' p29717 (lp29718 S'girds' p29719 aS'girding' p29720 aS'girt' p29721 aS'girt' p29722 asS'unclasp' p29723 (lp29724 S'unclasps' p29725 aS'unclasping' p29726 aS'unclasped' p29727 aS'unclasped' p29728 asS'batfowl' p29729 (lp29730 S'batfowls' p29731 aS'batfowling' p29732 aS'batfowled' p29733 aS'batfowled' p29734 asS'despumate' p29735 (lp29736 S'despumates' p29737 aS'despumating' p29738 aS'despumated' p29739 aS'despumated' p29740 asS'relive' p29741 (lp29742 S'relives' p29743 aS'reliving' p29744 aS'relived' p29745 aS'relived' p29746 asS'stitch' p29747 (lp29748 S'stitches' p29749 aS'stitching' p29750 aS'stitched' p29751 aS'stitched' p29752 asS'undulate' p29753 (lp29754 S'undulates' p29755 aS'undulating' p29756 aS'undulated' p29757 aS'undulated' p29758 asS'bitch' p29759 (lp29760 S'bitches' p29761 aS'bitching' p29762 aS'bitched' p29763 aS'bitched' p29764 asS'unlimber' p29765 (lp29766 S'unlimbers' p29767 aS'unlimbering' p29768 aS'unlimbered' p29769 aS'unlimbered' p29770 asS'blubber' p29771 (lp29772 S'blubbers' p29773 aS'blubbering' p29774 aS'blubbered' p29775 aS'blubbered' p29776 asS'dominate' p29777 (lp29778 S'dominates' p29779 aS'dominating' p29780 aS'dominated' p29781 aS'dominated' p29782 asS'correct' p29783 (lp29784 S'corrects' p29785 aS'correcting' p29786 aS'corrected' p29787 aS'corrected' p29788 asS'ammoniate' p29789 (lp29790 S'ammoniates' p29791 aS'ammoniating' p29792 aS'ammoniated' p29793 aS'ammoniated' p29794 asS'smatter' p29795 (lp29796 S'smatters' p29797 aS'smattering' p29798 aS'smattered' p29799 aS'smattered' p29800 asS'smudge' p29801 (lp29802 S'smudges' p29803 aS'smudging' p29804 aS'smudged' p29805 aS'smudged' p29806 asS'previse' p29807 (lp29808 S'previses' p29809 aS'prevising' p29810 aS'prevised' p29811 aS'prevised' p29812 asS'spiel' p29813 (lp29814 S'spiels' p29815 aS'spieling' p29816 aS'spieled' p29817 aS'spieled' p29818 asS'keypunch' p29819 (lp29820 S'keypunches' p29821 aS'keypunching' p29822 aS'keypunched' p29823 aS'keypunched' p29824 asS'baptize' p29825 (lp29826 S'baptizes' p29827 aS'baptizing' p29828 aS'baptized' p29829 aS'baptized' p29830 asS'fluidize' p29831 (lp29832 S'fluidizes' p29833 aS'fluidizing' p29834 aS'fluidized' p29835 aS'fluidized' p29836 asS'uncover' p29837 (lp29838 S'uncovers' p29839 aS'uncovering' p29840 aS'uncovered' p29841 aS'uncovered' p29842 asS'jaywalk' p29843 (lp29844 S'jaywalks' p29845 ag14810 ag14811 aS'jaywalked' p29846 asS'cough' p29847 (lp29848 S'coughs' p29849 aS'coughing' p29850 aS'coughed' p29851 aS'coughed' p29852 asS'orb' p29853 (lp29854 S'orbs' p29855 aS'orbing' p29856 aS'orbed' p29857 aS'orbed' p29858 asS'advance' p29859 (lp29860 S'advances' p29861 aS'advancing' p29862 aS'advanced' p29863 aS'advanced' p29864 asS'pollard' p29865 (lp29866 S'pollards' p29867 aS'pollarding' p29868 aS'pollarded' p29869 aS'pollarded' p29870 asS'corrugate' p29871 (lp29872 S'corrugates' p29873 aS'corrugating' p29874 aS'corrugated' p29875 aS'corrugated' p29876 asS'think' p29877 (lp29878 S'thinks' p29879 aS'thinking' p29880 aS'thought' p29881 aS'thought' p29882 asS'frequent' p29883 (lp29884 S'frequents' p29885 aS'frequenting' p29886 aS'frequented' p29887 aS'frequented' p29888 asS'cheese' p29889 (lp29890 S'cheesing' p29891 aS'cheesed' p29892 aS'cheesed' p29893 asS'commercialize' p29894 (lp29895 S'commercializes' p29896 aS'commercializing' p29897 aS'commercialized' p29898 aS'commercialized' p29899 asS'crib' p29900 (lp29901 S'cribs' p29902 aS'cribbing' p29903 aS'cribbed' p29904 aS'cribbed' p29905 asS'disburse' p29906 (lp29907 S'disburses' p29908 aS'disbursing' p29909 aS'disbursed' p29910 aS'disbursed' p29911 asS'long' p29912 (lp29913 S'longs' p29914 aS'longing' p29915 aS'longed' p29916 aS'longed' p29917 asS'carry' p29918 (lp29919 S'carries' p29920 aS'carrying' p29921 aS'carried' p29922 aS'carried' p29923 asS'cloture' p29924 (lp29925 S'clotures' p29926 aS'cloturing' p29927 aS'clotured' p29928 aS'clotured' p29929 asS'basify' p29930 (lp29931 S'basifies' p29932 aS'basifying' p29933 aS'basified' p29934 aS'basified' p29935 asS'interchange' p29936 (lp29937 S'interchanges' p29938 aS'interchanging' p29939 aS'interchanged' p29940 aS'interchanged' p29941 asS'lap' p29942 (lp29943 S'laps' p29944 aS'lapping' p29945 aS'lapped' p29946 aS'lapped' p29947 asS'lambaste' p29948 (lp29949 S'lambasts' p29950 aS'lambasting' p29951 aS'lambasted' p29952 aS'lambasted' p29953 asS'escort' p29954 (lp29955 S'escorts' p29956 aS'escorting' p29957 aS'escorted' p29958 aS'escorted' p29959 asS'artificialize' p29960 (lp29961 S'artificializes' p29962 aS'artificializing' p29963 aS'artificialized' p29964 aS'artificialized' p29965 asS'daunt' p29966 (lp29967 S'daunts' p29968 aS'daunting' p29969 aS'daunted' p29970 aS'daunted' p29971 asS'repatriate' p29972 (lp29973 S'repatriates' p29974 aS'repatriating' p29975 aS'repatriated' p29976 aS'repatriated' p29977 asS'broadcast' p29978 (lp29979 S'broadcasts' p29980 aS'broadcasting' p29981 aS'broadcasted' p29982 aS'broadcasted' p29983 asS'interdict' p29984 (lp29985 S'interdicts' p29986 aS'interdicting' p29987 aS'interdicted' p29988 aS'interdicted' p29989 asS'butt' p29990 (lp29991 S'butts' p29992 aS'butting' p29993 aS'butted' p29994 aS'butted' p29995 asS'blackguard' p29996 (lp29997 S'blackguards' p29998 aS'blackguarding' p29999 aS'blackguarded' p30000 aS'blackguarded' p30001 asS'hemstitch' p30002 (lp30003 S'hemstitches' p30004 aS'hemstitching' p30005 aS'hemstitched' p30006 aS'hemstitched' p30007 asS'infiltrate' p30008 (lp30009 S'infiltrates' p30010 aS'infiltrating' p30011 aS'infiltrated' p30012 aS'infiltrated' p30013 asS'deafen' p30014 (lp30015 S'deafens' p30016 aS'deafening' p30017 aS'deafened' p30018 aS'deafened' p30019 asS'graphitize' p30020 (lp30021 S'graphitizes' p30022 aS'graphitizing' p30023 aS'graphitized' p30024 aS'graphitized' p30025 asS'gotta' p30026 (lp30027 S'gotta' p30028 asS'underprice' p30029 (lp30030 S'underprices' p30031 aS'underpricing' p30032 aS'underpriced' p30033 aS'underpriced' p30034 asS'venture' p30035 (lp30036 S'ventures' p30037 aS'venturing' p30038 aS'ventured' p30039 aS'ventured' p30040 asS'proofread' p30041 (lp30042 sS'lullaby' p30043 (lp30044 S'lullabies' p30045 aS'lullabying' p30046 aS'lullabied' p30047 aS'lullabied' p30048 asS'lick' p30049 (lp30050 S'licks' p30051 aS'licking' p30052 aS'licked' p30053 aS'licked' p30054 asS'capsize' p30055 (lp30056 S'capsizes' p30057 aS'capsizing' p30058 aS'capsized' p30059 aS'capsized' p30060 asS'stereochrome' p30061 (lp30062 S'stereochromes' p30063 aS'stereochroming' p30064 aS'stereochromed' p30065 aS'stereochromed' p30066 asS'tantalize' p30067 (lp30068 S'tantalizes' p30069 aS'tantalizing' p30070 aS'tantalized' p30071 aS'tantalized' p30072 asS'overexert' p30073 (lp30074 S'overexerts' p30075 aS'overexerting' p30076 aS'overexerted' p30077 aS'overexerted' p30078 asS'seal' p30079 (lp30080 S'seals' p30081 aS'sealing' p30082 aS'sealed' p30083 aS'sealed' p30084 asS'dash' p30085 (lp30086 S'dashes' p30087 aS'dashing' p30088 aS'dashed' p30089 aS'dashed' p30090 asS'sulk' p30091 (lp30092 S'sulks' p30093 aS'sulking' p30094 aS'sulked' p30095 aS'sulked' p30096 asS'mechanize' p30097 (lp30098 S'mechanizes' p30099 aS'mechanizing' p30100 aS'mechanized' p30101 aS'mechanized' p30102 asS'calendar' p30103 (lp30104 S'calendars' p30105 aS'calendaring' p30106 aS'calendared' p30107 aS'calendared' p30108 asS'squat' p30109 (lp30110 S'squats' p30111 aS'squatting' p30112 aS'squatted' p30113 aS'squatted' p30114 asS'isolate' p30115 (lp30116 S'isolates' p30117 aS'isolating' p30118 aS'isolated' p30119 aS'isolated' p30120 asS'clunk' p30121 (lp30122 S'clunks' p30123 aS'clunking' p30124 aS'clunked' p30125 aS'clunked' p30126 asS'canton' p30127 (lp30128 S'cantons' p30129 aS'cantoning' p30130 aS'cantoned' p30131 aS'cantoned' p30132 asS'channel' p30133 (lp30134 S'channels' p30135 aS'channelling' p30136 aS'channelled' p30137 aS'channelled' p30138 asS'pain' p30139 (lp30140 S'pains' p30141 aS'paining' p30142 aS'pained' p30143 aS'pained' p30144 asS'trace' p30145 (lp30146 S'traces' p30147 aS'tracing' p30148 aS'traced' p30149 aS'traced' p30150 asS'roster' p30151 (lp30152 S'rosters' p30153 aS'rostering' p30154 aS'rostered' p30155 aS'rostered' p30156 asS'track' p30157 (lp30158 S'tracks' p30159 aS'tracking' p30160 aS'tracked' p30161 aS'tracked' p30162 asS'baize' p30163 (lp30164 S'baizes' p30165 aS'baizing' p30166 aS'baized' p30167 aS'baized' p30168 asS'zigzag' p30169 (lp30170 S'zigzags' p30171 aS'zigzagging' p30172 aS'zigzagged' p30173 aS'zigzagged' p30174 asS'whizz' p30175 (lp30176 S'whizzes' p30177 aS'whizzing' p30178 aS'whizzed' p30179 aS'whizzed' p30180 asS'assault' p30181 (lp30182 S'assaults' p30183 aS'assaulting' p30184 aS'assaulted' p30185 aS'assaulted' p30186 asS'barrage' p30187 (lp30188 S'barrages' p30189 aS'barraging' p30190 aS'barraged' p30191 aS'barraged' p30192 asS'inspirit' p30193 (lp30194 S'inspirits' p30195 aS'inspiriting' p30196 aS'inspirited' p30197 aS'inspirited' p30198 asS'pair' p30199 (lp30200 S'pairs' p30201 aS'pairing' p30202 aS'paired' p30203 aS'paired' p30204 asS'marginate' p30205 (lp30206 S'marginates' p30207 aS'marginating' p30208 aS'marginated' p30209 aS'marginated' p30210 asS'typeset' p30211 (lp30212 S'typesets' p30213 aS'typesetting' p30214 aS'typeset' p30215 aS'typeset' p30216 asS'scowl' p30217 (lp30218 S'scowls' p30219 aS'scowling' p30220 aS'scowled' p30221 aS'scowled' p30222 asS'voodoo' p30223 (lp30224 S'voodoos' p30225 aS'voodooing' p30226 aS'voodooed' p30227 aS'voodooed' p30228 asS'reed' p30229 (lp30230 S'reeds' p30231 aS'reeding' p30232 aS'reeded' p30233 aS'reeded' p30234 asS'unstep' p30235 (lp30236 S'unsteps' p30237 aS'unstepping' p30238 aS'unstepped' p30239 aS'unstepped' p30240 asS'shop' p30241 (lp30242 S'shops' p30243 aS'shopping' p30244 aS'shopped' p30245 aS'shopped' p30246 asS'shot' p30247 (lp30248 S'shot' p30249 aS'shot' p30250 asS'show' p30251 (lp30252 S'shows' p30253 aS'showing' p30254 aS'showed' p30255 aS'shown' p30256 asS'wetnurse' p30257 (lp30258 S'wetnurses' p30259 aS'wetnursing' p30260 aS'wetnursed' p30261 aS'wetnursed' p30262 asS'Prussianize' p30263 (lp30264 S'Prussianizes' p30265 aS'Prussianizing' p30266 aS'Prussianized' p30267 aS'Prussianized' p30268 asS'accession' p30269 (lp30270 S'accessions' p30271 aS'accessioning' p30272 aS'accessioned' p30273 aS'accessioned' p30274 asS'elevate' p30275 (lp30276 S'elevates' p30277 aS'elevating' p30278 aS'elevated' p30279 aS'elevated' p30280 asS'revest' p30281 (lp30282 S'revests' p30283 aS'revesting' p30284 aS'revested' p30285 aS'revested' p30286 asS'premonish' p30287 (lp30288 S'premonishes' p30289 aS'premonishing' p30290 aS'premonished' p30291 aS'premonished' p30292 asS'shoe' p30293 (lp30294 S'shoes' p30295 aS'shoeing' p30296 aS'shod' p30297 aS'shod' p30298 asS'disunite' p30299 (lp30300 S'disunites' p30301 aS'disuniting' p30302 aS'disunited' p30303 aS'disunited' p30304 asS'estop' p30305 (lp30306 S'estops' p30307 aS'estopping' p30308 aS'estopped' p30309 aS'estopped' p30310 asS'corner' p30311 (lp30312 S'corners' p30313 aS'cornering' p30314 aS'cornered' p30315 aS'cornered' p30316 asS'forecast' p30317 (lp30318 S'forecasts' p30319 aS'forecasting' p30320 aS'forecasted' p30321 aS'forecasted' p30322 asS'shoo' p30323 (lp30324 S'shoos' p30325 aS'shooing' p30326 aS'shooed' p30327 aS'shooed' p30328 asS'fend' p30329 (lp30330 S'fends' p30331 aS'fending' p30332 aS'fended' p30333 aS'fended' p30334 asS'dice' p30335 (lp30336 S'dices' p30337 aS'dicing' p30338 aS'diced' p30339 aS'diced' p30340 asS'plume' p30341 (lp30342 S'plumes' p30343 aS'pluming' p30344 aS'plumed' p30345 aS'plumed' p30346 asS'machinate' p30347 (lp30348 S'machinates' p30349 aS'machinating' p30350 aS'machinated' p30351 aS'machinated' p30352 asS'plumb' p30353 (lp30354 S'plumbs' p30355 aS'plumbing' p30356 aS'plumbed' p30357 aS'plumbed' p30358 asS'syphon' p30359 (lp30360 S'syphons' p30361 aS'syphoning' p30362 aS'syphoned' p30363 aS'syphoned' p30364 asS're-create' p30365 (lp30366 S're-creates' p30367 aS're-creating' p30368 ag9066 aS're-created' p30369 asS'manoeuvre' p30370 (lp30371 S'manoeuvres' p30372 aS'manoeuvring' p30373 aS'manoeuvred' p30374 aS'manoeuvred' p30375 asS'mistranslate' p30376 (lp30377 S'mistranslates' p30378 aS'mistranslating' p30379 aS'mistranslated' p30380 aS'mistranslated' p30381 asS'travesty' p30382 (lp30383 S'travesties' p30384 aS'travestying' p30385 aS'travestied' p30386 aS'travestied' p30387 asS'softpedal' p30388 (lp30389 S'softpedals' p30390 aS'softpedalling' p30391 aS'softpedalled' p30392 aS'softpedalled' p30393 asS'plump' p30394 (lp30395 S'plumps' p30396 aS'plumping' p30397 aS'plumped' p30398 aS'plumped' p30399 asS'dulcify' p30400 (lp30401 S'dulcifies' p30402 aS'dulcifying' p30403 aS'dulcified' p30404 aS'dulcified' p30405 asS'esterify' p30406 (lp30407 S'esterifies' p30408 aS'esterifying' p30409 aS'esterified' p30410 aS'esterified' p30411 asS'get' p30412 (lp30413 S'gets' p30414 aS'getting' p30415 aS'got' p30416 aS'gotten' p30417 asS'stomp' p30418 (lp30419 S'stomps' p30420 aS'stomping' p30421 aS'stomped' p30422 aS'stomped' p30423 asS'grubstake' p30424 (lp30425 S'grubstakes' p30426 aS'grubstaking' p30427 aS'grubstaked' p30428 aS'grubstaked' p30429 asS'gee' p30430 (lp30431 S'gees' p30432 aS'geing' p30433 aS'geed' p30434 aS'geed' p30435 asS'replevy' p30436 (lp30437 S'replevies' p30438 aS'replevying' p30439 aS'replevied' p30440 aS'replevied' p30441 asS'wheeze' p30442 (lp30443 S'wheezes' p30444 aS'wheezing' p30445 aS'wheezed' p30446 aS'wheezed' p30447 asS'gibber' p30448 (lp30449 S'gibbers' p30450 aS'gibbering' p30451 aS'gibbered' p30452 aS'gibbered' p30453 asS'gibbet' p30454 (lp30455 S'gibbets' p30456 aS'gibbeting' p30457 aS'gibbeted' p30458 aS'gibbeted' p30459 asS'gem' p30460 (lp30461 S'gems' p30462 aS'gemming' p30463 aS'gemmed' p30464 aS'gemmed' p30465 asS'disinherit' p30466 (lp30467 S'disinherits' p30468 aS'disinheriting' p30469 aS'disinherited' p30470 aS'disinherited' p30471 asS'beseech' p30472 (lp30473 S'beseeches' p30474 aS'beseeching' p30475 aS'besought' p30476 aS'besought' p30477 asS'harbinger' p30478 (lp30479 S'harbingers' p30480 aS'harbingering' p30481 aS'harbingered' p30482 aS'harbingered' p30483 asS'yield' p30484 (lp30485 S'yields' p30486 aS'yielding' p30487 aS'yielded' p30488 aS'yielded' p30489 asS'overmatch' p30490 (lp30491 S'overmatches' p30492 aS'overmatching' p30493 aS'overmatched' p30494 aS'overmatched' p30495 asS'gammon' p30496 (lp30497 S'gammons' p30498 aS'gammoning' p30499 aS'gammoned' p30500 aS'gammoned' p30501 asS'tallow' p30502 (lp30503 S'tallows' p30504 aS'tallowing' p30505 aS'tallowed' p30506 aS'tallowed' p30507 asS'consubstantiate' p30508 (lp30509 S'consubstantiates' p30510 aS'consubstantiating' p30511 aS'consubstantiated' p30512 aS'consubstantiated' p30513 asS'kernel' p30514 (lp30515 S'kernels' p30516 aS'kernelling' p30517 aS'kernelled' p30518 aS'kernelled' p30519 asS'fixate' p30520 (lp30521 S'fixates' p30522 aS'fixating' p30523 aS'fixated' p30524 aS'fixated' p30525 asS'seat' p30526 (lp30527 S'seats' p30528 aS'seating' p30529 aS'seated' p30530 aS'seated' p30531 asS'seam' p30532 (lp30533 S'seams' p30534 aS'seaming' p30535 aS'seamed' p30536 aS'seamed' p30537 asS'misconduct' p30538 (lp30539 S'misconducts' p30540 aS'misconducting' p30541 aS'misconducted' p30542 aS'misconducted' p30543 asS'pebble' p30544 (lp30545 S'pebbles' p30546 aS'pebbling' p30547 aS'pebbled' p30548 aS'pebbled' p30549 asS'adjudge' p30550 (lp30551 S'adjudges' p30552 aS'adjudging' p30553 aS'adjudged' p30554 aS'adjudged' p30555 asS'wonder' p30556 (lp30557 S'wonders' p30558 aS'wondering' p30559 aS'wondered' p30560 aS'wondered' p30561 asS'limber' p30562 (lp30563 S'limbers' p30564 aS'limbering' p30565 aS'limbered' p30566 aS'limbered' p30567 asS'ornament' p30568 (lp30569 S'ornaments' p30570 aS'ornamenting' p30571 aS'ornamented' p30572 aS'ornamented' p30573 asS'ideate' p30574 (lp30575 S'ideates' p30576 aS'ideating' p30577 aS'ideated' p30578 aS'ideated' p30579 asS'label' p30580 (lp30581 S'labels' p30582 aS'labelling' p30583 aS'labelled' p30584 aS'labelled' p30585 asS'pump' p30586 (lp30587 S'pumps' p30588 aS'pumping' p30589 aS'pumped' p30590 aS'pumped' p30591 asS'satiate' p30592 (lp30593 S'satiates' p30594 aS'satiating' p30595 aS'satiated' p30596 aS'satiated' p30597 asS'tup' p30598 (lp30599 S'tups' p30600 aS'tupping' p30601 aS'tupped' p30602 aS'tupped' p30603 asS'tut' p30604 (lp30605 S'tuts' p30606 aS'tutting' p30607 aS'tutted' p30608 aS'tutted' p30609 asS'countenance' p30610 (lp30611 S'countenances' p30612 aS'countenancing' p30613 aS'countenanced' p30614 aS'countenanced' p30615 asS'tun' p30616 (lp30617 S'tuns' p30618 aS'tunning' p30619 aS'tunned' p30620 aS'tunned' p30621 asS'tub' p30622 (lp30623 S'tubs' p30624 aS'tubbing' p30625 aS'tubbed' p30626 aS'tubbed' p30627 asS'tug' p30628 (lp30629 S'tugs' p30630 aS'tugging' p30631 aS'tugged' p30632 aS'tugged' p30633 asS'librate' p30634 (lp30635 S'librates' p30636 aS'librating' p30637 aS'librated' p30638 aS'librated' p30639 asS'tonsure' p30640 (lp30641 S'tonsures' p30642 aS'tonsuring' p30643 aS'tonsured' p30644 aS'tonsured' p30645 asS'hoke' p30646 (lp30647 S'hokes' p30648 aS'hoking' p30649 aS'hoked' p30650 aS'hoked' p30651 asS'fulminate' p30652 (lp30653 S'fulminates' p30654 aS'fulminating' p30655 aS'fulminated' p30656 aS'fulminated' p30657 asS'dedicate' p30658 (lp30659 S'dedicates' p30660 aS'dedicating' p30661 aS'dedicated' p30662 aS'dedicated' p30663 asS'crosspollinate' p30664 (lp30665 S'crosspollinates' p30666 aS'crosspollinating' p30667 aS'crosspollinated' p30668 aS'crosspollinated' p30669 asS'tour' p30670 (lp30671 S'tours' p30672 aS'touring' p30673 aS'toured' p30674 aS'toured' p30675 asS'tout' p30676 (lp30677 S'touts' p30678 aS'touting' p30679 aS'touted' p30680 aS'touted' p30681 asS'remake' p30682 (lp30683 S'remakes' p30684 aS'remaking' p30685 aS'remade' p30686 aS'remade' p30687 asS'valorize' p30688 (lp30689 S'valorizes' p30690 aS'valorizing' p30691 aS'valorized' p30692 aS'valorized' p30693 asS'shikar' p30694 (lp30695 S'shikars' p30696 aS'shikarring' p30697 aS'shikarred' p30698 aS'shikarred' p30699 asS'spank' p30700 (lp30701 S'spanks' p30702 aS'spanking' p30703 aS'spanked' p30704 aS'spanked' p30705 asS'uncouple' p30706 (lp30707 S'uncouples' p30708 aS'uncoupling' p30709 aS'uncoupled' p30710 aS'uncoupled' p30711 asS'cancel' p30712 (lp30713 S'cancels' p30714 aS'cancelling' p30715 aS'cancelled' p30716 aS'cancelled' p30717 asS'undock' p30718 (lp30719 S'undocks' p30720 aS'undocking' p30721 aS'undocked' p30722 aS'undocked' p30723 asS'tinkle' p30724 (lp30725 S'tinkles' p30726 aS'tinkling' p30727 aS'tinkled' p30728 aS'tinkled' p30729 asS'sned' p30730 (lp30731 S'sneds' p30732 aS'snedding' p30733 aS'snedded' p30734 aS'snedded' p30735 asS'intrude' p30736 (lp30737 S'intrudes' p30738 aS'intruding' p30739 aS'intruded' p30740 aS'intruded' p30741 asS'caricature' p30742 (lp30743 S'caricatures' p30744 aS'caricaturing' p30745 aS'caricatured' p30746 aS'caricatured' p30747 asS'tramp' p30748 (lp30749 S'tramps' p30750 aS'tramping' p30751 aS'tramped' p30752 aS'tramped' p30753 asS'marl' p30754 (lp30755 S'marls' p30756 aS'marling' p30757 aS'marled' p30758 aS'marled' p30759 asS'wobble' p30760 (lp30761 S'wobbles' p30762 aS'wobbling' p30763 aS'wobbled' p30764 aS'wobbled' p30765 asS'certify' p30766 (lp30767 S'certifies' p30768 aS'certifying' p30769 aS'certified' p30770 aS'certified' p30771 asS'mark' p30772 (lp30773 S'marks' p30774 aS'marking' p30775 aS'marked' p30776 aS'marked' p30777 asS'understate' p30778 (lp30779 S'understates' p30780 aS'understating' p30781 aS'understated' p30782 aS'understated' p30783 asS'sentinel' p30784 (lp30785 S'sentinels' p30786 aS'sentineling' p30787 aS'sentineled' p30788 aS'sentineled' p30789 asS'clepe' p30790 (lp30791 S'clepes' p30792 aS'cleping' p30793 aS'yclept' p30794 aS'yclept' p30795 asS'squash' p30796 (lp30797 S'squashes' p30798 aS'squashing' p30799 aS'squashed' p30800 aS'squashed' p30801 asS'disesteem' p30802 (lp30803 S'disesteems' p30804 aS'disesteeming' p30805 aS'disesteemed' p30806 aS'disesteemed' p30807 asS'deconsecrate' p30808 (lp30809 S'deconsecrates' p30810 aS'deconsecrating' p30811 aS'deconsecrated' p30812 aS'deconsecrated' p30813 asS'wake' p30814 (lp30815 S'wakes' p30816 aS'waking' p30817 aS'woke' p30818 aS'woken' p30819 asS'overdose' p30820 (lp30821 S'overdoses' p30822 aS'overdosing' p30823 aS'overdosed' p30824 aS'overdosed' p30825 asS'sound' p30826 (lp30827 S'sounds' p30828 aS'sounding' p30829 aS'sounded' p30830 aS'sounded' p30831 asS'gloze' p30832 (lp30833 S'glozes' p30834 aS'glozing' p30835 aS'glozed' p30836 aS'glozed' p30837 asS'master-mind' p30838 (lp30839 S'master-minds' p30840 aS'master-minding' p30841 ag12588 aS'master-minded' p30842 asS'invigorate' p30843 (lp30844 S'invigorates' p30845 aS'invigorating' p30846 aS'invigorated' p30847 aS'invigorated' p30848 asS'slumber' p30849 (lp30850 S'slumbers' p30851 aS'slumbering' p30852 aS'slumbered' p30853 aS'slumbered' p30854 asS'tuck' p30855 (lp30856 S'tucks' p30857 aS'tucking' p30858 aS'tucked' p30859 aS'tucked' p30860 asS'cannonade' p30861 (lp30862 S'cannonades' p30863 aS'cannonading' p30864 aS'cannonaded' p30865 aS'cannonaded' p30866 asS'compile' p30867 (lp30868 S'compiles' p30869 aS'compiling' p30870 aS'compiled' p30871 aS'compiled' p30872 asS'cock' p30873 (lp30874 S'cocks' p30875 aS'cocking' p30876 aS'cocked' p30877 aS'cocked' p30878 asS'huckster' p30879 (lp30880 S'hucksters' p30881 aS'huckstering' p30882 aS'huckstered' p30883 aS'huckstered' p30884 asS'bathe' p30885 (lp30886 S'bathes' p30887 aS'bathing' p30888 aS'bathed' p30889 aS'bathed' p30890 asS'hedge-hop' p30891 (lp30892 S'hedge-hops' p30893 aS'hedgehopping' p30894 aS'hedgehopped' p30895 aS'hedge-hopped' p30896 asS'marcel' p30897 (lp30898 S'marcels' p30899 aS'marcelling' p30900 aS'marcelled' p30901 aS'marcelled' p30902 asS'middle' p30903 (lp30904 S'middles' p30905 aS'middling' p30906 aS'middled' p30907 aS'middled' p30908 asS'idolatrize' p30909 (lp30910 S'idolatrizes' p30911 aS'idolatrizing' p30912 aS'idolatrized' p30913 aS'idolatrized' p30914 asS'pat' p30915 (lp30916 S'pats' p30917 aS'patting' p30918 aS'patted' p30919 aS'patted' p30920 asS'doctor' p30921 (lp30922 S'doctors' p30923 aS'doctoring' p30924 aS'doctored' p30925 aS'doctored' p30926 asS'pay' p30927 (lp30928 S'pays' p30929 aS'paying' p30930 aS'payed' p30931 aS'payed' p30932 asS'lave' p30933 (lp30934 S'laves' p30935 aS'laving' p30936 aS'laved' p30937 aS'laved' p30938 asS'aboutface' p30939 (lp30940 S'aboutfaces' p30941 aS'aboutfacing' p30942 aS'aboutfaced' p30943 aS'aboutfaced' p30944 asS'pad' p30945 (lp30946 S'pads' p30947 aS'padding' p30948 aS'padded' p30949 aS'padded' p30950 asS'pal' p30951 (lp30952 S'pals' p30953 aS'palling' p30954 aS'palled' p30955 aS'palled' p30956 asS'pan' p30957 (lp30958 S'pans' p30959 aS'panning' p30960 aS'panned' p30961 aS'panned' p30962 asS'spring-clean' p30963 (lp30964 S'spring-cleans' p30965 aS'spring-cleaning' p30966 aS'spring-cleaned' p30967 aS'spring-cleaned' p30968 asS'exhaust' p30969 (lp30970 S'exhausts' p30971 aS'exhausting' p30972 aS'exhausted' p30973 aS'exhausted' p30974 asS'oil' p30975 (lp30976 S'oils' p30977 aS'oiling' p30978 aS'oiled' p30979 aS'oiled' p30980 asS'assist' p30981 (lp30982 S'assists' p30983 aS'assisting' p30984 aS'assisted' p30985 aS'assisted' p30986 asS'munch' p30987 (lp30988 S'munches' p30989 aS'munching' p30990 aS'munched' p30991 aS'munched' p30992 asS'cauterize' p30993 (lp30994 S'cauterizes' p30995 aS'cauterizing' p30996 aS'cauterized' p30997 aS'cauterized' p30998 asS'companion' p30999 (lp31000 S'companions' p31001 aS'companioning' p31002 aS'companioned' p31003 aS'companioned' p31004 asS'pressgang' p31005 (lp31006 S'pressgangs' p31007 aS'pressganging' p31008 aS'pressganged' p31009 aS'pressganged' p31010 asS'adjure' p31011 (lp31012 S'adjures' p31013 aS'adjuring' p31014 aS'adjured' p31015 aS'adjured' p31016 asS'weave' p31017 (lp31018 S'weaves' p31019 aS'weaving' p31020 aS'wove' p31021 aS'woven' p31022 asS'countermarch' p31023 (lp31024 S'countermarches' p31025 aS'countermarching' p31026 aS'countermarched' p31027 aS'countermarched' p31028 asS'drain' p31029 (lp31030 S'drains' p31031 aS'draining' p31032 aS'drained' p31033 aS'drained' p31034 asS'suffuse' p31035 (lp31036 S'suffuses' p31037 aS'suffusing' p31038 aS'suffused' p31039 aS'suffused' p31040 asS'strickle' p31041 (lp31042 S'strickles' p31043 aS'strickling' p31044 aS'strickled' p31045 aS'strickled' p31046 asS'solve' p31047 (lp31048 S'solves' p31049 aS'solving' p31050 aS'solved' p31051 aS'solved' p31052 asS'bottle' p31053 (lp31054 S'bottles' p31055 aS'bottling' p31056 aS'bottled' p31057 aS'bottled' p31058 asS'soundproof' p31059 (lp31060 S'soundproofs' p31061 aS'soundproofing' p31062 aS'soundproofed' p31063 aS'soundproofed' p31064 asS'windowshop' p31065 (lp31066 S'windowshops' p31067 aS'windowshopping' p31068 aS'windowshopped' p31069 aS'windowshopped' p31070 asS'parody' p31071 (lp31072 S'parodys' p31073 aS'parodying' p31074 aS'parodied' p31075 aS'parodied' p31076 asS'overprint' p31077 (lp31078 S'overprints' p31079 aS'overprinting' p31080 aS'overprinted' p31081 aS'overprinted' p31082 asS'fume' p31083 (lp31084 S'fumes' p31085 aS'fuming' p31086 aS'fumed' p31087 aS'fumed' p31088 asS'superinduce' p31089 (lp31090 S'superinduces' p31091 aS'superinducing' p31092 aS'superinduced' p31093 aS'superinduced' p31094 asS'imprint' p31095 (lp31096 S'imprints' p31097 aS'imprinting' p31098 aS'imprinted' p31099 aS'imprinted' p31100 asS'griddle' p31101 (lp31102 S'griddles' p31103 aS'griddling' p31104 aS'griddled' p31105 aS'griddled' p31106 asS'sinter' p31107 (lp31108 S'sinters' p31109 aS'sintering' p31110 aS'sintered' p31111 aS'sintered' p31112 asS'prill' p31113 (lp31114 S'prills' p31115 aS'prilling' p31116 aS'prilled' p31117 aS'prilled' p31118 asS'ski-jump' p31119 (lp31120 S'ski-jumps' p31121 aS'ski-jumping' p31122 aS'ski-jumped' p31123 aS'ski-jumped' p31124 asS'forgo' p31125 (lp31126 S'forgoes' p31127 aS'forgoing' p31128 aS'forwent' p31129 aS'forgone' p31130 asS'beagle' p31131 (lp31132 S'beagles' p31133 aS'beagling' p31134 aS'beagled' p31135 aS'beagled' p31136 asS'pile' p31137 (lp31138 S'piles' p31139 aS'piling' p31140 aS'piled' p31141 aS'piled' p31142 asS'decalcify' p31143 (lp31144 S'decalcifies' p31145 aS'decalcifying' p31146 aS'decalcified' p31147 aS'decalcified' p31148 asS'eviscerate' p31149 (lp31150 S'eviscerates' p31151 aS'eviscerating' p31152 aS'eviscerated' p31153 aS'eviscerated' p31154 asS'overpraise' p31155 (lp31156 S'overpraises' p31157 aS'overpraising' p31158 aS'overpraised' p31159 aS'overpraised' p31160 asS'pill' p31161 (lp31162 S'pills' p31163 aS'pilling' p31164 aS'pilled' p31165 aS'pilled' p31166 asS'grip' p31167 (lp31168 S'grips' p31169 aS'gripping' p31170 aS'gript' p31171 aS'gript' p31172 asS'zugzwang' p31173 (lp31174 S'zugzwangs' p31175 aS'zugzwanging' p31176 aS'zugzwanged' p31177 aS'zugzwanged' p31178 asS'grit' p31179 (lp31180 S'grits' p31181 aS'gritting' p31182 aS'gritted' p31183 aS'gritted' p31184 asS'mop' p31185 (lp31186 S'mops' p31187 aS'mopping' p31188 aS'mopped' p31189 aS'mopped' p31190 asS'mow' p31191 (lp31192 S'mows' p31193 aS'mowing' p31194 aS'mowed' p31195 aS'mown' p31196 asS'moo' p31197 (lp31198 S'moos' p31199 aS'mooing' p31200 aS'mooed' p31201 aS'mooed' p31202 asS'mob' p31203 (lp31204 S'mobs' p31205 aS'mobbing' p31206 aS'mobbed' p31207 aS'mobbed' p31208 asS'railroad' p31209 (lp31210 S'railroading' p31211 aS'railroaded' p31212 aS'railroaded' p31213 asS'implicate' p31214 (lp31215 S'implicates' p31216 aS'implicating' p31217 aS'implicated' p31218 aS'implicated' p31219 asS'grin' p31220 (lp31221 S'grins' p31222 aS'grinning' p31223 aS'grinned' p31224 aS'grinned' p31225 asS'militarize' p31226 (lp31227 S'militarizes' p31228 aS'militarizing' p31229 aS'militarized' p31230 aS'militarized' p31231 asS'first-foot' p31232 (lp31233 S'first-foots' p31234 aS'first-footing' p31235 aS'first-footed' p31236 aS'first-footed' p31237 asS'chamber' p31238 (lp31239 S'chambers' p31240 aS'chambering' p31241 aS'chambered' p31242 aS'chambered' p31243 asS'nose' p31244 (lp31245 S'noses' p31246 aS'nosing' p31247 aS'nosed' p31248 aS'nosed' p31249 asS'coldshoulder' p31250 (lp31251 S'coldshoulders' p31252 aS'coldshouldering' p31253 aS'coldshouldered' p31254 aS'coldshouldered' p31255 asS'nosh' p31256 (lp31257 S'noshes' p31258 aS'noshing' p31259 aS'noshed' p31260 aS'noshed' p31261 asS'overpitch' p31262 (lp31263 S'overpitches' p31264 aS'overpitching' p31265 aS'overpitched' p31266 aS'overpitched' p31267 asS'afflict' p31268 (lp31269 S'afflicts' p31270 aS'afflicting' p31271 aS'afflicted' p31272 aS'afflicted' p31273 asS're-press' p31274 (lp31275 S're-presses' p31276 aS're-pressing' p31277 aS'repressed' p31278 aS're-pressed' p31279 asS'commandeer' p31280 (lp31281 S'commandeers' p31282 aS'commandeering' p31283 aS'commandeered' p31284 aS'commandeered' p31285 asS'ascend' p31286 (lp31287 S'ascends' p31288 aS'ascending' p31289 aS'ascended' p31290 aS'ascended' p31291 asS'dole' p31292 (lp31293 S'doles' p31294 aS'doling' p31295 aS'doled' p31296 aS'doled' p31297 asS'impolder' p31298 (lp31299 S'impolders' p31300 aS'impoldering' p31301 aS'impoldered' p31302 aS'impoldered' p31303 asS'erase' p31304 (lp31305 S'erases' p31306 aS'erasing' p31307 aS'erased' p31308 aS'erased' p31309 asS'pasture' p31310 (lp31311 S'pastures' p31312 aS'pasturing' p31313 aS'pastured' p31314 aS'pastured' p31315 asS'gross' p31316 (lp31317 S'grosses' p31318 aS'grossing' p31319 aS'grossed' p31320 aS'grossed' p31321 asS'skelly' p31322 (lp31323 S'skellies' p31324 aS'skellying' p31325 aS'skellied' p31326 aS'skellied' p31327 asS'confirm' p31328 (lp31329 S'confirms' p31330 aS'confirming' p31331 aS'confirmed' p31332 aS'confirmed' p31333 asS'ruggedize' p31334 (lp31335 S'ruggedizes' p31336 aS'ruggedizing' p31337 aS'ruggedized' p31338 aS'ruggedized' p31339 asS'trow' p31340 (lp31341 S'trows' p31342 aS'trowing' p31343 aS'trowed' p31344 aS'trowed' p31345 asS'pioneer' p31346 (lp31347 S'pioneers' p31348 aS'pioneering' p31349 aS'pioneered' p31350 aS'pioneered' p31351 asS'inject' p31352 (lp31353 S'injects' p31354 aS'injecting' p31355 aS'injected' p31356 aS'injected' p31357 asS'gladden' p31358 (lp31359 S'gladdens' p31360 aS'gladdening' p31361 aS'gladdened' p31362 aS'gladdened' p31363 asS'moderate' p31364 (lp31365 S'moderates' p31366 aS'moderating' p31367 aS'moderated' p31368 aS'moderated' p31369 asS'knife' p31370 (lp31371 S'knifes' p31372 aS'knifing' p31373 aS'knifed' p31374 aS'knifed' p31375 asS'breastfeed' p31376 (lp31377 S'breastfeeds' p31378 aS'breastfeeding' p31379 aS'breastfed' p31380 aS'breastfed' p31381 asS'squall' p31382 (lp31383 S'squalls' p31384 aS'squalling' p31385 aS'squalled' p31386 aS'squalled' p31387 asS'disseize' p31388 (lp31389 S'disseizes' p31390 aS'disseizing' p31391 aS'disseized' p31392 aS'disseized' p31393 asS'giggle' p31394 (lp31395 S'giggles' p31396 aS'giggling' p31397 aS'giggled' p31398 aS'giggled' p31399 asS'chirp' p31400 (lp31401 S'chirps' p31402 aS'chirping' p31403 aS'chirped' p31404 aS'chirped' p31405 asS'roar' p31406 (lp31407 S'roars' p31408 aS'roaring' p31409 aS'roared' p31410 aS'roared' p31411 asS'island' p31412 (lp31413 S'islands' p31414 aS'islanding' p31415 aS'islanded' p31416 aS'islanded' p31417 asS'fringe' p31418 (lp31419 S'fringes' p31420 aS'fringing' p31421 aS'fringed' p31422 aS'fringed' p31423 asS'thrive' p31424 (lp31425 S'thrives' p31426 aS'thriving' p31427 aS'thrived' p31428 aS'thriven' p31429 asS'lithograph' p31430 (lp31431 S'lithographs' p31432 aS'lithographing' p31433 aS'lithographed' p31434 aS'lithographed' p31435 asS'solidify' p31436 (lp31437 S'solidifies' p31438 aS'solidifying' p31439 aS'solidified' p31440 aS'solidified' p31441 asS'roam' p31442 (lp31443 S'roams' p31444 aS'roaming' p31445 aS'roamed' p31446 aS'roamed' p31447 asS'remonetize' p31448 (lp31449 S'remonetizes' p31450 aS'remonetizing' p31451 aS'remonetized' p31452 aS'remonetized' p31453 asS'repine' p31454 (lp31455 S'repines' p31456 aS'repining' p31457 aS'repined' p31458 aS'repined' p31459 asS'dagger' p31460 (lp31461 S'daggers' p31462 aS'daggering' p31463 aS'daggered' p31464 aS'daggered' p31465 asS'prohibit' p31466 (lp31467 S'prohibits' p31468 aS'prohibiting' p31469 aS'prohibited' p31470 aS'prohibited' p31471 asS'actuate' p31472 (lp31473 S'actuates' p31474 aS'actuating' p31475 aS'actuated' p31476 aS'actuated' p31477 asS'harness' p31478 (lp31479 S'harnesses' p31480 aS'harnessing' p31481 aS'harnessed' p31482 aS'harnessed' p31483 asS'whiten' p31484 (lp31485 S'whitens' p31486 aS'whitening' p31487 aS'whitened' p31488 aS'whitened' p31489 asS'strip' p31490 (lp31491 S'strips' p31492 aS'stripping' p31493 aS'stripped' p31494 aS'stripped' p31495 asS'spline' p31496 (lp31497 S'splines' p31498 aS'splining' p31499 aS'splined' p31500 aS'splined' p31501 asS'purfle' p31502 (lp31503 S'purfles' p31504 aS'purfling' p31505 aS'purfled' p31506 aS'purfled' p31507 asS'bedim' p31508 (lp31509 S'bedims' p31510 aS'bedimming' p31511 aS'bedimmed' p31512 aS'bedimmed' p31513 asS'enroot' p31514 (lp31515 S'enroots' p31516 aS'enrooting' p31517 aS'enrooted' p31518 aS'enrooted' p31519 asS'vaporize' p31520 (lp31521 S'vaporizes' p31522 aS'vaporizing' p31523 aS'vaporized' p31524 aS'vaporized' p31525 asS'madden' p31526 (lp31527 S'maddens' p31528 aS'maddening' p31529 aS'maddened' p31530 aS'maddened' p31531 asS'decode' p31532 (lp31533 S'decodes' p31534 aS'decoding' p31535 aS'decoded' p31536 aS'decoded' p31537 asS'galvanize' p31538 (lp31539 S'galvanizes' p31540 aS'galvanizing' p31541 aS'galvanized' p31542 aS'galvanized' p31543 asS'outmatch' p31544 (lp31545 S'outmatches' p31546 aS'outmatching' p31547 aS'outmatched' p31548 aS'outmatched' p31549 asS'disfrock' p31550 (lp31551 S'disfrocks' p31552 aS'disfrocking' p31553 aS'disfrocked' p31554 aS'disfrocked' p31555 asS'immerge' p31556 (lp31557 S'immerges' p31558 aS'immerging' p31559 aS'immerged' p31560 aS'immerged' p31561 asS'shroud' p31562 (lp31563 S'shrouds' p31564 aS'shrouding' p31565 aS'shrouded' p31566 aS'shrouded' p31567 asS'hiccup' p31568 (lp31569 S'hiccups' p31570 aS'hiccuping' p31571 aS'hiccuped' p31572 aS'hiccuped' p31573 asS'gore' p31574 (lp31575 S'gores' p31576 aS'goring' p31577 aS'gored' p31578 aS'gored' p31579 asS'defoliate' p31580 (lp31581 S'defoliates' p31582 aS'defoliating' p31583 aS'defoliated' p31584 aS'defoliated' p31585 asS'supervene' p31586 (lp31587 S'supervenes' p31588 aS'supervening' p31589 aS'supervened' p31590 aS'supervened' p31591 asS'fulgurate' p31592 (lp31593 S'fulgurates' p31594 aS'fulgurating' p31595 aS'fulgurated' p31596 aS'fulgurated' p31597 asS'waffle' p31598 (lp31599 S'waffles' p31600 aS'waffling' p31601 aS'waffled' p31602 aS'waffled' p31603 asS'spice' p31604 (lp31605 S'spices' p31606 aS'spicing' p31607 aS'spiced' p31608 aS'spiced' p31609 asS'annihilate' p31610 (lp31611 S'annihilates' p31612 aS'annihilating' p31613 aS'annihilated' p31614 aS'annihilated' p31615 asS'proselyte' p31616 (lp31617 S'proselytes' p31618 aS'proselyting' p31619 aS'proselyted' p31620 aS'proselyted' p31621 asS'imbrue' p31622 (lp31623 S'imbrues' p31624 aS'imbruing' p31625 aS'imbrued' p31626 aS'imbrued' p31627 asS'rewire' p31628 (lp31629 S'rewires' p31630 aS'rewiring' p31631 aS'rewired' p31632 aS'rewired' p31633 asS'comanage' p31634 (lp31635 S'comanages' p31636 aS'comanaging' p31637 aS'comanaged' p31638 aS'comanaged' p31639 asS'eschew' p31640 (lp31641 S'eschews' p31642 aS'eschewing' p31643 aS'eschewed' p31644 aS'eschewed' p31645 asS'grouch' p31646 (lp31647 S'grouches' p31648 aS'grouching' p31649 aS'grouched' p31650 aS'grouched' p31651 asS'blackbird' p31652 (lp31653 S'blackbirds' p31654 aS'blackbirding' p31655 aS'blackbirded' p31656 aS'blackbirded' p31657 asS'deadlock' p31658 (lp31659 S'deadlocks' p31660 aS'deadlocking' p31661 aS'deadlocked' p31662 aS'deadlocked' p31663 asS'censor' p31664 (lp31665 S'censors' p31666 aS'censoring' p31667 aS'censored' p31668 aS'censored' p31669 asS'devitalize' p31670 (lp31671 S'devitalizes' p31672 aS'devitalizing' p31673 aS'devitalized' p31674 aS'devitalized' p31675 asS'examine' p31676 (lp31677 S'examines' p31678 aS'examining' p31679 aS'examined' p31680 aS'examined' p31681 asS'deem' p31682 (lp31683 S'deems' p31684 aS'deeming' p31685 aS'deemed' p31686 aS'deemed' p31687 asS'nucleate' p31688 (lp31689 S'nucleates' p31690 aS'nucleating' p31691 aS'nucleated' p31692 aS'nucleated' p31693 asS'file' p31694 (lp31695 S'files' p31696 aS'filing' p31697 aS'filed' p31698 aS'filed' p31699 asS'deed' p31700 (lp31701 S'deeds' p31702 aS'deeding' p31703 aS'deeded' p31704 aS'deeded' p31705 asS'hound' p31706 (lp31707 S'hounds' p31708 aS'hounding' p31709 aS'hounded' p31710 aS'hounded' p31711 asS'film' p31712 (lp31713 S'films' p31714 aS'filming' p31715 aS'filmed' p31716 aS'filmed' p31717 asS'fill' p31718 (lp31719 S'fills' p31720 aS'filling' p31721 aS'filled' p31722 aS'filled' p31723 asS'repent' p31724 (lp31725 S'repents' p31726 aS'repenting' p31727 aS'repented' p31728 aS'repented' p31729 asS'commingle' p31730 (lp31731 S'commingles' p31732 aS'commingling' p31733 aS'commingled' p31734 aS'commingled' p31735 asS'field' p31736 (lp31737 S'fields' p31738 aS'fielding' p31739 aS'fielded' p31740 aS'fielded' p31741 asS'prise' p31742 (lp31743 S'prises' p31744 aS'prising' p31745 aS'prised' p31746 aS'prised' p31747 asS'victimize' p31748 (lp31749 S'victimizes' p31750 aS'victimizing' p31751 aS'victimized' p31752 aS'victimized' p31753 asS'forjudge' p31754 (lp31755 S'forjudges' p31756 aS'forjudging' p31757 aS'forjudged' p31758 aS'forjudged' p31759 asS'shelter' p31760 (lp31761 S'shelters' p31762 aS'sheltering' p31763 aS'sheltered' p31764 aS'sheltered' p31765 asS'rigidify' p31766 (lp31767 S'rigidifies' p31768 aS'rigidifying' p31769 aS'rigidified' p31770 aS'rigidified' p31771 asS'scarper' p31772 (lp31773 S'scarpers' p31774 aS'scarpering' p31775 aS'scarpered' p31776 aS'scarpered' p31777 asS'democratize' p31778 (lp31779 S'democratizes' p31780 aS'democratizing' p31781 aS'democratized' p31782 aS'democratized' p31783 asS'tackle' p31784 (lp31785 S'tackles' p31786 aS'tackling' p31787 aS'tackled' p31788 aS'tackled' p31789 asS'revolve' p31790 (lp31791 S'revolves' p31792 aS'revolving' p31793 aS'revolved' p31794 aS'revolved' p31795 asS'sneeze' p31796 (lp31797 S'sneezes' p31798 aS'sneezing' p31799 aS'sneezed' p31800 aS'sneezed' p31801 asS'delineate' p31802 (lp31803 S'delineates' p31804 aS'delineating' p31805 aS'delineated' p31806 aS'delineated' p31807 asS'grudge' p31808 (lp31809 S'grudges' p31810 aS'grudging' p31811 aS'grudged' p31812 aS'grudged' p31813 asS'clangour' p31814 (lp31815 S'clangours' p31816 aS'clangouring' p31817 aS'clangoured' p31818 aS'clangoured' p31819 asS'scroll' p31820 (lp31821 S'scrolls' p31822 aS'scrolling' p31823 aS'scrolled' p31824 aS'scrolled' p31825 asS'unsex' p31826 (lp31827 S'unsexes' p31828 aS'unsexing' p31829 aS'unsexed' p31830 aS'unsexed' p31831 asS'burrow' p31832 (lp31833 S'burrows' p31834 aS'burrowing' p31835 aS'burrowed' p31836 aS'burrowed' p31837 asS'represent' p31838 (lp31839 S'represents' p31840 aS'representing' p31841 ag6736 aS'represented' p31842 asS'forget' p31843 (lp31844 S'forgets' p31845 aS'forgetting' p31846 aS'forgot' p31847 aS'forgotten' p31848 asS'founder' p31849 (lp31850 sS'paginate' p31851 (lp31852 S'paginates' p31853 aS'paginating' p31854 aS'paginated' p31855 aS'paginated' p31856 asS'sunk' p31857 (lp31858 S'sunks' p31859 aS'sunking' p31860 aS'sunked' p31861 aS'sunked' p31862 asS'zing' p31863 (lp31864 S'zings' p31865 aS'zinging' p31866 aS'zinged' p31867 aS'zinged' p31868 asS'commute' p31869 (lp31870 S'commutes' p31871 aS'commuting' p31872 aS'commuted' p31873 aS'commuted' p31874 asS'catheterize' p31875 (lp31876 S'catheterizes' p31877 aS'catheterizing' p31878 aS'catheterized' p31879 aS'catheterized' p31880 asS'misadvise' p31881 (lp31882 S'misadvises' p31883 aS'misadvising' p31884 aS'misadvised' p31885 aS'misadvised' p31886 asS'crimson' p31887 (lp31888 S'crimsons' p31889 aS'crimsoning' p31890 aS'crimsoned' p31891 aS'crimsoned' p31892 asS'bestir' p31893 (lp31894 S'bestirs' p31895 aS'bestirring' p31896 aS'bestirred' p31897 aS'bestirred' p31898 asS'parcel' p31899 (lp31900 S'parcels' p31901 aS'parcelling' p31902 aS'parcelled' p31903 aS'parcelled' p31904 asS'counterproposal' p31905 (lp31906 S'counterproposals' p31907 aS'counterproposaling' p31908 aS'counterproposaled' p31909 aS'counterproposaled' p31910 asS'righten' p31911 (lp31912 S'rightens' p31913 aS'rightening' p31914 aS'rightened' p31915 aS'rightened' p31916 asS'hybridize' p31917 (lp31918 S'hybridizes' p31919 aS'hybridizing' p31920 aS'hybridized' p31921 aS'hybridized' p31922 asS'malinger' p31923 (lp31924 S'malingers' p31925 aS'malingering' p31926 aS'malingered' p31927 aS'malingered' p31928 asS'scour' p31929 (lp31930 S'scours' p31931 aS'scouring' p31932 aS'scoured' p31933 aS'scoured' p31934 asS'fall' p31935 (lp31936 S'falls' p31937 aS'falling' p31938 aS'fell' p31939 aS'fallen' p31940 asS'bottleneck' p31941 (lp31942 S'bottlenecks' p31943 aS'bottlenecking' p31944 aS'bottlenecked' p31945 aS'bottlenecked' p31946 asS'alien' p31947 (lp31948 S'aliens' p31949 aS'aliening' p31950 aS'aliened' p31951 aS'aliened' p31952 asS'dampen' p31953 (lp31954 S'dampens' p31955 aS'dampening' p31956 aS'dampened' p31957 aS'dampened' p31958 asS'unrip' p31959 (lp31960 S'unrips' p31961 aS'unripping' p31962 aS'unripped' p31963 aS'unripped' p31964 asS'subsoil' p31965 (lp31966 S'subsoils' p31967 aS'subsoiling' p31968 aS'subsoiled' p31969 aS'subsoiled' p31970 asS'triangulate' p31971 (lp31972 S'triangulates' p31973 aS'triangulating' p31974 aS'triangulated' p31975 aS'triangulated' p31976 asS'enrapture' p31977 (lp31978 S'enraptures' p31979 aS'enrapturing' p31980 aS'enraptured' p31981 aS'enraptured' p31982 asS'unrig' p31983 (lp31984 S'unrigs' p31985 aS'unrigging' p31986 aS'unrigged' p31987 aS'unrigged' p31988 asS'chandelle' p31989 (lp31990 S'chandelles' p31991 aS'chandelling' p31992 aS'chandelled' p31993 aS'chandelled' p31994 asS'underwrite' p31995 (lp31996 S'underwrites' p31997 aS'underwriting' p31998 aS'underwrote' p31999 aS'underwritten' p32000 asS'abridge' p32001 (lp32002 S'abridges' p32003 aS'abridging' p32004 aS'abridged' p32005 aS'abridged' p32006 asS'clinch' p32007 (lp32008 S'clinches' p32009 aS'clinching' p32010 aS'clinched' p32011 aS'clinched' p32012 asS'outwork' p32013 (lp32014 S'outworks' p32015 aS'outworking' p32016 aS'outworked' p32017 aS'outworked' p32018 asS'gnarl' p32019 (lp32020 S'gnars' p32021 aS'gnarling' p32022 aS'gnarled' p32023 aS'gnarled' p32024 asS'zero' p32025 (lp32026 S'zeroes' p32027 aS'zeroing' p32028 aS'zeroed' p32029 aS'zeroed' p32030 asS'overlie' p32031 (lp32032 S'overlies' p32033 aS'overlying' p32034 aS'overlay' p32035 aS'overlain' p32036 asS'depicture' p32037 (lp32038 S'depictures' p32039 aS'depicturing' p32040 aS'depictured' p32041 aS'depictured' p32042 asS'further' p32043 (lp32044 S'furthers' p32045 aS'furthering' p32046 aS'furthered' p32047 aS'furthered' p32048 asS'misrepresent' p32049 (lp32050 S'misrepresents' p32051 aS'misrepresenting' p32052 aS'misrepresented' p32053 aS'misrepresented' p32054 asS'ribbon' p32055 (lp32056 S'ribbons' p32057 aS'ribboning' p32058 aS'ribboned' p32059 aS'ribboned' p32060 asS'dial' p32061 (lp32062 S'dials' p32063 aS'dialing' p32064 aS'dialed' p32065 aS'dialed' p32066 asS'ruminate' p32067 (lp32068 S'ruminates' p32069 aS'ruminating' p32070 aS'ruminated' p32071 aS'ruminated' p32072 asS'stook' p32073 (lp32074 S'stooks' p32075 aS'stooking' p32076 aS'stooked' p32077 aS'stooked' p32078 asS'stool' p32079 (lp32080 S'stools' p32081 aS'stooling' p32082 aS'stooled' p32083 aS'stooled' p32084 asS'overshot' p32085 (lp32086 S'overshot' p32087 aS'overshot' p32088 asS'verbalize' p32089 (lp32090 S'verbalizes' p32091 aS'verbalizing' p32092 aS'verbalized' p32093 aS'verbalized' p32094 asS'stoop' p32095 (lp32096 S'stoops' p32097 aS'stooping' p32098 aS'stooped' p32099 aS'stooped' p32100 asS'falsify' p32101 (lp32102 S'falsifies' p32103 aS'falsifying' p32104 aS'falsified' p32105 aS'falsified' p32106 asS'oppilate' p32107 (lp32108 S'oppilates' p32109 aS'oppilating' p32110 aS'oppilated' p32111 aS'oppilated' p32112 asS'apocopate' p32113 (lp32114 S'apocopates' p32115 aS'apocopating' p32116 aS'apocopated' p32117 aS'apocopated' p32118 asS'mull' p32119 (lp32120 S'mulls' p32121 aS'mulling' p32122 aS'mulled' p32123 aS'mulled' p32124 asS'intrench' p32125 (lp32126 S'intrenches' p32127 aS'intrenching' p32128 aS'intrenched' p32129 aS'intrenched' p32130 asS'twang' p32131 (lp32132 S'twangs' p32133 aS'twanging' p32134 aS'twanged' p32135 aS'twanged' p32136 asS'ingratiate' p32137 (lp32138 S'ingratiates' p32139 aS'ingratiating' p32140 aS'ingratiated' p32141 aS'ingratiated' p32142 asS'beacon' p32143 (lp32144 S'beacons' p32145 aS'beaconing' p32146 aS'beaconed' p32147 aS'beaconed' p32148 asS'interlineate' p32149 (lp32150 S'interlines' p32151 aS'interlining' p32152 aS'interlined' p32153 aS'interlined' p32154 asS'table' p32155 (lp32156 S'tables' p32157 aS'tabling' p32158 aS'tabled' p32159 aS'tabled' p32160 asS'monetize' p32161 (lp32162 S'monetizes' p32163 aS'monetizing' p32164 aS'monetized' p32165 aS'monetized' p32166 asS'search' p32167 (lp32168 S'searches' p32169 aS'searching' p32170 aS'searched' p32171 aS'searched' p32172 asS'upcast' p32173 (lp32174 S'upcasts' p32175 aS'upcasting' p32176 aS'upcast' p32177 aS'upcast' p32178 asS'luxuriate' p32179 (lp32180 S'luxuriates' p32181 aS'luxuriating' p32182 aS'luxuriated' p32183 aS'luxuriated' p32184 asS'margin' p32185 (lp32186 S'margins' p32187 aS'margining' p32188 aS'margined' p32189 aS'margined' p32190 asS'scurry' p32191 (lp32192 S'scurries' p32193 aS'scurrying' p32194 aS'scurried' p32195 aS'scurried' p32196 asS'spotlight' p32197 (lp32198 S'spotlights' p32199 aS'spotlighting' p32200 aS'spotlit' p32201 aS'spotlit' p32202 asS'narrow' p32203 (lp32204 S'narrows' p32205 aS'narrowing' p32206 aS'narrowed' p32207 aS'narrowed' p32208 asS'fatten' p32209 (lp32210 S'fattens' p32211 aS'fattening' p32212 aS'fattened' p32213 aS'fattened' p32214 asS'authorize' p32215 (lp32216 S'authorizes' p32217 aS'authorizing' p32218 aS'authorized' p32219 aS'authorized' p32220 asS'alphabetize' p32221 (lp32222 S'alphabetizes' p32223 aS'alphabetizing' p32224 aS'alphabetized' p32225 aS'alphabetized' p32226 asS'shanghai' p32227 (lp32228 S'shanghais' p32229 aS'shanghaiing' p32230 aS'shanghaied' p32231 aS'shanghaied' p32232 asS'perpetuate' p32233 (lp32234 S'perpetuates' p32235 aS'perpetuating' p32236 aS'perpetuated' p32237 aS'perpetuated' p32238 asS'prejudge' p32239 (lp32240 S'prejudges' p32241 aS'prejudging' p32242 aS'prejudged' p32243 aS'prejudged' p32244 asS'caravan' p32245 (lp32246 S'caravans' p32247 aS'caravanning' p32248 aS'caravanned' p32249 aS'caravanned' p32250 asS'transit' p32251 (lp32252 S'transits' p32253 aS'transiting' p32254 aS'transited' p32255 aS'transited' p32256 asS'chalk' p32257 (lp32258 S'chalks' p32259 aS'chalking' p32260 aS'chalked' p32261 aS'chalked' p32262 asS'sanction' p32263 (lp32264 S'sanctions' p32265 aS'sanctioning' p32266 aS'sanctioned' p32267 aS'sanctioned' p32268 asS'huzzah' p32269 (lp32270 S'huzzahs' p32271 aS'huzzahing' p32272 aS'huzzahed' p32273 aS'huzzahed' p32274 asS'melodramatize' p32275 (lp32276 S'melodramatizes' p32277 aS'melodramatizing' p32278 aS'melodramatized' p32279 aS'melodramatized' p32280 asS'eye' p32281 (lp32282 S'eyes' p32283 aS'eying' p32284 aS'eyed' p32285 aS'eyed' p32286 asS'score' p32287 (lp32288 S'scores' p32289 aS'scoring' p32290 aS'scored' p32291 aS'scored' p32292 asS'codify' p32293 (lp32294 S'codifies' p32295 aS'codifying' p32296 aS'codified' p32297 aS'codified' p32298 asS'trounce' p32299 (lp32300 S'trounces' p32301 aS'trouncing' p32302 aS'trounced' p32303 aS'trounced' p32304 asS'over-burden' p32305 (lp32306 S'over-burdens' p32307 aS'over-burdening' p32308 ag28305 aS'over-burdened' p32309 asS'puke' p32310 (lp32311 S'pukes' p32312 aS'puking' p32313 aS'puked' p32314 aS'puked' p32315 asS'splash' p32316 (lp32317 S'splashes' p32318 aS'splashing' p32319 aS'splashed' p32320 aS'splashed' p32321 asS'libel' p32322 (lp32323 S'libels' p32324 aS'libelling' p32325 aS'libelled' p32326 aS'libelled' p32327 asS'crepitate' p32328 (lp32329 S'crepitates' p32330 aS'crepitating' p32331 aS'crepitated' p32332 aS'crepitated' p32333 asS'raft' p32334 (lp32335 S'rafts' p32336 aS'rafting' p32337 aS'rafted' p32338 aS'rafted' p32339 asS'intumesce' p32340 (lp32341 S'intumesces' p32342 aS'intumescing' p32343 aS'intumesced' p32344 aS'intumesced' p32345 asS'popple' p32346 (lp32347 S'popples' p32348 aS'poppling' p32349 aS'poppled' p32350 aS'poppled' p32351 asS'diamond' p32352 (lp32353 S'diamonds' p32354 aS'diamonding' p32355 aS'diamonded' p32356 aS'diamonded' p32357 asS'tenderize' p32358 (lp32359 S'tenderizes' p32360 aS'tenderizing' p32361 aS'tenderized' p32362 aS'tenderized' p32363 asS'dematerialize' p32364 (lp32365 S'dematerializes' p32366 aS'dematerializing' p32367 aS'dematerialized' p32368 aS'dematerialized' p32369 asS'stable' p32370 (lp32371 S'stables' p32372 aS'stabling' p32373 aS'stabled' p32374 aS'stabled' p32375 asS'reconvert' p32376 (lp32377 S'reconverts' p32378 aS'reconverting' p32379 aS'reconverted' p32380 aS'reconverted' p32381 asS'sniggle' p32382 (lp32383 S'sniggles' p32384 aS'sniggling' p32385 aS'sniggled' p32386 aS'sniggled' p32387 asS'animadvert' p32388 (lp32389 S'animadverts' p32390 aS'animadverting' p32391 aS'animadverted' p32392 aS'animadverted' p32393 asS'blandish' p32394 (lp32395 S'blandishes' p32396 aS'blandishing' p32397 aS'blandished' p32398 aS'blandished' p32399 asS'counterclaim' p32400 (lp32401 S'counterclaims' p32402 aS'counterclaiming' p32403 aS'counterclaimed' p32404 aS'counterclaimed' p32405 asS'cluster' p32406 (lp32407 S'clusters' p32408 aS'clustering' p32409 aS'clustered' p32410 aS'clustered' p32411 asS'flyblow' p32412 (lp32413 S'flyblows' p32414 aS'flyblowing' p32415 aS'flyblew' p32416 aS'flyblown' p32417 asS'recall' p32418 (lp32419 S'recalls' p32420 aS'recalling' p32421 aS'recalled' p32422 aS'recalled' p32423 asS'dew' p32424 (lp32425 S'dews' p32426 aS'dewing' p32427 aS'dewed' p32428 aS'dewed' p32429 asS'remain' p32430 (lp32431 S'remains' p32432 aS'remaining' p32433 aS'remained' p32434 aS'remained' p32435 asS'paragraph' p32436 (lp32437 S'paragraphs' p32438 aS'paragraphing' p32439 aS'paragraphed' p32440 aS'paragraphed' p32441 asS'den' p32442 (lp32443 S'dens' p32444 aS'denning' p32445 aS'denned' p32446 aS'denned' p32447 asS'flyte' p32448 (lp32449 S'flytes' p32450 aS'flyting' p32451 aS'flyted' p32452 aS'flyted' p32453 asS'abandon' p32454 (lp32455 S'abandons' p32456 aS'abandoning' p32457 aS'abandoned' p32458 aS'abandoned' p32459 asS'marble' p32460 (lp32461 S'marbles' p32462 aS'marbling' p32463 aS'marbled' p32464 aS'marbled' p32465 asS'bivouac' p32466 (lp32467 S'bivouacs' p32468 aS'bivouacking' p32469 aS'bivouacked' p32470 aS'bivouacked' p32471 asS'sleuth' p32472 (lp32473 S'sleuths' p32474 aS'sleuthing' p32475 aS'sleuthed' p32476 aS'sleuthed' p32477 asS'compare' p32478 (lp32479 S'compares' p32480 aS'comparing' p32481 aS'compared' p32482 aS'compared' p32483 asS'buttress' p32484 (lp32485 S'buttresses' p32486 aS'buttressing' p32487 aS'buttressed' p32488 aS'buttressed' p32489 asS'share' p32490 (lp32491 S'shares' p32492 aS'sharing' p32493 aS'shared' p32494 aS'shared' p32495 asS'spall' p32496 (lp32497 S'spalls' p32498 aS'spalling' p32499 aS'spalled' p32500 aS'spalled' p32501 asS'attain' p32502 (lp32503 S'attains' p32504 aS'attaining' p32505 aS'attained' p32506 aS'attained' p32507 asS'junket' p32508 (lp32509 S'junkets' p32510 aS'junketing' p32511 aS'junketed' p32512 aS'junketed' p32513 asS'sharp' p32514 (lp32515 S'sharps' p32516 aS'sharping' p32517 aS'sharped' p32518 aS'sharped' p32519 asS'fillip' p32520 (lp32521 S'fillips' p32522 aS'filliping' p32523 aS'filliped' p32524 aS'filliped' p32525 asS'freckle' p32526 (lp32527 S'freckles' p32528 aS'freckling' p32529 aS'freckled' p32530 aS'freckled' p32531 asS'interbreed' p32532 (lp32533 S'interbreeds' p32534 aS'interbreeding' p32535 aS'interbred' p32536 aS'interbred' p32537 asS'incubate' p32538 (lp32539 S'incubates' p32540 aS'incubating' p32541 aS'incubated' p32542 aS'incubated' p32543 asS'sermonize' p32544 (lp32545 S'sermonizes' p32546 aS'sermonizing' p32547 aS'sermonized' p32548 aS'sermonized' p32549 asS'comfort' p32550 (lp32551 S'comforts' p32552 aS'comforting' p32553 aS'comforted' p32554 aS'comforted' p32555 asS'sprig' p32556 (lp32557 S'sprigs' p32558 aS'sprigging' p32559 aS'sprigged' p32560 aS'sprigged' p32561 asS'Balkanize' p32562 (lp32563 S'Balkanizes' p32564 aS'Balkanizing' p32565 aS'Balkanized' p32566 aS'Balkanized' p32567 asS'bleat' p32568 (lp32569 S'bleats' p32570 aS'bleating' p32571 aS'bleated' p32572 aS'bleated' p32573 asS'blear' p32574 (lp32575 S'blear' p32576 aS'blearing' p32577 aS'bleared' p32578 aS'bleared' p32579 asS'blacken' p32580 (lp32581 S'blackens' p32582 aS'blacking' p32583 aS'blackened' p32584 aS'blackened' p32585 asS'interpose' p32586 (lp32587 S'interposes' p32588 aS'interposing' p32589 aS'interposed' p32590 aS'interposed' p32591 asS'explicate' p32592 (lp32593 S'explicates' p32594 aS'explicating' p32595 aS'explicated' p32596 aS'explicated' p32597 asS'blood' p32598 (lp32599 S'bloods' p32600 aS'blooding' p32601 aS'blooded' p32602 aS'blooded' p32603 asS'reclassify' p32604 (lp32605 S'reclassifies' p32606 aS'reclassifying' p32607 aS'reclassified' p32608 aS'reclassified' p32609 asS'bloom' p32610 (lp32611 S'blooms' p32612 aS'blooming' p32613 aS'bloomed' p32614 aS'bloomed' p32615 asS'lipread' p32616 (lp32617 S'lipreads' p32618 aS'lipreading' p32619 aS'lipread' p32620 aS'lipread' p32621 asS'chute' p32622 (lp32623 S'chutes' p32624 aS'chuting' p32625 aS'chuted' p32626 aS'chuted' p32627 asS'coax' p32628 (lp32629 S'coaxes' p32630 aS'coaxing' p32631 aS'coaxed' p32632 aS'coaxed' p32633 asS'reiterate' p32634 (lp32635 S'reiterates' p32636 aS'reiterating' p32637 aS'reiterated' p32638 aS'reiterated' p32639 asS'coat' p32640 (lp32641 S'coats' p32642 aS'coating' p32643 aS'coated' p32644 aS'coated' p32645 asS'paw' p32646 (lp32647 S'paws' p32648 aS'pawing' p32649 aS'pawed' p32650 aS'pawed' p32651 asS'blunder' p32652 (lp32653 S'blunders' p32654 aS'blundering' p32655 aS'blundered' p32656 aS'blundered' p32657 asS'mislead' p32658 (lp32659 S'misleads' p32660 aS'misleading' p32661 aS'misled' p32662 aS'misled' p32663 asS'coal' p32664 (lp32665 S'coals' p32666 aS'coaling' p32667 aS'coaled' p32668 aS'coaled' p32669 asS'evanesce' p32670 (lp32671 S'evanesces' p32672 aS'evanescing' p32673 aS'evanesced' p32674 aS'evanesced' p32675 asS'pleasure' p32676 (lp32677 S'pleasures' p32678 aS'pleasuring' p32679 aS'pleasured' p32680 aS'pleasured' p32681 asS'lollop' p32682 (lp32683 S'lollops' p32684 aS'lolloping' p32685 aS'lolloped' p32686 aS'lolloped' p32687 asS'serenade' p32688 (lp32689 S'serenades' p32690 aS'serenading' p32691 aS'serenaded' p32692 aS'serenaded' p32693 asS'sandcast' p32694 (lp32695 S'sandcasts' p32696 aS'sandcasting' p32697 aS'sandcast' p32698 aS'sandcast' p32699 asS'unchurch' p32700 (lp32701 S'unchurches' p32702 aS'unchurching' p32703 aS'unchurched' p32704 aS'unchurched' p32705 asS'displease' p32706 (lp32707 S'displeases' p32708 aS'displeasing' p32709 aS'displeased' p32710 aS'displeased' p32711 asS'oblique' p32712 (lp32713 S'obliques' p32714 aS'obliquing' p32715 aS'obliqued' p32716 aS'obliqued' p32717 asS'name-drop' p32718 (lp32719 S'name-drops' p32720 aS'name-dropping' p32721 aS'name-dropped' p32722 aS'name-dropped' p32723 asS'suffer' p32724 (lp32725 S'suffers' p32726 aS'suffering' p32727 aS'suffered' p32728 aS'suffered' p32729 asS'prevaricate' p32730 (lp32731 S'prevaricates' p32732 aS'prevaricating' p32733 aS'prevaricated' p32734 aS'prevaricated' p32735 asS'fissure' p32736 (lp32737 S'fissures' p32738 aS'fissuring' p32739 aS'fissured' p32740 aS'fissured' p32741 asS'bosom' p32742 (lp32743 S'bosoms' p32744 aS'bosoming' p32745 aS'bosomed' p32746 aS'bosomed' p32747 asS'pend' p32748 (lp32749 S'pends' p32750 aS'pending' p32751 aS'pended' p32752 aS'pended' p32753 asS'emend' p32754 (lp32755 S'emends' p32756 aS'emending' p32757 aS'emended' p32758 aS'emended' p32759 asS'dolly' p32760 (lp32761 S'dollies' p32762 aS'dollying' p32763 aS'dollied' p32764 aS'dollied' p32765 asS'unswear' p32766 (lp32767 S'unswears' p32768 aS'unswearing' p32769 aS'unswore' p32770 aS'unsworn' p32771 asS'redraft' p32772 (lp32773 S'redrafts' p32774 aS'redrafting' p32775 aS'redrafted' p32776 aS'redrafted' p32777 asS'braise' p32778 (lp32779 S'braises' p32780 aS'braising' p32781 aS'braised' p32782 aS'braised' p32783 asS'bereft' p32784 (lp32785 S'bereft' p32786 aS'bereft' p32787 asS'lath' p32788 (lp32789 S'laths' p32790 ag21308 ag21309 ag21310 asS'underestimate' p32791 (lp32792 S'underestimates' p32793 aS'underestimating' p32794 aS'underestimated' p32795 aS'underestimated' p32796 asS'goof' p32797 (lp32798 S'goofs' p32799 aS'goofing' p32800 aS'goofed' p32801 aS'goofed' p32802 asS'contradistinguish' p32803 (lp32804 S'contradistinguishes' p32805 aS'contradistinguishing' p32806 aS'contradistinguished' p32807 aS'contradistinguished' p32808 asS'detour' p32809 (lp32810 S'detours' p32811 aS'detouring' p32812 aS'detoured' p32813 aS'detoured' p32814 asS'compound' p32815 (lp32816 S'compounds' p32817 aS'compounding' p32818 aS'compounded' p32819 aS'compounded' p32820 asS'wiredraw' p32821 (lp32822 S'wiredraws' p32823 aS'wiredrawing' p32824 aS'wiredrew' p32825 aS'wiredrawn' p32826 asS'detach' p32827 (lp32828 S'detaches' p32829 aS'detaching' p32830 aS'detached' p32831 aS'detached' p32832 asS'complain' p32833 (lp32834 S'complains' p32835 aS'complaining' p32836 aS'complained' p32837 aS'complained' p32838 asS'restrict' p32839 (lp32840 S'restricts' p32841 aS'restricting' p32842 aS'restricted' p32843 aS'restricted' p32844 asS'huddle' p32845 (lp32846 S'huddles' p32847 aS'huddling' p32848 aS'huddled' p32849 aS'huddled' p32850 asS'auspicate' p32851 (lp32852 S'auspicates' p32853 aS'auspicating' p32854 aS'auspicated' p32855 aS'auspicated' p32856 asS'countersign' p32857 (lp32858 S'countersigns' p32859 aS'countersigning' p32860 aS'countersigned' p32861 aS'countersigned' p32862 asS'evade' p32863 (lp32864 S'evades' p32865 aS'evading' p32866 aS'evaded' p32867 aS'evaded' p32868 asS'token' p32869 (lp32870 S'tokens' p32871 aS'tokening' p32872 aS'tokened' p32873 aS'tokened' p32874 asS'safeconduct' p32875 (lp32876 S'safeconducts' p32877 aS'safeconducting' p32878 aS'safeconducted' p32879 aS'safeconducted' p32880 asS'reft' p32881 (lp32882 S'reft' p32883 aS'reft' p32884 asS'quintuple' p32885 (lp32886 S'quintuples' p32887 aS'quintupling' p32888 aS'quintupled' p32889 aS'quintupled' p32890 asS'politicize' p32891 (lp32892 S'politicizes' p32893 aS'politicizing' p32894 aS'politicized' p32895 aS'politicized' p32896 asS'clamp' p32897 (lp32898 S'clamps' p32899 aS'clamping' p32900 aS'clamped' p32901 aS'clamped' p32902 asS'harm' p32903 (lp32904 S'harms' p32905 aS'harming' p32906 aS'harmed' p32907 aS'harmed' p32908 asS'hark' p32909 (lp32910 S'harks' p32911 aS'harking' p32912 aS'harked' p32913 aS'harked' p32914 asS'house' p32915 (lp32916 S'houses' p32917 aS'housing' p32918 aS'housed' p32919 aS'housed' p32920 asS'hare' p32921 (lp32922 S'hares' p32923 aS'haring' p32924 aS'hared' p32925 aS'hared' p32926 asS'electroplate' p32927 (lp32928 S'electroplates' p32929 aS'electroplating' p32930 aS'electroplated' p32931 aS'electroplated' p32932 asS'connect' p32933 (lp32934 S'connects' p32935 aS'connecting' p32936 aS'connected' p32937 aS'connected' p32938 asS'fist' p32939 (lp32940 S'fists' p32941 aS'fisting' p32942 aS'fisted' p32943 aS'fisted' p32944 asS'ripple' p32945 (lp32946 S'ripples' p32947 aS'rippling' p32948 aS'rippled' p32949 aS'rippled' p32950 asS'callus' p32951 (lp32952 S'calluses' p32953 aS'callusing' p32954 aS'callused' p32955 aS'callused' p32956 asS'orient' p32957 (lp32958 S'orients' p32959 aS'orienting' p32960 aS'oriented' p32961 aS'oriented' p32962 asS'harp' p32963 (lp32964 S'harps' p32965 aS'harping' p32966 aS'harped' p32967 aS'harped' p32968 asS'inshrine' p32969 (lp32970 S'inshrines' p32971 aS'inshrining' p32972 aS'inshrined' p32973 aS'inshrined' p32974 asS'flower' p32975 (lp32976 S'flowers' p32977 aS'flowering' p32978 aS'flowered' p32979 aS'flowered' p32980 asS'prink' p32981 (lp32982 S'prinks' p32983 aS'prinking' p32984 aS'prinked' p32985 aS'prinked' p32986 asS'coauthor' p32987 (lp32988 S'coauthors' p32989 aS'coauthoring' p32990 aS'coauthored' p32991 aS'coauthored' p32992 asS'vitiate' p32993 (lp32994 S'vitiates' p32995 aS'vitiating' p32996 aS'vitiated' p32997 aS'vitiated' p32998 asS'avenge' p32999 (lp33000 S'avenges' p33001 aS'avenging' p33002 aS'avenged' p33003 aS'avenged' p33004 asS'print' p33005 (lp33006 S'prints' p33007 aS'printing' p33008 aS'printed' p33009 aS'printed' p33010 asS'bully' p33011 (lp33012 S'bullies' p33013 aS'bullying' p33014 aS'bullied' p33015 aS'bullied' p33016 asS'kittle' p33017 (lp33018 S'kittles' p33019 aS'kittling' p33020 aS'kittled' p33021 aS'kittled' p33022 asS'decompress' p33023 (lp33024 S'decompresses' p33025 aS'decompressing' p33026 aS'decompressed' p33027 aS'decompressed' p33028 asS'golly' p33029 (lp33030 S'gollies' p33031 aS'gollying' p33032 aS'gollied' p33033 aS'gollied' p33034 asS'recast' p33035 (lp33036 S'recasts' p33037 aS'recasting' p33038 aS'recast' p33039 aS'recast' p33040 asS'stratify' p33041 (lp33042 S'stratifies' p33043 aS'stratifying' p33044 aS'stratified' p33045 aS'stratified' p33046 asS'omit' p33047 (lp33048 S'omits' p33049 aS'omitting' p33050 aS'omitted' p33051 aS'omitted' p33052 asS'desiccate' p33053 (lp33054 S'desiccates' p33055 aS'desiccating' p33056 aS'desiccated' p33057 aS'desiccated' p33058 asS'predate' p33059 (lp33060 S'predates' p33061 aS'predating' p33062 aS'predated' p33063 aS'predated' p33064 asS'wither' p33065 (lp33066 S'withers' p33067 aS'withering' p33068 aS'withered' p33069 aS'withered' p33070 asS'corkscrew' p33071 (lp33072 S'corkscrews' p33073 aS'corkscrewing' p33074 aS'corkscrewed' p33075 aS'corkscrewed' p33076 asS'trickle' p33077 (lp33078 S'trickles' p33079 aS'trickling' p33080 aS'trickled' p33081 aS'trickled' p33082 asS'copper' p33083 (lp33084 S'coppers' p33085 aS'coppering' p33086 aS'coppered' p33087 aS'coppered' p33088 asS'perturb' p33089 (lp33090 S'perturbs' p33091 aS'perturbing' p33092 aS'perturbed' p33093 aS'perturbed' p33094 asS'dehydrogenize' p33095 (lp33096 S'dehydrogenizes' p33097 aS'dehydrogenizing' p33098 aS'dehydrogenized' p33099 aS'dehydrogenized' p33100 asS'pop' p33101 (lp33102 S'pops' p33103 aS'popping' p33104 aS'popped' p33105 aS'popped' p33106 asS'dong' p33107 (lp33108 S'dongs' p33109 aS'donging' p33110 aS'donged' p33111 aS'donged' p33112 asS'wager' p33113 (lp33114 S'wagers' p33115 aS'wagering' p33116 aS'wagered' p33117 aS'wagered' p33118 asS'jabber' p33119 (lp33120 S'jabbers' p33121 aS'jabbering' p33122 aS'jabbered' p33123 aS'jabbered' p33124 asS'clapperclaw' p33125 (lp33126 S'clapperclaws' p33127 aS'clapperclawing' p33128 aS'clapperclawed' p33129 aS'clapperclawed' p33130 asS'foot-slog' p33131 (lp33132 S'foot-slogs' p33133 aS'foot-slogging' p33134 aS'foot-slogged' p33135 aS'foot-slogged' p33136 asS'divorce' p33137 (lp33138 S'divorces' p33139 aS'divorcing' p33140 aS'divorced' p33141 aS'divorced' p33142 asS'triplicate' p33143 (lp33144 S'triplicates' p33145 aS'triplicating' p33146 aS'triplicated' p33147 aS'triplicated' p33148 asS'subtilize' p33149 (lp33150 S'subtilizes' p33151 aS'subtilizing' p33152 aS'subtilized' p33153 aS'subtilized' p33154 asS'revive' p33155 (lp33156 S'revives' p33157 aS'reviving' p33158 aS'revived' p33159 aS'revived' p33160 asS'construct' p33161 (lp33162 S'constructs' p33163 aS'constructing' p33164 aS'constructed' p33165 aS'constructed' p33166 asS'paint' p33167 (lp33168 S'paints' p33169 aS'painting' p33170 aS'painted' p33171 aS'painted' p33172 asS'leash' p33173 (lp33174 S'leashes' p33175 aS'leashing' p33176 aS'leashed' p33177 aS'leashed' p33178 asS'smoothen' p33179 (lp33180 S'smoothens' p33181 aS'smoothening' p33182 aS'smoothened' p33183 aS'smoothened' p33184 asS'lease' p33185 (lp33186 S'leases' p33187 aS'leasing' p33188 aS'leased' p33189 aS'leased' p33190 asS'catapult' p33191 (lp33192 S'catapults' p33193 aS'catapulting' p33194 aS'catapulted' p33195 aS'catapulted' p33196 asS'bumble' p33197 (lp33198 S'bumbles' p33199 aS'bumbling' p33200 aS'bumbled' p33201 aS'bumbled' p33202 asS'pare' p33203 (lp33204 S'pares' p33205 aS'paring' p33206 aS'pared' p33207 aS'pared' p33208 asS'trawl' p33209 (lp33210 S'trawls' p33211 aS'trawling' p33212 aS'trawled' p33213 aS'trawled' p33214 asS'travail' p33215 (lp33216 S'travails' p33217 aS'travailing' p33218 aS'travailed' p33219 aS'travailed' p33220 asS'needle' p33221 (lp33222 S'needles' p33223 aS'needling' p33224 aS'needled' p33225 aS'needled' p33226 asS'park' p33227 (lp33228 S'parks' p33229 aS'parking' p33230 aS'parked' p33231 aS'parked' p33232 asS'part' p33233 (lp33234 S'parts' p33235 aS'parting' p33236 aS'parted' p33237 aS'parted' p33238 asS'differentiate' p33239 (lp33240 S'differentiates' p33241 aS'differentiating' p33242 aS'differentiated' p33243 aS'differentiated' p33244 asS'believe' p33245 (lp33246 S'believes' p33247 aS'believing' p33248 aS'believed' p33249 aS'believed' p33250 asS'oscillate' p33251 (lp33252 S'oscillates' p33253 aS'oscillating' p33254 aS'oscillated' p33255 aS'oscillated' p33256 asS'preachify' p33257 (lp33258 S'preachifies' p33259 aS'preachifying' p33260 aS'preachified' p33261 aS'preachified' p33262 asS'commiserate' p33263 (lp33264 S'commiserates' p33265 aS'commiserating' p33266 aS'commiserated' p33267 aS'commiserated' p33268 asS'fractionize' p33269 (lp33270 S'fractionizes' p33271 aS'fractionizing' p33272 aS'fractionized' p33273 aS'fractionized' p33274 asS'sedate' p33275 (lp33276 S'sedates' p33277 aS'sedating' p33278 aS'sedated' p33279 aS'sedated' p33280 asS'garble' p33281 (lp33282 S'garbles' p33283 aS'garbling' p33284 aS'garbled' p33285 aS'garbled' p33286 asS'declare' p33287 (lp33288 S'declares' p33289 aS'declaring' p33290 aS'declared' p33291 aS'declared' p33292 asS'flitter' p33293 (lp33294 S'flitters' p33295 aS'flittering' p33296 aS'flittered' p33297 aS'flittered' p33298 asS'swerve' p33299 (lp33300 S'swerves' p33301 aS'swerving' p33302 aS'swerved' p33303 aS'swerved' p33304 asS'prefigure' p33305 (lp33306 S'prefigures' p33307 aS'prefiguring' p33308 aS'prefigured' p33309 aS'prefigured' p33310 asS'marinade' p33311 (lp33312 S'marinades' p33313 aS'marinading' p33314 aS'marinaded' p33315 aS'marinaded' p33316 asS'elegize' p33317 (lp33318 S'elegizes' p33319 aS'elegizing' p33320 aS'elegized' p33321 aS'elegized' p33322 asS'affray' p33323 (lp33324 S'affrays' p33325 aS'affraying' p33326 aS'affrayed' p33327 aS'affrayed' p33328 asS'cwtch' p33329 (lp33330 S'cwtches' p33331 aS'cwtching' p33332 aS'cwtched' p33333 aS'cwtched' p33334 asS'protrude' p33335 (lp33336 S'protrudes' p33337 aS'protruding' p33338 aS'protruded' p33339 aS'protruded' p33340 asS'dismember' p33341 (lp33342 S'dismembers' p33343 aS'dismembering' p33344 aS'dismembered' p33345 aS'dismembered' p33346 asS'blanch' p33347 (lp33348 S'blanches' p33349 aS'blanching' p33350 aS'blanched' p33351 aS'blanched' p33352 asS'refute' p33353 (lp33354 S'refutes' p33355 aS'refuting' p33356 aS'refuted' p33357 aS'refuted' p33358 asS'trip' p33359 (lp33360 S'trips' p33361 aS'tripping' p33362 aS'tripped' p33363 aS'tripped' p33364 asS'feeze' p33365 (lp33366 S'feezes' p33367 aS'feezing' p33368 aS'feezed' p33369 aS'feezed' p33370 asS'couch' p33371 (lp33372 S'couches' p33373 aS'couching' p33374 aS'couched' p33375 aS'couched' p33376 asS'build' p33377 (lp33378 S'builds' p33379 aS'building' p33380 aS'built' p33381 aS'built' p33382 asS'rowel' p33383 (lp33384 S'rowels' p33385 aS'rowelling' p33386 aS'rowelled' p33387 aS'rowelled' p33388 asS'pressurize' p33389 (lp33390 S'pressurizes' p33391 aS'pressurizing' p33392 aS'pressurized' p33393 aS'pressurized' p33394 asS'flute' p33395 (lp33396 S'flutes' p33397 aS'fluting' p33398 aS'fluted' p33399 aS'fluted' p33400 asS'chart' p33401 (lp33402 S'charts' p33403 aS'charting' p33404 aS'charted' p33405 aS'charted' p33406 asS'charm' p33407 (lp33408 S'charms' p33409 aS'charming' p33410 aS'charmed' p33411 aS'charmed' p33412 asS'outpoint' p33413 (lp33414 S'outpoints' p33415 aS'outpointing' p33416 aS'outpointed' p33417 aS'outpointed' p33418 asS'booby-trap' p33419 (lp33420 S'booby-traps' p33421 aS'booby-trapping' p33422 aS'booby-trapped' p33423 aS'booby-trapped' p33424 asS'pauperize' p33425 (lp33426 S'pauperizes' p33427 aS'pauperizing' p33428 aS'pauperized' p33429 aS'pauperized' p33430 asS'fluctuate' p33431 (lp33432 S'fluctuates' p33433 aS'fluctuating' p33434 aS'fluctuated' p33435 aS'fluctuated' p33436 asS'saturate' p33437 (lp33438 S'saturates' p33439 aS'saturating' p33440 aS'saturated' p33441 aS'saturated' p33442 asS'ko' p33443 (lp33444 S"ko's" p33445 aS"ko'ing" p33446 aS"ko'ed" p33447 aS"ko'ed" p33448 asS'squelch' p33449 (lp33450 S'squelches' p33451 aS'squelching' p33452 aS'squelched' p33453 aS'squelched' p33454 asS'elasticate' p33455 (lp33456 S'elasticates' p33457 aS'elasticating' p33458 aS'elasticated' p33459 aS'elasticated' p33460 asS'impaste' p33461 (lp33462 S'impastes' p33463 aS'impasting' p33464 aS'impasted' p33465 aS'impasted' p33466 asS'tampon' p33467 (lp33468 S'tampons' p33469 aS'tamponing' p33470 aS'tamponed' p33471 aS'tamponed' p33472 asS'carny' p33473 (lp33474 S'carnies' p33475 aS'carnying' p33476 aS'carnied' p33477 aS'carnied' p33478 asS'converge' p33479 (lp33480 S'converges' p33481 aS'converging' p33482 aS'converged' p33483 aS'converged' p33484 asS'fink' p33485 (lp33486 S'finks' p33487 aS'finking' p33488 aS'finked' p33489 aS'finked' p33490 asS'chock' p33491 (lp33492 S'chocks' p33493 aS'chocking' p33494 aS'chocked' p33495 aS'chocked' p33496 asS'fine' p33497 (lp33498 S'fines' p33499 aS'fining' p33500 aS'fined' p33501 aS'fined' p33502 asS'find' p33503 (lp33504 S'finds' p33505 aS'finding' p33506 aS'found' p33507 aS'found' p33508 asS'scorify' p33509 (lp33510 S'scorifies' p33511 aS'scorifying' p33512 aS'scorified' p33513 aS'scorified' p33514 asS'mineralize' p33515 (lp33516 S'mineralizes' p33517 aS'mineralizing' p33518 aS'mineralized' p33519 aS'mineralized' p33520 asS'lather' p33521 (lp33522 S'lathers' p33523 aS'lathering' p33524 aS'lathered' p33525 aS'lathered' p33526 asS'override' p33527 (lp33528 S'overrides' p33529 aS'overriding' p33530 aS'overrode' p33531 aS'overridden' p33532 asS'prearrange' p33533 (lp33534 S'prearranges' p33535 aS'prearranging' p33536 aS'prearranged' p33537 aS'prearranged' p33538 asS'devastate' p33539 (lp33540 S'devastates' p33541 aS'devastating' p33542 aS'devastated' p33543 aS'devastated' p33544 asS'batten' p33545 (lp33546 S'battens' p33547 aS'battening' p33548 aS'battened' p33549 aS'battened' p33550 asS'express' p33551 (lp33552 S'expresses' p33553 aS'expressing' p33554 aS'expressed' p33555 aS'expressed' p33556 asS'ferret' p33557 (lp33558 S'ferrets' p33559 aS'ferreting' p33560 aS'ferreted' p33561 aS'ferreted' p33562 asS'cheapen' p33563 (lp33564 S'cheapens' p33565 aS'cheapening' p33566 aS'cheapened' p33567 aS'cheapened' p33568 asS'batter' p33569 (lp33570 S'batters' p33571 aS'battering' p33572 aS'battered' p33573 aS'battered' p33574 asS'breast' p33575 (lp33576 S'breasts' p33577 aS'breasting' p33578 aS'breasted' p33579 aS'breasted' p33580 asS'cumulate' p33581 (lp33582 S'cumulates' p33583 aS'cumulating' p33584 aS'cumulated' p33585 aS'cumulated' p33586 asS'inaugurate' p33587 (lp33588 S'inaugurates' p33589 aS'inaugurating' p33590 aS'inaugurated' p33591 aS'inaugurated' p33592 asS'pellet' p33593 (lp33594 S'pellets' p33595 aS'pelleting' p33596 aS'pelleted' p33597 aS'pelleted' p33598 asS'target' p33599 (lp33600 S'targets' p33601 aS'targeting' p33602 aS'targeted' p33603 aS'targeted' p33604 asS'huff' p33605 (lp33606 S'huffs' p33607 aS'huffing' p33608 aS'huffed' p33609 aS'huffed' p33610 asS'elapse' p33611 (lp33612 S'elapses' p33613 aS'elapsing' p33614 aS'elapsed' p33615 aS'elapsed' p33616 asS'resolve' p33617 (lp33618 S'resolves' p33619 aS'resolving' p33620 aS'resolved' p33621 aS'resolved' p33622 asS'susurrate' p33623 (lp33624 S'susurrates' p33625 aS'susurrating' p33626 aS'susurrated' p33627 aS'susurrated' p33628 asS'remove' p33629 (lp33630 S'removes' p33631 aS'removing' p33632 aS'removed' p33633 aS'removed' p33634 asS'supercede' p33635 (lp33636 S'supercedes' p33637 aS'superceding' p33638 aS'superceded' p33639 aS'superceded' p33640 asS'toe-dance' p33641 (lp33642 S'toe-dances' p33643 aS'toe-dancing' p33644 aS'toe-danced' p33645 aS'toe-danced' p33646 asS'gazump' p33647 (lp33648 S'gazumps' p33649 aS'gazumping' p33650 aS'gazumped' p33651 aS'gazumped' p33652 asS'arouse' p33653 (lp33654 S'arouses' p33655 aS'arousing' p33656 aS'aroused' p33657 aS'aroused' p33658 asS'overeat' p33659 (lp33660 S'overeats' p33661 aS'overeating' p33662 aS'overate' p33663 aS'overeaten' p33664 asS'tender' p33665 (lp33666 S'tenders' p33667 aS'tendering' p33668 aS'tendered' p33669 aS'tendered' p33670 asS'petrify' p33671 (lp33672 S'petrifies' p33673 aS'petrifying' p33674 aS'petrified' p33675 aS'petrified' p33676 asS'marinate' p33677 (lp33678 S'marinates' p33679 aS'marinating' p33680 aS'marinated' p33681 aS'marinated' p33682 asS'debar' p33683 (lp33684 S'debars' p33685 aS'debarring' p33686 aS'debarred' p33687 aS'debarred' p33688 asS'equivocate' p33689 (lp33690 S'equivocates' p33691 aS'equivocating' p33692 aS'equivocated' p33693 aS'equivocated' p33694 asS'please' p33695 (lp33696 S'pleases' p33697 aS'pleasing' p33698 aS'pleased' p33699 aS'pleased' p33700 asS'phototype' p33701 (lp33702 S'phototypes' p33703 aS'phototyping' p33704 aS'phototyped' p33705 aS'phototyped' p33706 asS'abrade' p33707 (lp33708 S'abrades' p33709 aS'abrading' p33710 aS'abraded' p33711 aS'abraded' p33712 asS'donate' p33713 (lp33714 S'donates' p33715 aS'donating' p33716 aS'donated' p33717 aS'donated' p33718 asS'debag' p33719 (lp33720 S'debags' p33721 aS'debagging' p33722 aS'debagged' p33723 aS'debagged' p33724 asS'concatenate' p33725 (lp33726 S'concatenates' p33727 aS'concatenating' p33728 aS'concatenated' p33729 aS'concatenated' p33730 asS'rosin' p33731 (lp33732 S'rosins' p33733 aS'rosining' p33734 aS'rosined' p33735 aS'rosined' p33736 asS'complement' p33737 (lp33738 S'complements' p33739 aS'complementing' p33740 aS'complemented' p33741 aS'complemented' p33742 asS'silver-plate' p33743 (lp33744 S'silver-plates' p33745 aS'silver-plating' p33746 aS'silver-plated' p33747 aS'silver-plated' p33748 asS'parbuckle' p33749 (lp33750 S'parbuckles' p33751 aS'parbuckling' p33752 aS'parbuckled' p33753 aS'parbuckled' p33754 asS'barrack' p33755 (lp33756 S'barracks' p33757 aS'barracking' p33758 aS'barracked' p33759 aS'barracked' p33760 asS'scuttle' p33761 (lp33762 S'scuttles' p33763 aS'scuttling' p33764 aS'scuttled' p33765 aS'scuttled' p33766 asS'premise' p33767 (lp33768 S'premises' p33769 aS'premising' p33770 aS'premised' p33771 aS'premised' p33772 asS'poniard' p33773 (lp33774 S'poniards' p33775 aS'poniarding' p33776 aS'poniarded' p33777 aS'poniarded' p33778 asS'reverse' p33779 (lp33780 S'reverses' p33781 aS'reversing' p33782 aS'reversed' p33783 aS'reversed' p33784 asS'systemize' p33785 (lp33786 S'systemizes' p33787 aS'systemizing' p33788 aS'systemized' p33789 aS'systemized' p33790 asS'scythe' p33791 (lp33792 S'scythes' p33793 aS'scything' p33794 aS'scythed' p33795 aS'scythed' p33796 asS'spume' p33797 (lp33798 S'spumes' p33799 aS'spuming' p33800 aS'spumed' p33801 aS'spumed' p33802 asS'syllable' p33803 (lp33804 S'syllables' p33805 aS'syllabling' p33806 aS'syllabled' p33807 aS'syllabled' p33808 asS'confabulate' p33809 (lp33810 S'confabulates' p33811 aS'confabulating' p33812 aS'confabulated' p33813 aS'confabulated' p33814 asS'consume' p33815 (lp33816 S'consumes' p33817 aS'consuming' p33818 aS'consumed' p33819 aS'consumed' p33820 asS'point' p33821 (lp33822 S'points' p33823 aS'pointing' p33824 aS'pointed' p33825 aS'pointed' p33826 asS'dwindle' p33827 (lp33828 S'dwindles' p33829 aS'dwindling' p33830 aS'dwindled' p33831 aS'dwindled' p33832 asS'smother' p33833 (lp33834 S'smothers' p33835 aS'smothering' p33836 aS'smothered' p33837 aS'smothered' p33838 asS'poind' p33839 (lp33840 S'poinds' p33841 aS'poinding' p33842 aS'poinded' p33843 aS'poinded' p33844 asS'wrick' p33845 (lp33846 S'wricks' p33847 aS'wricking' p33848 aS'wricked' p33849 aS'wricked' p33850 asS'toddle' p33851 (lp33852 S'toddles' p33853 aS'toddling' p33854 aS'toddled' p33855 aS'toddled' p33856 asS'civilize' p33857 (lp33858 S'civilizes' p33859 aS'civilizing' p33860 aS'civilized' p33861 aS'civilized' p33862 asS'raise' p33863 (lp33864 S'raises' p33865 aS'raising' p33866 aS'raised' p33867 aS'raised' p33868 asS'dovetail' p33869 (lp33870 S'dovetails' p33871 aS'dovetailing' p33872 aS'dovetailed' p33873 aS'dovetailed' p33874 asS'smote' p33875 (lp33876 S'smotes' p33877 aS'smoting' p33878 aS'smoted' p33879 aS'smoted' p33880 asS'talc' p33881 (lp33882 S'talcs' p33883 aS'talcking' p33884 aS'talcked' p33885 aS'talcked' p33886 asS'create' p33887 (lp33888 S'creates' p33889 aS'creating' p33890 aS'created' p33891 aS'created' p33892 asS'appall' p33893 (lp33894 S'appals' p33895 aS'appalling' p33896 aS'appalled' p33897 aS'appalled' p33898 asS'volley' p33899 (lp33900 S'volleys' p33901 aS'volleying' p33902 aS'volleyed' p33903 aS'volleyed' p33904 asS'gat' p33905 (lp33906 S'gats' p33907 aS'gating' p33908 aS'gated' p33909 aS'gated' p33910 asS'gas' p33911 (lp33912 S'gasses' p33913 aS'gassing' p33914 aS'gassed' p33915 aS'gassed' p33916 asS'misgive' p33917 (lp33918 S'misgives' p33919 aS'misgiving' p33920 aS'misgave' p33921 aS'misgiven' p33922 asS'gam' p33923 (lp33924 S'gams' p33925 aS'gamming' p33926 aS'gammed' p33927 aS'gammed' p33928 asS'jellify' p33929 (lp33930 S'jellifies' p33931 aS'jellifying' p33932 aS'jellified' p33933 aS'jellified' p33934 asS'formularize' p33935 (lp33936 S'formularizes' p33937 aS'formularizing' p33938 aS'formularized' p33939 aS'formularized' p33940 asS'undercharge' p33941 (lp33942 S'undercharges' p33943 aS'undercharging' p33944 aS'undercharged' p33945 aS'undercharged' p33946 asS'gag' p33947 (lp33948 S'gags' p33949 aS'gagging' p33950 aS'gagged' p33951 aS'gagged' p33952 asS'gad' p33953 (lp33954 S'gads' p33955 aS'gadding' p33956 aS'gadded' p33957 aS'gadded' p33958 asS'chatter' p33959 (lp33960 S'chatters' p33961 aS'chattering' p33962 aS'chattered' p33963 aS'chattered' p33964 asS'gab' p33965 (lp33966 S'gabs' p33967 aS'gabbing' p33968 aS'gabbed' p33969 aS'gabbed' p33970 asS'cognize' p33971 (lp33972 S'cognizes' p33973 aS'cognizing' p33974 aS'cognized' p33975 aS'cognized' p33976 asS'straiten' p33977 (lp33978 S'straitens' p33979 aS'straitening' p33980 aS'straitened' p33981 aS'straitened' p33982 asS'pierce' p33983 (lp33984 S'pierces' p33985 aS'piercing' p33986 aS'pierced' p33987 aS'pierced' p33988 asS'fur' p33989 (lp33990 S'furs' p33991 aS'furring' p33992 aS'furred' p33993 aS'furred' p33994 asS'dehypnotize' p33995 (lp33996 S'dehypnotizes' p33997 aS'dehypnotizing' p33998 aS'dehypnotized' p33999 aS'dehypnotized' p34000 asS'bill' p34001 (lp34002 S'bills' p34003 aS'billing' p34004 aS'billed' p34005 aS'billed' p34006 asS'bilk' p34007 (lp34008 S'bilks' p34009 aS'bilking' p34010 aS'bilked' p34011 aS'bilked' p34012 asS'horseshoe' p34013 (lp34014 S'horseshoes' p34015 aS'horseshoeing' p34016 aS'horseshoed' p34017 aS'horseshoed' p34018 asS'fun' p34019 (lp34020 S'funs' p34021 aS'funning' p34022 aS'funned' p34023 aS'funned' p34024 asS'astrict' p34025 (lp34026 S'astricts' p34027 aS'astricting' p34028 aS'astricted' p34029 aS'astricted' p34030 asS'approximate' p34031 (lp34032 S'approximates' p34033 aS'approximating' p34034 aS'approximated' p34035 aS'approximated' p34036 asS'escheat' p34037 (lp34038 S'escheats' p34039 aS'escheating' p34040 aS'escheated' p34041 aS'escheated' p34042 asS'astound' p34043 (lp34044 S'astounds' p34045 aS'astounding' p34046 aS'astounded' p34047 aS'astounded' p34048 asS'echelon' p34049 (lp34050 S'echelons' p34051 aS'echeloning' p34052 aS'echeloned' p34053 aS'echeloned' p34054 asS'calender' p34055 (lp34056 S'calenders' p34057 aS'calendering' p34058 aS'calendered' p34059 aS'calendered' p34060 asS'truncheon' p34061 (lp34062 S'truncheons' p34063 aS'truncheoning' p34064 aS'truncheoned' p34065 aS'truncheoned' p34066 asS'enervate' p34067 (lp34068 S'enervates' p34069 aS'enervating' p34070 aS'enervated' p34071 aS'enervated' p34072 asS'solemnify' p34073 (lp34074 S'solemnifies' p34075 aS'solemnifying' p34076 aS'solemnified' p34077 aS'solemnified' p34078 asS'commutate' p34079 (lp34080 S'commutates' p34081 aS'commutating' p34082 aS'commutated' p34083 aS'commutated' p34084 asS'regulate' p34085 (lp34086 S'regulates' p34087 aS'regulating' p34088 aS'regulated' p34089 aS'regulated' p34090 asS'irradiate' p34091 (lp34092 S'irradiates' p34093 aS'irradiating' p34094 aS'irradiated' p34095 aS'irradiated' p34096 asS'ingrain' p34097 (lp34098 S'ingrains' p34099 aS'ingraining' p34100 aS'ingrained' p34101 aS'ingrained' p34102 asS'seduce' p34103 (lp34104 S'seduces' p34105 aS'seducing' p34106 aS'seduced' p34107 aS'seduced' p34108 asS'externalize' p34109 (lp34110 S'externalizes' p34111 aS'externalizing' p34112 aS'externalized' p34113 aS'externalized' p34114 asS'discourse' p34115 (lp34116 S'discourses' p34117 aS'discoursing' p34118 aS'discoursed' p34119 aS'discoursed' p34120 asS'republicanize' p34121 (lp34122 S'republicanizes' p34123 aS'republicanizing' p34124 aS'republicanized' p34125 aS'republicanized' p34126 asS'emphasize' p34127 (lp34128 S'emphasizes' p34129 aS'emphasizing' p34130 aS'emphasized' p34131 aS'emphasized' p34132 asS'bristle' p34133 (lp34134 S'bristles' p34135 aS'bristling' p34136 aS'bristled' p34137 aS'bristled' p34138 asS'ray' p34139 (lp34140 S'rays' p34141 aS'raying' p34142 aS'rayed' p34143 aS'rayed' p34144 asS'relativize' p34145 (lp34146 S'relativizes' p34147 aS'relativizing' p34148 aS'relativized' p34149 aS'relativized' p34150 asS'windmill' p34151 (lp34152 S'windmills' p34153 aS'windmilling' p34154 aS'windmilled' p34155 aS'windmilled' p34156 asS'contravene' p34157 (lp34158 S'contravenes' p34159 aS'contravening' p34160 aS'contravened' p34161 aS'contravened' p34162 asS'equiponderate' p34163 (lp34164 S'equiponderates' p34165 aS'equiponderating' p34166 aS'equiponderated' p34167 aS'equiponderated' p34168 asS'itch' p34169 (lp34170 S'itches' p34171 aS'itching' p34172 aS'itched' p34173 aS'itched' p34174 asS'kill' p34175 (lp34176 S'kills' p34177 aS'killing' p34178 aS'killed' p34179 aS'killed' p34180 asS'flurry' p34181 (lp34182 S'flurries' p34183 aS'flurrying' p34184 aS'flurried' p34185 aS'flurried' p34186 asS'purpose' p34187 (lp34188 S'purposes' p34189 aS'purposing' p34190 aS'purposed' p34191 aS'purposed' p34192 asS'aggregate' p34193 (lp34194 S'aggregates' p34195 aS'aggregating' p34196 aS'aggregated' p34197 aS'aggregated' p34198 asS'unveil' p34199 (lp34200 S'unveils' p34201 aS'unveiling' p34202 aS'unveiled' p34203 aS'unveiled' p34204 asS'swish' p34205 (lp34206 S'swishes' p34207 aS'swishing' p34208 aS'swished' p34209 aS'swished' p34210 asS'finesse' p34211 (lp34212 S'finesses' p34213 aS'finessing' p34214 aS'finessed' p34215 aS'finessed' p34216 asS'supersede' p34217 (lp34218 S'supersedes' p34219 aS'superseding' p34220 aS'superseded' p34221 aS'superseded' p34222 asS'rearm' p34223 (lp34224 S'rearms' p34225 aS'rearming' p34226 aS'rearmed' p34227 aS'rearmed' p34228 asS'unlay' p34229 (lp34230 S'unlays' p34231 aS'unlaying' p34232 aS'unlaid' p34233 aS'unlaid' p34234 asS'decuple' p34235 (lp34236 S'decuples' p34237 aS'decupling' p34238 aS'decupled' p34239 aS'decupled' p34240 asS'reard' p34241 (lp34242 S'reards' p34243 aS'rearding' p34244 aS'rearded' p34245 aS'rearded' p34246 asS'appertain' p34247 (lp34248 S'appertains' p34249 aS'appertaining' p34250 aS'appertained' p34251 aS'appertained' p34252 asS'withdraw' p34253 (lp34254 S'withdraws' p34255 aS'withdrawing' p34256 aS'withdrew' p34257 aS'withdrawn' p34258 asS'toil' p34259 (lp34260 S'toils' p34261 aS'toiling' p34262 aS'toiled' p34263 aS'toiled' p34264 asS'recant' p34265 (lp34266 S'recants' p34267 aS'recanting' p34268 aS'recanted' p34269 aS'recanted' p34270 asS'spend' p34271 (lp34272 S'spends' p34273 aS'spending' p34274 aS'spent' p34275 aS'spent' p34276 asS'howl' p34277 (lp34278 S'howls' p34279 aS'howling' p34280 aS'howled' p34281 aS'howled' p34282 asS'darn' p34283 (lp34284 S'darns' p34285 aS'darning' p34286 aS'darned' p34287 aS'darned' p34288 asS'segregate' p34289 (lp34290 S'segregates' p34291 aS'segregating' p34292 aS'segregated' p34293 aS'segregated' p34294 asS'shape' p34295 (lp34296 S'shapes' p34297 aS'shaping' p34298 aS'shaped' p34299 aS'shaped' p34300 asS'disendow' p34301 (lp34302 S'disendows' p34303 aS'disendowing' p34304 aS'disendowed' p34305 aS'disendowed' p34306 asS'timber' p34307 (lp34308 S'timbers' p34309 aS'timbering' p34310 aS'timbered' p34311 aS'timbered' p34312 asS'discipline' p34313 (lp34314 S'disciplines' p34315 aS'disciplining' p34316 aS'disciplined' p34317 aS'disciplined' p34318 asS'cut' p34319 (lp34320 S'cuts' p34321 aS'cutting' p34322 aS'cut' p34323 aS'cut' p34324 asS'cup' p34325 (lp34326 S'cups' p34327 aS'cupping' p34328 aS'cupped' p34329 aS'cupped' p34330 asS'alternate' p34331 (lp34332 S'alternates' p34333 aS'alternating' p34334 aS'alternated' p34335 aS'alternated' p34336 asS'cue' p34337 (lp34338 S'cues' p34339 aS'cuing' p34340 aS'cued' p34341 aS'cued' p34342 asS'misshape' p34343 (lp34344 S'misshapes' p34345 aS'misshaping' p34346 aS'misshaped' p34347 aS'misshaped' p34348 asS'cub' p34349 (lp34350 S'cubs' p34351 aS'cubbing' p34352 aS'cubbed' p34353 aS'cubbed' p34354 asS'caway' p34355 (lp34356 S'caways' p34357 aS'cawaying' p34358 aS'cawayed' p34359 aS'cawayed' p34360 asS'misdeal' p34361 (lp34362 S'misdeals' p34363 aS'misdealing' p34364 aS'misdealt' p34365 aS'misdealt' p34366 asS'squawk' p34367 (lp34368 S'squawks' p34369 aS'squawking' p34370 aS'squawked' p34371 aS'squawked' p34372 asS'over-simplify' p34373 (lp34374 S'over-simplifies' p34375 aS'over-simplifying' p34376 ag28997 aS'over-simplified' p34377 asS'bid' p34378 (lp34379 S'bids' p34380 aS'bidding' p34381 aS'bid' p34382 aS'bidden' p34383 asS'Mohammedanize' p34384 (lp34385 S'Mohammedanizes' p34386 aS'Mohammedanizing' p34387 aS'Mohammedanized' p34388 aS'Mohammedanized' p34389 asS'displace' p34390 (lp34391 S'displaces' p34392 aS'displacing' p34393 aS'displaced' p34394 aS'displaced' p34395 asS'redeem' p34396 (lp34397 S'redeems' p34398 aS'redeeming' p34399 aS'redeemed' p34400 aS'redeemed' p34401 asS'divagate' p34402 (lp34403 S'divagates' p34404 aS'divagating' p34405 aS'divagated' p34406 aS'divagated' p34407 asS'decaffeinate' p34408 (lp34409 S'decaffeinates' p34410 aS'decaffeinating' p34411 aS'decaffeinated' p34412 aS'decaffeinated' p34413 asS'bit' p34414 (lp34415 S'bits' p34416 aS'bitting' p34417 aS'bitted' p34418 aS'bitted' p34419 asS'coverup' p34420 (lp34421 S'coversup' p34422 aS'coveringup' p34423 aS'coveredup' p34424 aS'coveredup' p34425 asS'pollinate' p34426 (lp34427 S'pollinates' p34428 aS'pollinating' p34429 aS'pollinated' p34430 aS'pollinated' p34431 asS'knock' p34432 (lp34433 S'knocks' p34434 aS'knocking' p34435 aS'knocked' p34436 aS'knocked' p34437 asS'phlebotomize' p34438 (lp34439 S'phlebotomizes' p34440 aS'phlebotomizing' p34441 aS'phlebotomized' p34442 aS'phlebotomized' p34443 asS'blemish' p34444 (lp34445 S'blemishes' p34446 aS'blemishing' p34447 aS'blemished' p34448 aS'blemished' p34449 asS'miff' p34450 (lp34451 S'miffs' p34452 aS'miffing' p34453 aS'miffed' p34454 aS'miffed' p34455 asS'retake' p34456 (lp34457 S'retakes' p34458 aS'retaking' p34459 aS'retook' p34460 aS'retaken' p34461 asS'glove' p34462 (lp34463 S'gloves' p34464 aS'gloving' p34465 aS'gloved' p34466 aS'gloved' p34467 asS'flux' p34468 (lp34469 S'fluxes' p34470 aS'fluxing' p34471 aS'fluxed' p34472 aS'fluxed' p34473 asS'isomerize' p34474 (lp34475 S'isomerizes' p34476 aS'isomerizing' p34477 aS'isomerized' p34478 aS'isomerized' p34479 asS'machinegun' p34480 (lp34481 S'machineguns' p34482 aS'machineguning' p34483 aS'machineguned' p34484 aS'machineguned' p34485 asS'transgress' p34486 (lp34487 S'transgresses' p34488 aS'transgressing' p34489 aS'transgressed' p34490 aS'transgressed' p34491 asS'disconsider' p34492 (lp34493 S'disconsiders' p34494 aS'disconsidering' p34495 aS'disconsidered' p34496 aS'disconsidered' p34497 asS'rede' p34498 (lp34499 S'redes' p34500 aS'reding' p34501 aS'reded' p34502 aS'reded' p34503 asS'redd' p34504 (lp34505 S'redds' p34506 aS'redd' p34507 aS'redd' p34508 asS'back' p34509 (lp34510 S'backs' p34511 aS'backing' p34512 aS'backed' p34513 aS'backed' p34514 asS'impeach' p34515 (lp34516 S'impeaches' p34517 aS'impeaching' p34518 aS'impeached' p34519 aS'impeached' p34520 asS'accelerate' p34521 (lp34522 S'accelerates' p34523 aS'accelerating' p34524 aS'accelerated' p34525 aS'accelerated' p34526 asS'mirror' p34527 (lp34528 S'mirrors' p34529 aS'mirroring' p34530 aS'mirrored' p34531 aS'mirrored' p34532 asS'candle' p34533 (lp34534 S'candles' p34535 aS'candling' p34536 aS'candled' p34537 aS'candled' p34538 asS'scrump' p34539 (lp34540 S'scrumps' p34541 aS'scrumping' p34542 aS'scrumped' p34543 aS'scrumped' p34544 asS'scald' p34545 (lp34546 S'scalds' p34547 aS'scalding' p34548 aS'scalded' p34549 aS'scalded' p34550 asS'scale' p34551 (lp34552 S'scales' p34553 aS'scaling' p34554 aS'scaled' p34555 aS'scaled' p34556 asS'reinstitute' p34557 (lp34558 S'reinstitutes' p34559 aS'reinstituting' p34560 aS'reinstituted' p34561 aS'reinstituted' p34562 asS'pet' p34563 (lp34564 S'pets' p34565 aS'petting' p34566 aS'petted' p34567 aS'petted' p34568 asS'pelt' p34569 (lp34570 S'pelts' p34571 aS'pelting' p34572 aS'pelted' p34573 aS'pelted' p34574 asS'pep' p34575 (lp34576 S'peps' p34577 aS'pepping' p34578 aS'pepped' p34579 aS'pepped' p34580 asS'pen' p34581 (lp34582 S'pens' p34583 aS'penning' p34584 aS'pent' p34585 aS'penned' p34586 asS'eliminate' p34587 (lp34588 S'eliminates' p34589 aS'eliminating' p34590 aS'eliminated' p34591 aS'eliminated' p34592 asS'scalp' p34593 (lp34594 S'scalps' p34595 aS'scalping' p34596 aS'scalped' p34597 aS'scalped' p34598 asS'lard' p34599 (lp34600 S'lards' p34601 aS'larding' p34602 aS'larded' p34603 aS'larded' p34604 asS'lark' p34605 (lp34606 S'larks' p34607 aS'larking' p34608 aS'larked' p34609 aS'larked' p34610 asS'pee' p34611 (lp34612 S'pees' p34613 aS'peeing' p34614 aS'peed' p34615 aS'peed' p34616 asS'peg' p34617 (lp34618 S'pegs' p34619 aS'pegging' p34620 aS'pegged' p34621 aS'pegged' p34622 asS'invade' p34623 (lp34624 S'invades' p34625 aS'invading' p34626 aS'invaded' p34627 aS'invaded' p34628 asS'fourflush' p34629 (lp34630 S'fourflushes' p34631 aS'fourflushing' p34632 aS'fourflushed' p34633 aS'fourflushed' p34634 asS'corrival' p34635 (lp34636 S'corrivals' p34637 aS'corrivaling' p34638 aS'corrivaled' p34639 aS'corrivaled' p34640 asS'tut-tut' p34641 (lp34642 S'tut-tuts' p34643 aS'tut-tutting' p34644 aS'tut-tutted' p34645 aS'tut-tutted' p34646 asS'militate' p34647 (lp34648 S'militates' p34649 aS'militating' p34650 aS'militated' p34651 aS'militated' p34652 asS'kockelsch' p34653 (lp34654 S'kockelsches' p34655 aS'kockelsching' p34656 aS'kockelsched' p34657 aS'kockelsched' p34658 asS'intellectualize' p34659 (lp34660 S'intellectualizes' p34661 aS'intellectualizing' p34662 aS'intellectualized' p34663 aS'intellectualized' p34664 asS'optimize' p34665 (lp34666 S'optimizes' p34667 aS'optimizing' p34668 aS'optimized' p34669 aS'optimized' p34670 asS'snoop' p34671 (lp34672 S'snoops' p34673 aS'snooping' p34674 aS'snooped' p34675 aS'snooped' p34676 asS'hypnotize' p34677 (lp34678 S'hypnotizes' p34679 aS'hypnotizing' p34680 aS'hypnotized' p34681 aS'hypnotized' p34682 asS'preconize' p34683 (lp34684 S'preconizes' p34685 aS'preconizing' p34686 aS'preconized' p34687 aS'preconized' p34688 asS'bluster' p34689 (lp34690 S'blusters' p34691 aS'blustering' p34692 aS'blustered' p34693 aS'blustered' p34694 asS'alkalify' p34695 (lp34696 S'alkalifies' p34697 aS'alkalifying' p34698 aS'alkalified' p34699 aS'alkalified' p34700 asS'ebonize' p34701 (lp34702 S'ebonizes' p34703 aS'ebonizing' p34704 aS'ebonized' p34705 aS'ebonized' p34706 asS'jimmy' p34707 (lp34708 S'jimmies' p34709 aS'jimmying' p34710 aS'jimmied' p34711 aS'jimmied' p34712 asS'sniffle' p34713 (lp34714 S'sniffles' p34715 aS'sniffling' p34716 aS'sniffled' p34717 aS'sniffled' p34718 asS'depose' p34719 (lp34720 S'deposes' p34721 aS'deposing' p34722 aS'deposed' p34723 aS'deposed' p34724 asS'tiff' p34725 (lp34726 S'tiffs' p34727 aS'tiffing' p34728 aS'tiffed' p34729 aS'tiffed' p34730 asS'clack' p34731 (lp34732 S'clacks' p34733 aS'clacking' p34734 aS'clacked' p34735 aS'clacked' p34736 asS'epilate' p34737 (lp34738 S'epilates' p34739 aS'epilating' p34740 aS'epilated' p34741 aS'epilated' p34742 asS'lesson' p34743 (lp34744 S'lessons' p34745 aS'lessoning' p34746 aS'lessoned' p34747 aS'lessoned' p34748 asS'dispend' p34749 (lp34750 S'dispends' p34751 aS'dispending' p34752 aS'dispended' p34753 aS'dispended' p34754 asS'vamoose' p34755 (lp34756 S'vamooses' p34757 aS'vamoosing' p34758 aS'vamoosed' p34759 aS'vamoosed' p34760 asS'jockey' p34761 (lp34762 S'jockeys' p34763 aS'jockeying' p34764 aS'jockeyed' p34765 aS'jockeyed' p34766 asS'emblaze' p34767 (lp34768 S'emblazes' p34769 aS'emblazing' p34770 aS'emblazed' p34771 aS'emblazed' p34772 asS'scrimshank' p34773 (lp34774 S'scrimshanks' p34775 aS'scrimshanking' p34776 aS'scrimshanked' p34777 aS'scrimshanked' p34778 asS'overpower' p34779 (lp34780 S'overpowers' p34781 aS'overpowering' p34782 aS'overpowered' p34783 aS'overpowered' p34784 asS'debilitate' p34785 (lp34786 S'debilitates' p34787 aS'debilitating' p34788 aS'debilitated' p34789 aS'debilitated' p34790 asS'forward' p34791 (lp34792 S'forwards' p34793 aS'forwarding' p34794 aS'forwarded' p34795 aS'forwarded' p34796 asS'prostitute' p34797 (lp34798 S'prostitutes' p34799 aS'prostituting' p34800 aS'prostituted' p34801 aS'prostituted' p34802 asS'invite' p34803 (lp34804 S'invites' p34805 aS'inviting' p34806 aS'invited' p34807 aS'invited' p34808 asS'pronounce' p34809 (lp34810 S'pronounces' p34811 aS'pronouncing' p34812 aS'pronounced' p34813 aS'pronounced' p34814 asS'jaga' p34815 (lp34816 S'jagas' p34817 aS'jagaing' p34818 aS'jagaed' p34819 aS'jagaed' p34820 asS'jagg' p34821 (lp34822 S'jags' p34823 aS'jagging' p34824 aS'jagged' p34825 aS'jagged' p34826 asS'fankle' p34827 (lp34828 S'fankles' p34829 aS'fankling' p34830 aS'fankled' p34831 aS'fankled' p34832 asS'cloud' p34833 (lp34834 S'clouds' p34835 aS'clouding' p34836 aS'clouded' p34837 aS'clouded' p34838 asS'testdrive' p34839 (lp34840 S'testdrives' p34841 aS'testdriving' p34842 aS'testdrove' p34843 aS'testdriven' p34844 asS'discomfit' p34845 (lp34846 S'discomfits' p34847 aS'discomfiting' p34848 aS'discomfited' p34849 aS'discomfited' p34850 asS'gollop' p34851 (lp34852 S'gollops' p34853 aS'golloping' p34854 aS'golloped' p34855 aS'golloped' p34856 asS'carburet' p34857 (lp34858 S'carburets' p34859 aS'carburetting' p34860 aS'carburetted' p34861 aS'carburetted' p34862 asS'groove' p34863 (lp34864 S'grooves' p34865 aS'grooving' p34866 aS'grooved' p34867 aS'grooved' p34868 asS'repulse' p34869 (lp34870 S'repulses' p34871 aS'repulsing' p34872 aS'repulsed' p34873 aS'repulsed' p34874 asS'partition' p34875 (lp34876 S'partitions' p34877 aS'partitioning' p34878 aS'partitioned' p34879 aS'partitioned' p34880 asS'metal' p34881 (lp34882 S'metals' p34883 aS'metaling' p34884 aS'metaled' p34885 aS'metaled' p34886 asS'foregather' p34887 (lp34888 S'foregathers' p34889 aS'foregathering' p34890 aS'foregathered' p34891 aS'foregathered' p34892 asS'deprive' p34893 (lp34894 S'deprives' p34895 aS'depriving' p34896 aS'deprived' p34897 aS'deprived' p34898 asS'curd' p34899 (lp34900 S'curds' p34901 aS'curding' p34902 aS'curded' p34903 aS'curded' p34904 asS'cure' p34905 (lp34906 S'cures' p34907 aS'curing' p34908 aS'cured' p34909 aS'cured' p34910 asS'curb' p34911 (lp34912 S'curbs' p34913 aS'curbing' p34914 aS'curbed' p34915 aS'curbed' p34916 asS'curl' p34917 (lp34918 S'curls' p34919 aS'curling' p34920 aS'curled' p34921 aS'curled' p34922 asS'antiquate' p34923 (lp34924 S'antiquates' p34925 aS'antiquating' p34926 aS'antiquated' p34927 aS'antiquated' p34928 asS'prevail' p34929 (lp34930 S'prevails' p34931 aS'prevailing' p34932 aS'prevailed' p34933 aS'prevailed' p34934 asS'furbelow' p34935 (lp34936 S'furbelows' p34937 aS'furbelowing' p34938 aS'furbelowed' p34939 aS'furbelowed' p34940 asS'adjudicate' p34941 (lp34942 S'adjudicates' p34943 aS'adjudicating' p34944 aS'adjudicated' p34945 aS'adjudicated' p34946 asS'sterilize' p34947 (lp34948 S'sterilizes' p34949 aS'sterilizing' p34950 aS'sterilized' p34951 aS'sterilized' p34952 asS'excrete' p34953 (lp34954 S'excretes' p34955 aS'excreting' p34956 aS'excreted' p34957 aS'excreted' p34958 asS'assassinate' p34959 (lp34960 S'assassinates' p34961 aS'assassinating' p34962 aS'assassinated' p34963 aS'assassinated' p34964 asS'confine' p34965 (lp34966 S'confines' p34967 aS'confining' p34968 aS'confined' p34969 aS'confined' p34970 asS'quaff' p34971 (lp34972 S'quaffs' p34973 aS'quaffing' p34974 aS'quaffed' p34975 aS'quaffed' p34976 asS'cellar' p34977 (lp34978 S'cellars' p34979 aS'cellaring' p34980 aS'cellared' p34981 aS'cellared' p34982 asS'lend' p34983 (lp34984 S'lends' p34985 aS'lending' p34986 aS'lent' p34987 aS'lent' p34988 asS'cater' p34989 (lp34990 S'caters' p34991 aS'catering' p34992 aS'catered' p34993 aS'catered' p34994 asS'fishes' p34995 (lp34996 S'fishes' p34997 aS'fishing' p34998 aS'fishesed' p34999 aS'fishesed' p35000 asS'desert' p35001 (lp35002 S'deserts' p35003 aS'deserting' p35004 aS'deserted' p35005 aS'deserted' p35006 asS'bedaub' p35007 (lp35008 S'bedaubs' p35009 aS'bedaubing' p35010 aS'bedaubed' p35011 aS'bedaubed' p35012 asS'rinse' p35013 (lp35014 S'rinses' p35015 aS'rinsing' p35016 aS'rinsed' p35017 aS'rinsed' p35018 asS'pussyfoot' p35019 (lp35020 S'pussyfoots' p35021 aS'pussyfooting' p35022 aS'pussyfooted' p35023 aS'pussyfooted' p35024 asS'whang' p35025 (lp35026 S'whangs' p35027 aS'whanging' p35028 aS'whanged' p35029 aS'whanged' p35030 asS'wrangle' p35031 (lp35032 S'wrangles' p35033 aS'wrangling' p35034 aS'wrangled' p35035 aS'wrangled' p35036 asS'taws' p35037 (lp35038 S'taws' p35039 aS'tawing' p35040 aS'tawed' p35041 aS'tawed' p35042 asS'query' p35043 (lp35044 S'queries' p35045 aS'querying' p35046 aS'queried' p35047 aS'queried' p35048 asS'strew' p35049 (lp35050 S'strews' p35051 aS'strewing' p35052 aS'strewed' p35053 aS'strewn' p35054 asS'liquesce' p35055 (lp35056 S'liquesces' p35057 aS'liquescing' p35058 aS'liquesced' p35059 aS'liquesced' p35060 asS'welter' p35061 (lp35062 S'welters' p35063 aS'weltering' p35064 aS'weltered' p35065 aS'weltered' p35066 asS'compost' p35067 (lp35068 S'composts' p35069 aS'composting' p35070 aS'composted' p35071 aS'composted' p35072 asS'blaze' p35073 (lp35074 S'blazes' p35075 aS'blazing' p35076 aS'blazed' p35077 aS'blazed' p35078 asS'weather' p35079 (lp35080 S'weathers' p35081 aS'weathering' p35082 aS'weathered' p35083 aS'weathered' p35084 asS'gravel' p35085 (lp35086 S'gravels' p35087 aS'gravelling' p35088 aS'gravelled' p35089 aS'gravelled' p35090 asS'brigade' p35091 (lp35092 S'brigades' p35093 aS'brigading' p35094 aS'brigaded' p35095 aS'brigaded' p35096 asS'electrocute' p35097 (lp35098 S'electrocutes' p35099 aS'electrocuting' p35100 aS'electrocuted' p35101 aS'electrocuted' p35102 asS'assay' p35103 (lp35104 S'assays' p35105 aS'assaying' p35106 aS'assayed' p35107 aS'assayed' p35108 asS'implore' p35109 (lp35110 S'implores' p35111 aS'imploring' p35112 aS'implored' p35113 aS'implored' p35114 asS'expertize' p35115 (lp35116 S'expertizes' p35117 aS'expertizing' p35118 aS'expertized' p35119 aS'expertized' p35120 asS'accuse' p35121 (lp35122 S'accuses' p35123 aS'accusing' p35124 aS'accused' p35125 aS'accused' p35126 asS'reverberate' p35127 (lp35128 S'reverberates' p35129 aS'reverberating' p35130 aS'reverberated' p35131 aS'reverberated' p35132 asS'thwack' p35133 (lp35134 S'thwacks' p35135 aS'thwacking' p35136 aS'thwacked' p35137 aS'thwacked' p35138 asS'embay' p35139 (lp35140 S'embays' p35141 aS'embaying' p35142 aS'embayed' p35143 aS'embayed' p35144 asS'arrange' p35145 (lp35146 S'arranges' p35147 aS'arranging' p35148 aS'arranged' p35149 aS'arranged' p35150 asS'homogenize' p35151 (lp35152 S'homogenizes' p35153 aS'homogenizing' p35154 aS'homogenized' p35155 aS'homogenized' p35156 asS'knight' p35157 (lp35158 S'knights' p35159 aS'knighting' p35160 aS'knighted' p35161 aS'knighted' p35162 asS'shock' p35163 (lp35164 S'shocks' p35165 aS'shocking' p35166 aS'shocked' p35167 aS'shocked' p35168 asS'mobilize' p35169 (lp35170 S'mobilizes' p35171 aS'mobilizing' p35172 aS'mobilized' p35173 aS'mobilized' p35174 asS'refer' p35175 (lp35176 S'refers' p35177 aS'referring' p35178 aS'referred' p35179 aS'referred' p35180 asS'ride' p35181 (lp35182 S'rides' p35183 aS'riding' p35184 aS'rode' p35185 aS'ridden' p35186 asS'buckram' p35187 (lp35188 S'buckrams' p35189 aS'buckraming' p35190 aS'buckramed' p35191 aS'buckramed' p35192 asS'crow' p35193 (lp35194 S'crows' p35195 aS'crowing' p35196 aS'crowed' p35197 aS'crowed' p35198 asS'anesthetize' p35199 (lp35200 S'anesthetizes' p35201 aS'anesthetizing' p35202 aS'anesthetized' p35203 aS'anesthetized' p35204 asS'crop' p35205 (lp35206 S'crops' p35207 aS'cropping' p35208 aS'cropped' p35209 aS'cropped' p35210 asS'undergo' p35211 (lp35212 S'undergoes' p35213 aS'undergoing' p35214 aS'underwent' p35215 aS'undergone' p35216 asS'prate' p35217 (lp35218 S'prates' p35219 aS'prating' p35220 aS'prated' p35221 aS'prated' p35222 asS'append' p35223 (lp35224 S'appends' p35225 aS'appending' p35226 aS'appended' p35227 aS'appended' p35228 asS'decontaminate' p35229 (lp35230 S'decontaminates' p35231 aS'decontaminating' p35232 aS'decontaminated' p35233 aS'decontaminated' p35234 asS'zest' p35235 (lp35236 S'zests' p35237 aS'zesting' p35238 aS'zested' p35239 aS'zested' p35240 asS'speckle' p35241 (lp35242 S'speckles' p35243 aS'speckling' p35244 aS'speckled' p35245 aS'speckled' p35246 asS'tambour' p35247 (lp35248 S'tambours' p35249 aS'tambouring' p35250 aS'tamboured' p35251 aS'tamboured' p35252 asS'paddle' p35253 (lp35254 S'paddles' p35255 aS'paddling' p35256 aS'paddled' p35257 aS'paddled' p35258 asS'access' p35259 (lp35260 S'accesses' p35261 aS'accessing' p35262 aS'accessed' p35263 aS'accessed' p35264 asS'lumber' p35265 (lp35266 S'lumbers' p35267 aS'lumbering' p35268 aS'lumbered' p35269 aS'lumbered' p35270 asS'exercise' p35271 (lp35272 S'exercises' p35273 aS'exercising' p35274 aS'exercised' p35275 aS'exercised' p35276 asS'body' p35277 (lp35278 S'bodies' p35279 aS'bodying' p35280 aS'bodied' p35281 aS'bodied' p35282 asS'exchange' p35283 (lp35284 S'exchanges' p35285 aS'exchanging' p35286 aS'exchanged' p35287 aS'exchanged' p35288 asS'sprung' p35289 (lp35290 S'sprungs' p35291 aS'sprunging' p35292 aS'sprunged' p35293 aS'sprunged' p35294 asS'intercept' p35295 (lp35296 S'intercepts' p35297 aS'intercepting' p35298 aS'intercepted' p35299 aS'intercepted' p35300 asS'sink' p35301 (lp35302 S'sinks' p35303 aS'sinking' p35304 aS'sunk' p35305 aS'sunken' p35306 asS'poleax' p35307 (lp35308 S'poleaxes' p35309 aS'poleaxing' p35310 aS'poleaxed' p35311 aS'poleaxed' p35312 asS'dissuade' p35313 (lp35314 S'dissuades' p35315 aS'dissuading' p35316 aS'dissuaded' p35317 aS'dissuaded' p35318 asS'sing' p35319 (lp35320 S'sings' p35321 aS'singing' p35322 aS'sung' p35323 aS'sung' p35324 asS'abnegate' p35325 (lp35326 S'abnegates' p35327 aS'abnegating' p35328 aS'abnegated' p35329 aS'abnegated' p35330 asS'bode' p35331 (lp35332 S'bodes' p35333 aS'boding' p35334 aS'boded' p35335 aS'boded' p35336 asS'incinerate' p35337 (lp35338 S'incinerates' p35339 aS'incinerating' p35340 aS'incinerated' p35341 aS'incinerated' p35342 asS'cere' p35343 (lp35344 S'ceres' p35345 aS'cering' p35346 aS'cered' p35347 aS'cered' p35348 asS'resurrect' p35349 (lp35350 S'resurrects' p35351 aS'resurrecting' p35352 aS'resurrected' p35353 aS'resurrected' p35354 asS'crystallize' p35355 (lp35356 S'crystallizes' p35357 aS'crystallizing' p35358 aS'crystallized' p35359 aS'crystallized' p35360 asS'implement' p35361 (lp35362 S'implements' p35363 aS'implementing' p35364 aS'implemented' p35365 aS'implemented' p35366 asS'honor' p35367 (lp35368 S'honors' p35369 aS'honoring' p35370 aS'honored' p35371 aS'honored' p35372 asS'abominate' p35373 (lp35374 S'abominates' p35375 aS'abominating' p35376 aS'abominated' p35377 aS'abominated' p35378 asS'limp' p35379 (lp35380 S'limps' p35381 aS'limping' p35382 aS'limped' p35383 aS'limped' p35384 asS'uprear' p35385 (lp35386 S'uprears' p35387 aS'uprearing' p35388 aS'upreared' p35389 aS'upreared' p35390 asS'egress' p35391 (lp35392 S'egresses' p35393 aS'egressing' p35394 aS'egressed' p35395 aS'egressed' p35396 asS'methought' p35397 (lp35398 S'methoughts' p35399 aS'methoughting' p35400 aS'methoughted' p35401 aS'methoughted' p35402 asS'limb' p35403 (lp35404 S'limbs' p35405 aS'limbing' p35406 aS'limbed' p35407 aS'limbed' p35408 asS'scandal' p35409 (lp35410 S'scandals' p35411 aS'scandaling' p35412 aS'scandaled' p35413 aS'scandaled' p35414 asS'staple' p35415 (lp35416 S'staples' p35417 aS'stapling' p35418 aS'stapled' p35419 aS'stapled' p35420 asS'lime' p35421 (lp35422 S'limes' p35423 aS'liming' p35424 aS'limed' p35425 aS'limed' p35426 asS'superordinate' p35427 (lp35428 S'superordinates' p35429 aS'superordinating' p35430 aS'superordinated' p35431 aS'superordinated' p35432 asS'appliqu_e' p35433 (lp35434 S'appliqu_es' p35435 aS'appliqu_eing' p35436 aS'appliqu_eed' p35437 aS'appliqu_eed' p35438 asS'aviate' p35439 (lp35440 S'aviates' p35441 aS'aviating' p35442 aS'aviated' p35443 aS'aviated' p35444 asS'overbear' p35445 (lp35446 S'overbears' p35447 aS'overbearing' p35448 aS'overbore' p35449 aS'overborne' p35450 asS'charcoal' p35451 (lp35452 S'charcoals' p35453 aS'charcoaling' p35454 aS'charcoaled' p35455 aS'charcoaled' p35456 asS'engender' p35457 (lp35458 S'engenders' p35459 aS'engendering' p35460 aS'engendered' p35461 aS'engendered' p35462 asS'billet' p35463 (lp35464 S'billets' p35465 aS'billeting' p35466 aS'billeted' p35467 aS'billeted' p35468 asS'thatch' p35469 (lp35470 S'thatchs' p35471 aS'thatching' p35472 aS'thatched' p35473 aS'thatched' p35474 asS'trail' p35475 (lp35476 S'trails' p35477 aS'trailing' p35478 aS'trailed' p35479 aS'trailed' p35480 asS'train' p35481 (lp35482 S'trains' p35483 aS'training' p35484 aS'trained' p35485 aS'trained' p35486 asS'coruscate' p35487 (lp35488 S'coruscates' p35489 aS'coruscating' p35490 aS'coruscated' p35491 aS'coruscated' p35492 asS'enslave' p35493 (lp35494 S'enslaves' p35495 aS'enslaving' p35496 aS'enslaved' p35497 aS'enslaved' p35498 asS'supererogate' p35499 (lp35500 S'supererogates' p35501 aS'supererogating' p35502 aS'supererogated' p35503 aS'supererogated' p35504 asS'harvest' p35505 (lp35506 S'harvests' p35507 aS'harvesting' p35508 aS'harvested' p35509 aS'harvested' p35510 asS'account' p35511 (lp35512 S'accounts' p35513 aS'accounting' p35514 aS'accounted' p35515 aS'accounted' p35516 asS'tunnel' p35517 (lp35518 S'tunnels' p35519 aS'tunnelling' p35520 aS'tunnelled' p35521 aS'tunnelled' p35522 asS'sibilate' p35523 (lp35524 S'sibilates' p35525 aS'sibilating' p35526 aS'sibilated' p35527 aS'sibilated' p35528 asS'praise' p35529 (lp35530 S'praises' p35531 aS'praising' p35532 aS'praised' p35533 aS'praised' p35534 asS'smear' p35535 (lp35536 S'smears' p35537 aS'smearing' p35538 aS'smeared' p35539 aS'smeared' p35540 asS'tittletattle' p35541 (lp35542 S'tittletattles' p35543 aS'tittletattling' p35544 aS'tittletattled' p35545 aS'tittletattled' p35546 asS'alit' p35547 (lp35548 S'alit' p35549 aS'alit' p35550 asS'fetch' p35551 (lp35552 S'fetches' p35553 aS'fetching' p35554 aS'fetched' p35555 aS'fetched' p35556 asS'interlope' p35557 (lp35558 S'interlopes' p35559 aS'interloping' p35560 aS'interloped' p35561 aS'interloped' p35562 asS'antedate' p35563 (lp35564 S'antedates' p35565 aS'antedating' p35566 aS'antedated' p35567 aS'antedated' p35568 asS'lamb' p35569 (lp35570 S'lambs' p35571 aS'lambing' p35572 aS'lambed' p35573 aS'lambed' p35574 asS'rumble' p35575 (lp35576 S'rumbles' p35577 aS'rumbling' p35578 aS'rumbled' p35579 aS'rumbled' p35580 asS'lame' p35581 (lp35582 S'lames' p35583 aS'laming' p35584 aS'lamed' p35585 aS'lamed' p35586 asS'inwrap' p35587 (lp35588 S'inwraps' p35589 aS'inwrapping' p35590 aS'inwrapped' p35591 aS'inwrapped' p35592 asS'thrall' p35593 (lp35594 S'thralls' p35595 aS'thralling' p35596 aS'thralled' p35597 aS'thralled' p35598 asS'fete' p35599 (lp35600 S'fetes' p35601 aS'feting' p35602 aS'feted' p35603 aS'feted' p35604 asS'anglicize' p35605 (lp35606 S'anglicizes' p35607 aS'anglicizing' p35608 aS'anglicized' p35609 aS'anglicized' p35610 asS'forest' p35611 (lp35612 sS'occlude' p35613 (lp35614 S'occludes' p35615 aS'occluding' p35616 aS'occluded' p35617 aS'occluded' p35618 asS'stock' p35619 (lp35620 S'stocks' p35621 aS'stocking' p35622 aS'stocked' p35623 aS'stocked' p35624 asS'frag' p35625 (lp35626 S'frags' p35627 aS'fragging' p35628 aS'fragged' p35629 aS'fragged' p35630 asS'spin-dry' p35631 (lp35632 S'spin-dries' p35633 aS'spin-drying' p35634 aS'spin-dried' p35635 aS'spin-dried' p35636 asS'hight' p35637 (lp35638 S'hight' p35639 asS'nullify' p35640 (lp35641 S'nullifies' p35642 aS'nullifying' p35643 aS'nullified' p35644 aS'nullified' p35645 asS'bemire' p35646 (lp35647 S'bemires' p35648 aS'bemiring' p35649 aS'bemired' p35650 aS'bemired' p35651 asS'bluff' p35652 (lp35653 S'bluffs' p35654 aS'bluffing' p35655 aS'bluffed' p35656 aS'bluffed' p35657 asS'frap' p35658 (lp35659 S'fraps' p35660 aS'frapping' p35661 aS'frapped' p35662 aS'frapped' p35663 asS'physic' p35664 (lp35665 S'physics' p35666 aS'physicking' p35667 aS'physicked' p35668 aS'physicked' p35669 asS'succuss' p35670 (lp35671 S'succusses' p35672 aS'succussing' p35673 aS'succussed' p35674 aS'succussed' p35675 asS'drape' p35676 (lp35677 S'drapes' p35678 aS'draping' p35679 aS'draped' p35680 aS'draped' p35681 asS'memorize' p35682 (lp35683 S'memorizes' p35684 aS'memorizing' p35685 aS'memorized' p35686 aS'memorized' p35687 asS'correspond' p35688 (lp35689 S'corresponds' p35690 aS'corresponding' p35691 aS'corresponded' p35692 aS'corresponded' p35693 asS'stevedore' p35694 (lp35695 S'stevedores' p35696 aS'stevedoring' p35697 aS'stevedored' p35698 aS'stevedored' p35699 asS'dispraise' p35700 (lp35701 S'dispraises' p35702 aS'dispraising' p35703 aS'dispraised' p35704 aS'dispraised' p35705 asS'furnish' p35706 (lp35707 S'furnishes' p35708 aS'furnishing' p35709 aS'furnished' p35710 aS'furnished' p35711 asS'ignite' p35712 (lp35713 S'ignites' p35714 aS'igniting' p35715 aS'ignited' p35716 aS'ignited' p35717 asS'scroop' p35718 (lp35719 S'scroops' p35720 aS'scrooping' p35721 aS'scrooped' p35722 aS'scrooped' p35723 asS'disarm' p35724 (lp35725 S'disarms' p35726 aS'disarming' p35727 aS'disarmed' p35728 aS'disarmed' p35729 asS'meter' p35730 (lp35731 S'meters' p35732 aS'metering' p35733 aS'metered' p35734 aS'metered' p35735 asS'epigrammatize' p35736 (lp35737 S'epigrammatizes' p35738 aS'epigrammatizing' p35739 aS'epigrammatized' p35740 aS'epigrammatized' p35741 asS'accrete' p35742 (lp35743 S'accretes' p35744 aS'accreting' p35745 aS'accreted' p35746 aS'accreted' p35747 asS'envisage' p35748 (lp35749 S'envisages' p35750 aS'envisaging' p35751 aS'envisaged' p35752 aS'envisaged' p35753 asS'bunch' p35754 (lp35755 S'bunches' p35756 aS'bunching' p35757 aS'bunched' p35758 aS'bunched' p35759 asS'cudgel' p35760 (lp35761 S'cudgels' p35762 aS'cudgelling' p35763 aS'cudgelled' p35764 aS'cudgelled' p35765 asS"bird's-nest" p35766 (lp35767 S"bird's-nests" p35768 aS"bird's-nesting" p35769 aS"bird's-nested" p35770 aS"bird's-nested" p35771 asS'age' p35772 (lp35773 S'ages' p35774 aS'aging' p35775 aS'aged' p35776 aS'aged' p35777 asS'privatize' p35778 (lp35779 S'privatizes' p35780 aS'privatizing' p35781 aS'privatized' p35782 aS'privatized' p35783 asS'sufflate' p35784 (lp35785 S'sufflates' p35786 aS'sufflating' p35787 aS'sufflated' p35788 aS'sufflated' p35789 asS'outbid' p35790 (lp35791 S'outbids' p35792 aS'outbidding' p35793 aS'outbid' p35794 aS'outbidden' p35795 asS'dab' p35796 (lp35797 S'dabs' p35798 aS'dabbing' p35799 aS'dabbed' p35800 aS'dabbed' p35801 asS'dam' p35802 (lp35803 S'dams' p35804 aS'damming' p35805 aS'dammed' p35806 aS'dammed' p35807 asS'spell' p35808 (lp35809 S'spells' p35810 aS'spelling' p35811 aS'spelt' p35812 aS'spelt' p35813 asS'muddle' p35814 (lp35815 S'muddles' p35816 aS'muddling' p35817 aS'muddled' p35818 aS'muddled' p35819 asS'denigrate' p35820 (lp35821 S'denigrates' p35822 aS'denigrating' p35823 aS'denigrated' p35824 aS'denigrated' p35825 asS'massproduce' p35826 (lp35827 S'massproduces' p35828 aS'massproducing' p35829 aS'massproduced' p35830 aS'massproduced' p35831 asS'mention' p35832 (lp35833 S'mentions' p35834 aS'mentioning' p35835 aS'mentioned' p35836 aS'mentioned' p35837 asS'dap' p35838 (lp35839 S'daps' p35840 aS'dapping' p35841 aS'dapped' p35842 aS'dapped' p35843 asS'mandate' p35844 (lp35845 S'mandates' p35846 aS'mandating' p35847 aS'mandated' p35848 aS'mandated' p35849 asS'greaten' p35850 (lp35851 S'greatens' p35852 aS'greatening' p35853 aS'greatened' p35854 aS'greatened' p35855 asS'outgas' p35856 (lp35857 S'outgasses' p35858 aS'outgassing' p35859 aS'outgassed' p35860 aS'outgassed' p35861 asS'strive' p35862 (lp35863 S'strives' p35864 aS'striving' p35865 aS'strove' p35866 aS'striven' p35867 asS'flail' p35868 (lp35869 S'flails' p35870 aS'flailing' p35871 aS'flailed' p35872 aS'flailed' p35873 asS'fictionalize' p35874 (lp35875 S'fictionalizes' p35876 aS'fictionalizing' p35877 aS'fictionalized' p35878 aS'fictionalized' p35879 asS'thrill' p35880 (lp35881 S'thrills' p35882 aS'thrilling' p35883 aS'thrilled' p35884 aS'thrilled' p35885 asS'slacken' p35886 (lp35887 S'slackens' p35888 aS'slackening' p35889 aS'slackened' p35890 aS'slackened' p35891 asS'preclude' p35892 (lp35893 S'precludes' p35894 aS'precluding' p35895 aS'precluded' p35896 aS'precluded' p35897 asS'eternize' p35898 (lp35899 S'eternizes' p35900 aS'eternizing' p35901 aS'eternized' p35902 aS'eternized' p35903 asS'shortcircuit' p35904 (lp35905 S'shortcircuits' p35906 aS'shortcircuiting' p35907 aS'shortcircuited' p35908 aS'shortcircuited' p35909 asS'disregard' p35910 (lp35911 S'disregards' p35912 aS'disregarding' p35913 aS'disregarded' p35914 aS'disregarded' p35915 asS'chemosorb' p35916 (lp35917 S'chemosorbs' p35918 aS'chemosorbing' p35919 aS'chemosorbed' p35920 aS'chemosorbed' p35921 asS'skate' p35922 (lp35923 S'skates' p35924 aS'skating' p35925 aS'skated' p35926 aS'skated' p35927 asS'fare' p35928 (lp35929 S'fares' p35930 aS'faring' p35931 aS'fared' p35932 aS'fared' p35933 asS'activate' p35934 (lp35935 S'activates' p35936 aS'activating' p35937 aS'activated' p35938 aS'activated' p35939 asS'thwart' p35940 (lp35941 S'thwarts' p35942 aS'thwarting' p35943 aS'thwarted' p35944 aS'thwarted' p35945 asS'baulk' p35946 (lp35947 S'baulks' p35948 aS'baulking' p35949 aS'baulked' p35950 aS'baulked' p35951 asS'tallage' p35952 (lp35953 S'tallages' p35954 aS'tallaging' p35955 aS'tallaged' p35956 aS'tallaged' p35957 asS'calibrate' p35958 (lp35959 S'calibrates' p35960 aS'calibrating' p35961 aS'calibrated' p35962 aS'calibrated' p35963 asS'wade' p35964 (lp35965 S'wades' p35966 aS'wading' p35967 aS'waded' p35968 aS'waded' p35969 asS'fondle' p35970 (lp35971 S'fondles' p35972 aS'fondling' p35973 aS'fondled' p35974 aS'fondled' p35975 asS'defend' p35976 (lp35977 S'defends' p35978 aS'defending' p35979 aS'defended' p35980 aS'defended' p35981 asS'understudy' p35982 (lp35983 S'understudies' p35984 aS'understudying' p35985 aS'understudied' p35986 aS'understudied' p35987 asS'rev' p35988 (lp35989 S'revs' p35990 aS'revving' p35991 aS'revved' p35992 aS'revved' p35993 asS'ret' p35994 (lp35995 S'rets' p35996 aS'retting' p35997 aS'retted' p35998 aS'retted' p35999 asS'repress' p36000 (lp36001 S'represses' p36002 aS'repressing' p36003 ag31278 aS'repressed' p36004 asS'stub' p36005 (lp36006 S'stubs' p36007 aS'stubbing' p36008 aS'stubbed' p36009 aS'stubbed' p36010 asS'mate' p36011 (lp36012 S'mates' p36013 aS'mating' p36014 aS'mated' p36015 aS'mated' p36016 asS'stud' p36017 (lp36018 S'studs' p36019 aS'studding' p36020 aS'studded' p36021 aS'studded' p36022 asS'lecture' p36023 (lp36024 S'lectures' p36025 aS'lecturing' p36026 aS'lectured' p36027 aS'lectured' p36028 asS'postpone' p36029 (lp36030 S'postpones' p36031 aS'postponing' p36032 aS'postponed' p36033 aS'postponed' p36034 asS'stun' p36035 (lp36036 S'stuns' p36037 aS'stunning' p36038 aS'stunned' p36039 aS'stunned' p36040 asS'red' p36041 (lp36042 S'reds' p36043 aS'redding' p36044 aS'redded' p36045 aS'redded' p36046 asS'stum' p36047 (lp36048 S'stums' p36049 aS'stumming' p36050 aS'stummed' p36051 aS'stummed' p36052 asS'frank' p36053 (lp36054 S'franks' p36055 aS'franking' p36056 aS'franked' p36057 aS'franked' p36058 asS'hanker' p36059 (lp36060 S'hankers' p36061 aS'hankering' p36062 aS'hankered' p36063 aS'hankered' p36064 asS'clarify' p36065 (lp36066 S'clarifies' p36067 aS'clarifying' p36068 aS'clarified' p36069 aS'clarified' p36070 asS'upbraid' p36071 (lp36072 S'upbraids' p36073 aS'upbraiding' p36074 aS'upbraided' p36075 aS'upbraided' p36076 asS'hazard' p36077 (lp36078 S'hazards' p36079 aS'hazarding' p36080 aS'hazarded' p36081 aS'hazarded' p36082 asS'bleed' p36083 (lp36084 S'bleeds' p36085 aS'bleeding' p36086 aS'bled' p36087 aS'bled' p36088 asS'indent' p36089 (lp36090 S'indents' p36091 aS'indenting' p36092 aS'indented' p36093 aS'indented' p36094 asS'peeve' p36095 (lp36096 S'peeves' p36097 aS'peeving' p36098 aS'peeved' p36099 aS'peeved' p36100 asS'mortar' p36101 (lp36102 S'mortars' p36103 aS'mortaring' p36104 aS'mortared' p36105 aS'mortared' p36106 asS'yarn' p36107 (lp36108 S'yarns' p36109 aS'yarning' p36110 aS'yarned' p36111 aS'yarned' p36112 asS'steam' p36113 (lp36114 S'steams' p36115 aS'steaming' p36116 aS'steamed' p36117 aS'steamed' p36118 asS'farrow' p36119 (lp36120 S'farrows' p36121 aS'farrowing' p36122 aS'farrowed' p36123 aS'farrowed' p36124 asS'retain' p36125 (lp36126 S'retains' p36127 aS'retaining' p36128 aS'retained' p36129 aS'retained' p36130 asS'retail' p36131 (lp36132 S'retails' p36133 aS'retailing' p36134 aS'retailed' p36135 aS'retailed' p36136 asS'facilitate' p36137 (lp36138 S'facilitates' p36139 aS'facilitating' p36140 aS'facilitated' p36141 aS'facilitated' p36142 asS'predominate' p36143 (lp36144 S'predominates' p36145 aS'predominating' p36146 aS'predominated' p36147 aS'predominated' p36148 asS'suffix' p36149 (lp36150 S'suffixes' p36151 aS'suffixing' p36152 aS'suffixed' p36153 aS'suffixed' p36154 asS'overshoot' p36155 (lp36156 S'overshoots' p36157 aS'overshooting' p36158 ag32087 ag32088 asS'sack' p36159 (lp36160 S'sacks' p36161 aS'sacking' p36162 aS'sacked' p36163 aS'sacked' p36164 asS'whoop' p36165 (lp36166 S'whoops' p36167 aS'whooping' p36168 aS'whooped' p36169 aS'whooped' p36170 asS'betroth' p36171 (lp36172 S'betroths' p36173 aS'betrothing' p36174 aS'betrothed' p36175 aS'betrothed' p36176 asS'hurdle' p36177 (lp36178 S'hurdles' p36179 aS'hurdling' p36180 aS'hurdled' p36181 aS'hurdled' p36182 asS'rarify' p36183 (lp36184 S'rarifies' p36185 aS'rarifying' p36186 aS'rarified' p36187 aS'rarified' p36188 asS'instill' p36189 (lp36190 S'instils' p36191 aS'instilling' p36192 aS'instilled' p36193 aS'instilled' p36194 asS'frazzle' p36195 (lp36196 S'frazzles' p36197 aS'frazzling' p36198 aS'frazzled' p36199 aS'frazzled' p36200 asS'stencil' p36201 (lp36202 S'stencils' p36203 aS'stencilling' p36204 aS'stencilled' p36205 aS'stencilled' p36206 asS'tootle' p36207 (lp36208 S'tootles' p36209 aS'tootling' p36210 aS'tootled' p36211 aS'tootled' p36212 asS'regurgitate' p36213 (lp36214 S'regurgitates' p36215 aS'regurgitating' p36216 aS'regurgitated' p36217 aS'regurgitated' p36218 asS'jingle' p36219 (lp36220 S'jingles' p36221 aS'jingling' p36222 aS'jingled' p36223 aS'jingled' p36224 asS'nut' p36225 (lp36226 S'nuts' p36227 aS'nutting' p36228 aS'nutted' p36229 aS'nutted' p36230 asS'dissever' p36231 (lp36232 S'dissevers' p36233 aS'dissevering' p36234 aS'dissevered' p36235 aS'dissevered' p36236 asS'flume' p36237 (lp36238 S'flumes' p36239 aS'fluming' p36240 aS'flumed' p36241 aS'flumed' p36242 asS'gear' p36243 (lp36244 S'gears' p36245 aS'gearing' p36246 aS'geared' p36247 aS'geared' p36248 asS'eavesdrop' p36249 (lp36250 S'eavesdrops' p36251 aS'eavesdropping' p36252 aS'eavesdropped' p36253 aS'eavesdropped' p36254 asS'retrench' p36255 (lp36256 S'retrenches' p36257 aS'retrenching' p36258 aS'retrenched' p36259 aS'retrenched' p36260 asS'acquire' p36261 (lp36262 S'acquires' p36263 aS'acquiring' p36264 aS'acquired' p36265 aS'acquired' p36266 asS'dry-salt' p36267 (lp36268 S'dry-salts' p36269 aS'dry-salting' p36270 aS'dry-salted' p36271 aS'dry-salted' p36272 asS'hem' p36273 (lp36274 S'hems' p36275 aS'hemming' p36276 aS'hummed' p36277 aS'hemmed' p36278 asS'reaffirm' p36279 (lp36280 S'reaffirms' p36281 aS'reaffirming' p36282 aS'reaffirmed' p36283 aS'reaffirmed' p36284 asS'outcross' p36285 (lp36286 S'outcrosses' p36287 aS'outcrossing' p36288 aS'outcrossed' p36289 aS'outcrossed' p36290 asS'over-estimate' p36291 (lp36292 S'over-estimates' p36293 aS'over-estimating' p36294 ag12306 aS'over-estimated' p36295 asS'prune' p36296 (lp36297 S'prunes' p36298 aS'pruning' p36299 aS'pruned' p36300 aS'pruned' p36301 asS'shampoo' p36302 (lp36303 S'shampoos' p36304 aS'shampooing' p36305 aS'shampooed' p36306 aS'shampooed' p36307 asS'hemagglutinate' p36308 (lp36309 S'hemagglutinates' p36310 aS'hemagglutinating' p36311 aS'hemagglutinated' p36312 aS'hemagglutinated' p36313 asS'ferule' p36314 (lp36315 S'ferules' p36316 aS'feruling' p36317 aS'feruled' p36318 aS'feruled' p36319 asS'impale' p36320 (lp36321 S'impales' p36322 aS'impaling' p36323 aS'impaled' p36324 aS'impaled' p36325 asS'overindulge' p36326 (lp36327 S'overindulges' p36328 aS'overindulging' p36329 aS'overindulged' p36330 aS'overindulged' p36331 asS'gambol' p36332 (lp36333 S'gambols' p36334 aS'gambolling' p36335 aS'gambolled' p36336 aS'gambolled' p36337 asS'electrotype' p36338 (lp36339 S'electrotypes' p36340 aS'electrotyping' p36341 aS'electrotyped' p36342 aS'electrotyped' p36343 asS'neutralize' p36344 (lp36345 S'neutralizes' p36346 aS'neutralizing' p36347 aS'neutralized' p36348 aS'neutralized' p36349 asS'deration' p36350 (lp36351 S'derations' p36352 aS'derationing' p36353 aS'derationed' p36354 aS'derationed' p36355 asS'curvet' p36356 (lp36357 S'curvets' p36358 aS'curvetting' p36359 aS'curvetted' p36360 aS'curvetted' p36361 asS'tidy' p36362 (lp36363 S'tidies' p36364 aS'tidying' p36365 aS'tidied' p36366 aS'tidied' p36367 asS'forspeak' p36368 (lp36369 S'forspeaks' p36370 aS'forspeaking' p36371 aS'forspoke' p36372 aS'forspoken' p36373 asS'tide' p36374 (lp36375 S'tides' p36376 aS'tiding' p36377 aS'tided' p36378 aS'tided' p36379 asS'enucleate' p36380 (lp36381 S'enucleates' p36382 aS'enucleating' p36383 aS'enucleated' p36384 aS'enucleated' p36385 asS'cavern' p36386 (lp36387 S'caverns' p36388 aS'caverning' p36389 aS'caverned' p36390 aS'caverned' p36391 asS'have' p36392 (lp36393 S'has' p36394 aS'having' p36395 aS'had' p36396 aS'had' p36397 aS"haven't" p36398 aS"hasn't" p36399 aS"hadn't" p36400 aS"hadn't" p36401 asS'dictate' p36402 (lp36403 S'dictates' p36404 aS'dictating' p36405 aS'dictated' p36406 aS'dictated' p36407 asS'waken' p36408 (lp36409 S'wakens' p36410 aS'wakening' p36411 aS'wakened' p36412 aS'wakened' p36413 asS'euchre' p36414 (lp36415 S'euchres' p36416 aS'euchring' p36417 aS'euchred' p36418 aS'euchred' p36419 asS'mix' p36420 (lp36421 S'mixes' p36422 aS'mixing' p36423 aS'mixed' p36424 aS'mixed' p36425 asS'neaten' p36426 (lp36427 S'neatens' p36428 aS'neatening' p36429 aS'neatened' p36430 aS'neatened' p36431 asS'swot' p36432 (lp36433 S'swots' p36434 aS'swotting' p36435 aS'swotted' p36436 aS'swotted' p36437 asS'fructify' p36438 (lp36439 S'fructifies' p36440 aS'fructifying' p36441 aS'fructified' p36442 aS'fructified' p36443 asS'innervate' p36444 (lp36445 S'innervates' p36446 aS'innervating' p36447 aS'innervated' p36448 aS'innervated' p36449 asS'procure' p36450 (lp36451 S'procures' p36452 aS'procuring' p36453 aS'procured' p36454 aS'procured' p36455 asS'rearrange' p36456 (lp36457 S'rearranges' p36458 aS'rearranging' p36459 aS'rearranged' p36460 aS'rearranged' p36461 asS'propagate' p36462 (lp36463 S'propagates' p36464 aS'propagating' p36465 aS'propagated' p36466 aS'propagated' p36467 asS'clamber' p36468 (lp36469 S'clambers' p36470 aS'clambering' p36471 aS'clambered' p36472 aS'clambered' p36473 asS'hoodwink' p36474 (lp36475 S'hoodwinks' p36476 aS'hoodwinking' p36477 aS'hoodwinked' p36478 aS'hoodwinked' p36479 asS'sally' p36480 (lp36481 S'sallies' p36482 aS'sallying' p36483 aS'sallied' p36484 aS'sallied' p36485 asS'snuffle' p36486 (lp36487 S'snuffles' p36488 aS'snuffling' p36489 aS'snuffled' p36490 aS'snuffled' p36491 asS'gather' p36492 (lp36493 S'gathers' p36494 aS'gathering' p36495 aS'gathered' p36496 aS'gathered' p36497 asS'request' p36498 (lp36499 S'requests' p36500 aS'requesting' p36501 aS'requested' p36502 aS'requested' p36503 asS'rendezvous' p36504 (lp36505 S'rendezvouses' p36506 aS'rendezvousing' p36507 aS'rendezvoused' p36508 aS'rendezvoused' p36509 asS'occasion' p36510 (lp36511 S'occasions' p36512 aS'occasioning' p36513 aS'occasioned' p36514 aS'occasioned' p36515 asS'outlive' p36516 (lp36517 S'outlives' p36518 aS'outliving' p36519 aS'outlived' p36520 aS'outlived' p36521 asS'thicken' p36522 (lp36523 S'thickens' p36524 aS'thickening' p36525 aS'thickened' p36526 aS'thickened' p36527 asS'recess' p36528 (lp36529 S'recesses' p36530 aS'recessing' p36531 aS'recessed' p36532 aS'recessed' p36533 asS'kite' p36534 (lp36535 S'kites' p36536 aS'kiting' p36537 aS'kited' p36538 aS'kited' p36539 asS'incapacitate' p36540 (lp36541 S'incapacitates' p36542 aS'incapacitating' p36543 aS'incapacitated' p36544 aS'incapacitated' p36545 asS'rebuke' p36546 (lp36547 S'rebukes' p36548 aS'rebuking' p36549 aS'rebuked' p36550 aS'rebuked' p36551 asS'sidetrack' p36552 (lp36553 sS'floodlight' p36554 (lp36555 S'floodlights' p36556 aS'floodlighting' p36557 aS'floodlit' p36558 aS'floodlit' p36559 asS'staff' p36560 (lp36561 S'staffs' p36562 aS'staffing' p36563 aS'staffed' p36564 aS'staffed' p36565 asS'stonk' p36566 (lp36567 S'stonks' p36568 aS'stonking' p36569 aS'stonked' p36570 aS'stonked' p36571 asS'obsecrate' p36572 (lp36573 S'obsecrates' p36574 aS'obsecrating' p36575 aS'obsecrated' p36576 aS'obsecrated' p36577 asS'mug' p36578 (lp36579 S'mugs' p36580 aS'mugging' p36581 aS'mugged' p36582 aS'mugged' p36583 asS'ossify' p36584 (lp36585 S'ossifies' p36586 aS'ossifying' p36587 aS'ossified' p36588 aS'ossified' p36589 asS'prolong' p36590 (lp36591 S'prolongs' p36592 aS'prolonging' p36593 aS'prolonged' p36594 aS'prolonged' p36595 asS'resubmit' p36596 (lp36597 S'resubmits' p36598 aS'resubmiting' p36599 aS'resubmited' p36600 aS'resubmited' p36601 asS'vacillate' p36602 (lp36603 S'vacillates' p36604 aS'vacillating' p36605 aS'vacillated' p36606 aS'vacillated' p36607 asS'outstand' p36608 (lp36609 S'outstands' p36610 aS'outstanding' p36611 aS'outstood' p36612 aS'outstood' p36613 asS'outwear' p36614 (lp36615 S'outwears' p36616 aS'outwearing' p36617 aS'outwore' p36618 aS'outworn' p36619 asS'spiflicate' p36620 (lp36621 S'spiflicates' p36622 aS'spiflicating' p36623 aS'spiflicated' p36624 aS'spiflicated' p36625 asS'starch' p36626 (lp36627 S'starches' p36628 aS'starching' p36629 aS'starched' p36630 aS'starched' p36631 asS'beat' p36632 (lp36633 S'beats' p36634 aS'beating' p36635 aS'beat' p36636 aS'beaten' p36637 asS'bear' p36638 (lp36639 S'bears' p36640 aS'bearing' p36641 aS'borne' p36642 asS'accrue' p36643 (lp36644 S'accrues' p36645 aS'accruing' p36646 aS'accrued' p36647 aS'accrued' p36648 asS'beam' p36649 (lp36650 S'beams' p36651 aS'beaming' p36652 aS'beamed' p36653 aS'beamed' p36654 asS'darken' p36655 (lp36656 S'darkens' p36657 aS'darkening' p36658 aS'darkened' p36659 aS'darkened' p36660 asS'degustate' p36661 (lp36662 S'degusts' p36663 aS'degusting' p36664 aS'degusted' p36665 aS'degusted' p36666 asS'bead' p36667 (lp36668 S'beads' p36669 aS'beading' p36670 aS'beaded' p36671 aS'beaded' p36672 asS'varnish' p36673 (lp36674 S'varnishes' p36675 aS'varnishing' p36676 aS'varnished' p36677 aS'varnished' p36678 asS'unhelm' p36679 (lp36680 S'unhelms' p36681 aS'unhelming' p36682 aS'unhelmed' p36683 aS'unhelmed' p36684 asS'albumenize' p36685 (lp36686 S'albumenizes' p36687 aS'albumenizing' p36688 aS'albumenized' p36689 aS'albumenized' p36690 asS'misappropriate' p36691 (lp36692 S'misappropriates' p36693 aS'misappropriating' p36694 aS'misappropriated' p36695 aS'misappropriated' p36696 asS'benumb' p36697 (lp36698 S'benumbs' p36699 aS'benumbing' p36700 aS'benumbed' p36701 aS'benumbed' p36702 asS'reluct' p36703 (lp36704 S'relucts' p36705 aS'relucting' p36706 aS'relucted' p36707 aS'relucted' p36708 asS'irrupt' p36709 (lp36710 S'irrupts' p36711 aS'irrupting' p36712 aS'irrupted' p36713 aS'irrupted' p36714 asS'hypostasize' p36715 (lp36716 S'hypostasizes' p36717 aS'hypostasizing' p36718 aS'hypostasized' p36719 aS'hypostasized' p36720 asS'defame' p36721 (lp36722 S'defames' p36723 aS'defaming' p36724 aS'defamed' p36725 aS'defamed' p36726 asS'entomologize' p36727 (lp36728 S'entomologizes' p36729 aS'entomologizing' p36730 aS'entomologized' p36731 aS'entomologized' p36732 asS'conform' p36733 (lp36734 S'conforms' p36735 aS'conforming' p36736 aS'conformed' p36737 aS'conformed' p36738 asS'puddle' p36739 (lp36740 S'puddles' p36741 aS'puddling' p36742 aS'puddled' p36743 aS'puddled' p36744 asS'blackball' p36745 (lp36746 S'blackballs' p36747 aS'blackballing' p36748 aS'blackballed' p36749 aS'blackballed' p36750 asS'accord' p36751 (lp36752 S'accords' p36753 aS'according' p36754 aS'accorded' p36755 aS'accorded' p36756 asS'dislodge' p36757 (lp36758 S'dislodges' p36759 aS'dislodging' p36760 aS'dislodged' p36761 aS'dislodged' p36762 asS'glamourize' p36763 (lp36764 S'glamourizes' p36765 aS'glamourizing' p36766 aS'glamourized' p36767 aS'glamourized' p36768 asS'undercool' p36769 (lp36770 S'undercools' p36771 aS'undercooling' p36772 aS'undercooled' p36773 aS'undercooled' p36774 asS'extradite' p36775 (lp36776 S'extradites' p36777 aS'extraditing' p36778 aS'extradited' p36779 aS'extradited' p36780 asS'rodomontade' p36781 (lp36782 S'rodomontades' p36783 aS'rodomontading' p36784 aS'rodomontaded' p36785 aS'rodomontaded' p36786 asS'progress' p36787 (lp36788 S'progresses' p36789 aS'progressing' p36790 aS'progressed' p36791 aS'progressed' p36792 asS'bramble' p36793 (lp36794 S'brambles' p36795 aS'brambling' p36796 aS'brambled' p36797 aS'brambled' p36798 asS'admeasure' p36799 (lp36800 S'admeasures' p36801 aS'admeasuring' p36802 aS'admeasured' p36803 aS'admeasured' p36804 asS'saut_e' p36805 (lp36806 S'saut_es' p36807 aS'saut_eing' p36808 aS'saut_eed' p36809 aS'saut_eed' p36810 asS'gyve' p36811 (lp36812 S'gyves' p36813 aS'gyving' p36814 aS'gyved' p36815 aS'gyved' p36816 asS'sorrow' p36817 (lp36818 S'sorrows' p36819 aS'sorrowing' p36820 aS'sorrowed' p36821 aS'sorrowed' p36822 asS'grumble' p36823 (lp36824 S'grumbles' p36825 aS'grumbling' p36826 aS'grumbled' p36827 aS'grumbled' p36828 asS'deliver' p36829 (lp36830 S'delivers' p36831 aS'delivering' p36832 aS'delivered' p36833 aS'delivered' p36834 asS'gimlet' p36835 (lp36836 S'gimlets' p36837 aS'gimleting' p36838 aS'gimleted' p36839 aS'gimleted' p36840 asS'roughhouse' p36841 (lp36842 S'roughhouses' p36843 aS'roughhousing' p36844 aS'roughhoused' p36845 aS'roughhoused' p36846 asS'Italianize' p36847 (lp36848 S'Italianizes' p36849 aS'Italianizing' p36850 aS'Italianized' p36851 aS'Italianized' p36852 asS'anodize' p36853 (lp36854 S'anodizes' p36855 aS'anodizing' p36856 aS'anodized' p36857 aS'anodized' p36858 asS'trump' p36859 (lp36860 S'trumps' p36861 aS'trumping' p36862 aS'trumped' p36863 aS'trumped' p36864 asS'joke' p36865 (lp36866 S'jokes' p36867 aS'joking' p36868 aS'joked' p36869 aS'joked' p36870 asS'alcoholize' p36871 (lp36872 S'alcoholizes' p36873 aS'alcoholizing' p36874 aS'alcoholized' p36875 aS'alcoholized' p36876 asS'equal' p36877 (lp36878 S'equals' p36879 aS'equaling' p36880 aS'equaled' p36881 aS'equaled' p36882 asS'pulp' p36883 (lp36884 S'pulps' p36885 aS'pulping' p36886 aS'pulped' p36887 aS'pulped' p36888 asS'assure' p36889 (lp36890 S'assures' p36891 aS'assuring' p36892 aS'assured' p36893 aS'assured' p36894 asS'predispose' p36895 (lp36896 S'predisposes' p36897 aS'predisposing' p36898 aS'predisposed' p36899 aS'predisposed' p36900 asS're-form' p36901 (lp36902 S're-forms' p36903 aS're-forming' p36904 ag17150 aS're-formed' p36905 asS'overstaff' p36906 (lp36907 S'overstaffs' p36908 aS'overstaffing' p36909 aS'overstaffed' p36910 aS'overstaffed' p36911 asS'swallow' p36912 (lp36913 S'swallows' p36914 aS'swallowing' p36915 aS'swallowed' p36916 aS'swallowed' p36917 asS'comment' p36918 (lp36919 S'comments' p36920 aS'commenting' p36921 aS'commented' p36922 aS'commented' p36923 asS'fester' p36924 (lp36925 S'festers' p36926 aS'festering' p36927 aS'festered' p36928 aS'festered' p36929 asS'commend' p36930 (lp36931 S'commends' p36932 aS'commending' p36933 aS'commended' p36934 aS'commended' p36935 asS'vend' p36936 (lp36937 S'vends' p36938 aS'vending' p36939 aS'vended' p36940 aS'vended' p36941 asS'devoice' p36942 (lp36943 S'devoices' p36944 aS'devoicing' p36945 aS'devoiced' p36946 aS'devoiced' p36947 asS'recompense' p36948 (lp36949 S'recompenses' p36950 aS'recompensing' p36951 aS'recompensed' p36952 aS'recompensed' p36953 asS'harpoon' p36954 (lp36955 S'harpoons' p36956 aS'harpooning' p36957 aS'harpooned' p36958 aS'harpooned' p36959 asS'electrify' p36960 (lp36961 S'electrifies' p36962 aS'electrifying' p36963 aS'electrified' p36964 aS'electrified' p36965 asS'actualize' p36966 (lp36967 S'actualizes' p36968 aS'actualizing' p36969 aS'actualized' p36970 aS'actualized' p36971 asS'muddy' p36972 (lp36973 S'muddies' p36974 aS'muddying' p36975 aS'muddied' p36976 aS'muddied' p36977 asS'logroll' p36978 (lp36979 S'logrolls' p36980 aS'logrolling' p36981 aS'logrolled' p36982 aS'logrolled' p36983 asS'gaze' p36984 (lp36985 S'gazes' p36986 aS'gazing' p36987 aS'gazed' p36988 aS'gazed' p36989 asS'curtain' p36990 (lp36991 S'curtains' p36992 aS'curtaining' p36993 aS'curtained' p36994 aS'curtained' p36995 asS'curtail' p36996 (lp36997 S'curtails' p36998 aS'curtailing' p36999 aS'curtailed' p37000 aS'curtailed' p37001 asS'define' p37002 (lp37003 S'defines' p37004 aS'defining' p37005 aS'defined' p37006 aS'defined' p37007 asS'upheave' p37008 (lp37009 S'upheaves' p37010 aS'upheaving' p37011 aS'upheaved' p37012 aS'upheaved' p37013 asS'minify' p37014 (lp37015 S'minifies' p37016 aS'minifying' p37017 aS'minified' p37018 aS'minified' p37019 asS'pistolwhip' p37020 (lp37021 S'pistolwhips' p37022 aS'pistolwhipping' p37023 aS'pistolwhipped' p37024 aS'pistolwhipped' p37025 asS'Photostat' p37026 (lp37027 S'Photostats' p37028 aS'Photostatting' p37029 aS'Photostatted' p37030 aS'Photostatted' p37031 asS'caddy' p37032 (lp37033 S'caddies' p37034 aS'caddying' p37035 aS'caddied' p37036 aS'caddied' p37037 asS'protect' p37038 (lp37039 S'protects' p37040 aS'protecting' p37041 aS'protected' p37042 aS'protected' p37043 asS'bulk' p37044 (lp37045 S'bulks' p37046 aS'bulking' p37047 aS'bulked' p37048 aS'bulked' p37049 asS'tense' p37050 (lp37051 S'tenses' p37052 aS'tensing' p37053 aS'tensed' p37054 aS'tensed' p37055 asS'bull' p37056 (lp37057 S'bulls' p37058 aS'bulling' p37059 aS'bulled' p37060 aS'bulled' p37061 asS'exfoliate' p37062 (lp37063 S'exfoliates' p37064 aS'exfoliating' p37065 aS'exfoliated' p37066 aS'exfoliated' p37067 asS'fellow' p37068 (lp37069 S'fellows' p37070 aS'fellowing' p37071 aS'fellowed' p37072 aS'fellowed' p37073 asS'volunteer' p37074 (lp37075 S'volunteers' p37076 aS'volunteering' p37077 aS'volunteered' p37078 aS'volunteered' p37079 asS'fustigate' p37080 (lp37081 S'fustigates' p37082 aS'fustigating' p37083 aS'fustigated' p37084 aS'fustigated' p37085 asS'plain' p37086 (lp37087 S'plains' p37088 aS'plaining' p37089 aS'plained' p37090 aS'plained' p37091 asS'value' p37092 (lp37093 S'values' p37094 aS'valuing' p37095 aS'valued' p37096 aS'valued' p37097 asS'plait' p37098 (lp37099 S'plaits' p37100 aS'plaiting' p37101 ag1811 aS'plaited' p37102 asS'preconceive' p37103 (lp37104 S'preconceives' p37105 aS'preconceiving' p37106 aS'preconceived' p37107 aS'preconceived' p37108 asS'magnetize' p37109 (lp37110 S'magnetizes' p37111 aS'magnetizing' p37112 aS'magnetized' p37113 aS'magnetized' p37114 asS'deek' p37115 (lp37116 S'deeks' p37117 aS'deeking' p37118 aS'deeked' p37119 aS'deeked' p37120 asS'permeate' p37121 (lp37122 S'permeates' p37123 aS'permeating' p37124 aS'permeated' p37125 aS'permeated' p37126 asS'vulcanize' p37127 (lp37128 S'vulcanizes' p37129 aS'vulcanizing' p37130 aS'vulcanized' p37131 aS'vulcanized' p37132 asS'bicker' p37133 (lp37134 S'bickers' p37135 aS'bickering' p37136 aS'bickered' p37137 aS'bickered' p37138 asS'dissent' p37139 (lp37140 S'dissents' p37141 aS'dissenting' p37142 aS'dissented' p37143 aS'dissented' p37144 asS'quantize' p37145 (lp37146 S'quantizes' p37147 aS'quantizing' p37148 aS'quantized' p37149 aS'quantized' p37150 asS'prose' p37151 (lp37152 S'proses' p37153 aS'prosing' p37154 aS'prosed' p37155 aS'prosed' p37156 asS'partner' p37157 (lp37158 S'partners' p37159 aS'partnering' p37160 aS'partnered' p37161 aS'partnered' p37162 asS'topdress' p37163 (lp37164 S'topdresses' p37165 aS'topdressing' p37166 aS'topdressed' p37167 aS'topdressed' p37168 asS'subirrigate' p37169 (lp37170 S'subirrigates' p37171 aS'subirrigating' p37172 aS'subirrigated' p37173 aS'subirrigated' p37174 asS'anathematize' p37175 (lp37176 S'anathematizes' p37177 aS'anathematizing' p37178 aS'anathematized' p37179 aS'anathematized' p37180 asS'portray' p37181 (lp37182 S'portrays' p37183 aS'portraying' p37184 aS'portrayed' p37185 aS'portrayed' p37186 asS'facet' p37187 (lp37188 S'facets' p37189 aS'faceting' p37190 aS'faceted' p37191 aS'faceted' p37192 asS'tremble' p37193 (lp37194 S'trembles' p37195 aS'trembling' p37196 aS'trembled' p37197 aS'trembled' p37198 asS'eulogize' p37199 (lp37200 S'eulogizes' p37201 aS'eulogizing' p37202 aS'eulogized' p37203 aS'eulogized' p37204 asS'unlade' p37205 (lp37206 S'unlades' p37207 aS'unlading' p37208 aS'unladed' p37209 aS'unladed' p37210 asS'slobber' p37211 (lp37212 S'slobbers' p37213 aS'slobbering' p37214 aS'slobbered' p37215 aS'slobbered' p37216 asS'shuttle' p37217 (lp37218 S'shuttles' p37219 aS'shuttling' p37220 aS'shuttled' p37221 aS'shuttled' p37222 asS'infer' p37223 (lp37224 S'infers' p37225 aS'inferring' p37226 aS'inferred' p37227 aS'inferred' p37228 asS'capsulize' p37229 (lp37230 S'capsulizes' p37231 aS'capsulizing' p37232 aS'capsulized' p37233 aS'capsulized' p37234 asS'supercharge' p37235 (lp37236 S'supercharges' p37237 aS'supercharging' p37238 aS'supercharged' p37239 aS'supercharged' p37240 asS'pockmark' p37241 (lp37242 S'pockmarks' p37243 aS'pockmarking' p37244 aS'pockmarked' p37245 aS'pockmarked' p37246 asS'misgovern' p37247 (lp37248 S'misgoverns' p37249 aS'misgoverning' p37250 aS'misgoverned' p37251 aS'misgoverned' p37252 asS'pinfold' p37253 (lp37254 S'pinfolds' p37255 aS'pinfolding' p37256 aS'pinfolded' p37257 aS'pinfolded' p37258 asS'grandstand' p37259 (lp37260 S'grandstands' p37261 aS'grandstanding' p37262 aS'grandstanded' p37263 aS'grandstanded' p37264 asS'breech' p37265 (lp37266 S'breeches' p37267 aS'breeching' p37268 aS'breeched' p37269 aS'breeched' p37270 asS'topsoil' p37271 (lp37272 S'topsoils' p37273 aS'topsoiling' p37274 aS'topsoiled' p37275 aS'topsoiled' p37276 asS'besmirch' p37277 (lp37278 S'besmirches' p37279 aS'besmirching' p37280 aS'besmirched' p37281 aS'besmirched' p37282 asS'insure' p37283 (lp37284 S'insures' p37285 aS'insuring' p37286 aS'insured' p37287 aS'insured' p37288 asS'retard' p37289 (lp37290 S'retards' p37291 aS'retarding' p37292 aS'retarded' p37293 aS'retarded' p37294 asS'backstitch' p37295 (lp37296 S'backstitches' p37297 aS'backstitching' p37298 aS'backstitched' p37299 aS'backstitched' p37300 asS'underfund' p37301 (lp37302 S'underfunds' p37303 aS'underfunding' p37304 aS'underfunded' p37305 aS'underfunded' p37306 asS'position' p37307 (lp37308 S'positions' p37309 aS'positioning' p37310 aS'positioned' p37311 aS'positioned' p37312 asS'publicize' p37313 (lp37314 S'publicizes' p37315 aS'publicizing' p37316 aS'publicized' p37317 aS'publicized' p37318 asS'muscle' p37319 (lp37320 S'muscles' p37321 aS'muscling' p37322 aS'muscled' p37323 aS'muscled' p37324 asS'reintroduce' p37325 (lp37326 S'reintroduces' p37327 aS'reintroducing' p37328 aS'reintroduced' p37329 aS'reintroduced' p37330 asS'jerrybuild' p37331 (lp37332 S'jerrybuilds' p37333 aS'jerrybuilding' p37334 aS'jerrybuilt' p37335 aS'jerrybuilt' p37336 asS'fluoridate' p37337 (lp37338 S'fluoridates' p37339 aS'fluoridating' p37340 aS'fluoridated' p37341 aS'fluoridated' p37342 asS'unarm' p37343 (lp37344 S'unarms' p37345 aS'unarming' p37346 aS'unarmed' p37347 aS'unarmed' p37348 asS'excise' p37349 (lp37350 S'excises' p37351 aS'excising' p37352 aS'excised' p37353 aS'excised' p37354 asS'ratify' p37355 (lp37356 S'ratifies' p37357 aS'ratifying' p37358 aS'ratified' p37359 aS'ratified' p37360 asS'necessitate' p37361 (lp37362 S'necessitates' p37363 aS'necessitating' p37364 aS'necessitated' p37365 aS'necessitated' p37366 asS'inveigle' p37367 (lp37368 S'inveigles' p37369 aS'inveigling' p37370 aS'inveigled' p37371 aS'inveigled' p37372 asS'evince' p37373 (lp37374 S'evinces' p37375 aS'evincing' p37376 aS'evinced' p37377 aS'evinced' p37378 asS'surpass' p37379 (lp37380 S'surpasses' p37381 aS'surpassing' p37382 aS'surpassed' p37383 aS'surpassed' p37384 asS'localize' p37385 (lp37386 S'localizes' p37387 aS'localizing' p37388 aS'localized' p37389 aS'localized' p37390 asS'graduate' p37391 (lp37392 S'graduates' p37393 aS'graduating' p37394 aS'graduated' p37395 aS'graduated' p37396 asS'pretermit' p37397 (lp37398 S'pretermits' p37399 aS'pretermitting' p37400 aS'pretermitted' p37401 aS'pretermitted' p37402 asS'tong' p37403 (lp37404 S'tongs' p37405 aS'tonging' p37406 aS'tonged' p37407 aS'tonged' p37408 asS'smarm' p37409 (lp37410 S'smarms' p37411 aS'smarming' p37412 aS'smarmed' p37413 aS'smarmed' p37414 asS'underact' p37415 (lp37416 S'underacts' p37417 aS'underacting' p37418 aS'underacted' p37419 aS'underacted' p37420 asS'bench' p37421 (lp37422 S'benches' p37423 aS'benching' p37424 aS'benched' p37425 aS'benched' p37426 asS'add' p37427 (lp37428 S'adds' p37429 aS'adding' p37430 aS'added' p37431 aS'added' p37432 asS'decapitate' p37433 (lp37434 S'decapitates' p37435 aS'decapitating' p37436 aS'decapitated' p37437 aS'decapitated' p37438 asS'confide' p37439 (lp37440 S'confides' p37441 aS'confiding' p37442 aS'confided' p37443 aS'confided' p37444 asS'scrimp' p37445 (lp37446 S'scrimps' p37447 aS'scrimping' p37448 aS'scrimped' p37449 aS'scrimped' p37450 asS'reenact' p37451 (lp37452 S'reenacts' p37453 aS'reenacting' p37454 aS'reenacted' p37455 aS'reenacted' p37456 asS'ravel' p37457 (lp37458 S'ravels' p37459 aS'ravelling' p37460 aS'ravelled' p37461 aS'ravelled' p37462 asS'ought' p37463 (lp37464 S"oughtn't" p37465 asS'miscalculate' p37466 (lp37467 S'miscalculates' p37468 aS'miscalculating' p37469 aS'miscalculated' p37470 aS'miscalculated' p37471 asS'knacker' p37472 (lp37473 S'knackers' p37474 aS'knackering' p37475 aS'knackered' p37476 aS'knackered' p37477 asS'insert' p37478 (lp37479 S'inserts' p37480 aS'inserting' p37481 aS'inserted' p37482 aS'inserted' p37483 asS'like' p37484 (lp37485 S'likes' p37486 aS'liking' p37487 aS'liked' p37488 aS'liked' p37489 asS'tram' p37490 (lp37491 S'trams' p37492 aS'tramming' p37493 aS'trammed' p37494 aS'trammed' p37495 asS'heed' p37496 (lp37497 S'heeds' p37498 aS'heeding' p37499 aS'heeded' p37500 aS'heeded' p37501 asS'arraign' p37502 (lp37503 S'arraigns' p37504 aS'arraigning' p37505 aS'arraigned' p37506 aS'arraigned' p37507 asS'shrinkwrap' p37508 (lp37509 S'shrinkwraps' p37510 aS'shrinkwrapping' p37511 aS'shrinkwrapped' p37512 aS'shrinkwrapped' p37513 asS'heel' p37514 (lp37515 S'heels' p37516 aS'heeling' p37517 aS'heeled' p37518 aS'heeled' p37519 asS'decease' p37520 (lp37521 S'deceases' p37522 aS'deceasing' p37523 aS'deceased' p37524 aS'deceased' p37525 asS'propel' p37526 (lp37527 S'propels' p37528 aS'propelling' p37529 aS'propelled' p37530 aS'propelled' p37531 asS'feast' p37532 (lp37533 S'feasts' p37534 aS'feasting' p37535 aS'feasted' p37536 aS'feasted' p37537 asS'hail' p37538 (lp37539 S'hails' p37540 aS'hailing' p37541 aS'hailed' p37542 aS'hailed' p37543 asS'corroborate' p37544 (lp37545 S'corroborates' p37546 aS'corroborating' p37547 aS'corroborated' p37548 aS'corroborated' p37549 asS'solemnize' p37550 (lp37551 S'solemnizes' p37552 aS'solemnizing' p37553 aS'solemnized' p37554 aS'solemnized' p37555 asS'convey' p37556 (lp37557 S'conveys' p37558 aS'conveying' p37559 aS'conveyed' p37560 aS'conveyed' p37561 asS'convex' p37562 (lp37563 S'convexes' p37564 aS'convexing' p37565 aS'convexed' p37566 aS'convexed' p37567 asS'escallop' p37568 (lp37569 S'escallops' p37570 aS'escalloping' p37571 aS'escalloped' p37572 aS'escalloped' p37573 asS'refill' p37574 (lp37575 S'refills' p37576 aS'refilling' p37577 aS'refilled' p37578 aS'refilled' p37579 asS'reify' p37580 (lp37581 S'reifies' p37582 aS'reifying' p37583 aS'reified' p37584 aS'reified' p37585 asS'shrug' p37586 (lp37587 S'shrugs' p37588 aS'shrugging' p37589 aS'shrugged' p37590 aS'shrugged' p37591 asS'demobilize' p37592 (lp37593 S'demobilizes' p37594 aS'demobilizing' p37595 aS'demobilized' p37596 aS'demobilized' p37597 asS'slide' p37598 (lp37599 S'slides' p37600 aS'sliding' p37601 aS'slid' p37602 aS'slidden' p37603 asS'snuggle' p37604 (lp37605 S'snuggles' p37606 aS'snuggling' p37607 aS'snuggled' p37608 aS'snuggled' p37609 asS'regain' p37610 (lp37611 S'regains' p37612 aS'regaining' p37613 aS'regained' p37614 aS'regained' p37615 asS'pepper' p37616 (lp37617 S'peppers' p37618 aS'peppering' p37619 aS'peppered' p37620 aS'peppered' p37621 asS'noise' p37622 (lp37623 S'noises' p37624 aS'noising' p37625 aS'noised' p37626 aS'noised' p37627 asS'slight' p37628 (lp37629 S'slights' p37630 aS'slighting' p37631 aS'slighted' p37632 aS'slighted' p37633 asS'aerify' p37634 (lp37635 S'aerifies' p37636 aS'aerifying' p37637 aS'aerified' p37638 aS'aerified' p37639 asS'host' p37640 (lp37641 S'hosts' p37642 aS'hosting' p37643 aS'hosted' p37644 aS'hosted' p37645 asS'expire' p37646 (lp37647 S'expires' p37648 aS'expiring' p37649 aS'expired' p37650 aS'expired' p37651 asS'narrate' p37652 (lp37653 S'narrates' p37654 aS'narrating' p37655 aS'narrated' p37656 aS'narrated' p37657 asS'panel' p37658 (lp37659 S'panels' p37660 aS'panelling' p37661 aS'panelled' p37662 aS'panelled' p37663 asS'socket' p37664 (lp37665 S'sockets' p37666 aS'socketing' p37667 aS'socketed' p37668 aS'socketed' p37669 asS'flake' p37670 (lp37671 S'flakes' p37672 aS'flaking' p37673 aS'flaked' p37674 aS'flaked' p37675 asS'preen' p37676 (lp37677 S'preens' p37678 aS'preening' p37679 aS'preened' p37680 aS'preened' p37681 asS'decimate' p37682 (lp37683 S'decimates' p37684 aS'decimating' p37685 aS'decimated' p37686 aS'decimated' p37687 asS'beseem' p37688 (lp37689 S'beseems' p37690 aS'beseeming' p37691 aS'beseemed' p37692 aS'beseemed' p37693 asS'evoke' p37694 (lp37695 S'evokes' p37696 aS'evoking' p37697 aS'evoked' p37698 aS'evoked' p37699 asS'discard' p37700 (lp37701 S'discards' p37702 aS'discarding' p37703 aS'discarded' p37704 aS'discarded' p37705 asS'reave' p37706 (lp37707 S'reaves' p37708 aS'reaving' p37709 aS'reaved' p37710 aS'reaved' p37711 asS'miscast' p37712 (lp37713 S'miscasts' p37714 aS'miscasting' p37715 aS'miscast' p37716 aS'miscast' p37717 asS'yaup' p37718 (lp37719 S'yaups' p37720 aS'yauping' p37721 aS'yauped' p37722 aS'yauped' p37723 asS'forereach' p37724 (lp37725 S'forereaches' p37726 aS'forereaching' p37727 aS'forereached' p37728 aS'forereached' p37729 asS'guard' p37730 (lp37731 S'guards' p37732 aS'guarding' p37733 aS'guarded' p37734 aS'guarded' p37735 asS'esteem' p37736 (lp37737 S'esteems' p37738 aS'esteeming' p37739 aS'esteemed' p37740 aS'esteemed' p37741 asS'side-dress' p37742 (lp37743 S'side-dresses' p37744 aS'side-dressing' p37745 aS'side-dressed' p37746 aS'side-dressed' p37747 asS'cross-breed' p37748 (lp37749 S'cross-breeds' p37750 aS'cross-breeding' p37751 aS'cross-bred' p37752 aS'cross-bred' p37753 asS'ridge' p37754 (lp37755 S'ridges' p37756 aS'ridging' p37757 aS'ridged' p37758 aS'ridged' p37759 asS'buckle' p37760 (lp37761 S'buckles' p37762 aS'buckling' p37763 aS'buckled' p37764 aS'buckled' p37765 asS'outline' p37766 (lp37767 S'outlines' p37768 aS'outlining' p37769 aS'outlined' p37770 aS'outlined' p37771 asS'condense' p37772 (lp37773 S'condenses' p37774 aS'condensing' p37775 aS'condensed' p37776 aS'condensed' p37777 asS'theologize' p37778 (lp37779 S'theologizes' p37780 aS'theologizing' p37781 aS'theologized' p37782 aS'theologized' p37783 asS'ablate' p37784 (lp37785 S'ablates' p37786 aS'ablating' p37787 aS'ablated' p37788 aS'ablated' p37789 asS'introvert' p37790 (lp37791 S'introverts' p37792 aS'introverting' p37793 aS'introverted' p37794 aS'introverted' p37795 asS'maze' p37796 (lp37797 S'mazing' p37798 aS'mazed' p37799 aS'mazed' p37800 asS'offprint' p37801 (lp37802 S'offprints' p37803 aS'offprinting' p37804 aS'offprinted' p37805 aS'offprinted' p37806 asS'buy' p37807 (lp37808 S'buys' p37809 aS'buying' p37810 aS'bought' p37811 aS'bought' p37812 asS'explant' p37813 (lp37814 S'explants' p37815 aS'explanting' p37816 aS'explanted' p37817 aS'explanted' p37818 asS'bur' p37819 (lp37820 S'burs' p37821 aS'burring' p37822 aS'burred' p37823 aS'burred' p37824 asS'bus' p37825 (lp37826 S'busses' p37827 aS'bussing' p37828 aS'bussed' p37829 aS'bussed' p37830 asS'brand' p37831 (lp37832 S'brands' p37833 aS'branding' p37834 aS'branded' p37835 aS'branded' p37836 asS'disambiguate' p37837 (lp37838 S'disambiguates' p37839 aS'disambiguating' p37840 aS'disambiguated' p37841 aS'disambiguated' p37842 asS'dandle' p37843 (lp37844 S'dandles' p37845 aS'dandling' p37846 aS'dandled' p37847 aS'dandled' p37848 asS'plague' p37849 (lp37850 S'plagues' p37851 aS'plaguing' p37852 aS'plagued' p37853 aS'plagued' p37854 asS'bum' p37855 (lp37856 S'bums' p37857 aS'bumming' p37858 aS'bummed' p37859 aS'bummed' p37860 asS'tiller' p37861 (lp37862 S'tillers' p37863 aS'tillering' p37864 aS'tillered' p37865 aS'tillered' p37866 asS'bug' p37867 (lp37868 S'bugs' p37869 aS'bugging' p37870 aS'bugged' p37871 aS'bugged' p37872 asS'bud' p37873 (lp37874 S'buds' p37875 aS'budding' p37876 aS'budded' p37877 aS'budded' p37878 asS'embargo' p37879 (lp37880 S'embargoes' p37881 aS'embargoing' p37882 aS'embargoed' p37883 aS'embargoed' p37884 asS'intitule' p37885 (lp37886 S'intitules' p37887 aS'intituling' p37888 aS'intituled' p37889 aS'intituled' p37890 asS'wise' p37891 (lp37892 g22305 ag22306 ag22307 asS'glory' p37893 (lp37894 S'glories' p37895 aS'glorying' p37896 aS'gloried' p37897 aS'gloried' p37898 asS'flit' p37899 (lp37900 S'flits' p37901 aS'flitting' p37902 aS'flitted' p37903 aS'flitted' p37904 asS'unload' p37905 (lp37906 S'unloads' p37907 aS'unloading' p37908 aS'unloaded' p37909 aS'unloaded' p37910 asS'spacewalk' p37911 (lp37912 S'spacewalks' p37913 aS'spacewalking' p37914 aS'spacewalked' p37915 aS'spacewalked' p37916 asS'flip' p37917 (lp37918 S'flips' p37919 aS'flipping' p37920 aS'flipped' p37921 aS'flipped' p37922 asS'skylark' p37923 (lp37924 S'skylarks' p37925 aS'skylarking' p37926 aS'skylarked' p37927 aS'skylarked' p37928 asS'wisp' p37929 (lp37930 S'wisps' p37931 aS'wisping' p37932 aS'wisped' p37933 aS'wisped' p37934 asS'wist' p37935 (lp37936 S'wists' p37937 aS'wisting' p37938 aS'wisted' p37939 aS'wisted' p37940 asS'cosher' p37941 (lp37942 S'coshers' p37943 aS'coshering' p37944 aS'coshered' p37945 aS'coshered' p37946 asS'confect' p37947 (lp37948 S'confects' p37949 aS'confecting' p37950 aS'confected' p37951 aS'confected' p37952 asS'troat' p37953 (lp37954 S'troats' p37955 aS'troating' p37956 aS'troated' p37957 aS'troated' p37958 asS'pin' p37959 (lp37960 S'pins' p37961 aS'pinning' p37962 aS'pinned' p37963 aS'pinned' p37964 asS'garter' p37965 (lp37966 S'garters' p37967 aS'gartering' p37968 aS'gartered' p37969 aS'gartered' p37970 asS'pig' p37971 (lp37972 S'pigs' p37973 aS'pigging' p37974 aS'pigged' p37975 aS'pigged' p37976 asS'crusade' p37977 (lp37978 S'crusades' p37979 aS'crusading' p37980 aS'crusaded' p37981 aS'crusaded' p37982 asS'pip' p37983 (lp37984 S'pips' p37985 aS'pipping' p37986 aS'pipped' p37987 aS'pipped' p37988 asS'pit' p37989 (lp37990 S'pits' p37991 aS'pitting' p37992 aS'pitted' p37993 aS'pitted' p37994 asS'presignify' p37995 (lp37996 S'presignifies' p37997 aS'presignifying' p37998 aS'presignified' p37999 aS'presignified' p38000 asS'individuate' p38001 (lp38002 S'individuates' p38003 aS'individuating' p38004 aS'individuated' p38005 aS'individuated' p38006 asS'detain' p38007 (lp38008 S'detains' p38009 aS'detaining' p38010 aS'detained' p38011 aS'detained' p38012 asS'babbitt' p38013 (lp38014 S'babbitts' p38015 aS'babbitting' p38016 aS'babbitted' p38017 aS'babbitted' p38018 asS'oar' p38019 (lp38020 S'oars' p38021 aS'oaring' p38022 aS'oared' p38023 aS'oared' p38024 asS'counterweigh' p38025 (lp38026 S'counterweighs' p38027 aS'counterweighing' p38028 aS'counterweighed' p38029 aS'counterweighed' p38030 asS'redden' p38031 (lp38032 S'reddens' p38033 aS'reddening' p38034 aS'reddened' p38035 aS'reddened' p38036 asS'flange' p38037 (lp38038 S'flanges' p38039 aS'flanging' p38040 aS'flanged' p38041 aS'flanged' p38042 asS'bundle' p38043 (lp38044 S'bundles' p38045 aS'bundling' p38046 aS'bundled' p38047 aS'bundled' p38048 asS'wallow' p38049 (lp38050 S'wallows' p38051 aS'wallowing' p38052 aS'wallowed' p38053 aS'wallowed' p38054 asS'shrank' p38055 (lp38056 S'shranks' p38057 aS'shranking' p38058 aS'shranked' p38059 aS'shranked' p38060 asS'intussuscept' p38061 (lp38062 S'intussuscepts' p38063 aS'intussuscepting' p38064 aS'intussuscepted' p38065 aS'intussuscepted' p38066 asS'wallop' p38067 (lp38068 S'wallops' p38069 aS'walloping' p38070 aS'walloped' p38071 aS'walloped' p38072 asS'flue-cure' p38073 (lp38074 S'flue-cures' p38075 aS'flue-curing' p38076 aS'flue-cured' p38077 aS'flue-cured' p38078 asS'ramble' p38079 (lp38080 S'rambles' p38081 aS'rambling' p38082 aS'rambled' p38083 aS'rambled' p38084 asS'yelp' p38085 (lp38086 S'yelps' p38087 aS'yelping' p38088 aS'yelped' p38089 aS'yelped' p38090 asS'bulwark' p38091 (lp38092 S'bulwarks' p38093 aS'bulwarking' p38094 aS'bulwarked' p38095 aS'bulwarked' p38096 asS'jab' p38097 (lp38098 S'jabs' p38099 aS'jabbing' p38100 aS'jabbed' p38101 aS'jabbed' p38102 asS'yell' p38103 (lp38104 S'yells' p38105 aS'yelling' p38106 aS'yelled' p38107 aS'yelled' p38108 asS'parole' p38109 (lp38110 S'paroles' p38111 aS'paroling' p38112 aS'paroled' p38113 aS'paroled' p38114 asS'disarray' p38115 (lp38116 S'disarrays' p38117 aS'disarraying' p38118 aS'disarrayed' p38119 aS'disarrayed' p38120 asS'hitch' p38121 (lp38122 S'hitches' p38123 aS'hitching' p38124 aS'hitched' p38125 aS'hitched' p38126 asS'sleet' p38127 (lp38128 S'sleets' p38129 aS'sleeting' p38130 aS'sleeted' p38131 aS'sleeted' p38132 asS'sleep' p38133 (lp38134 S'sleeps' p38135 aS'sleeping' p38136 aS'slept' p38137 aS'slept' p38138 asS'signalize' p38139 (lp38140 S'signalizes' p38141 aS'signalizing' p38142 aS'signalized' p38143 aS'signalized' p38144 asS'hate' p38145 (lp38146 S'hates' p38147 aS'hating' p38148 aS'hated' p38149 aS'hated' p38150 asS'muzzle' p38151 (lp38152 S'muzzles' p38153 aS'muzzling' p38154 aS'muzzled' p38155 aS'muzzled' p38156 asS'Hoover' p38157 (lp38158 S'Hoovers' p38159 aS'Hoovering' p38160 aS'Hoovered' p38161 aS'Hoovered' p38162 asS'violate' p38163 (lp38164 S'violates' p38165 aS'violating' p38166 aS'violated' p38167 aS'violated' p38168 asS'snipe' p38169 (lp38170 S'snipes' p38171 aS'sniping' p38172 aS'sniped' p38173 aS'sniped' p38174 asS'tweet' p38175 (lp38176 S'tweets' p38177 aS'tweeting' p38178 aS'tweeted' p38179 aS'tweeted' p38180 asS'intreat' p38181 (lp38182 S'intreats' p38183 aS'intreating' p38184 aS'intreated' p38185 aS'intreated' p38186 asS'whipsaw' p38187 (lp38188 S'whipsaws' p38189 aS'whipsawing' p38190 aS'whipsawed' p38191 aS'whipsawed' p38192 asS'rankle' p38193 (lp38194 S'rankles' p38195 aS'rankling' p38196 aS'rankled' p38197 aS'rankled' p38198 asS'undergird' p38199 (lp38200 S'undergirds' p38201 aS'undergirding' p38202 aS'undergirded' p38203 aS'undergirded' p38204 asS'pride' p38205 (lp38206 S'prides' p38207 aS'priding' p38208 aS'prided' p38209 aS'prided' p38210 asS'shellac' p38211 (lp38212 S'shellacs' p38213 aS'shellacking' p38214 aS'shellacked' p38215 aS'shellacked' p38216 asS'merchant' p38217 (lp38218 S'merchants' p38219 aS'merchanting' p38220 aS'merchanted' p38221 aS'merchanted' p38222 asS'derogate' p38223 (lp38224 S'derogates' p38225 aS'derogating' p38226 aS'derogated' p38227 aS'derogated' p38228 asS'conjecture' p38229 (lp38230 S'conjectures' p38231 aS'conjecturing' p38232 aS'conjectured' p38233 aS'conjectured' p38234 asS'risk' p38235 (lp38236 S'risks' p38237 aS'risking' p38238 aS'risked' p38239 aS'risked' p38240 asS'dispense' p38241 (lp38242 S'dispenses' p38243 aS'dispensing' p38244 aS'dispensed' p38245 aS'dispensed' p38246 asS'rise' p38247 (lp38248 S'rises' p38249 aS'rising' p38250 aS'rose' p38251 aS'risen' p38252 asS'lurk' p38253 (lp38254 S'lurks' p38255 aS'lurking' p38256 aS'lurked' p38257 aS'lurked' p38258 asS'abreact' p38259 (lp38260 S'abreacts' p38261 aS'abreacting' p38262 aS'abreacted' p38263 aS'abreacted' p38264 asS'adumbrate' p38265 (lp38266 S'adumbrates' p38267 aS'adumbrating' p38268 aS'adumbrated' p38269 aS'adumbrated' p38270 asS'disfranchise' p38271 (lp38272 S'disfranchises' p38273 aS'disfranchising' p38274 aS'disfranchised' p38275 aS'disfranchised' p38276 asS'jack' p38277 (lp38278 S'jacks' p38279 aS'jacking' p38280 aS'jacked' p38281 aS'jacked' p38282 asS'evert' p38283 (lp38284 S'everts' p38285 aS'everting' p38286 aS'everted' p38287 aS'everted' p38288 asS'encounter' p38289 (lp38290 S'encounters' p38291 aS'encountering' p38292 aS'encountered' p38293 aS'encountered' p38294 asS'school' p38295 (lp38296 S'schools' p38297 aS'schooling' p38298 aS'schooled' p38299 aS'schooled' p38300 asS'parrot' p38301 (lp38302 S'parrots' p38303 aS'parroting' p38304 aS'parroted' p38305 aS'parroted' p38306 asS'conceive' p38307 (lp38308 S'conceives' p38309 aS'conceiving' p38310 aS'conceived' p38311 aS'conceived' p38312 asS'enjoy' p38313 (lp38314 S'enjoys' p38315 aS'enjoying' p38316 aS'enjoyed' p38317 aS'enjoyed' p38318 asS'fricassee' p38319 (lp38320 S'fricassees' p38321 aS'fricasseeing' p38322 aS'fricasseed' p38323 aS'fricasseed' p38324 asS'overdo' p38325 (lp38326 S'overdoes' p38327 aS'overdoing' p38328 aS'overdid' p38329 aS'overdone' p38330 asS'bicycle' p38331 (lp38332 S'bicycles' p38333 aS'bicycling' p38334 aS'bicycled' p38335 aS'bicycled' p38336 asS'intercut' p38337 (lp38338 S'intercuts' p38339 aS'intercutting' p38340 aS'intercut' p38341 aS'intercut' p38342 asS'direct' p38343 (lp38344 S'directs' p38345 aS'directing' p38346 aS'directed' p38347 aS'directed' p38348 asS'snafu' p38349 (lp38350 S'snafues' p38351 aS'snafuing' p38352 aS'snafued' p38353 aS'snafued' p38354 asS'louden' p38355 (lp38356 S'loudens' p38357 aS'loudening' p38358 aS'loudened' p38359 aS'loudened' p38360 asS'nail' p38361 (lp38362 S'nails' p38363 aS'nailing' p38364 aS'nailed' p38365 aS'nailed' p38366 asS'scrutinize' p38367 (lp38368 S'scrutinizes' p38369 aS'scrutinizing' p38370 aS'scrutinized' p38371 aS'scrutinized' p38372 asS'persuade' p38373 (lp38374 S'persuades' p38375 aS'persuading' p38376 aS'persuaded' p38377 aS'persuaded' p38378 asS'channelize' p38379 (lp38380 S'channelizes' p38381 aS'channelizing' p38382 aS'channelized' p38383 aS'channelized' p38384 asS'enounce' p38385 (lp38386 S'enounces' p38387 aS'enouncing' p38388 aS'enounced' p38389 aS'enounced' p38390 asS'blue' p38391 (lp38392 S'blues' p38393 aS'bluing' p38394 aS'blued' p38395 aS'blued' p38396 asS'hide' p38397 (lp38398 S'hides' p38399 aS'hiding' p38400 aS'hid' p38401 aS'hidden' p38402 asS'conduce' p38403 (lp38404 S'conduces' p38405 aS'conducing' p38406 aS'conduced' p38407 aS'conduced' p38408 asS'blub' p38409 (lp38410 S'blubs' p38411 aS'blubbing' p38412 aS'blubbed' p38413 aS'blubbed' p38414 asS'worsen' p38415 (lp38416 S'worsens' p38417 aS'worsening' p38418 aS'worsened' p38419 aS'worsened' p38420 asS'introspect' p38421 (lp38422 S'introspects' p38423 aS'introspecting' p38424 aS'introspected' p38425 aS'introspected' p38426 asS'poison' p38427 (lp38428 S'poisons' p38429 aS'poisoning' p38430 aS'poisoned' p38431 aS'poisoned' p38432 asS'insinuate' p38433 (lp38434 S'insinuates' p38435 aS'insinuating' p38436 aS'insinuated' p38437 aS'insinuated' p38438 asS'blur' p38439 (lp38440 S'blurs' p38441 aS'blurring' p38442 aS'blurred' p38443 aS'blurred' p38444 asS'jaundice' p38445 (lp38446 S'jaundices' p38447 aS'jaundicing' p38448 aS'jaundiced' p38449 aS'jaundiced' p38450 asS'deemphasize' p38451 (lp38452 S'deemphasizes' p38453 aS'deemphasizing' p38454 aS'deemphasized' p38455 aS'deemphasized' p38456 asS'tetanize' p38457 (lp38458 S'tetanizes' p38459 aS'tetanizing' p38460 aS'tetanized' p38461 aS'tetanized' p38462 asS'foreknow' p38463 (lp38464 S'foreknows' p38465 aS'foreknowing' p38466 aS'foreknew' p38467 aS'foreknown' p38468 asS'jampack' p38469 (lp38470 S'jampacks' p38471 aS'jampacking' p38472 aS'jampacked' p38473 aS'jampacked' p38474 asS'metamorphose' p38475 (lp38476 S'metamorphoses' p38477 aS'metamorphosing' p38478 aS'metamorphosed' p38479 aS'metamorphosed' p38480 asS'acidify' p38481 (lp38482 S'acidifies' p38483 aS'acidifying' p38484 aS'acidified' p38485 aS'acidified' p38486 asS'punch' p38487 (lp38488 S'punches' p38489 aS'punching' p38490 aS'punched' p38491 aS'punched' p38492 asS'superannuate' p38493 (lp38494 S'superannuates' p38495 aS'superannuating' p38496 aS'superannuated' p38497 aS'superannuated' p38498 asS'verbify' p38499 (lp38500 S'verbifies' p38501 aS'verbifying' p38502 aS'verbified' p38503 aS'verbified' p38504 asS'ravish' p38505 (lp38506 S'ravishes' p38507 aS'ravishing' p38508 aS'ravished' p38509 aS'ravished' p38510 asS'auction' p38511 (lp38512 S'auctions' p38513 aS'auctioning' p38514 aS'auctioned' p38515 aS'auctioned' p38516 asS'deoxidize' p38517 (lp38518 S'deoxidizes' p38519 aS'deoxidizing' p38520 aS'deoxidized' p38521 aS'deoxidized' p38522 asS'ridicule' p38523 (lp38524 S'ridicules' p38525 aS'ridiculing' p38526 aS'ridiculed' p38527 aS'ridiculed' p38528 asS'culminate' p38529 (lp38530 S'culminates' p38531 aS'culminating' p38532 aS'culminated' p38533 aS'culminated' p38534 asS'outpace' p38535 (lp38536 S'outpaces' p38537 aS'outpacing' p38538 aS'outpaced' p38539 aS'outpaced' p38540 asS'precis' p38541 (lp38542 S'precises' p38543 aS'precising' p38544 aS'precised' p38545 aS'precised' p38546 asS'lignify' p38547 (lp38548 S'lignifies' p38549 aS'lignifying' p38550 aS'lignified' p38551 aS'lignified' p38552 asS'leaven' p38553 (lp38554 S'leavens' p38555 aS'leavening' p38556 aS'leavened' p38557 aS'leavened' p38558 asS'intersperse' p38559 (lp38560 S'intersperses' p38561 aS'interspersing' p38562 aS'interspersed' p38563 aS'interspersed' p38564 asS'stray' p38565 (lp38566 S'strays' p38567 aS'straying' p38568 aS'strayed' p38569 aS'strayed' p38570 asS'straw' p38571 (lp38572 S'straws' p38573 aS'strawing' p38574 aS'strawed' p38575 aS'strawed' p38576 asS'strap' p38577 (lp38578 S'straps' p38579 aS'strapping' p38580 aS'strapped' p38581 aS'strapped' p38582 asS'descale' p38583 (lp38584 S'descales' p38585 aS'descaling' p38586 aS'descaled' p38587 aS'descaled' p38588 asS'would' p38589 (lp38590 S'woulds' p38591 aS'woulding' p38592 aS'woulded' p38593 aS'woulded' p38594 aS"wouldn't" p38595 asS'pigeonhole' p38596 (lp38597 S'pigeonholes' p38598 aS'pigeonholing' p38599 aS'pigeonholed' p38600 aS'pigeonholed' p38601 asS'interlace' p38602 (lp38603 S'interlaces' p38604 aS'interlacing' p38605 aS'interlaced' p38606 aS'interlaced' p38607 asS'racketeer' p38608 (lp38609 S'racketeers' p38610 aS'racketeering' p38611 aS'racketeered' p38612 aS'racketeered' p38613 asS'underprop' p38614 (lp38615 S'underprops' p38616 aS'underpropping' p38617 aS'underpropped' p38618 aS'underpropped' p38619 asS'swinge' p38620 (lp38621 S'swinges' p38622 aS'swingeing' p38623 aS'swinged' p38624 aS'swinged' p38625 asS'spike' p38626 (lp38627 S'spikes' p38628 aS'spiking' p38629 aS'spiked' p38630 aS'spiked' p38631 asS'overlive' p38632 (lp38633 S'overlives' p38634 aS'overliving' p38635 aS'overlived' p38636 aS'overlived' p38637 asS'breathe' p38638 (lp38639 S'breathes' p38640 aS'breathing' p38641 aS'breathed' p38642 aS'breathed' p38643 asS'blather' p38644 (lp38645 S'blathers' p38646 aS'blathering' p38647 aS'blathered' p38648 aS'blathered' p38649 asS'saber' p38650 (lp38651 S'sabers' p38652 aS'sabering' p38653 aS'sabered' p38654 aS'sabered' p38655 asS'interpenetrate' p38656 (lp38657 S'interpenetrates' p38658 aS'interpenetrating' p38659 aS'interpenetrated' p38660 aS'interpenetrated' p38661 asS'muse' p38662 (lp38663 S'muses' p38664 aS'musing' p38665 aS'mused' p38666 aS'mused' p38667 asS'phone' p38668 (lp38669 S'phones' p38670 aS'phoning' p38671 aS'phoned' p38672 aS'phoned' p38673 asS'kipper' p38674 (lp38675 S'kippers' p38676 aS'kippering' p38677 aS'kippered' p38678 aS'kippered' p38679 asS'masticate' p38680 (lp38681 S'masticates' p38682 aS'masticating' p38683 aS'masticated' p38684 aS'masticated' p38685 asS'adjourn' p38686 (lp38687 S'adjourns' p38688 aS'adjourning' p38689 aS'adjourned' p38690 aS'adjourned' p38691 asS'moil' p38692 (lp38693 S'moils' p38694 aS'moiling' p38695 aS'moiled' p38696 aS'moiled' p38697 asS'pouch' p38698 (lp38699 S'pouches' p38700 aS'pouching' p38701 aS'pouched' p38702 aS'pouched' p38703 asS'must' p38704 (lp38705 S"mustn't" p38706 asS'shoot' p38707 (lp38708 S'shoots' p38709 aS'shooting' p38710 ag30249 ag30250 asS'daff' p38711 (lp38712 S'daffs' p38713 aS'daffing' p38714 aS'daffed' p38715 aS'daffed' p38716 asS'hutch' p38717 (lp38718 S'hutches' p38719 aS'hutching' p38720 aS'hutched' p38721 aS'hutched' p38722 asS'join' p38723 (lp38724 S'joins' p38725 aS'joining' p38726 aS'joined' p38727 aS'joined' p38728 asS'micturate' p38729 (lp38730 S'micturates' p38731 aS'micturating' p38732 aS'micturated' p38733 aS'micturated' p38734 asS'outgain' p38735 (lp38736 S'outgains' p38737 aS'outgaining' p38738 aS'outgained' p38739 aS'outgained' p38740 asS'declassify' p38741 (lp38742 S'declassifies' p38743 aS'declassifying' p38744 aS'declassified' p38745 aS'declassified' p38746 asS'tissue' p38747 (lp38748 S'tissues' p38749 aS'tissuing' p38750 aS'tissued' p38751 aS'tissued' p38752 asS'install' p38753 (lp38754 S'instals' p38755 aS'installing' p38756 aS'installed' p38757 aS'installed' p38758 asS'salvage' p38759 (lp38760 S'salvages' p38761 aS'salvaging' p38762 aS'salvaged' p38763 aS'salvaged' p38764 asS'aggrandize' p38765 (lp38766 S'aggrandizes' p38767 aS'aggrandizing' p38768 aS'aggrandized' p38769 aS'aggrandized' p38770 asS'quarrel' p38771 (lp38772 S'quarrels' p38773 aS'quarrelling' p38774 aS'quarrelled' p38775 aS'quarrelled' p38776 asS'defile' p38777 (lp38778 S'defiles' p38779 aS'defiling' p38780 aS'defiled' p38781 aS'defiled' p38782 asS'loosen' p38783 (lp38784 S'loosens' p38785 aS'loosening' p38786 aS'loosened' p38787 aS'loosened' p38788 asS'jumble' p38789 (lp38790 S'jumbles' p38791 aS'jumbling' p38792 aS'jumbled' p38793 aS'jumbled' p38794 asS'attract' p38795 (lp38796 S'attracts' p38797 aS'attracting' p38798 aS'attracted' p38799 aS'attracted' p38800 asS'calve' p38801 (lp38802 S'calving' p38803 aS'calved' p38804 aS'calved' p38805 asS'guarantee' p38806 (lp38807 S'guarantees' p38808 aS'guaranteeing' p38809 aS'guaranteed' p38810 aS'guaranteed' p38811 asS'collude' p38812 (lp38813 S'colludes' p38814 aS'colluding' p38815 aS'colluded' p38816 aS'colluded' p38817 asS'end' p38818 (lp38819 S'ends' p38820 aS'ending' p38821 aS'ended' p38822 aS'ended' p38823 asS'bung' p38824 (lp38825 S'bungs' p38826 aS'bunging' p38827 aS'bunged' p38828 aS'bunged' p38829 asS'stride' p38830 (lp38831 S'strides' p38832 aS'striding' p38833 aS'strode' p38834 aS'strode' p38835 asS'bunk' p38836 (lp38837 S'bunks' p38838 aS'bunking' p38839 aS'bunked' p38840 aS'bunked' p38841 asS'slalom' p38842 (lp38843 S'slaloms' p38844 aS'slaloming' p38845 aS'slalomed' p38846 aS'slalomed' p38847 asS'shred' p38848 (lp38849 S'shreds' p38850 aS'shredding' p38851 aS'shredded' p38852 aS'shredded' p38853 asS'enquire' p38854 (lp38855 S'enquires' p38856 aS'enquiring' p38857 aS'enquired' p38858 aS'enquired' p38859 asS'bunt' p38860 (lp38861 S'bunts' p38862 aS'bunting' p38863 aS'bunted' p38864 aS'bunted' p38865 asS'gate' p38866 (lp38867 S'gates' p38868 ag33908 ag33909 ag33910 asS'bludge' p38869 (lp38870 S'bludges' p38871 aS'bludging' p38872 aS'bludged' p38873 aS'bludged' p38874 asS'raffle' p38875 (lp38876 S'raffles' p38877 aS'raffling' p38878 aS'raffled' p38879 aS'raffled' p38880 asS'moisten' p38881 (lp38882 S'moistens' p38883 aS'moistening' p38884 aS'moistened' p38885 aS'moistened' p38886 asS'unhorse' p38887 (lp38888 S'unhorses' p38889 aS'unhorsing' p38890 aS'unhorsed' p38891 aS'unhorsed' p38892 asS'befog' p38893 (lp38894 S'befogs' p38895 aS'befogging' p38896 aS'befogged' p38897 aS'befogged' p38898 asS'mispronounce' p38899 (lp38900 S'mispronounces' p38901 aS'mispronouncing' p38902 aS'mispronounced' p38903 aS'mispronounced' p38904 asS'undercapitalize' p38905 (lp38906 S'undercapitalizes' p38907 aS'undercapitalizing' p38908 aS'undercapitalized' p38909 aS'undercapitalized' p38910 asS'mess' p38911 (lp38912 S'messes' p38913 aS'messing' p38914 aS'messed' p38915 aS'messed' p38916 asS'famish' p38917 (lp38918 S'famishes' p38919 aS'famishing' p38920 aS'famished' p38921 aS'famished' p38922 asS'infold' p38923 (lp38924 S'infolds' p38925 aS'infolding' p38926 aS'infolded' p38927 aS'infolded' p38928 asS'lump' p38929 (lp38930 S'lumps' p38931 aS'lumping' p38932 aS'lumped' p38933 aS'lumped' p38934 asS'whittle' p38935 (lp38936 S'whittles' p38937 aS'whittling' p38938 aS'whittled' p38939 aS'whittled' p38940 asS'mesh' p38941 (lp38942 S'meshs' p38943 aS'meshing' p38944 aS'meshed' p38945 aS'meshed' p38946 asS'parallel' p38947 (lp38948 S'parallels' p38949 aS'parallelling' p38950 aS'parallelled' p38951 aS'parallelled' p38952 asS'derequisition' p38953 (lp38954 S'derequisitions' p38955 aS'derequisitioning' p38956 aS'derequisitioned' p38957 aS'derequisitioned' p38958 asS'hedgehop' p38959 (lp38960 S'hedgehops' p38961 ag30894 ag30895 aS'hedgehopped' p38962 asS'spout' p38963 (lp38964 S'spouts' p38965 aS'spouting' p38966 aS'spouted' p38967 aS'spouted' p38968 asS'arbitrate' p38969 (lp38970 S'arbitrates' p38971 aS'arbitrating' p38972 aS'arbitrated' p38973 aS'arbitrated' p38974 asS'patent' p38975 (lp38976 S'patents' p38977 aS'patenting' p38978 aS'patented' p38979 aS'patented' p38980 asS'scout' p38981 (lp38982 S'scouts' p38983 aS'scouting' p38984 aS'scouted' p38985 aS'scouted' p38986 asS'environ' p38987 (lp38988 S'environs' p38989 aS'environing' p38990 aS'environed' p38991 aS'environed' p38992 asS'enter' p38993 (lp38994 S'enters' p38995 aS'entering' p38996 aS'entered' p38997 aS'entered' p38998 asS'broider' p38999 (lp39000 S'broiders' p39001 aS'broidering' p39002 aS'broidered' p39003 aS'broidered' p39004 asS'unsteady' p39005 (lp39006 S'unsteadies' p39007 aS'unsteadying' p39008 aS'unsteadied' p39009 aS'unsteadied' p39010 asS'fetter' p39011 (lp39012 S'fetters' p39013 aS'fettering' p39014 aS'fettered' p39015 aS'fettered' p39016 asS'deform' p39017 (lp39018 S'deforms' p39019 aS'deforming' p39020 aS'deformed' p39021 aS'deformed' p39022 asS'sprout' p39023 (lp39024 S'sprouts' p39025 aS'sprouting' p39026 aS'sprouted' p39027 aS'sprouted' p39028 asS'bleach' p39029 (lp39030 S'bleaches' p39031 aS'bleaching' p39032 aS'bleached' p39033 aS'bleached' p39034 asS'reorient' p39035 (lp39036 S'reorients' p39037 aS'reorienting' p39038 aS'reoriented' p39039 aS'reoriented' p39040 asS'outshine' p39041 (lp39042 S'outshines' p39043 aS'outshining' p39044 aS'outshone' p39045 aS'outshone' p39046 asS'up-anchor' p39047 (lp39048 S'up-anchors' p39049 aS'up-anchoring' p39050 aS'up-anchored' p39051 aS'up-anchored' p39052 asS'strangle' p39053 (lp39054 S'strangles' p39055 aS'strangling' p39056 aS'strangled' p39057 aS'strangled' p39058 asS'digest' p39059 (lp39060 S'digests' p39061 aS'digesting' p39062 aS'digested' p39063 aS'digested' p39064 asS'overstep' p39065 (lp39066 S'oversteps' p39067 aS'overstepping' p39068 aS'overstepped' p39069 aS'overstepped' p39070 asS'illtreat' p39071 (lp39072 S'illtreats' p39073 aS'illtreating' p39074 aS'illtreated' p39075 aS'illtreated' p39076 asS'thrust' p39077 (lp39078 S'thrusts' p39079 aS'thrusting' p39080 aS'thrust' p39081 aS'thrust' p39082 asS'comprehend' p39083 (lp39084 S'comprehends' p39085 aS'comprehending' p39086 aS'comprehended' p39087 aS'comprehended' p39088 asS'imp' p39089 (lp39090 S'imps' p39091 aS'imping' p39092 aS'imped' p39093 aS'imped' p39094 asS'strand' p39095 (lp39096 S'strands' p39097 aS'stranding' p39098 aS'stranded' p39099 aS'stranded' p39100 asS'fade' p39101 (lp39102 S'fades' p39103 aS'fading' p39104 aS'faded' p39105 aS'faded' p39106 asS'mistreat' p39107 (lp39108 S'mistreats' p39109 aS'mistreating' p39110 aS'mistreated' p39111 aS'mistreated' p39112 asS'croquet' p39113 (lp39114 S'croquets' p39115 aS'croqueting' p39116 aS'croqueted' p39117 aS'croqueted' p39118 asS'riff' p39119 (lp39120 S'riffs' p39121 aS'riffing' p39122 aS'riffed' p39123 aS'riffed' p39124 asS'helve' p39125 (lp39126 S'helves' p39127 aS'helving' p39128 aS'helved' p39129 aS'helved' p39130 asS'vandalize' p39131 (lp39132 S'vandalizes' p39133 aS'vandalizing' p39134 aS'vandalized' p39135 aS'vandalized' p39136 asS'vouchsafe' p39137 (lp39138 S'vouchsafes' p39139 aS'vouchsafing' p39140 aS'vouchsafed' p39141 aS'vouchsafed' p39142 asS'uptilt' p39143 (lp39144 S'uptilts' p39145 aS'uptilting' p39146 aS'uptilted' p39147 aS'uptilted' p39148 asS'plaster' p39149 (lp39150 S'plasters' p39151 aS'plastering' p39152 aS'plastered' p39153 aS'plastered' p39154 asS'roost' p39155 (lp39156 S'roosts' p39157 aS'roosting' p39158 aS'roosted' p39159 aS'roosted' p39160 asS'depopulate' p39161 (lp39162 S'depopulates' p39163 aS'depopulating' p39164 aS'depopulated' p39165 aS'depopulated' p39166 asS'manicure' p39167 (lp39168 S'manicures' p39169 aS'manicuring' p39170 aS'manicured' p39171 aS'manicured' p39172 asS'roose' p39173 (lp39174 S'rooses' p39175 aS'roosing' p39176 aS'roosed' p39177 aS'roosed' p39178 asS'gloom' p39179 (lp39180 S'glooms' p39181 aS'glooming' p39182 aS'gloomed' p39183 aS'gloomed' p39184 asS'chuck' p39185 (lp39186 S'chucks' p39187 aS'chucking' p39188 aS'chucked' p39189 aS'chucked' p39190 asS'explode' p39191 (lp39192 S'explodes' p39193 aS'exploding' p39194 aS'exploded' p39195 aS'exploded' p39196 asS'affiliate' p39197 (lp39198 S'affiliates' p39199 aS'affiliating' p39200 aS'affiliated' p39201 aS'affiliated' p39202 asS'dethrone' p39203 (lp39204 S'dethrones' p39205 aS'dethroning' p39206 aS'dethroned' p39207 aS'dethroned' p39208 asS'consolidate' p39209 (lp39210 S'consolidates' p39211 aS'consolidating' p39212 aS'consolidated' p39213 aS'consolidated' p39214 asS'disorientate' p39215 (lp39216 S'disorients' p39217 aS'disorienting' p39218 aS'disoriented' p39219 aS'disoriented' p39220 asS'reface' p39221 (lp39222 S'refaces' p39223 aS'refacing' p39224 aS'refaced' p39225 aS'refaced' p39226 asS'disentwine' p39227 (lp39228 S'disentwines' p39229 aS'disentwining' p39230 aS'disentwined' p39231 aS'disentwined' p39232 asS'unscrew' p39233 (lp39234 S'unscrews' p39235 aS'unscrewing' p39236 aS'unscrewed' p39237 aS'unscrewed' p39238 asS'proportion' p39239 (lp39240 S'proportions' p39241 aS'proportioning' p39242 aS'proportioned' p39243 aS'proportioned' p39244 asS'truant' p39245 (lp39246 S'truants' p39247 aS'truanting' p39248 aS'truanted' p39249 aS'truanted' p39250 asS'clothe' p39251 (lp39252 S'clothes' p39253 aS'clothing' p39254 aS'clothed' p39255 aS'clothed' p39256 asS'pounce' p39257 (lp39258 S'pounces' p39259 aS'pouncing' p39260 aS'pounced' p39261 aS'pounced' p39262 asS'depress' p39263 (lp39264 S'depresses' p39265 aS'depressing' p39266 aS'depressed' p39267 aS'depressed' p39268 asS'lair' p39269 (lp39270 S'lairs' p39271 aS'lairing' p39272 aS'laired' p39273 aS'laired' p39274 asS'gob' p39275 (lp39276 S'gobs' p39277 aS'gobbing' p39278 aS'gobbed' p39279 aS'gobbed' p39280 asS'underbid' p39281 (lp39282 S'underbids' p39283 aS'underbidding' p39284 aS'underbid' p39285 aS'underbidden' p39286 asS'intonate' p39287 (lp39288 S'intonates' p39289 aS'intonating' p39290 aS'intonated' p39291 aS'intonated' p39292 asS'laik' p39293 (lp39294 S'laiks' p39295 aS'laiking' p39296 aS'laiked' p39297 aS'laiked' p39298 asS'prorogue' p39299 (lp39300 S'prorogues' p39301 aS'proroguing' p39302 aS'prorogued' p39303 aS'prorogued' p39304 asS'provide' p39305 (lp39306 S'provides' p39307 aS'providing' p39308 aS'provided' p39309 aS'provided' p39310 asS'associate' p39311 (lp39312 S'associates' p39313 aS'associating' p39314 aS'associated' p39315 aS'associated' p39316 asS'rail' p39317 (lp39318 S'rails' p39319 aS'railing' p39320 aS'railed' p39321 aS'railed' p39322 asS'free' p39323 (lp39324 S'frees' p39325 aS'freeing' p39326 aS'freed' p39327 aS'freed' p39328 asS'polarize' p39329 (lp39330 S'polarizes' p39331 aS'polarizing' p39332 aS'polarized' p39333 aS'polarized' p39334 asS'streamline' p39335 (lp39336 S'streamlines' p39337 aS'streamlining' p39338 aS'streamlined' p39339 aS'streamlined' p39340 asS'constellate' p39341 (lp39342 S'constellates' p39343 aS'constellating' p39344 aS'constellated' p39345 aS'constellated' p39346 asS'superimpose' p39347 (lp39348 S'superimposes' p39349 aS'superimposing' p39350 aS'superimposed' p39351 aS'superimposed' p39352 asS'fret' p39353 (lp39354 S'frets' p39355 aS'fretting' p39356 aS'fretted' p39357 aS'frets' p39358 asS'cityfy' p39359 (lp39360 S'cityfies' p39361 aS'cityfying' p39362 aS'cityfied' p39363 aS'cityfied' p39364 asS'sluff' p39365 (lp39366 S'sluffs' p39367 aS'sluffing' p39368 aS'sluffed' p39369 aS'sluffed' p39370 asS'nix' p39371 (lp39372 S'nixes' p39373 aS'nixing' p39374 aS'nixed' p39375 aS'nixed' p39376 asS'filter' p39377 (lp39378 S'filters' p39379 aS'filtering' p39380 aS'filtered' p39381 aS'filtered' p39382 asS'aspire' p39383 (lp39384 S'aspires' p39385 aS'aspiring' p39386 aS'aspired' p39387 aS'aspired' p39388 asS'recite' p39389 (lp39390 S'recites' p39391 aS'reciting' p39392 aS'recited' p39393 aS'recited' p39394 asS'mountebank' p39395 (lp39396 S'mountebanks' p39397 aS'mountebanking' p39398 aS'mountebanked' p39399 aS'mountebanked' p39400 asS're-count' p39401 (lp39402 S're-counts' p39403 aS're-counting' p39404 aS'recounted' p39405 aS're-counted' p39406 asS'sporulate' p39407 (lp39408 S'sporulates' p39409 aS'sporulating' p39410 aS'sporulated' p39411 aS'sporulated' p39412 asS'rank' p39413 (lp39414 S'ranks' p39415 aS'ranking' p39416 aS'ranked' p39417 aS'ranked' p39418 asS'bushwhack' p39419 (lp39420 S'bushwhacks' p39421 aS'bushwhacking' p39422 aS'bushwhacked' p39423 aS'bushwhacked' p39424 asS'bombard' p39425 (lp39426 S'bombards' p39427 aS'bombarding' p39428 aS'bombarded' p39429 aS'bombarded' p39430 asS'rant' p39431 (lp39432 S'rants' p39433 aS'ranting' p39434 aS'ranted' p39435 aS'ranted' p39436 asS'vaticinate' p39437 (lp39438 S'vaticinates' p39439 aS'vaticinating' p39440 aS'vaticinated' p39441 aS'vaticinated' p39442 asS'sober' p39443 (lp39444 S'sobers' p39445 aS'sobering' p39446 aS'sobered' p39447 aS'sobered' p39448 asS'categorize' p39449 (lp39450 S'categorizes' p39451 aS'categorizing' p39452 aS'categorized' p39453 aS'categorized' p39454 asS'top' p39455 (lp39456 S'tops' p39457 aS'topping' p39458 aS'topped' p39459 aS'topped' p39460 asS'tow' p39461 (lp39462 S'tows' p39463 aS'towing' p39464 aS'towed' p39465 aS'towed' p39466 asS'tot' p39467 (lp39468 S'tots' p39469 aS'totting' p39470 aS'totted' p39471 aS'totted' p39472 asS'overact' p39473 (lp39474 S'overacts' p39475 aS'overacting' p39476 aS'overacted' p39477 aS'overacted' p39478 asS'straighten' p39479 (lp39480 S'straightens' p39481 aS'straightening' p39482 aS'straightened' p39483 aS'straightened' p39484 asS'bethink' p39485 (lp39486 S'bethinks' p39487 aS'bethinking' p39488 aS'bethought' p39489 aS'bethought' p39490 asS'tog' p39491 (lp39492 S'togs' p39493 aS'togging' p39494 aS'togged' p39495 aS'togged' p39496 asS'toe' p39497 (lp39498 S'toes' p39499 aS'toeing' p39500 aS'toed' p39501 aS'toed' p39502 asS'murder' p39503 (lp39504 S'murders' p39505 aS'murdering' p39506 aS'murdered' p39507 aS'murdered' p39508 asS'overdraw' p39509 (lp39510 S'overdraws' p39511 aS'overdrawing' p39512 aS'overdrew' p39513 aS'overdrawn' p39514 asS'tool' p39515 (lp39516 S'tools' p39517 aS'tooling' p39518 aS'tooled' p39519 aS'tooled' p39520 asS'serve' p39521 (lp39522 S'serves' p39523 aS'serving' p39524 aS'served' p39525 aS'served' p39526 asS'punctuate' p39527 (lp39528 S'punctuates' p39529 aS'punctuating' p39530 aS'punctuated' p39531 aS'punctuated' p39532 asS'embellish' p39533 (lp39534 S'embellishes' p39535 aS'embellishing' p39536 aS'embellished' p39537 aS'embellished' p39538 asS'flimflam' p39539 (lp39540 S'flimflams' p39541 aS'flimflamming' p39542 aS'flimflammed' p39543 aS'flimflammed' p39544 asS'wrapped' p39545 (lp39546 sS'toot' p39547 (lp39548 S'toots' p39549 aS'tooting' p39550 aS'tooted' p39551 aS'tooted' p39552 asS'incur' p39553 (lp39554 S'incurs' p39555 aS'incurring' p39556 aS'incurred' p39557 aS'incurred' p39558 asS'drool' p39559 (lp39560 S'drools' p39561 aS'drooling' p39562 aS'drooled' p39563 aS'drooled' p39564 asS'gelatinize' p39565 (lp39566 S'gelatinizes' p39567 aS'gelatinizing' p39568 aS'gelatinized' p39569 aS'gelatinized' p39570 asS'pluralize' p39571 (lp39572 S'pluralizes' p39573 aS'pluralizing' p39574 aS'pluralized' p39575 aS'pluralized' p39576 asS'rampage' p39577 (lp39578 S'rampages' p39579 aS'rampaging' p39580 aS'rampaged' p39581 aS'rampaged' p39582 asS'nominate' p39583 (lp39584 S'nominates' p39585 aS'nominating' p39586 aS'nominated' p39587 aS'nominated' p39588 asS'prong' p39589 (lp39590 S'prongs' p39591 aS'pronging' p39592 aS'pronged' p39593 aS'pronged' p39594 asS'flame' p39595 (lp39596 S'flames' p39597 aS'flaming' p39598 aS'flamed' p39599 aS'flamed' p39600 asS'expostulate' p39601 (lp39602 S'expostulates' p39603 aS'expostulating' p39604 aS'expostulated' p39605 aS'expostulated' p39606 asS'beard' p39607 (lp39608 S'beards' p39609 aS'bearding' p39610 aS'bearded' p39611 aS'bearded' p39612 asS'bridge' p39613 (lp39614 S'bridges' p39615 aS'bridging' p39616 aS'bridged' p39617 aS'bridged' p39618 asS'fashion' p39619 (lp39620 S'fashions' p39621 aS'fashioning' p39622 aS'fashioned' p39623 aS'fashioned' p39624 asS'barbarize' p39625 (lp39626 S'barbarizes' p39627 aS'barbarizing' p39628 aS'barbarized' p39629 aS'barbarized' p39630 asS'ram' p39631 (lp39632 S'rams' p39633 aS'ramming' p39634 aS'rammed' p39635 aS'rammed' p39636 asS'taint' p39637 (lp39638 S'taints' p39639 aS'tainting' p39640 aS'tainted' p39641 aS'tainted' p39642 asS'shillyshally' p39643 (lp39644 sS'rat' p39645 (lp39646 S'rats' p39647 aS'ratting' p39648 aS'ratted' p39649 aS'ratted' p39650 asS'barde' p39651 (lp39652 S'bards' p39653 aS'barding' p39654 aS'barded' p39655 aS'barded' p39656 asS'rap' p39657 (lp39658 S'raps' p39659 aS'rapping' p39660 aS'rapped' p39661 aS'rapped' p39662 asS'protract' p39663 (lp39664 S'protracts' p39665 aS'protracting' p39666 aS'protracted' p39667 aS'protracted' p39668 asS'gabble' p39669 (lp39670 S'gabbles' p39671 aS'gabbling' p39672 aS'gabbled' p39673 aS'gabbled' p39674 asS'spade' p39675 (lp39676 S'spades' p39677 aS'spading' p39678 aS'spaded' p39679 aS'spaded' p39680 asS'configure' p39681 (lp39682 S'configures' p39683 aS'configuring' p39684 aS'configured' p39685 aS'configured' p39686 asS'relapse' p39687 (lp39688 S'relapses' p39689 aS'relapsing' p39690 aS'relapsed' p39691 aS'relapsed' p39692 asS'snow' p39693 (lp39694 S'snows' p39695 aS'snowing' p39696 aS'snowed' p39697 aS'snowed' p39698 asS'hatch' p39699 (lp39700 S'hatches' p39701 aS'hatching' p39702 aS'hatched' p39703 aS'hatched' p39704 asS'cleft' p39705 (lp39706 S'clefts' p39707 aS'clefting' p39708 aS'clefted' p39709 aS'clefted' p39710 asS'snog' p39711 (lp39712 S'snogs' p39713 aS'snogging' p39714 aS'snogged' p39715 aS'snogged' p39716 asS'predigest' p39717 (lp39718 S'predigests' p39719 aS'predigesting' p39720 ag21255 aS'predigested' p39721 asS'phantasy' p39722 (lp39723 S'phantasies' p39724 aS'phantasying' p39725 aS'phantasied' p39726 aS'phantasied' p39727 asS'foliate' p39728 (lp39729 S'foliates' p39730 aS'foliating' p39731 aS'foliated' p39732 aS'foliated' p39733 asS'bename' p39734 (lp39735 S'benames' p39736 aS'benaming' p39737 aS'benempt' p39738 aS'benempt' p39739 asS'audition' p39740 (lp39741 S'auditions' p39742 aS'auditioning' p39743 aS'auditioned' p39744 aS'auditioned' p39745 asS'coif' p39746 (lp39747 S'coifs' p39748 aS'coiffing' p39749 aS'coiffed' p39750 aS'coiffed' p39751 asS'coil' p39752 (lp39753 S'coils' p39754 aS'coiling' p39755 aS'coiled' p39756 aS'coiled' p39757 asS'coin' p39758 (lp39759 S'coins' p39760 aS'coining' p39761 aS'coined' p39762 aS'coined' p39763 asS'glow' p39764 (lp39765 S'glows' p39766 aS'glowing' p39767 aS'glowed' p39768 aS'glowed' p39769 asS'whinge' p39770 (lp39771 S'whinges' p39772 aS'whinging' p39773 aS'whinged' p39774 aS'whinged' p39775 asS'extravagate' p39776 (lp39777 S'extravagates' p39778 aS'extravagating' p39779 aS'extravagated' p39780 aS'extravagated' p39781 asS'interject' p39782 (lp39783 S'interjects' p39784 aS'interjecting' p39785 aS'interjected' p39786 aS'interjected' p39787 asS'flop' p39788 (lp39789 S'flops' p39790 aS'flopping' p39791 aS'flopped' p39792 aS'flopped' p39793 asS'flow' p39794 (lp39795 S'flows' p39796 aS'flowing' p39797 aS'flowed' p39798 aS'flowed' p39799 asS'sulphurate' p39800 (lp39801 S'sulphurates' p39802 aS'sulphurating' p39803 aS'sulphurated' p39804 aS'sulphurated' p39805 asS'tallyho' p39806 (lp39807 S'tallyhos' p39808 aS'tallyhoing' p39809 aS'tallyhoed' p39810 aS'tallyhoed' p39811 asS'caterwaul' p39812 (lp39813 S'caterwauls' p39814 aS'caterwauling' p39815 aS'caterwauled' p39816 aS'caterwauled' p39817 asS'perorate' p39818 (lp39819 S'perorates' p39820 aS'perorating' p39821 aS'perorated' p39822 aS'perorated' p39823 asS'transpire' p39824 (lp39825 S'transpires' p39826 aS'transpiring' p39827 aS'transpired' p39828 aS'transpired' p39829 asS'outjockey' p39830 (lp39831 S'outjockeys' p39832 aS'outjockeying' p39833 aS'outjockeyed' p39834 aS'outjockeyed' p39835 asS'joy-ride' p39836 (lp39837 S'joy-rides' p39838 aS'joy-riding' p39839 aS'joy-rided' p39840 aS'joy-rided' p39841 asS'flog' p39842 (lp39843 S'flogs' p39844 aS'flogging' p39845 aS'flogged' p39846 aS'flogged' p39847 asS'yank' p39848 (lp39849 S'yanks' p39850 aS'yanking' p39851 aS'yanked' p39852 aS'yanked' p39853 asS'bait' p39854 (lp39855 S'baits' p39856 aS'baiting' p39857 aS'baited' p39858 aS'baited' p39859 asS'inspire' p39860 (lp39861 S'inspires' p39862 aS'inspiring' p39863 aS'inspired' p39864 aS'inspired' p39865 asS'endear' p39866 (lp39867 S'endears' p39868 aS'endearing' p39869 aS'endeared' p39870 aS'endeared' p39871 asS'alight' p39872 (lp39873 S'alights' p39874 aS'alighting' p39875 aS'alighted' p39876 aS'alighted' p39877 asS'reorganize' p39878 (lp39879 S'reorganizes' p39880 aS'reorganizing' p39881 aS'reorganized' p39882 aS'reorganized' p39883 asS'queen' p39884 (lp39885 S'queens' p39886 aS'queening' p39887 aS'queened' p39888 aS'queened' p39889 asS'skitter' p39890 (lp39891 S'skitters' p39892 aS'skittering' p39893 aS'skittered' p39894 aS'skittered' p39895 asS'dupe' p39896 (lp39897 S'dupes' p39898 aS'duping' p39899 aS'duped' p39900 aS'duped' p39901 asS'geometrize' p39902 (lp39903 S'geometrizes' p39904 aS'geometrizing' p39905 aS'geometrized' p39906 aS'geometrized' p39907 asS'reissue' p39908 (lp39909 S'reissues' p39910 aS'reissuing' p39911 aS'reissued' p39912 aS'reissued' p39913 asS'radio' p39914 (lp39915 S'radios' p39916 aS'radioing' p39917 aS'radioed' p39918 aS'radioed' p39919 asS'drabble' p39920 (lp39921 S'drabbles' p39922 aS'drabbling' p39923 aS'drabbled' p39924 aS'drabbled' p39925 asS'chiack' p39926 (lp39927 S'chiacks' p39928 aS'chiacking' p39929 aS'chiacked' p39930 aS'chiacked' p39931 asS'earth' p39932 (lp39933 S'earths' p39934 aS'earthing' p39935 aS'earthed' p39936 aS'earthed' p39937 asS'peddle' p39938 (lp39939 S'peddles' p39940 aS'peddling' p39941 aS'peddled' p39942 aS'peddled' p39943 asS'bail' p39944 (lp39945 S'bails' p39946 aS'bailing' p39947 aS'bailed' p39948 aS'bailed' p39949 asS'spite' p39950 (lp39951 S'spites' p39952 aS'spiting' p39953 aS'spited' p39954 aS'spited' p39955 asS'dateline' p39956 (lp39957 S'datelines' p39958 aS'datelining' p39959 aS'datelined' p39960 aS'datelined' p39961 asS'abjure' p39962 (lp39963 S'abjures' p39964 aS'abjuring' p39965 aS'abjured' p39966 aS'abjured' p39967 asS'poussette' p39968 (lp39969 S'poussettes' p39970 aS'poussetting' p39971 aS'poussetted' p39972 aS'poussetted' p39973 asS'disgust' p39974 (lp39975 S'disgusts' p39976 aS'disgusting' p39977 aS'disgusted' p39978 aS'disgusted' p39979 asS'lodge' p39980 (lp39981 S'lodges' p39982 aS'lodging' p39983 aS'lodged' p39984 aS'lodged' p39985 asS'announce' p39986 (lp39987 S'announces' p39988 aS'announcing' p39989 aS'announced' p39990 aS'announced' p39991 asS'capriole' p39992 (lp39993 S'caprioles' p39994 aS'caprioling' p39995 aS'caprioled' p39996 aS'caprioled' p39997 asS'waltz' p39998 (lp39999 S'waltzes' p40000 aS'waltzing' p40001 aS'waltzed' p40002 aS'waltzed' p40003 asS'watch' p40004 (lp40005 S'watches' p40006 aS'watching' p40007 aS'watched' p40008 aS'watched' p40009 asS'baffle' p40010 (lp40011 S'baffles' p40012 aS'baffling' p40013 aS'baffled' p40014 aS'baffled' p40015 asS'oversell' p40016 (lp40017 S'oversells' p40018 aS'overselling' p40019 aS'oversold' p40020 aS'oversold' p40021 asS'despite' p40022 (lp40023 S'despites' p40024 aS'despiting' p40025 aS'despited' p40026 aS'despited' p40027 asS'report' p40028 (lp40029 S'reports' p40030 aS'reporting' p40031 aS'reported' p40032 aS'reported' p40033 asS'reconstruct' p40034 (lp40035 S'reconstructs' p40036 aS'reconstructing' p40037 aS'reconstructed' p40038 aS'reconstructed' p40039 asS'incept' p40040 (lp40041 S'incepts' p40042 aS'incepting' p40043 aS'incepted' p40044 aS'incepted' p40045 asS'unlatch' p40046 (lp40047 S'unlatches' p40048 aS'unlatching' p40049 aS'unlatched' p40050 aS'unlatched' p40051 asS'hospitalize' p40052 (lp40053 S'hospitalizes' p40054 aS'hospitalizing' p40055 aS'hospitalized' p40056 aS'hospitalized' p40057 asS'peroxide' p40058 (lp40059 S'peroxides' p40060 aS'peroxiding' p40061 aS'peroxided' p40062 aS'peroxided' p40063 asS'erupt' p40064 (lp40065 S'erupts' p40066 aS'erupting' p40067 aS'erupted' p40068 aS'erupted' p40069 asS'disembroil' p40070 (lp40071 S'disembroils' p40072 aS'disembroiling' p40073 aS'disembroiled' p40074 aS'disembroiled' p40075 asS'ritualize' p40076 (lp40077 S'ritualizes' p40078 aS'ritualizing' p40079 aS'ritualized' p40080 aS'ritualized' p40081 asS'penance' p40082 (lp40083 S'penances' p40084 aS'penancing' p40085 aS'penanced' p40086 aS'penanced' p40087 asS'bowse' p40088 (lp40089 S'bowses' p40090 aS'bowsing' p40091 aS'bowsed' p40092 aS'bowsed' p40093 asS'pummel' p40094 (lp40095 S'pummels' p40096 aS'pummelling' p40097 aS'pummelled' p40098 aS'pummelled' p40099 asS'habit' p40100 (lp40101 S'habits' p40102 aS'habiting' p40103 aS'habited' p40104 aS'habited' p40105 asS'wrest' p40106 (lp40107 S'wrests' p40108 aS'wresting' p40109 aS'wrested' p40110 aS'wrested' p40111 asS'liquor' p40112 (lp40113 S'liquors' p40114 aS'liquoring' p40115 aS'liquored' p40116 aS'liquored' p40117 asS'preordain' p40118 (lp40119 S'preordains' p40120 aS'preordaining' p40121 aS'preordained' p40122 aS'preordained' p40123 asS'resist' p40124 (lp40125 S'resists' p40126 aS'resisting' p40127 aS'resisted' p40128 aS'resisted' p40129 asS'pize' p40130 (lp40131 S'pizes' p40132 aS'pizing' p40133 aS'pized' p40134 aS'pized' p40135 asS'corrupt' p40136 (lp40137 S'corrupts' p40138 aS'corrupting' p40139 aS'corrupted' p40140 aS'corrupted' p40141 asS'percuss' p40142 (lp40143 S'percusses' p40144 aS'percussing' p40145 aS'percussed' p40146 aS'percussed' p40147 asS'suberize' p40148 (lp40149 S'suberizes' p40150 aS'suberizing' p40151 aS'suberized' p40152 aS'suberized' p40153 asS'sovietize' p40154 (lp40155 S'sovietizes' p40156 aS'sovietizing' p40157 aS'sovietized' p40158 aS'sovietized' p40159 asS'accede' p40160 (lp40161 S'accedes' p40162 aS'acceding' p40163 aS'acceded' p40164 aS'acceded' p40165 asS'propitiate' p40166 (lp40167 S'propitiates' p40168 aS'propitiating' p40169 aS'propitiated' p40170 aS'propitiated' p40171 asS'mud' p40172 (lp40173 S'muds' p40174 aS'mudding' p40175 aS'mudded' p40176 aS'mudded' p40177 asS'catalogue' p40178 (lp40179 S'catalogues' p40180 aS'cataloguing' p40181 aS'catalogued' p40182 aS'catalogued' p40183 asS'bestride' p40184 (lp40185 S'bestrides' p40186 aS'bestriding' p40187 aS'bestrode' p40188 aS'bestrode' p40189 asS'finger' p40190 (lp40191 S'fingers' p40192 aS'fingering' p40193 aS'fingered' p40194 aS'fingered' p40195 asS'approach' p40196 (lp40197 S'approaches' p40198 aS'approaching' p40199 aS'approached' p40200 aS'approached' p40201 asS'drowse' p40202 (lp40203 S'drowses' p40204 aS'drowsing' p40205 aS'drowsed' p40206 aS'drowsed' p40207 asS'liaise' p40208 (lp40209 S'liaises' p40210 aS'liaising' p40211 aS'liaised' p40212 aS'liaised' p40213 asS'opsonize' p40214 (lp40215 S'opsonizes' p40216 aS'opsonizing' p40217 aS'opsonized' p40218 aS'opsonized' p40219 asS'wean' p40220 (lp40221 S'weans' p40222 aS'weaning' p40223 aS'weaned' p40224 aS'weaned' p40225 asS'aircondition' p40226 (lp40227 S'airconditions' p40228 aS'airconditioning' p40229 aS'airconditioned' p40230 aS'airconditioned' p40231 asS'contort' p40232 (lp40233 S'contorts' p40234 aS'contorting' p40235 aS'contorted' p40236 aS'contorted' p40237 asS'boss' p40238 (lp40239 S'bosses' p40240 aS'bossing' p40241 aS'bossed' p40242 aS'bossed' p40243 asS'rime' p40244 (lp40245 S'rimes' p40246 aS'riming' p40247 aS'rimed' p40248 aS'rimed' p40249 asS'devour' p40250 (lp40251 S'devours' p40252 aS'devouring' p40253 aS'devoured' p40254 aS'devoured' p40255 asS'wear' p40256 (lp40257 S'wears' p40258 aS'wearing' p40259 aS'wore' p40260 aS'worn' p40261 asS'incross' p40262 (lp40263 S'incrosses' p40264 aS'incrossing' p40265 aS'incrossed' p40266 aS'incrossed' p40267 asS'improve' p40268 (lp40269 S'improves' p40270 aS'improving' p40271 aS'improved' p40272 aS'improved' p40273 asS'circumvallate' p40274 (lp40275 S'circumvallates' p40276 aS'circumvallating' p40277 aS'circumvallated' p40278 aS'circumvallated' p40279 asS'free-wheel' p40280 (lp40281 S'free-wheels' p40282 ag12401 ag12402 aS'free-wheeled' p40283 asS'fault' p40284 (lp40285 S'faults' p40286 aS'faulting' p40287 aS'faulted' p40288 aS'faulted' p40289 asS'reconnoitre' p40290 (lp40291 S'reconnoitres' p40292 aS'reconnoitring' p40293 aS'reconnoitred' p40294 aS'reconnoitred' p40295 asS'jelly' p40296 (lp40297 S'jellies' p40298 aS'jellying' p40299 aS'jellied' p40300 aS'jellied' p40301 asS'disengage' p40302 (lp40303 S'disengages' p40304 aS'disengaging' p40305 aS'disengaged' p40306 aS'disengaged' p40307 asS'tattle' p40308 (lp40309 S'tattles' p40310 aS'tattling' p40311 aS'tattled' p40312 aS'tattled' p40313 asS'expense' p40314 (lp40315 S'expenses' p40316 aS'expensing' p40317 aS'expensed' p40318 aS'expensed' p40319 asS'stipple' p40320 (lp40321 S'stipples' p40322 aS'stippling' p40323 aS'stippled' p40324 aS'stippled' p40325 asS'josh' p40326 (lp40327 S'joshes' p40328 aS'joshing' p40329 aS'joshed' p40330 aS'joshed' p40331 asS'inactivate' p40332 (lp40333 S'inactivates' p40334 aS'inactivating' p40335 aS'inactivated' p40336 aS'inactivated' p40337 asS'trust' p40338 (lp40339 S'trusts' p40340 aS'trusting' p40341 aS'trusted' p40342 aS'trusted' p40343 asS'truss' p40344 (lp40345 S'trusses' p40346 aS'trussing' p40347 aS'trussed' p40348 aS'trussed' p40349 asS'beef' p40350 (lp40351 S'beefs' p40352 aS'beefing' p40353 aS'beefed' p40354 aS'beefed' p40355 asS'tyrannize' p40356 (lp40357 S'tyrannizes' p40358 aS'tyrannizing' p40359 aS'tyrannized' p40360 aS'tyrannized' p40361 asS'unsphere' p40362 (lp40363 S'unspheres' p40364 aS'unsphering' p40365 aS'unsphered' p40366 aS'unsphered' p40367 asS'beep' p40368 (lp40369 S'beeps' p40370 aS'beeping' p40371 aS'beeped' p40372 aS'beeped' p40373 asS'brutify' p40374 (lp40375 S'brutifies' p40376 aS'brutifying' p40377 aS'brutified' p40378 aS'brutified' p40379 asS'loft' p40380 (lp40381 S'lofts' p40382 aS'lofting' p40383 aS'lofted' p40384 aS'lofted' p40385 asS'steamroller' p40386 (lp40387 sS'craft' p40388 (lp40389 S'crafts' p40390 aS'crafting' p40391 aS'crafted' p40392 aS'crafted' p40393 asS'chase' p40394 (lp40395 S'chases' p40396 aS'chasing' p40397 aS'chased' p40398 aS'chased' p40399 asS'catch' p40400 (lp40401 S'catches' p40402 aS'catching' p40403 aS'caught' p40404 aS'caught' p40405 asS'proselytize' p40406 (lp40407 S'proselytizes' p40408 aS'proselytizing' p40409 aS'proselytized' p40410 aS'proselytized' p40411 asS'sallow' p40412 (lp40413 S'sallows' p40414 aS'sallowing' p40415 aS'sallowed' p40416 aS'sallowed' p40417 asS'rattoon' p40418 (lp40419 sS'schlep' p40420 (lp40421 S'schleps' p40422 aS'schlepping' p40423 aS'schlepped' p40424 aS'schlepped' p40425 asS'lessen' p40426 (lp40427 S'lessens' p40428 aS'lessening' p40429 aS'lessened' p40430 aS'lessened' p40431 asS'fallow' p40432 (lp40433 S'fallows' p40434 aS'fallowing' p40435 aS'fallowed' p40436 aS'fallowed' p40437 asS'zindabad' p40438 (lp40439 S'zindabads' p40440 aS'zindabading' p40441 aS'zindabaded' p40442 aS'zindabaded' p40443 asS'subjugate' p40444 (lp40445 S'subjugates' p40446 aS'subjugating' p40447 aS'subjugated' p40448 aS'subjugated' p40449 asS'precede' p40450 (lp40451 S'precedes' p40452 aS'preceding' p40453 aS'preceded' p40454 aS'preceded' p40455 asS'pyramid' p40456 (lp40457 S'pyramids' p40458 aS'pyramiding' p40459 aS'pyramided' p40460 aS'pyramided' p40461 asS'untuck' p40462 (lp40463 S'untucks' p40464 aS'untucking' p40465 aS'untucked' p40466 aS'untucked' p40467 asS'chyack' p40468 (lp40469 S'chyacks' p40470 aS'chyacking' p40471 aS'chyacked' p40472 aS'chyacked' p40473 asS'descant' p40474 (lp40475 S'descants' p40476 aS'descanting' p40477 aS'descanted' p40478 aS'descanted' p40479 asS'comminute' p40480 (lp40481 S'comminutes' p40482 aS'comminuting' p40483 aS'comminuted' p40484 aS'comminuted' p40485 asS'tease' p40486 (lp40487 S'teases' p40488 aS'teasing' p40489 aS'teased' p40490 aS'teased' p40491 asS'rough-house' p40492 (lp40493 S'rough-houses' p40494 aS'rough-housing' p40495 ag36845 aS'rough-housed' p40496 asS'surcharge' p40497 (lp40498 S'surcharges' p40499 aS'surcharging' p40500 aS'surcharged' p40501 aS'surcharged' p40502 asS'suggest' p40503 (lp40504 S'suggests' p40505 aS'suggesting' p40506 aS'suggested' p40507 aS'suggested' p40508 asS'outface' p40509 (lp40510 S'outfaces' p40511 aS'outfacing' p40512 aS'outfaced' p40513 aS'outfaced' p40514 asS'inventory' p40515 (lp40516 S'inventories' p40517 aS'inventorying' p40518 aS'inventoried' p40519 aS'inventoried' p40520 asS'esquire' p40521 (lp40522 S'esquires' p40523 aS'esquiring' p40524 aS'esquired' p40525 aS'esquired' p40526 asS'welsh' p40527 (lp40528 S'welshes' p40529 aS'welshing' p40530 aS'welshed' p40531 aS'welshed' p40532 asS'deflect' p40533 (lp40534 S'deflects' p40535 aS'deflecting' p40536 aS'deflected' p40537 aS'deflected' p40538 asS'cycle' p40539 (lp40540 S'cycles' p40541 aS'cycling' p40542 aS'cycled' p40543 aS'cycled' p40544 asS'dado' p40545 (lp40546 S'dados' p40547 aS'dadoing' p40548 aS'dadoed' p40549 aS'dadoed' p40550 asS'specialize' p40551 (lp40552 S'specializes' p40553 aS'specializing' p40554 aS'specialized' p40555 aS'specialized' p40556 asS'ruralize' p40557 (lp40558 S'ruralizes' p40559 aS'ruralizing' p40560 aS'ruralized' p40561 aS'ruralized' p40562 asS'doff' p40563 (lp40564 S'doffs' p40565 aS'doffing' p40566 aS'doffed' p40567 aS'doffed' p40568 asS'mother' p40569 (lp40570 S'mothers' p40571 aS'mothering' p40572 aS'mothered' p40573 aS'mothered' p40574 asS'dissimulate' p40575 (lp40576 S'dissimulates' p40577 aS'dissimulating' p40578 aS'dissimulated' p40579 aS'dissimulated' p40580 asS'jook' p40581 (lp40582 S'jooks' p40583 aS'jooking' p40584 aS'jooked' p40585 aS'jooked' p40586 asS'bugger' p40587 (lp40588 S'buggers' p40589 aS'buggering' p40590 aS'buggered' p40591 aS'buggered' p40592 asS'appease' p40593 (lp40594 S'appeases' p40595 aS'appeasing' p40596 aS'appeased' p40597 aS'appeased' p40598 asS'goffer' p40599 (lp40600 S'goffers' p40601 aS'goffering' p40602 aS'goffered' p40603 aS'goffered' p40604 asS'bruise' p40605 (lp40606 S'bruises' p40607 aS'bruising' p40608 aS'bruised' p40609 aS'bruised' p40610 asS'exuberate' p40611 (lp40612 S'exuberates' p40613 aS'exuberating' p40614 aS'exuberated' p40615 aS'exuberated' p40616 asS'ingeminate' p40617 (lp40618 S'ingeminates' p40619 aS'ingeminating' p40620 aS'ingeminated' p40621 aS'ingeminated' p40622 asS'modulate' p40623 (lp40624 S'modulates' p40625 aS'modulating' p40626 aS'modulated' p40627 aS'modulated' p40628 asS'enlighten' p40629 (lp40630 S'enlightens' p40631 aS'enlightening' p40632 aS'enlightened' p40633 aS'enlightened' p40634 asS'fathom' p40635 (lp40636 S'fathoms' p40637 aS'fathoming' p40638 aS'fathomed' p40639 aS'fathomed' p40640 asS'reject' p40641 (lp40642 S'rejects' p40643 aS'rejecting' p40644 aS'rejected' p40645 aS'rejected' p40646 asS'scruple' p40647 (lp40648 S'scruples' p40649 aS'scrupling' p40650 aS'scrupled' p40651 aS'scrupled' p40652 asS'evaginate' p40653 (lp40654 S'evaginates' p40655 aS'evaginating' p40656 aS'evaginated' p40657 aS'evaginated' p40658 asS'overemphasize' p40659 (lp40660 S'overemphasizes' p40661 aS'overemphasizing' p40662 aS'overemphasized' p40663 aS'overemphasized' p40664 asS'misprint' p40665 (lp40666 S'misprints' p40667 aS'misprinting' p40668 aS'misprinted' p40669 aS'misprinted' p40670 asS'overcapitalize' p40671 (lp40672 S'overcapitalizes' p40673 aS'overcapitalizing' p40674 aS'overcapitalized' p40675 aS'overcapitalized' p40676 asS'bandy' p40677 (lp40678 S'bandies' p40679 aS'bandying' p40680 aS'bandied' p40681 aS'bandied' p40682 asS'barrel-roll' p40683 (lp40684 S'barrel-rolls' p40685 aS'barrel-rolling' p40686 aS'barrel-rolled' p40687 aS'barrel-rolled' p40688 asS'belabour' p40689 (lp40690 S'belabours' p40691 aS'belabouring' p40692 aS'belaboured' p40693 aS'belaboured' p40694 asS'regelate' p40695 (lp40696 S'regelates' p40697 aS'regelating' p40698 aS'regelated' p40699 aS'regelated' p40700 asS'swingle' p40701 (lp40702 S'swingles' p40703 aS'swingling' p40704 aS'swingled' p40705 aS'swingled' p40706 asS'terrorize' p40707 (lp40708 S'terrorizes' p40709 aS'terrorizing' p40710 aS'terrorized' p40711 aS'terrorized' p40712 asS'upturn' p40713 (lp40714 S'upturns' p40715 aS'upturning' p40716 aS'upturned' p40717 aS'upturned' p40718 asS'dismount' p40719 (lp40720 S'dismounts' p40721 aS'dismounting' p40722 aS'dismounted' p40723 aS'dismounted' p40724 asS'pur_ee' p40725 (lp40726 S'pur_ees' p40727 aS'pur_eeing' p40728 aS'pur_eed' p40729 aS'pur_eed' p40730 asS'Nazify' p40731 (lp40732 S'Nazifies' p40733 aS'Nazifying' p40734 aS'Nazified' p40735 aS'Nazified' p40736 asS'reapportion' p40737 (lp40738 S'reapportions' p40739 aS'reapportioning' p40740 aS'reapportioned' p40741 aS'reapportioned' p40742 asS'judge' p40743 (lp40744 S'judges' p40745 aS'judging' p40746 aS'judged' p40747 aS'judged' p40748 asS'befit' p40749 (lp40750 S'befits' p40751 aS'befitting' p40752 aS'befitted' p40753 aS'befitted' p40754 asS'twotime' p40755 (lp40756 S'twotimes' p40757 aS'twotiming' p40758 aS'twotimed' p40759 aS'twotimed' p40760 asS'pectize' p40761 (lp40762 S'pectizes' p40763 aS'pectizing' p40764 aS'pectized' p40765 aS'pectized' p40766 asS'ditto' p40767 (lp40768 S'dittos' p40769 aS'dittoing' p40770 aS'dittoed' p40771 aS'dittoed' p40772 asS'gift' p40773 (lp40774 S'gifts' p40775 aS'gifting' p40776 aS'gifted' p40777 aS'gifted' p40778 asS'contradict' p40779 (lp40780 S'contradicts' p40781 aS'contradicting' p40782 aS'contradicted' p40783 aS'contradicted' p40784 asS'force-land' p40785 (lp40786 S'force-lands' p40787 aS'force-landing' p40788 aS'force-landed' p40789 aS'force-landed' p40790 asS'zoom' p40791 (lp40792 S'zooms' p40793 aS'zooming' p40794 aS'zoomed' p40795 aS'zoomed' p40796 asS'officer' p40797 (lp40798 S'officers' p40799 aS'officering' p40800 aS'officered' p40801 aS'officered' p40802 asS'eyelet' p40803 (lp40804 S'eyelets' p40805 aS'eyeleting' p40806 aS'eyeleted' p40807 aS'eyeleted' p40808 asS'forerun' p40809 (lp40810 S'foreruns' p40811 aS'forerunning' p40812 aS'foreran' p40813 aS'forerun' p40814 asS'anastomose' p40815 (lp40816 S'anastomoses' p40817 aS'anastomosing' p40818 aS'anastomosed' p40819 aS'anastomosed' p40820 asS'hunt' p40821 (lp40822 S'hunts' p40823 aS'hunting' p40824 aS'hunted' p40825 aS'hunted' p40826 asS'envision' p40827 (lp40828 S'envisions' p40829 aS'envisioning' p40830 aS'envisioned' p40831 aS'envisioned' p40832 asS'stereotype' p40833 (lp40834 S'stereotypes' p40835 aS'stereotyping' p40836 aS'stereotyped' p40837 aS'stereotyped' p40838 asS'excerpt' p40839 (lp40840 S'excerpts' p40841 aS'excerpting' p40842 aS'excerpted' p40843 aS'excerpted' p40844 asS'sponge' p40845 (lp40846 S'sponges' p40847 aS'sponging' p40848 aS'sponged' p40849 aS'sponged' p40850 asS'accost' p40851 (lp40852 S'accosts' p40853 aS'accosting' p40854 aS'accosted' p40855 aS'accosted' p40856 asS'scrabble' p40857 (lp40858 S'scrabbles' p40859 aS'scrabbling' p40860 aS'scrabbled' p40861 aS'scrabbled' p40862 asS'displeasure' p40863 (lp40864 S'displeasures' p40865 aS'displeasuring' p40866 aS'displeasured' p40867 aS'displeasured' p40868 asS'escape' p40869 (lp40870 S'escapes' p40871 ag10601 ag10602 ag10603 asS'manducate' p40872 (lp40873 S'manducates' p40874 aS'manducating' p40875 aS'manducated' p40876 aS'manducated' p40877 asS'totter' p40878 (lp40879 S'totters' p40880 aS'tottering' p40881 aS'tottered' p40882 aS'tottered' p40883 asS'cooper' p40884 (lp40885 S'coopers' p40886 aS'coopering' p40887 aS'coopered' p40888 aS'coopered' p40889 asS'combat' p40890 (lp40891 S'combats' p40892 aS'combating' p40893 aS'combated' p40894 aS'combated' p40895 asS'establish' p40896 (lp40897 S'establishes' p40898 aS'establishing' p40899 aS'established' p40900 aS'established' p40901 asS'aluminize' p40902 (lp40903 S'aluminizes' p40904 aS'aluminizing' p40905 aS'aluminized' p40906 aS'aluminized' p40907 asS'reinvest' p40908 (lp40909 S'reinvests' p40910 aS'reinvesting' p40911 aS'reinvested' p40912 aS'reinvested' p40913 asS'ice' p40914 (lp40915 S'ices' p40916 aS'icing' p40917 aS'iced' p40918 aS'iced' p40919 asS'backspace' p40920 (lp40921 S'backspaces' p40922 aS'backspacing' p40923 aS'backspaced' p40924 aS'backspaced' p40925 asS'allocate' p40926 (lp40927 S'allocates' p40928 aS'allocating' p40929 aS'allocated' p40930 aS'allocated' p40931 asS'convict' p40932 (lp40933 S'convicts' p40934 aS'convicting' p40935 aS'convicted' p40936 aS'convicted' p40937 asS'faff' p40938 (lp40939 S'faffs' p40940 aS'faffing' p40941 aS'faffed' p40942 aS'faffed' p40943 asS'cord' p40944 (lp40945 S'cords' p40946 aS'cording' p40947 aS'corded' p40948 aS'corded' p40949 asS'core' p40950 (lp40951 S'cores' p40952 aS'coring' p40953 aS'cored' p40954 aS'cored' p40955 asS'damask' p40956 (lp40957 S'damasks' p40958 aS'damasking' p40959 aS'damasked' p40960 aS'damasked' p40961 asS'brawl' p40962 (lp40963 S'brawls' p40964 aS'brawling' p40965 aS'brawled' p40966 aS'brawled' p40967 asS'corn' p40968 (lp40969 S'corns' p40970 aS'corning' p40971 aS'corned' p40972 aS'corned' p40973 asS'bromate' p40974 (lp40975 S'bromates' p40976 aS'bromating' p40977 aS'bromated' p40978 aS'bromated' p40979 asS'enunciate' p40980 (lp40981 S'enunciates' p40982 aS'enunciating' p40983 aS'enunciated' p40984 aS'enunciated' p40985 asS'cork' p40986 (lp40987 S'corks' p40988 aS'corking' p40989 aS'corked' p40990 aS'corked' p40991 asS'discount' p40992 (lp40993 S'discounts' p40994 aS'discounting' p40995 aS'discounted' p40996 aS'discounted' p40997 asS'stooge' p40998 (lp40999 S'stooges' p41000 aS'stooging' p41001 aS'stooged' p41002 aS'stooged' p41003 asS'shuck' p41004 (lp41005 S'shucks' p41006 aS'shucking' p41007 aS'shucked' p41008 aS'shucked' p41009 asS'garnishee' p41010 (lp41011 S'garnishees' p41012 aS'garnisheeing' p41013 aS'garnisheed' p41014 aS'garnisheed' p41015 asS'chapter' p41016 (lp41017 S'chapters' p41018 aS'chaptering' p41019 aS'chaptered' p41020 aS'chaptered' p41021 asS'yawp' p41022 (lp41023 S'yawps' p41024 aS'yawping' p41025 aS'yawped' p41026 aS'yawped' p41027 asS'choke' p41028 (lp41029 S'chokes' p41030 aS'choking' p41031 aS'choked' p41032 aS'choked' p41033 asS'enshroud' p41034 (lp41035 S'enshrouds' p41036 aS'enshrouding' p41037 aS'enshrouded' p41038 aS'enshrouded' p41039 asS'caulk' p41040 (lp41041 S'caulks' p41042 aS'caulking' p41043 aS'caulked' p41044 aS'caulked' p41045 asS'hyperbolize' p41046 (lp41047 S'hyperbolizes' p41048 aS'hyperbolizing' p41049 aS'hyperbolized' p41050 aS'hyperbolized' p41051 asS'inveigh' p41052 (lp41053 S'inveighs' p41054 aS'inveighing' p41055 aS'inveighed' p41056 aS'inveighed' p41057 asS'twitch' p41058 (lp41059 S'twitches' p41060 aS'twitching' p41061 aS'twitched' p41062 aS'twitched' p41063 asS'curry' p41064 (lp41065 S'curries' p41066 aS'currying' p41067 aS'curried' p41068 aS'curried' p41069 asS'blabber' p41070 (lp41071 S'blabbers' p41072 aS'blabbering' p41073 aS'blabbered' p41074 aS'blabbered' p41075 asS'decimalize' p41076 (lp41077 S'decimalizes' p41078 aS'decimalizing' p41079 aS'decimalized' p41080 aS'decimalized' p41081 asS'bate' p41082 (lp41083 S'bates' p41084 aS'bating' p41085 aS'bated' p41086 aS'bated' p41087 asS'disaffiliate' p41088 (lp41089 S'disaffiliates' p41090 aS'disaffiliating' p41091 aS'disaffiliated' p41092 aS'disaffiliated' p41093 asS'pronate' p41094 (lp41095 S'pronates' p41096 aS'pronating' p41097 aS'pronated' p41098 aS'pronated' p41099 asS'puzzle' p41100 (lp41101 S'puzzles' p41102 aS'puzzling' p41103 aS'puzzled' p41104 aS'puzzled' p41105 asS'bath' p41106 (lp41107 S'baths' p41108 ag30889 ag30890 asS'accommodate' p41109 (lp41110 S'accommodates' p41111 aS'accommodating' p41112 aS'accommodated' p41113 aS'accommodated' p41114 asS'emigrate' p41115 (lp41116 S'emigrates' p41117 aS'emigrating' p41118 aS'emigrated' p41119 aS'emigrated' p41120 asS'rely' p41121 (lp41122 S'relies' p41123 aS'relying' p41124 aS'relied' p41125 aS'relied' p41126 asS'deflagrate' p41127 (lp41128 S'deflagrates' p41129 aS'deflagrating' p41130 aS'deflagrated' p41131 aS'deflagrated' p41132 asS'disinterest' p41133 (lp41134 S'disinterests' p41135 aS'disinteresting' p41136 aS'disinterested' p41137 aS'disinterested' p41138 asS'scamper' p41139 (lp41140 S'scampers' p41141 aS'scampering' p41142 aS'scampered' p41143 aS'scampered' p41144 asS'transform' p41145 (lp41146 S'transforms' p41147 aS'transforming' p41148 aS'transformed' p41149 aS'transformed' p41150 asS'gig' p41151 (lp41152 S'gigs' p41153 aS'gigging' p41154 aS'gigged' p41155 aS'gigged' p41156 asS'gie' p41157 (lp41158 S'gies' p41159 aS'gying' p41160 aS'gied' p41161 aS'gied' p41162 asS'pamphleteer' p41163 (lp41164 S'pamphleteers' p41165 aS'pamphleteering' p41166 aS'pamphleteered' p41167 aS'pamphleteered' p41168 asS'gib' p41169 (lp41170 S'gibs' p41171 aS'gibbing' p41172 aS'gibbed' p41173 aS'gibbed' p41174 asS'gin' p41175 (lp41176 S'gins' p41177 aS'ginning' p41178 aS'ginned' p41179 aS'ginned' p41180 asS'head' p41181 (lp41182 S'heads' p41183 aS'heading' p41184 aS'headed' p41185 aS'headed' p41186 asS'heal' p41187 (lp41188 S'heals' p41189 aS'healing' p41190 aS'healed' p41191 aS'healed' p41192 asS'deny' p41193 (lp41194 S'denies' p41195 aS'denying' p41196 aS'denied' p41197 aS'denied' p41198 asS'wireless' p41199 (lp41200 S'wirelesses' p41201 aS'wirelessing' p41202 aS'wirelessed' p41203 aS'wirelessed' p41204 asS'heat' p41205 (lp41206 S'heats' p41207 aS'heating' p41208 aS'het' p41209 aS'het' p41210 asS'hear' p41211 (lp41212 S'hears' p41213 aS'hearing' p41214 aS'heard' p41215 aS'heard' p41216 asS'outfox' p41217 (lp41218 S'outfoxes' p41219 aS'outfoxing' p41220 aS'outfoxed' p41221 aS'outfoxed' p41222 asS'heap' p41223 (lp41224 S'heaps' p41225 aS'heaping' p41226 aS'heaped' p41227 aS'heaped' p41228 asS'choreograph' p41229 (lp41230 S'choreographs' p41231 aS'choreographing' p41232 aS'choreographed' p41233 aS'choreographed' p41234 asS'humiliate' p41235 (lp41236 S'humiliates' p41237 aS'humiliating' p41238 aS'humiliated' p41239 aS'humiliated' p41240 asS'counsel' p41241 (lp41242 S'counsels' p41243 aS'counselling' p41244 aS'counselled' p41245 aS'counselled' p41246 asS'flavour' p41247 (lp41248 S'flavours' p41249 aS'flavouring' p41250 aS'flavoured' p41251 aS'flavoured' p41252 asS'muster' p41253 (lp41254 S'musters' p41255 aS'mustering' p41256 aS'mustered' p41257 aS'mustered' p41258 asS'unpin' p41259 (lp41260 S'unpins' p41261 aS'unpinning' p41262 aS'unpinned' p41263 aS'unpinned' p41264 asS'bargain' p41265 (lp41266 S'bargains' p41267 aS'bargaining' p41268 aS'bargained' p41269 aS'bargained' p41270 asS'retire' p41271 (lp41272 S'retires' p41273 aS'retiring' p41274 aS'retired' p41275 aS'retired' p41276 asS'adore' p41277 (lp41278 S'adores' p41279 aS'adoring' p41280 aS'adored' p41281 aS'adored' p41282 asS'decorate' p41283 (lp41284 S'decorates' p41285 aS'decorating' p41286 aS'decorated' p41287 aS'decorated' p41288 asS'sling' p41289 (lp41290 S'slings' p41291 aS'slinging' p41292 aS'slung' p41293 aS'slung' p41294 asS'usher' p41295 (lp41296 S'ushers' p41297 aS'ushering' p41298 aS'ushered' p41299 aS'ushered' p41300 asS'bide' p41301 (lp41302 S'bides' p41303 aS'biding' p41304 aS'bided' p41305 aS'bided' p41306 asS'latch' p41307 (lp41308 S'latches' p41309 aS'latching' p41310 aS'latched' p41311 aS'latched' p41312 asS'adorn' p41313 (lp41314 S'adorns' p41315 aS'adorning' p41316 aS'adorned' p41317 aS'adorned' p41318 asS'trim' p41319 (lp41320 S'trims' p41321 aS'trimming' p41322 aS'trimmed' p41323 aS'trimmed' p41324 asS'forearm' p41325 (lp41326 S'forearms' p41327 aS'forearming' p41328 aS'forearmed' p41329 aS'forearmed' p41330 asS'trig' p41331 (lp41332 S'trigs' p41333 aS'trigging' p41334 aS'trigged' p41335 aS'trigged' p41336 asS'decrypt' p41337 (lp41338 S'decrypts' p41339 aS'decrypting' p41340 aS'decrypted' p41341 aS'decrypted' p41342 asS'depone' p41343 (lp41344 S'depones' p41345 aS'deponing' p41346 aS'deponed' p41347 aS'deponed' p41348 asS'effervesce' p41349 (lp41350 S'effervesces' p41351 aS'effervescing' p41352 aS'effervesced' p41353 aS'effervesced' p41354 asS'reenter' p41355 (lp41356 S'reenters' p41357 aS'reentering' p41358 aS'reentered' p41359 aS'reentered' p41360 asS'check' p41361 (lp41362 S'checks' p41363 aS'checking' p41364 aS'checked' p41365 aS'checked' p41366 asS'approbate' p41367 (lp41368 S'approbates' p41369 aS'approbating' p41370 aS'approbated' p41371 aS'approbated' p41372 asS'salify' p41373 (lp41374 S'salifies' p41375 aS'salifying' p41376 aS'salified' p41377 aS'salified' p41378 asS'inspissate' p41379 (lp41380 S'inspissates' p41381 aS'inspissating' p41382 aS'inspissated' p41383 aS'inspissated' p41384 asS'tip' p41385 (lp41386 S'tips' p41387 aS'tipping' p41388 aS'tipped' p41389 aS'tipped' p41390 asS'foozle' p41391 (lp41392 S'foozles' p41393 aS'foozling' p41394 aS'foozled' p41395 aS'foozled' p41396 asS'piffle' p41397 (lp41398 S'piffles' p41399 aS'piffling' p41400 aS'piffled' p41401 aS'piffled' p41402 asS'sulphurize' p41403 (lp41404 S'sulphurizes' p41405 aS'sulphurizing' p41406 aS'sulphurized' p41407 aS'sulphurized' p41408 asS'overbid' p41409 (lp41410 S'overbids' p41411 aS'overbidding' p41412 aS'overbid' p41413 aS'overbidden' p41414 asS'tin' p41415 (lp41416 S'tins' p41417 aS'tinning' p41418 aS'tinned' p41419 aS'tinned' p41420 asS'disarticulate' p41421 (lp41422 S'disarticulates' p41423 aS'disarticulating' p41424 aS'disarticulated' p41425 aS'disarticulated' p41426 asS'whet' p41427 (lp41428 S'whets' p41429 aS'whetting' p41430 aS'whetted' p41431 aS'whetted' p41432 asS'signpost' p41433 (lp41434 S'signposts' p41435 aS'signposting' p41436 aS'signposted' p41437 aS'signposted' p41438 asS'formalize' p41439 (lp41440 S'formalizes' p41441 aS'formalizing' p41442 aS'formalized' p41443 aS'formalized' p41444 asS'tie' p41445 (lp41446 S'ties' p41447 aS'tying' p41448 aS'tied' p41449 aS'tied' p41450 asS'implant' p41451 (lp41452 S'implants' p41453 aS'implanting' p41454 aS'implanted' p41455 aS'implanted' p41456 asS'picture' p41457 (lp41458 S'pictures' p41459 aS'picturing' p41460 aS'pictured' p41461 aS'pictured' p41462 asS'reconsider' p41463 (lp41464 S'reconsiders' p41465 aS'reconsidering' p41466 aS'reconsidered' p41467 aS'reconsidered' p41468 asS'congratulate' p41469 (lp41470 S'congratulates' p41471 aS'congratulating' p41472 aS'congratulated' p41473 aS'congratulated' p41474 asS'liquidate' p41475 (lp41476 S'liquidates' p41477 aS'liquidating' p41478 aS'liquidated' p41479 aS'liquidated' p41480 asS'benefice' p41481 (lp41482 S'benefices' p41483 aS'beneficing' p41484 aS'beneficed' p41485 aS'beneficed' p41486 asS'discharge' p41487 (lp41488 S'discharges' p41489 aS'discharging' p41490 aS'discharged' p41491 aS'discharged' p41492 asS'firecure' p41493 (lp41494 S'firecures' p41495 aS'firecuring' p41496 aS'firecured' p41497 aS'firecured' p41498 asS'ululate' p41499 (lp41500 S'ululates' p41501 aS'ululating' p41502 aS'ululated' p41503 aS'ululated' p41504 asS'yacht' p41505 (lp41506 S'yachts' p41507 aS'yachting' p41508 aS'yachted' p41509 aS'yachted' p41510 asS'withhold' p41511 (lp41512 S'withholds' p41513 aS'withholding' p41514 aS'withheld' p41515 aS'withheld' p41516 asS'fasten' p41517 (lp41518 S'fastens' p41519 aS'fastening' p41520 aS'fastened' p41521 aS'fastened' p41522 asS'coach' p41523 (lp41524 S'coachs' p41525 aS'coaching' p41526 aS'coached' p41527 aS'coached' p41528 asS'dispirit' p41529 (lp41530 S'dispirits' p41531 aS'dispiriting' p41532 aS'dispirited' p41533 aS'dispirited' p41534 asS'emblemize' p41535 (lp41536 S'emblemizes' p41537 aS'emblemizing' p41538 aS'emblemized' p41539 aS'emblemized' p41540 asS'rob' p41541 (lp41542 S'robs' p41543 aS'robbing' p41544 aS'robbed' p41545 aS'robbed' p41546 asS'focus' p41547 (lp41548 S'focuses' p41549 aS'focussing' p41550 aS'focussed' p41551 aS'focussed' p41552 asS'hocuspocus' p41553 (lp41554 S'hocuspocuses' p41555 aS'hocuspocussing' p41556 aS'hocuspocussed' p41557 aS'hocuspocussed' p41558 asS'obviate' p41559 (lp41560 S'obviates' p41561 aS'obviating' p41562 aS'obviated' p41563 aS'obviated' p41564 asS'snip' p41565 (lp41566 S'snips' p41567 aS'snipping' p41568 aS'snipped' p41569 aS'snipped' p41570 asS'rot' p41571 (lp41572 S'rots' p41573 aS'rotting' p41574 aS'rotted' p41575 aS'rotted' p41576 asS'empathize' p41577 (lp41578 S'empathizes' p41579 aS'empathizing' p41580 aS'empathized' p41581 aS'empathized' p41582 asS'catenate' p41583 (lp41584 S'catenates' p41585 aS'catenating' p41586 aS'catenated' p41587 aS'catenated' p41588 asS'passage' p41589 (lp41590 S'passages' p41591 aS'passaging' p41592 aS'passaged' p41593 aS'passaged' p41594 asS'charge' p41595 (lp41596 S'charges' p41597 aS'charging' p41598 aS'charged' p41599 aS'charged' p41600 asS'quash' p41601 (lp41602 S'quashes' p41603 aS'quashing' p41604 aS'quashed' p41605 aS'quashed' p41606 asS'wimble' p41607 (lp41608 S'wimbles' p41609 aS'wimbling' p41610 aS'wimbled' p41611 aS'wimbled' p41612 asS'assoil' p41613 (lp41614 S'assoils' p41615 aS'assoiling' p41616 aS'assoiled' p41617 aS'assoiled' p41618 asS'coop' p41619 (lp41620 S'coops' p41621 aS'cooping' p41622 aS'cooped' p41623 aS'cooped' p41624 asS'advantage' p41625 (lp41626 S'advantages' p41627 aS'advantaging' p41628 aS'advantaged' p41629 aS'advantaged' p41630 asS'cantilever' p41631 (lp41632 S'cantilevers' p41633 aS'cantilevering' p41634 aS'cantilevered' p41635 aS'cantilevered' p41636 asS'underpay' p41637 (lp41638 S'underpays' p41639 aS'underpaying' p41640 aS'underpaid' p41641 aS'underpaid' p41642 asS'airlift' p41643 (lp41644 S'airlifts' p41645 aS'airlifting' p41646 aS'airlifted' p41647 aS'airlifted' p41648 asS'gravitate' p41649 (lp41650 S'gravitates' p41651 aS'gravitating' p41652 aS'gravitated' p41653 aS'gravitated' p41654 asS'convoke' p41655 (lp41656 S'convokes' p41657 aS'convoking' p41658 aS'convoked' p41659 aS'convoked' p41660 asS'masturbate' p41661 (lp41662 S'masturbates' p41663 aS'masturbating' p41664 aS'masturbated' p41665 aS'masturbated' p41666 asS'waylay' p41667 (lp41668 S'waylays' p41669 aS'waylaying' p41670 aS'waylaid' p41671 aS'waylaid' p41672 asS'cook' p41673 (lp41674 S'cooks' p41675 aS'cooking' p41676 aS'cooked' p41677 aS'cooked' p41678 asS'attitudinize' p41679 (lp41680 S'attitudinizes' p41681 aS'attitudinizing' p41682 aS'attitudinized' p41683 aS'attitudinized' p41684 asS'cool' p41685 (lp41686 S'cools' p41687 aS'cooling' p41688 aS'cooled' p41689 aS'cooled' p41690 asS'level' p41691 (lp41692 S'levels' p41693 aS'levelling' p41694 aS'levelled' p41695 aS'levelled' p41696 asS'enthuse' p41697 (lp41698 S'enthuses' p41699 aS'enthusing' p41700 aS'enthused' p41701 aS'enthused' p41702 asS'encroach' p41703 (lp41704 S'encroaches' p41705 aS'encroaching' p41706 aS'encroached' p41707 aS'encroached' p41708 asS'lever' p41709 (lp41710 S'levers' p41711 aS'levering' p41712 aS'levered' p41713 aS'levered' p41714 asS'waggon' p41715 (lp41716 S'waggoning' p41717 aS'waggoned' p41718 aS'waggoned' p41719 asS'intercommunicate' p41720 (lp41721 S'intercommunicates' p41722 aS'intercommunicating' p41723 aS'intercommunicated' p41724 aS'intercommunicated' p41725 asS'trend' p41726 (lp41727 S'trends' p41728 aS'trending' p41729 aS'trended' p41730 aS'trended' p41731 asS'pore' p41732 (lp41733 S'pores' p41734 aS'poring' p41735 aS'pored' p41736 aS'pored' p41737 asS'obsolete' p41738 (lp41739 S'obsoletes' p41740 aS'obsoleting' p41741 aS'obsoleted' p41742 aS'obsoleted' p41743 asS'weatherproof' p41744 (lp41745 S'weatherproofs' p41746 aS'weatherproofing' p41747 aS'weatherproofed' p41748 aS'weatherproofed' p41749 asS'crashland' p41750 (lp41751 S'crashlands' p41752 aS'crashlanding' p41753 aS'crashlanded' p41754 aS'crashlanded' p41755 asS'utter' p41756 (lp41757 S'utters' p41758 aS'uttering' p41759 aS'uttered' p41760 aS'uttered' p41761 asS'bake' p41762 (lp41763 S'bakes' p41764 aS'baking' p41765 aS'baked' p41766 aS'baked' p41767 asS'port' p41768 (lp41769 S'ports' p41770 aS'porting' p41771 aS'ported' p41772 aS'ported' p41773 asS'substitute' p41774 (lp41775 S'substitutes' p41776 aS'substituting' p41777 aS'substituted' p41778 aS'substituted' p41779 asS'hymn' p41780 (lp41781 S'hymns' p41782 aS'hymning' p41783 aS'hymned' p41784 aS'hymned' p41785 asS'distaste' p41786 (lp41787 S'distastes' p41788 aS'distasting' p41789 aS'distasted' p41790 aS'distasted' p41791 asS'spire' p41792 (lp41793 S'spires' p41794 aS'spiring' p41795 aS'spired' p41796 aS'spired' p41797 asS'hypothecate' p41798 (lp41799 S'hypothecates' p41800 aS'hypothecating' p41801 aS'hypothecated' p41802 aS'hypothecated' p41803 asS'tarmac' p41804 (lp41805 S'tarmacs' p41806 aS'tarmacking' p41807 aS'tarmacked' p41808 aS'tarmacked' p41809 asS'reply' p41810 (lp41811 S'replies' p41812 aS'replying' p41813 aS'replied' p41814 aS'replied' p41815 asS'Normanize' p41816 (lp41817 S'Normanizes' p41818 aS'Normanizing' p41819 aS'Normanized' p41820 aS'Normanized' p41821 asS'corbel' p41822 (lp41823 S'corbels' p41824 aS'corbelling' p41825 aS'corbelled' p41826 aS'corbelled' p41827 asS'water' p41828 (lp41829 S'waters' p41830 aS'watering' p41831 aS'watered' p41832 aS'watered' p41833 asS'fluke' p41834 (lp41835 S'flukes' p41836 aS'fluking' p41837 aS'fluked' p41838 aS'fluked' p41839 asS'chass_e' p41840 (lp41841 S'chass_es' p41842 aS'chass_eing' p41843 aS'chass_ed' p41844 aS'chass_ed' p41845 asS'witch' p41846 (lp41847 S'witches' p41848 aS'witching' p41849 aS'witched' p41850 aS'witched' p41851 asS'blarney' p41852 (lp41853 S'blarneys' p41854 aS'blarneying' p41855 aS'blarneyed' p41856 aS'blarneyed' p41857 asS'rubberize' p41858 (lp41859 S'rubberizes' p41860 aS'rubberizing' p41861 aS'rubberized' p41862 aS'rubberized' p41863 asS'sleepwalk' p41864 (lp41865 S'sleepwalks' p41866 aS'sleepwalking' p41867 aS'sleepwalked' p41868 aS'sleepwalked' p41869 asS'boast' p41870 (lp41871 S'boasts' p41872 aS'boasting' p41873 aS'boasted' p41874 aS'boasted' p41875 asS'rethink' p41876 (lp41877 S'rethinks' p41878 aS'rethinking' p41879 aS'rethought' p41880 aS'rethought' p41881 asS'catnap' p41882 (lp41883 S'catnaps' p41884 aS'catnapping' p41885 aS'catnapped' p41886 aS'catnapped' p41887 asS'blotch' p41888 (lp41889 S'blotches' p41890 aS'blotching' p41891 aS'blotched' p41892 aS'blotched' p41893 asS'reincarnate' p41894 (lp41895 S'reincarnates' p41896 aS'reincarnating' p41897 aS'reincarnated' p41898 aS'reincarnated' p41899 asS'outride' p41900 (lp41901 S'outrides' p41902 aS'outriding' p41903 aS'outrode' p41904 aS'outridden' p41905 asS'emerge' p41906 (lp41907 S'emerges' p41908 aS'emerging' p41909 aS'emerged' p41910 aS'emerged' p41911 asS'humour' p41912 (lp41913 S'humours' p41914 aS'humouring' p41915 aS'humoured' p41916 aS'humoured' p41917 asS'tweak' p41918 (lp41919 S'tweaks' p41920 aS'tweaking' p41921 aS'tweaked' p41922 aS'tweaked' p41923 asS'shark' p41924 (lp41925 S'sharks' p41926 aS'sharking' p41927 aS'sharked' p41928 aS'sharked' p41929 asS'threep' p41930 (lp41931 S'threeps' p41932 aS'threeping' p41933 aS'threeped' p41934 aS'threeped' p41935 asS'palatalize' p41936 (lp41937 S'palatalizes' p41938 aS'palatalizing' p41939 aS'palatalized' p41940 aS'palatalized' p41941 asS'peer' p41942 (lp41943 S'peers' p41944 aS'peering' p41945 aS'peered' p41946 aS'peered' p41947 asS'bituminize' p41948 (lp41949 S'bituminizes' p41950 aS'bituminizing' p41951 aS'bituminized' p41952 aS'bituminized' p41953 asS'thrum' p41954 (lp41955 S'thrums' p41956 aS'thrumming' p41957 aS'thrummed' p41958 aS'thrummed' p41959 asS'touchdown' p41960 (lp41961 S'touchdowns' p41962 aS'touchdowning' p41963 aS'touchdowned' p41964 aS'touchdowned' p41965 asS'prompt' p41966 (lp41967 S'prompts' p41968 aS'prompting' p41969 aS'prompted' p41970 aS'prompted' p41971 asS'post' p41972 (lp41973 S'posts' p41974 aS'posting' p41975 aS'posted' p41976 aS'posted' p41977 asS'sledgehammer' p41978 (lp41979 S'sledgehammers' p41980 aS'sledgehammering' p41981 aS'sledgehammered' p41982 aS'sledgehammered' p41983 asS'concoct' p41984 (lp41985 S'concocts' p41986 aS'concocting' p41987 aS'concocted' p41988 aS'concocted' p41989 asS'scan' p41990 (lp41991 S'scans' p41992 aS'scanning' p41993 aS'scanned' p41994 aS'scanned' p41995 asS'ravage' p41996 (lp41997 S'ravages' p41998 aS'ravaging' p41999 aS'ravaged' p42000 aS'ravaged' p42001 asS'unsheathe' p42002 (lp42003 S'unsheathes' p42004 aS'unsheathing' p42005 aS'unsheathed' p42006 aS'unsheathed' p42007 asS'prey' p42008 (lp42009 S'preys' p42010 aS'preying' p42011 aS'preyed' p42012 aS'preyed' p42013 asS'dowse' p42014 (lp42015 S'dowses' p42016 aS'dowsing' p42017 aS'dowsed' p42018 aS'dowsed' p42019 asS'hogtie' p42020 (lp42021 S'hogties' p42022 aS'hogtying' p42023 aS'hogtied' p42024 aS'hogtied' p42025 asS'dismay' p42026 (lp42027 S'dismays' p42028 aS'dismaying' p42029 aS'dismayed' p42030 aS'dismayed' p42031 asS'riot' p42032 (lp42033 S'riots' p42034 aS'rioting' p42035 aS'rioted' p42036 aS'rioted' p42037 asS'muffle' p42038 (lp42039 S'muffles' p42040 aS'muffling' p42041 aS'muffled' p42042 aS'muffled' p42043 asS'cashier' p42044 (lp42045 S'cashiers' p42046 aS'cashiering' p42047 aS'cashiered' p42048 aS'cashiered' p42049 asS'fuel' p42050 (lp42051 S'fuels' p42052 aS'fuelling' p42053 aS'fuelled' p42054 aS'fuelled' p42055 asS'drown' p42056 (lp42057 S'drowns' p42058 aS'drowning' p42059 aS'drowned' p42060 aS'drowned' p42061 asS'dismast' p42062 (lp42063 S'dismasts' p42064 aS'dismasting' p42065 aS'dismasted' p42066 aS'dismasted' p42067 asS'scag' p42068 (lp42069 S'scags' p42070 aS'scagging' p42071 aS'scagged' p42072 aS'scagged' p42073 asS'befuddle' p42074 (lp42075 S'befuddles' p42076 aS'befuddling' p42077 aS'befuddled' p42078 aS'befuddled' p42079 asS'reflux' p42080 (lp42081 S'refluxes' p42082 aS'refluxing' p42083 aS'refluxed' p42084 aS'refluxed' p42085 asS'ferry' p42086 (lp42087 S'ferries' p42088 aS'ferrying' p42089 aS'ferried' p42090 aS'ferried' p42091 asS'pickle' p42092 (lp42093 S'pickles' p42094 aS'pickling' p42095 aS'pickled' p42096 aS'pickled' p42097 asS'streak' p42098 (lp42099 S'streaks' p42100 aS'streaking' p42101 aS'streaked' p42102 aS'streaked' p42103 asS'overpass' p42104 (lp42105 S'overpasses' p42106 aS'overpassing' p42107 aS'overpassed' p42108 aS'overpassed' p42109 asS'elasticize' p42110 (lp42111 S'elasticizes' p42112 aS'elasticizing' p42113 aS'elasticized' p42114 aS'elasticized' p42115 asS'tittivate' p42116 (lp42117 S'tittivates' p42118 aS'tittivating' p42119 aS'tittivated' p42120 aS'tittivated' p42121 asS'figure' p42122 (lp42123 S'figures' p42124 aS'figuring' p42125 aS'figured' p42126 aS'figured' p42127 asS'scrimshaw' p42128 (lp42129 S'scrimshaws' p42130 aS'scrimshawing' p42131 aS'scrimshawed' p42132 aS'scrimshawed' p42133 asS'sense' p42134 (lp42135 S'senses' p42136 aS'sensing' p42137 aS'sensed' p42138 aS'sensed' p42139 asS'outvie' p42140 (lp42141 S'outvies' p42142 aS'outvying' p42143 aS'outvied' p42144 aS'outvied' p42145 asS'stroke' p42146 (lp42147 S'strokes' p42148 aS'stroking' p42149 aS'stroked' p42150 aS'stroked' p42151 asS'surround' p42152 (lp42153 S'surrounds' p42154 aS'surrounding' p42155 aS'surrounded' p42156 aS'surrounded' p42157 asS'provoke' p42158 (lp42159 S'provokes' p42160 aS'provoking' p42161 aS'provoked' p42162 aS'provoked' p42163 asS'filtrate' p42164 (lp42165 S'filtrates' p42166 aS'filtrating' p42167 aS'filtrated' p42168 aS'filtrated' p42169 asS'decolonize' p42170 (lp42171 S'decolonizes' p42172 aS'decolonizing' p42173 aS'decolonized' p42174 aS'decolonized' p42175 asS'stenograph' p42176 (lp42177 S'stenographs' p42178 aS'stenographing' p42179 aS'stenographed' p42180 aS'stenographed' p42181 asS'spud' p42182 (lp42183 S'spuds' p42184 aS'spudding' p42185 aS'spudded' p42186 aS'spudded' p42187 asS'levy' p42188 (lp42189 S'levies' p42190 aS'levying' p42191 aS'levied' p42192 aS'levied' p42193 asS'spue' p42194 (lp42195 S'spues' p42196 aS'spuing' p42197 aS'spued' p42198 aS'spued' p42199 asS'clonk' p42200 (lp42201 S'clonks' p42202 aS'clonking' p42203 aS'clonked' p42204 aS'clonked' p42205 asS'scoff' p42206 (lp42207 S'scoffs' p42208 aS'scoffing' p42209 aS'scoffed' p42210 aS'scoffed' p42211 asS'psychoanalyze' p42212 (lp42213 S'psychoanalyzes' p42214 aS'psychoanalyzing' p42215 aS'psychoanalyzed' p42216 aS'psychoanalyzed' p42217 asS'flyspeck' p42218 (lp42219 S'flyspecks' p42220 aS'flyspecking' p42221 aS'flyspecked' p42222 aS'flyspecked' p42223 asS'repeat' p42224 (lp42225 S'repeats' p42226 aS'repeating' p42227 aS'repeated' p42228 aS'repeated' p42229 asS'reposition' p42230 (lp42231 S'repositions' p42232 aS'repositioning' p42233 aS'repositioned' p42234 aS'repositioned' p42235 asS'amuse' p42236 (lp42237 S'amuses' p42238 aS'amusing' p42239 aS'amused' p42240 aS'amused' p42241 asS'befool' p42242 (lp42243 S'befools' p42244 aS'befooling' p42245 aS'befooled' p42246 aS'befooled' p42247 asS'unfreeze' p42248 (lp42249 S'unfreezes' p42250 aS'unfreezing' p42251 aS'unfroze' p42252 aS'unfrozen' p42253 asS'refund' p42254 (lp42255 S'refunds' p42256 aS'refunding' p42257 ag21117 aS'refunded' p42258 asS'treble' p42259 (lp42260 S'trebles' p42261 aS'trebling' p42262 aS'trebled' p42263 aS'trebled' p42264 asS'sonnet' p42265 (lp42266 S'sonnets' p42267 aS'sonneting' p42268 aS'sonneted' p42269 aS'sonneted' p42270 asS'defalcate' p42271 (lp42272 S'defalcates' p42273 aS'defalcating' p42274 aS'defalcated' p42275 aS'defalcated' p42276 asS'stylize' p42277 (lp42278 S'stylizes' p42279 aS'stylizing' p42280 aS'stylized' p42281 aS'stylized' p42282 asS'worship' p42283 (lp42284 S'worships' p42285 aS'worshipping' p42286 aS'worshipped' p42287 aS'worshipped' p42288 asS'swank' p42289 (lp42290 S'swanks' p42291 aS'swanking' p42292 aS'swanked' p42293 aS'swanked' p42294 asS'sugarcoat' p42295 (lp42296 S'sugarcoats' p42297 aS'sugarcoating' p42298 aS'sugarcoated' p42299 aS'sugarcoated' p42300 asS'embosom' p42301 (lp42302 S'embosoms' p42303 aS'embosoming' p42304 aS'embosomed' p42305 aS'embosomed' p42306 asS'decontrol' p42307 (lp42308 S'decontrols' p42309 aS'decontrolling' p42310 aS'decontrolled' p42311 aS'decontrolled' p42312 asS'pervade' p42313 (lp42314 S'pervades' p42315 aS'pervading' p42316 aS'pervaded' p42317 aS'pervaded' p42318 asS'loophole' p42319 (lp42320 S'loopholes' p42321 aS'loopholing' p42322 aS'loopholed' p42323 aS'loopholed' p42324 asS'trapan' p42325 (lp42326 S'trapans' p42327 aS'trapaning' p42328 aS'trapaned' p42329 aS'trapaned' p42330 asS'cajole' p42331 (lp42332 S'cajoles' p42333 aS'cajoling' p42334 aS'cajoled' p42335 aS'cajoled' p42336 asS'subduct' p42337 (lp42338 S'subducts' p42339 aS'subducting' p42340 aS'subducted' p42341 aS'subducted' p42342 asS'deoxygenize' p42343 (lp42344 S'deoxygenizes' p42345 aS'deoxygenizing' p42346 aS'deoxygenized' p42347 aS'deoxygenized' p42348 asS'conquer' p42349 (lp42350 S'conquers' p42351 aS'conquering' p42352 aS'conquered' p42353 aS'conquered' p42354 asS'rescind' p42355 (lp42356 S'rescinds' p42357 aS'rescinding' p42358 aS'rescinded' p42359 aS'rescinded' p42360 asS'occult' p42361 (lp42362 S'occults' p42363 aS'occulting' p42364 aS'occulted' p42365 aS'occulted' p42366 asS'wagon' p42367 (lp42368 S'wagons' p42369 aS'wagoning' p42370 aS'wagoned' p42371 aS'wagoned' p42372 asS'execute' p42373 (lp42374 S'executes' p42375 aS'executing' p42376 aS'executed' p42377 aS'executed' p42378 asS'name' p42379 (lp42380 S'names' p42381 aS'naming' p42382 aS'named' p42383 aS'named' p42384 asS'stabilize' p42385 (lp42386 S'stabilizes' p42387 aS'stabilizing' p42388 aS'stabilized' p42389 aS'stabilized' p42390 asS'clutch' p42391 (lp42392 S'clutches' p42393 aS'clutching' p42394 aS'clutched' p42395 aS'clutched' p42396 asS'synchronize' p42397 (lp42398 S'synchronizes' p42399 aS'synchronizing' p42400 aS'synchronized' p42401 aS'synchronized' p42402 asS'annualize' p42403 (lp42404 S'annualizes' p42405 aS'annualizing' p42406 aS'annualized' p42407 aS'annualized' p42408 asS'gape' p42409 (lp42410 S'gapes' p42411 aS'gaping' p42412 aS'gaped' p42413 aS'gaped' p42414 asS'torch' p42415 (lp42416 S'torches' p42417 aS'torching' p42418 aS'torched' p42419 aS'torched' p42420 asS'sprinkle' p42421 (lp42422 S'sprinkles' p42423 aS'sprinkling' p42424 aS'sprinkled' p42425 aS'sprinkled' p42426 asS'straightarm' p42427 (lp42428 S'straightarms' p42429 aS'straightarming' p42430 aS'straightarmed' p42431 aS'straightarmed' p42432 asS'photoset' p42433 (lp42434 S'photosets' p42435 aS'photosetting' p42436 aS'photoset' p42437 aS'photoset' p42438 asS'superstruct' p42439 (lp42440 S'superstructs' p42441 aS'superstructing' p42442 aS'superstructed' p42443 aS'superstructed' p42444 asS'transmigrate' p42445 (lp42446 S'transmigrates' p42447 aS'transmigrating' p42448 aS'transmigrated' p42449 aS'transmigrated' p42450 asS'counterchange' p42451 (lp42452 S'counterchanges' p42453 aS'counterchanging' p42454 aS'counterchanged' p42455 aS'counterchanged' p42456 asS'concur' p42457 (lp42458 S'concurs' p42459 aS'concurring' p42460 aS'concurred' p42461 aS'concurred' p42462 asS'envenom' p42463 (lp42464 S'envenoms' p42465 aS'envenoming' p42466 aS'envenomed' p42467 aS'envenomed' p42468 asS'profit' p42469 (lp42470 S'profits' p42471 aS'profiting' p42472 aS'profited' p42473 aS'profited' p42474 asS'condole' p42475 (lp42476 S'condoles' p42477 aS'condoling' p42478 aS'condoled' p42479 aS'condoled' p42480 asS'extrapolate' p42481 (lp42482 S'extrapolates' p42483 aS'extrapolating' p42484 aS'extrapolated' p42485 aS'extrapolated' p42486 asS'collate' p42487 (lp42488 S'collates' p42489 aS'collating' p42490 aS'collated' p42491 aS'collated' p42492 asS'maneuver' p42493 (lp42494 S'maneuvers' p42495 aS'maneuvering' p42496 aS'maneuvered' p42497 aS'maneuvered' p42498 asS'hulk' p42499 (lp42500 S'hulks' p42501 aS'hulking' p42502 aS'hulked' p42503 aS'hulked' p42504 asS'thumbindex' p42505 (lp42506 S'thumbindexes' p42507 aS'thumbindexing' p42508 aS'thumbindexed' p42509 aS'thumbindexed' p42510 asS'hobble' p42511 (lp42512 S'hobbles' p42513 aS'hobbling' p42514 aS'hobbled' p42515 aS'hobbled' p42516 asS'delude' p42517 (lp42518 S'deludes' p42519 aS'deluding' p42520 aS'deluded' p42521 aS'deluded' p42522 asS'flare' p42523 (lp42524 S'flares' p42525 aS'flaring' p42526 aS'flared' p42527 aS'flared' p42528 asS'impose' p42529 (lp42530 S'imposes' p42531 aS'imposing' p42532 aS'imposed' p42533 aS'imposed' p42534 asS'motion' p42535 (lp42536 S'motions' p42537 aS'motioning' p42538 aS'motioned' p42539 aS'motioned' p42540 asS'turn' p42541 (lp42542 S'turns' p42543 aS'turning' p42544 aS'turned' p42545 aS'turned' p42546 asS'place' p42547 (lp42548 S'places' p42549 aS'placing' p42550 aS'placed' p42551 aS'placed' p42552 asS'brutalize' p42553 (lp42554 S'brutalizes' p42555 aS'brutalizing' p42556 aS'brutalized' p42557 aS'brutalized' p42558 asS'turf' p42559 (lp42560 S'turfs' p42561 aS'turfing' p42562 aS'turfed' p42563 aS'turfed' p42564 asS'impost' p42565 (lp42566 S'imposts' p42567 aS'imposting' p42568 aS'imposted' p42569 aS'imposted' p42570 asS'swink' p42571 (lp42572 S'swinks' p42573 aS'swinking' p42574 aS'swinked' p42575 aS'swinked' p42576 asS'excommunicate' p42577 (lp42578 S'excommunicates' p42579 aS'excommunicating' p42580 aS'excommunicated' p42581 aS'excommunicated' p42582 asS'feign' p42583 (lp42584 S'feigns' p42585 aS'feigning' p42586 aS'feigned' p42587 aS'feigned' p42588 asS'suspend' p42589 (lp42590 S'suspends' p42591 aS'suspending' p42592 aS'suspended' p42593 aS'suspended' p42594 asS'refloat' p42595 (lp42596 S'refloats' p42597 aS'refloating' p42598 aS'refloated' p42599 aS'refloated' p42600 asS'escarp' p42601 (lp42602 S'escarps' p42603 aS'escarping' p42604 aS'escarped' p42605 aS'escarped' p42606 asS'scollop' p42607 (lp42608 S'scollops' p42609 aS'scolloping' p42610 aS'scolloped' p42611 aS'scolloped' p42612 asS'array' p42613 (lp42614 S'arrays' p42615 aS'arraying' p42616 aS'arrayed' p42617 aS'arrayed' p42618 asS'intone' p42619 (lp42620 S'intones' p42621 aS'intoning' p42622 aS'intoned' p42623 aS'intoned' p42624 asS'engineer' p42625 (lp42626 S'engineers' p42627 aS'engineering' p42628 aS'engineered' p42629 aS'engineered' p42630 asS'unpeople' p42631 (lp42632 S'unpeoples' p42633 aS'unpeopling' p42634 aS'unpeopled' p42635 aS'unpeopled' p42636 asS'district' p42637 (lp42638 S'districts' p42639 aS'districting' p42640 aS'districted' p42641 aS'districted' p42642 asS'carbonate' p42643 (lp42644 S'carbonates' p42645 aS'carbonating' p42646 aS'carbonated' p42647 aS'carbonated' p42648 asS'plank' p42649 (lp42650 S'planks' p42651 aS'planking' p42652 aS'planked' p42653 aS'planked' p42654 asS'assort' p42655 (lp42656 S'assorts' p42657 aS'assorting' p42658 aS'assorted' p42659 aS'assorted' p42660 asS'persecute' p42661 (lp42662 S'persecutes' p42663 aS'persecuting' p42664 aS'persecuted' p42665 aS'persecuted' p42666 asS'crosscheck' p42667 (lp42668 sS'unfrock' p42669 (lp42670 S'unfrocks' p42671 aS'unfrocking' p42672 aS'unfrocked' p42673 aS'unfrocked' p42674 asS'whistlestop' p42675 (lp42676 S'whistlestops' p42677 aS'whistlestoping' p42678 aS'whistlestoped' p42679 aS'whistlestoped' p42680 asS'holden' p42681 (lp42682 S'holdens' p42683 aS'holdening' p42684 aS'holdened' p42685 aS'holdened' p42686 asS'hug' p42687 (lp42688 S'hugs' p42689 aS'hugging' p42690 aS'hugged' p42691 aS'hugged' p42692 asS'cope' p42693 (lp42694 S'copes' p42695 aS'coping' p42696 aS'coped' p42697 aS'coped' p42698 asS'hum' p42699 (lp42700 S'hums' p42701 aS'humming' p42702 ag36277 aS'hummed' p42703 asS'indoctrinate' p42704 (lp42705 S'indoctrinates' p42706 aS'indoctrinating' p42707 aS'indoctrinated' p42708 aS'indoctrinated' p42709 asS'wax' p42710 (lp42711 S'waxes' p42712 aS'waxing' p42713 aS'waxed' p42714 aS'waxed' p42715 asS'backpedal' p42716 (lp42717 S'backpedals' p42718 aS'backpedalling' p42719 aS'backpedalled' p42720 aS'backpedalled' p42721 asS'grunt' p42722 (lp42723 S'grunts' p42724 aS'grunting' p42725 aS'grunted' p42726 aS'grunted' p42727 asS'specify' p42728 (lp42729 S'specifies' p42730 aS'specifying' p42731 aS'specified' p42732 aS'specified' p42733 asS'bewitch' p42734 (lp42735 S'bewitches' p42736 aS'bewitching' p42737 aS'bewitched' p42738 aS'bewitched' p42739 asS'defrock' p42740 (lp42741 S'defrocks' p42742 aS'defrocking' p42743 aS'defrocked' p42744 aS'defrocked' p42745 asS'require' p42746 (lp42747 S'requires' p42748 aS'requiring' p42749 aS'required' p42750 aS'required' p42751 asS'sere' p42752 (lp42753 S'seres' p42754 aS'sering' p42755 aS'sered' p42756 aS'sered' p42757 asS'ooze' p42758 (lp42759 S'oozes' p42760 aS'oozing' p42761 aS'oozed' p42762 aS'oozed' p42763 asS'posit' p42764 (lp42765 S'posits' p42766 aS'positing' p42767 aS'posited' p42768 aS'posited' p42769 asS'collimate' p42770 (lp42771 S'collimates' p42772 aS'collimating' p42773 aS'collimated' p42774 aS'collimated' p42775 asS'depilate' p42776 (lp42777 S'depilates' p42778 aS'depilating' p42779 aS'depilated' p42780 aS'depilated' p42781 asS'rend' p42782 (lp42783 S'rends' p42784 aS'rending' p42785 aS'rent' p42786 aS'rent' p42787 asS'froth' p42788 (lp42789 S'froths' p42790 aS'frothing' p42791 aS'frothed' p42792 aS'frothed' p42793 asS'wolfwhistle' p42794 (lp42795 S'wolfwhistles' p42796 aS'wolfwhistling' p42797 aS'wolfwhistled' p42798 aS'wolfwhistled' p42799 asS'liquidize' p42800 (lp42801 S'liquidizes' p42802 aS'liquidizing' p42803 aS'liquidized' p42804 aS'liquidized' p42805 asS'stoush' p42806 (lp42807 S'stoushes' p42808 aS'stoushing' p42809 aS'stoushed' p42810 aS'stoushed' p42811 asS'rent' p42812 (lp42813 S'rents' p42814 aS'renting' p42815 aS'rented' p42816 aS'rented' p42817 asS'pry' p42818 (lp42819 S'pries' p42820 aS'prying' p42821 aS'pried' p42822 aS'pried' p42823 asS'silhouette' p42824 (lp42825 S'silhouettes' p42826 aS'silhouetting' p42827 aS'silhouetted' p42828 aS'silhouetted' p42829 asS'acclimatize' p42830 (lp42831 S'acclimatises' p42832 aS'acclimatizing' p42833 aS'acclimatized' p42834 aS'acclimatized' p42835 asS'fracture' p42836 (lp42837 S'fractures' p42838 aS'fracturing' p42839 aS'fractured' p42840 aS'fractured' p42841 asS'paraphrase' p42842 (lp42843 S'paraphrases' p42844 aS'paraphrasing' p42845 aS'paraphrased' p42846 aS'paraphrased' p42847 asS'blunt' p42848 (lp42849 S'blunts' p42850 aS'blunting' p42851 aS'blunted' p42852 aS'blunted' p42853 asS'surf' p42854 (lp42855 S'surfs' p42856 aS'surfing' p42857 aS'surfed' p42858 aS'surfed' p42859 asS'urge' p42860 (lp42861 S'urges' p42862 aS'urging' p42863 aS'urged' p42864 aS'urged' p42865 asS'biff' p42866 (lp42867 S'biffs' p42868 aS'biffing' p42869 aS'biffed' p42870 aS'biffed' p42871 asS'embitter' p42872 (lp42873 S'embitters' p42874 aS'embittering' p42875 aS'embittered' p42876 aS'embittered' p42877 asS'apprize' p42878 (lp42879 S'apprizes' p42880 aS'apprizing' p42881 aS'apprized' p42882 aS'apprized' p42883 asS'remunerate' p42884 (lp42885 S'remunerates' p42886 aS'remunerating' p42887 aS'remunerated' p42888 aS'remunerated' p42889 asS'rematch' p42890 (lp42891 S'rematches' p42892 aS'rematching' p42893 aS'rematched' p42894 aS'rematched' p42895 asS'frig' p42896 (lp42897 S'frigs' p42898 aS'frigging' p42899 aS'frigged' p42900 aS'frigged' p42901 asS'fluoridize' p42902 (lp42903 S'fluoridizes' p42904 aS'fluoridizing' p42905 aS'fluoridized' p42906 aS'fluoridized' p42907 asS'saunter' p42908 (lp42909 S'saunters' p42910 aS'sauntering' p42911 aS'sauntered' p42912 aS'sauntered' p42913 asS'annul' p42914 (lp42915 S'annuls' p42916 aS'annulling' p42917 aS'annulled' p42918 aS'annulled' p42919 asS'misfire' p42920 (lp42921 S'misfires' p42922 aS'misfiring' p42923 aS'misfired' p42924 aS'misfired' p42925 asS'adopt' p42926 (lp42927 S'adopts' p42928 aS'adopting' p42929 aS'adopted' p42930 aS'adopted' p42931 asS'calcify' p42932 (lp42933 S'calcifies' p42934 aS'calcifying' p42935 aS'calcified' p42936 aS'calcified' p42937 asS'incardinate' p42938 (lp42939 S'incardinates' p42940 aS'incardinating' p42941 aS'incardinated' p42942 aS'incardinated' p42943 asS'readjust' p42944 (lp42945 S'readjusts' p42946 aS'readjusting' p42947 aS'readjusted' p42948 aS'readjusted' p42949 asS'slope' p42950 (lp42951 S'slopes' p42952 aS'sloping' p42953 aS'sloped' p42954 aS'sloped' p42955 asS'perch' p42956 (lp42957 S'perches' p42958 aS'perching' p42959 aS'perched' p42960 aS'perched' p42961 asS'forage' p42962 (lp42963 S'forages' p42964 aS'foraging' p42965 aS'foraged' p42966 aS'foraged' p42967 asS'cheat' p42968 (lp42969 S'cheats' p42970 aS'cheating' p42971 aS'cheated' p42972 aS'cheated' p42973 asS'reinvigorate' p42974 (lp42975 S'reinvigorates' p42976 aS'reinvigorating' p42977 aS'reinvigorated' p42978 aS'reinvigorated' p42979 asS'trog' p42980 (lp42981 S'trogs' p42982 aS'trogging' p42983 aS'trogged' p42984 aS'trogged' p42985 asS'trespass' p42986 (lp42987 S'trespasses' p42988 aS'trespassing' p42989 aS'trespassed' p42990 aS'trespassed' p42991 asS'hack' p42992 (lp42993 S'hacks' p42994 aS'hacking' p42995 aS'hacked' p42996 aS'hacked' p42997 asS'pustulate' p42998 (lp42999 S'pustulates' p43000 aS'pustulating' p43001 aS'pustulated' p43002 aS'pustulated' p43003 asS'broach' p43004 (lp43005 S'broaches' p43006 aS'broaching' p43007 aS'broached' p43008 aS'broached' p43009 asS'mister' p43010 (lp43011 S'misters' p43012 aS'mistering' p43013 aS'mistered' p43014 aS'mistered' p43015 asS'doublecheck' p43016 (lp43017 S'doublechecks' p43018 aS'doublechecking' p43019 aS'doublechecked' p43020 aS'doublechecked' p43021 asS'trot' p43022 (lp43023 S'trots' p43024 aS'trotting' p43025 aS'trotted' p43026 aS'trotted' p43027 asS'featherbed' p43028 (lp43029 S'featherbeds' p43030 aS'featherbedding' p43031 aS'featherbedded' p43032 aS'featherbedded' p43033 asS'transistorize' p43034 (lp43035 S'transistorizes' p43036 aS'transistorizing' p43037 aS'transistorized' p43038 aS'transistorized' p43039 asS'gulf' p43040 (lp43041 S'gulfs' p43042 aS'gulfing' p43043 aS'gulfed' p43044 aS'gulfed' p43045 asS'gull' p43046 (lp43047 S'gulls' p43048 aS'gulling' p43049 aS'gulled' p43050 aS'gulled' p43051 asS'ventriloquize' p43052 (lp43053 S'ventriloquizes' p43054 aS'ventriloquizing' p43055 aS'ventriloquized' p43056 aS'ventriloquized' p43057 asS'shimmer' p43058 (lp43059 S'shimmers' p43060 aS'shimmering' p43061 aS'shimmered' p43062 aS'shimmered' p43063 asS'gulp' p43064 (lp43065 S'gulps' p43066 aS'gulping' p43067 aS'gulped' p43068 aS'gulped' p43069 asS'woof' p43070 (lp43071 S'woofs' p43072 aS'woofing' p43073 aS'woofed' p43074 aS'woofed' p43075 asS'wood' p43076 (lp43077 S'woods' p43078 aS'wooding' p43079 aS'wooded' p43080 aS'wooded' p43081 asS'partake' p43082 (lp43083 S'partakes' p43084 aS'partaking' p43085 aS'partook' p43086 aS'partaken' p43087 asS'deign' p43088 (lp43089 S'deigns' p43090 aS'deigning' p43091 aS'deigned' p43092 aS'deigned' p43093 asS'crimp' p43094 (lp43095 S'crimps' p43096 aS'crimping' p43097 aS'crimped' p43098 aS'crimped' p43099 asS'involute' p43100 (lp43101 S'involutes' p43102 aS'involuting' p43103 aS'involuted' p43104 aS'involuted' p43105 asS'lighten' p43106 (lp43107 S'lightens' p43108 aS'lightening' p43109 aS'lightened' p43110 aS'lightened' p43111 asS'jazz' p43112 (lp43113 S'jazzes' p43114 aS'jazzing' p43115 aS'jazzed' p43116 aS'jazzed' p43117 asS'festoon' p43118 (lp43119 S'festoons' p43120 aS'festooning' p43121 aS'festooned' p43122 aS'festooned' p43123 asS'tailor' p43124 (lp43125 S'tailors' p43126 aS'tailoring' p43127 aS'tailored' p43128 aS'tailored' p43129 asS'dye' p43130 (lp43131 S'dyes' p43132 aS'dyeing' p43133 aS'dyed' p43134 aS'dyed' p43135 asS'hedge' p43136 (lp43137 S'hedges' p43138 aS'hedging' p43139 aS'hedged' p43140 aS'hedged' p43141 asS'closure' p43142 (lp43143 S'closures' p43144 aS'closuring' p43145 aS'closured' p43146 aS'closured' p43147 asS'reveal' p43148 (lp43149 S'reveals' p43150 aS'revealing' p43151 aS'revealed' p43152 aS'revealed' p43153 asS'pinnacle' p43154 (lp43155 S'pinnacles' p43156 aS'pinnacling' p43157 aS'pinnacled' p43158 aS'pinnacled' p43159 asS'outperform' p43160 (lp43161 S'outperforms' p43162 aS'outperforming' p43163 aS'outperformed' p43164 aS'outperformed' p43165 asS'obliterate' p43166 (lp43167 S'obliterates' p43168 aS'obliterating' p43169 aS'obliterated' p43170 aS'obliterated' p43171 asS'underplay' p43172 (lp43173 S'underplays' p43174 aS'underplaying' p43175 aS'underplayed' p43176 aS'underplayed' p43177 asS'dumfound' p43178 (lp43179 S'dumfounds' p43180 aS'dumfounding' p43181 aS'dumfounded' p43182 aS'dumfounded' p43183 asS'dawdle' p43184 (lp43185 S'dawdles' p43186 aS'dawdling' p43187 aS'dawdled' p43188 aS'dawdled' p43189 asS'convolve' p43190 (lp43191 S'convolves' p43192 aS'convolving' p43193 aS'convolved' p43194 aS'convolved' p43195 asS'picnic' p43196 (lp43197 S'picnicking' p43198 aS'picnicked' p43199 aS'picnicked' p43200 asS'emote' p43201 (lp43202 S'emotes' p43203 aS'emoting' p43204 aS'emoted' p43205 aS'emoted' p43206 asS'prowl' p43207 (lp43208 S'prowls' p43209 aS'prowling' p43210 aS'prowled' p43211 aS'prowled' p43212 asS'westernize' p43213 (lp43214 S'westernizes' p43215 aS'westernizing' p43216 aS'westernized' p43217 aS'westernized' p43218 asS'sile' p43219 (lp43220 S'siles' p43221 aS'siling' p43222 aS'siled' p43223 aS'siled' p43224 asS'scabble' p43225 (lp43226 S'scabbles' p43227 aS'scabbling' p43228 aS'scabbled' p43229 aS'scabbled' p43230 asS'detect' p43231 (lp43232 S'detects' p43233 aS'detecting' p43234 aS'detected' p43235 aS'detected' p43236 asS'emplace' p43237 (lp43238 S'emplaces' p43239 aS'emplacing' p43240 aS'emplaced' p43241 aS'emplaced' p43242 asS'mortgage' p43243 (lp43244 S'mortgages' p43245 aS'mortgaging' p43246 aS'mortgaged' p43247 aS'mortgaged' p43248 asS'review' p43249 (lp43250 S'reviews' p43251 aS'reviewing' p43252 aS'reviewed' p43253 aS'reviewed' p43254 asS'hiss' p43255 (lp43256 S'hisses' p43257 aS'hissing' p43258 aS'hissed' p43259 aS'hissed' p43260 asS'caucus' p43261 (lp43262 S'caucuses' p43263 aS'caucusing' p43264 aS'caucused' p43265 aS'caucused' p43266 asS'crossquestion' p43267 (lp43268 S'crossquestions' p43269 aS'crossquestioning' p43270 aS'crossquestioned' p43271 aS'crossquestioned' p43272 asS'bowwow' p43273 (lp43274 S'bowwows' p43275 aS'bowwowing' p43276 aS'bowwowed' p43277 aS'bowwowed' p43278 asS'overcharge' p43279 (lp43280 S'overcharges' p43281 aS'overcharging' p43282 aS'overcharged' p43283 aS'overcharged' p43284 asS'comb' p43285 (lp43286 S'combs' p43287 aS'combing' p43288 aS'combed' p43289 aS'combed' p43290 asS'come' p43291 (lp43292 S'comes' p43293 aS'coming' p43294 aS'came' p43295 aS'come' p43296 asS'forfend' p43297 (lp43298 S'forfends' p43299 aS'forfending' p43300 aS'forfended' p43301 aS'forfended' p43302 asS'bunko' p43303 (lp43304 S'bunkos' p43305 aS'bunkoing' p43306 aS'bunkoed' p43307 aS'bunkoed' p43308 asS'bemoan' p43309 (lp43310 S'bemoans' p43311 aS'bemoaning' p43312 aS'bemoaned' p43313 aS'bemoaned' p43314 asS'quiet' p43315 (lp43316 S'quiets' p43317 aS'quieting' p43318 aS'quieted' p43319 aS'quieted' p43320 asS'contract' p43321 (lp43322 S'contracts' p43323 aS'contracting' p43324 aS'contracted' p43325 aS'contracted' p43326 asS're-afforest' p43327 (lp43328 S're-afforests' p43329 aS're-afforesting' p43330 aS're-afforested' p43331 aS're-afforested' p43332 asS'berry' p43333 (lp43334 S'berries' p43335 aS'berrying' p43336 aS'berried' p43337 aS'berried' p43338 asS'cabal' p43339 (lp43340 S'cabals' p43341 aS'caballing' p43342 aS'caballed' p43343 aS'caballed' p43344 asS'pot' p43345 (lp43346 S'pots' p43347 aS'potting' p43348 aS'potted' p43349 aS'potted' p43350 asS'insist' p43351 (lp43352 S'insists' p43353 aS'insisting' p43354 aS'insisted' p43355 aS'insisted' p43356 asS'pole' p43357 (lp43358 S'poles' p43359 aS'poling' p43360 aS'poled' p43361 aS'poled' p43362 asS'pod' p43363 (lp43364 S'pods' p43365 aS'podding' p43366 aS'podded' p43367 aS'podded' p43368 asS'poll' p43369 (lp43370 S'polls' p43371 aS'polling' p43372 aS'polled' p43373 aS'polled' p43374 asS'sypher' p43375 (lp43376 S'syphers' p43377 aS'syphering' p43378 aS'syphered' p43379 aS'syphered' p43380 asS'shroff' p43381 (lp43382 S'shroffs' p43383 aS'shroffing' p43384 aS'shroffed' p43385 aS'shroffed' p43386 asS'anthologize' p43387 (lp43388 S'anthologizes' p43389 aS'anthologizing' p43390 aS'anthologized' p43391 aS'anthologized' p43392 asS'umpire' p43393 (lp43394 S'umpires' p43395 aS'umpiring' p43396 aS'umpired' p43397 aS'umpired' p43398 asS'disembogue' p43399 (lp43400 S'disembogues' p43401 aS'disemboguing' p43402 aS'disembogued' p43403 aS'disembogued' p43404 asS'reimburse' p43405 (lp43406 S'reimburses' p43407 aS'reimbursing' p43408 aS'reimbursed' p43409 aS'reimbursed' p43410 asS'catholicize' p43411 (lp43412 S'catholicizes' p43413 aS'catholicizing' p43414 aS'catholicized' p43415 aS'catholicized' p43416 asS'borate' p43417 (lp43418 S'borates' p43419 aS'borating' p43420 aS'borated' p43421 aS'borated' p43422 asS'padlock' p43423 (lp43424 S'padlocks' p43425 aS'padlocking' p43426 aS'padlocked' p43427 aS'padlocked' p43428 asS'silk' p43429 (lp43430 S'silks' p43431 aS'silking' p43432 aS'silked' p43433 aS'silked' p43434 asS'minister' p43435 (lp43436 S'ministers' p43437 aS'ministering' p43438 aS'ministered' p43439 aS'ministered' p43440 asS'dribble' p43441 (lp43442 S'dribbles' p43443 aS'dribbling' p43444 aS'dribbled' p43445 aS'dribbled' p43446 asS'pilot' p43447 (lp43448 S'pilots' p43449 aS'piloting' p43450 aS'piloted' p43451 aS'piloted' p43452 asS'case' p43453 (lp43454 S'cases' p43455 aS'casing' p43456 aS'cased' p43457 aS'cased' p43458 asS'shaft' p43459 (lp43460 S'shafts' p43461 aS'shafting' p43462 aS'shafted' p43463 aS'shafted' p43464 asS'hightail' p43465 (lp43466 S'hightails' p43467 aS'hightailing' p43468 aS'hightailed' p43469 aS'hightailed' p43470 asS'amend' p43471 (lp43472 S'amends' p43473 aS'amending' p43474 aS'amended' p43475 aS'amended' p43476 asS'mount' p43477 (lp43478 S'mounts' p43479 aS'mounting' p43480 aS'mounted' p43481 aS'mounted' p43482 asS'cash' p43483 (lp43484 S'cashes' p43485 aS'cashing' p43486 aS'cashed' p43487 aS'cashed' p43488 asS'cast' p43489 (lp43490 S'casts' p43491 aS'casting' p43492 aS'cast' p43493 aS'cast' p43494 asS'Roneo' p43495 (lp43496 S'Roneos' p43497 aS'Roneoing' p43498 aS'Roneoed' p43499 aS'Roneoed' p43500 asS'embank' p43501 (lp43502 S'embanks' p43503 aS'embanking' p43504 aS'embanked' p43505 aS'embanked' p43506 asS'shingle' p43507 (lp43508 S'shingles' p43509 aS'shingling' p43510 aS'shingled' p43511 aS'shingled' p43512 asS'mound' p43513 (lp43514 S'mounds' p43515 aS'mounding' p43516 aS'mounded' p43517 aS'mounded' p43518 asS'vest' p43519 (lp43520 S'vests' p43521 aS'vesting' p43522 aS'vested' p43523 aS'vested' p43524 asS'bemean' p43525 (lp43526 S'bemeans' p43527 aS'bemeaning' p43528 aS'bemeaned' p43529 aS'bemeaned' p43530 asS'depersonalize' p43531 (lp43532 S'depersonalizes' p43533 aS'depersonalizing' p43534 aS'depersonalized' p43535 aS'depersonalized' p43536 asS'telephone' p43537 (lp43538 S'telephones' p43539 aS'telephoning' p43540 aS'telephoned' p43541 aS'telephoned' p43542 asS'parse' p43543 (lp43544 S'parses' p43545 aS'parsing' p43546 aS'parsed' p43547 aS'parsed' p43548 asS'big-note' p43549 (lp43550 S'big-notes' p43551 aS'big-noting' p43552 aS'big-noted' p43553 aS'big-noted' p43554 asS'clutter' p43555 (lp43556 S'clutters' p43557 aS'cluttering' p43558 aS'cluttered' p43559 aS'cluttered' p43560 asS'saponify' p43561 (lp43562 S'saponifies' p43563 aS'saponifying' p43564 aS'saponified' p43565 aS'saponified' p43566 asS'reshape' p43567 (lp43568 S'reshapes' p43569 aS'reshaping' p43570 aS'reshaped' p43571 aS'reshaped' p43572 asS'bowl' p43573 (lp43574 S'bowls' p43575 aS'bowling' p43576 aS'bowled' p43577 aS'bowled' p43578 asS'furl' p43579 (lp43580 S'furls' p43581 aS'furling' p43582 aS'furled' p43583 aS'furled' p43584 asS'sucker' p43585 (lp43586 S'suckers' p43587 aS'suckering' p43588 aS'suckered' p43589 aS'suckered' p43590 asS'spatter' p43591 (lp43592 S'spatters' p43593 aS'spattering' p43594 aS'spattered' p43595 aS'spattered' p43596 asS'ween' p43597 (lp43598 S'weens' p43599 aS'weening' p43600 aS'weened' p43601 aS'weened' p43602 asS'applaud' p43603 (lp43604 S'applauds' p43605 aS'applauding' p43606 aS'applauded' p43607 aS'applauded' p43608 asS'nest' p43609 (lp43610 S'nests' p43611 aS'nesting' p43612 aS'nested' p43613 aS'nested' p43614 asS'weed' p43615 (lp43616 sS'drivel' p43617 (lp43618 S'drivels' p43619 aS'drivelling' p43620 aS'drivelled' p43621 aS'drivelled' p43622 asS'lute' p43623 (lp43624 S'lutes' p43625 aS'luting' p43626 aS'luted' p43627 aS'luted' p43628 asS'ragout' p43629 (lp43630 S'ragouts' p43631 aS'ragouting' p43632 aS'ragouted' p43633 aS'ragouted' p43634 asS'encrypt' p43635 (lp43636 S'encrypts' p43637 aS'encrypting' p43638 aS'encrypted' p43639 aS'encrypted' p43640 asS'weep' p43641 (lp43642 S'weeps' p43643 aS'weeping' p43644 aS'wept' p43645 aS'wept' p43646 asS'minimize' p43647 (lp43648 S'minimizes' p43649 aS'minimizing' p43650 aS'minimized' p43651 aS'minimized' p43652 asS'ranch' p43653 (lp43654 S'ranches' p43655 aS'ranching' p43656 aS'ranched' p43657 aS'ranched' p43658 asS'brede' p43659 (lp43660 S'bredes' p43661 aS'breding' p43662 aS'breded' p43663 aS'breded' p43664 asS'communalize' p43665 (lp43666 S'communalizes' p43667 aS'communalizing' p43668 aS'communalized' p43669 aS'communalized' p43670 asS'co-edit' p43671 (lp43672 S'co-edits' p43673 aS'co-editing' p43674 aS'co-edited' p43675 aS'co-edited' p43676 asS'inbreathe' p43677 (lp43678 S'inbreathes' p43679 aS'inbreathing' p43680 aS'inbreathed' p43681 aS'inbreathed' p43682 asS'illume' p43683 (lp43684 S'illumes' p43685 aS'illuming' p43686 aS'illumed' p43687 aS'illumed' p43688 asS'model' p43689 (lp43690 S'models' p43691 aS'modelling' p43692 aS'modelled' p43693 aS'modelled' p43694 asS'retroject' p43695 (lp43696 S'retrojects' p43697 aS'retrojecting' p43698 aS'retrojected' p43699 aS'retrojected' p43700 asS'justify' p43701 (lp43702 S'justifies' p43703 aS'justifying' p43704 aS'justified' p43705 aS'justified' p43706 asS'clog' p43707 (lp43708 S'clogs' p43709 aS'clogging' p43710 aS'clogged' p43711 aS'clogged' p43712 asS'crossindex' p43713 (lp43714 S'crossindexes' p43715 aS'crossindexing' p43716 aS'crossindexed' p43717 aS'crossindexed' p43718 asS'kilt' p43719 (lp43720 S'kilts' p43721 aS'kilting' p43722 aS'kilted' p43723 aS'kilted' p43724 asS'clot' p43725 (lp43726 S'clots' p43727 aS'clotting' p43728 aS'clotted' p43729 aS'clotted' p43730 asS'lavish' p43731 (lp43732 S'lavishes' p43733 aS'lavishing' p43734 aS'lavished' p43735 aS'lavished' p43736 asS'clop' p43737 (lp43738 S'clops' p43739 aS'clopping' p43740 aS'clopped' p43741 aS'clopped' p43742 asS'kiln' p43743 (lp43744 S'kilns' p43745 aS'kilning' p43746 aS'kilned' p43747 aS'kilned' p43748 asS'polish' p43749 (lp43750 S'polishes' p43751 aS'polishing' p43752 aS'polished' p43753 aS'polished' p43754 asS'velarize' p43755 (lp43756 S'velarizes' p43757 aS'velarizing' p43758 aS'velarized' p43759 aS'velarized' p43760 asS'cloy' p43761 (lp43762 S'cloys' p43763 aS'cloying' p43764 aS'cloyed' p43765 aS'cloyed' p43766 asS'blow' p43767 (lp43768 S'blows' p43769 aS'blowing' p43770 aS'blew' p43771 aS'blown' p43772 asS'blot' p43773 (lp43774 S'blots' p43775 aS'blotting' p43776 aS'blotted' p43777 aS'blotted' p43778 asS'hint' p43779 (lp43780 S'hints' p43781 aS'hinting' p43782 aS'hinted' p43783 aS'hinted' p43784 asS'except' p43785 (lp43786 S'excepts' p43787 aS'excepting' p43788 aS'excepted' p43789 aS'excepted' p43790 asS'enfilade' p43791 (lp43792 S'enfilades' p43793 aS'enfilading' p43794 aS'enfiladed' p43795 aS'enfiladed' p43796 asS'blob' p43797 (lp43798 S'blobs' p43799 aS'blobbing' p43800 aS'blobbed' p43801 aS'blobbed' p43802 asS'backbite' p43803 (lp43804 S'backbites' p43805 aS'backbiting' p43806 aS'backbit' p43807 aS'backbitten' p43808 asS'disrupt' p43809 (lp43810 S'disrupts' p43811 aS'disrupting' p43812 aS'disrupted' p43813 aS'disrupted' p43814 asS'impound' p43815 (lp43816 S'impounds' p43817 aS'impounding' p43818 aS'impounded' p43819 aS'impounded' p43820 asS'devest' p43821 (lp43822 S'devests' p43823 aS'devesting' p43824 aS'devested' p43825 aS'devested' p43826 asS'entwintwine' p43827 (lp43828 S'entwintwines' p43829 aS'entwintwining' p43830 aS'entwintwined' p43831 aS'entwintwined' p43832 asS'snore' p43833 (lp43834 S'snores' p43835 aS'snoring' p43836 aS'snored' p43837 aS'snored' p43838 asS'shrink' p43839 (lp43840 S'shrinks' p43841 aS'shrinking' p43842 aS'shrunk' p43843 aS'shrunken' p43844 asS'snort' p43845 (lp43846 S'snorts' p43847 aS'snorting' p43848 aS'snorted' p43849 aS'snorted' p43850 asS'deduct' p43851 (lp43852 S'deducts' p43853 aS'deducting' p43854 aS'deducted' p43855 aS'deducted' p43856 asS'subsidize' p43857 (lp43858 S'subsidizes' p43859 aS'subsidizing' p43860 aS'subsidized' p43861 aS'subsidized' p43862 asS'interlock' p43863 (lp43864 S'interlocks' p43865 aS'interlocking' p43866 aS'interlocked' p43867 aS'interlocked' p43868 asS'deduce' p43869 (lp43870 S'deduces' p43871 aS'deducing' p43872 aS'deduced' p43873 aS'deduced' p43874 asS'mispled' p43875 (lp43876 S'mispleds' p43877 aS'mispleding' p43878 aS'mispled' p43879 aS'mispled' p43880 asS'respect' p43881 (lp43882 S'respects' p43883 aS'respecting' p43884 aS'respected' p43885 aS'respected' p43886 asS'slice' p43887 (lp43888 S'slices' p43889 aS'slicing' p43890 aS'sliced' p43891 aS'sliced' p43892 asS'overstay' p43893 (lp43894 S'overstays' p43895 aS'overstaying' p43896 aS'overstayed' p43897 aS'overstayed' p43898 asS'renounce' p43899 (lp43900 S'renounces' p43901 aS'renouncing' p43902 aS'renounced' p43903 aS'renounced' p43904 asS'divvy' p43905 (lp43906 S'divvies' p43907 aS'divvying' p43908 aS'divvied' p43909 aS'divvied' p43910 asS'slick' p43911 (lp43912 S'slicks' p43913 aS'slicking' p43914 aS'slicked' p43915 aS'slicked' p43916 asS'jiggle' p43917 (lp43918 S'jiggles' p43919 aS'jiggling' p43920 aS'jiggled' p43921 aS'jiggled' p43922 asS'moon' p43923 (lp43924 S'moons' p43925 aS'mooning' p43926 aS'mooned' p43927 aS'mooned' p43928 asS'moor' p43929 (lp43930 S'moors' p43931 aS'mooring' p43932 aS'moored' p43933 aS'moored' p43934 asS'moot' p43935 (lp43936 S'moots' p43937 aS'mooting' p43938 aS'mooted' p43939 aS'mooted' p43940 asS'stope' p43941 (lp43942 S'stopes' p43943 aS'stoping' p43944 aS'stoped' p43945 aS'stoped' p43946 asS'herringbone' p43947 (lp43948 S'herringbones' p43949 aS'herringboning' p43950 aS'herringboned' p43951 aS'herringboned' p43952 asS'inspect' p43953 (lp43954 S'inspects' p43955 aS'inspecting' p43956 aS'inspected' p43957 aS'inspected' p43958 asS'communicate' p43959 (lp43960 S'communicates' p43961 aS'communicating' p43962 aS'communicated' p43963 aS'communicated' p43964 asS'slaughter' p43965 (lp43966 S'slaughters' p43967 aS'slaughtering' p43968 aS'slaughtered' p43969 aS'slaughtered' p43970 asS'update' p43971 (lp43972 S'updates' p43973 aS'updating' p43974 aS'updated' p43975 aS'updated' p43976 asS'fantasize' p43977 (lp43978 S'fantasizes' p43979 aS'fantasizing' p43980 aS'fantasized' p43981 aS'fantasized' p43982 asS'immigrate' p43983 (lp43984 S'immigrates' p43985 aS'immigrating' p43986 aS'immigrated' p43987 aS'immigrated' p43988 asS'prattle' p43989 (lp43990 S'prattles' p43991 aS'prattling' p43992 aS'prattled' p43993 aS'prattled' p43994 asS'concuss' p43995 (lp43996 S'concusses' p43997 aS'concussing' p43998 aS'concussed' p43999 aS'concussed' p44000 asS'tread' p44001 (lp44002 S'treads' p44003 aS'treading' p44004 aS'trod' p44005 aS'trodden' p44006 asS'ok' p44007 (lp44008 S'oks' p44009 aS'oking' p44010 aS'oked' p44011 aS'oked' p44012 asS'jeer' p44013 (lp44014 S'jeers' p44015 aS'jeering' p44016 aS'jeered' p44017 aS'jeered' p44018 asS'shrimp' p44019 (lp44020 S'shrimps' p44021 aS'shrimping' p44022 aS'shrimped' p44023 aS'shrimped' p44024 asS'stand' p44025 (lp44026 S'stands' p44027 aS'standing' p44028 aS'stood' p44029 aS'stood' p44030 asS'equalize' p44031 (lp44032 S'equalizes' p44033 aS'equalizing' p44034 aS'equalized' p44035 aS'equalized' p44036 asS'doze' p44037 (lp44038 S'dozes' p44039 aS'dozing' p44040 aS'dozed' p44041 aS'dozed' p44042 asS'broddle' p44043 (lp44044 S'broddles' p44045 aS'broddling' p44046 aS'broddled' p44047 aS'broddled' p44048 asS'accredit' p44049 (lp44050 S'accredits' p44051 aS'accrediting' p44052 aS'accredited' p44053 aS'accredited' p44054 asS'undervalue' p44055 (lp44056 S'undervalues' p44057 aS'undervaluing' p44058 aS'undervalued' p44059 aS'undervalued' p44060 asS'garb' p44061 (lp44062 S'garbs' p44063 aS'garbing' p44064 aS'garbed' p44065 aS'garbed' p44066 asS'garner' p44067 (lp44068 S'garners' p44069 aS'garnering' p44070 aS'garnered' p44071 aS'garnered' p44072 asS'annotate' p44073 (lp44074 S'annotates' p44075 aS'annotating' p44076 aS'annotated' p44077 aS'annotated' p44078 asS'forewarn' p44079 (lp44080 S'forewarns' p44081 aS'forewarning' p44082 aS'forewarned' p44083 aS'forewarned' p44084 asS'determine' p44085 (lp44086 S'determines' p44087 aS'determining' p44088 aS'determined' p44089 aS'determined' p44090 asS'syringe' p44091 (lp44092 S'syringing' p44093 aS'syringed' p44094 aS'syringed' p44095 asS'abrogate' p44096 (lp44097 S'abrogates' p44098 aS'abrogating' p44099 aS'abrogated' p44100 aS'abrogated' p44101 asS'weight' p44102 (lp44103 S'weights' p44104 aS'weighting' p44105 aS'weighted' p44106 aS'weighted' p44107 asS'backwater' p44108 (lp44109 S'backwaters' p44110 aS'backwatering' p44111 aS'backwatered' p44112 aS'backwatered' p44113 asS'scry' p44114 (lp44115 S'scries' p44116 aS'scrying' p44117 aS'scried' p44118 aS'scried' p44119 asS'ponce' p44120 (lp44121 S'ponces' p44122 aS'poncing' p44123 aS'ponced' p44124 aS'ponced' p44125 asS'deterge' p44126 (lp44127 S'deterges' p44128 aS'deterging' p44129 aS'deterged' p44130 aS'deterged' p44131 asS'expatriate' p44132 (lp44133 S'expatriates' p44134 aS'expatriating' p44135 aS'expatriated' p44136 aS'expatriated' p44137 asS'condone' p44138 (lp44139 S'condones' p44140 aS'condoning' p44141 aS'condoned' p44142 aS'condoned' p44143 asS'carouse' p44144 (lp44145 S'carouses' p44146 aS'carousing' p44147 aS'caroused' p44148 aS'caroused' p44149 asS'gibe' p44150 (lp44151 S'gibes' p44152 aS'gibing' p44153 aS'gibed' p44154 aS'gibed' p44155 asS'jug' p44156 (lp44157 S'jugs' p44158 aS'jugging' p44159 aS'jugged' p44160 aS'jugged' p44161 asS'winnow' p44162 (lp44163 S'winnows' p44164 aS'winnowing' p44165 aS'winnowed' p44166 aS'winnowed' p44167 asS'roust' p44168 (lp44169 S'rousts' p44170 aS'rousting' p44171 aS'rousted' p44172 aS'rousted' p44173 asS'regard' p44174 (lp44175 S'regards' p44176 aS'regarding' p44177 aS'regarded' p44178 aS'regarded' p44179 asS'betoken' p44180 (lp44181 S'betokens' p44182 aS'betokening' p44183 aS'betokened' p44184 aS'betokened' p44185 asS'notate' p44186 (lp44187 S'notates' p44188 aS'notating' p44189 aS'notated' p44190 aS'notated' p44191 asS'jut' p44192 (lp44193 S'juts' p44194 aS'jutting' p44195 aS'jutted' p44196 aS'jutted' p44197 asS'promote' p44198 (lp44199 S'promotes' p44200 aS'promoting' p44201 aS'promoted' p44202 aS'promoted' p44203 asS'emancipate' p44204 (lp44205 S'emancipates' p44206 aS'emancipating' p44207 aS'emancipated' p44208 aS'emancipated' p44209 asS'scrouge' p44210 (lp44211 S'scrouges' p44212 aS'scrouging' p44213 aS'scrouged' p44214 aS'scrouged' p44215 asS'demilitarize' p44216 (lp44217 S'demilitarizes' p44218 aS'demilitarizing' p44219 aS'demilitarized' p44220 aS'demilitarized' p44221 asS'fabricate' p44222 (lp44223 S'fabricates' p44224 aS'fabricating' p44225 aS'fabricated' p44226 aS'fabricated' p44227 asS'wholesale' p44228 (lp44229 S'wholesales' p44230 aS'wholesaling' p44231 aS'wholesaled' p44232 aS'wholesaled' p44233 asS'excruciate' p44234 (lp44235 S'excruciates' p44236 aS'excruciating' p44237 aS'excruciated' p44238 aS'excruciated' p44239 asS'incise' p44240 (lp44241 S'incises' p44242 aS'incising' p44243 aS'incised' p44244 aS'incised' p44245 asS'putput' p44246 (lp44247 S'putputs' p44248 aS'putputting' p44249 aS'putputted' p44250 aS'putputted' p44251 asS'nigrify' p44252 (lp44253 S'nigrifies' p44254 aS'nigrifying' p44255 aS'nigrified' p44256 aS'nigrified' p44257 asS'grasp' p44258 (lp44259 S'grasps' p44260 aS'grasping' p44261 aS'grasped' p44262 aS'grasped' p44263 asS'grass' p44264 (lp44265 S'grasses' p44266 aS'grassing' p44267 aS'grassed' p44268 aS'grassed' p44269 asS'politick' p44270 (lp44271 S'politicks' p44272 aS'politicking' p44273 aS'politicked' p44274 aS'politicked' p44275 asS'tranquillize' p44276 (lp44277 S'tranquillizes' p44278 aS'tranquillizing' p44279 aS'tranquillized' p44280 aS'tranquillized' p44281 asS'taste' p44282 (lp44283 S'tastes' p44284 aS'tasting' p44285 aS'tasted' p44286 aS'tasted' p44287 asS'frighten' p44288 (lp44289 S'frightens' p44290 aS'frightening' p44291 aS'frightened' p44292 aS'frightened' p44293 asS'thrombose' p44294 (lp44295 S'thromboses' p44296 aS'thrombosing' p44297 aS'thrombosed' p44298 aS'thrombosed' p44299 asS'fossick' p44300 (lp44301 S'fossicks' p44302 aS'fossicking' p44303 aS'fossicked' p44304 aS'fossicked' p44305 asS'trundle' p44306 (lp44307 S'trundles' p44308 aS'trundling' p44309 aS'trundled' p44310 aS'trundled' p44311 asS'encompass' p44312 (lp44313 S'encompasses' p44314 aS'encompassing' p44315 aS'encompassed' p44316 aS'encompassed' p44317 asS'deraign' p44318 (lp44319 S'deraigns' p44320 aS'deraigning' p44321 aS'deraigned' p44322 aS'deraigned' p44323 asS'wanton' p44324 (lp44325 S'wantons' p44326 aS'wantoning' p44327 aS'wantoned' p44328 aS'wantoned' p44329 asS'deserve' p44330 (lp44331 S'deserves' p44332 aS'deserving' p44333 aS'deserved' p44334 aS'deserved' p44335 asS'compel' p44336 (lp44337 S'compels' p44338 aS'compelling' p44339 aS'compelled' p44340 aS'compelled' p44341 asS'rubber' p44342 (lp44343 S'rubbers' p44344 aS'rubbering' p44345 aS'rubbered' p44346 aS'rubbered' p44347 asS'trash' p44348 (lp44349 S'trashes' p44350 aS'trashing' p44351 aS'trashed' p44352 aS'trashed' p44353 asS'sully' p44354 (lp44355 S'sullies' p44356 aS'sullying' p44357 aS'sullied' p44358 aS'sullied' p44359 asS'proliferate' p44360 (lp44361 S'proliferates' p44362 aS'proliferating' p44363 aS'proliferated' p44364 aS'proliferated' p44365 asS'unbend' p44366 (lp44367 S'unbends' p44368 aS'unbending' p44369 aS'unbent' p44370 aS'unbent' p44371 asS'separate' p44372 (lp44373 S'separates' p44374 aS'separating' p44375 aS'separated' p44376 aS'separated' p44377 asS'symbol' p44378 (lp44379 S'symbols' p44380 aS'symbolling' p44381 aS'symbolled' p44382 aS'symbolled' p44383 asS'cove' p44384 (lp44385 S'coves' p44386 aS'coving' p44387 aS'coved' p44388 aS'coved' p44389 asS'flocculate' p44390 (lp44391 S'flocculates' p44392 aS'flocculating' p44393 aS'flocculated' p44394 aS'flocculated' p44395 asS'despoil' p44396 (lp44397 S'despoils' p44398 aS'despoiling' p44399 aS'despoiled' p44400 aS'despoiled' p44401 asS'dishonour' p44402 (lp44403 S'dishonours' p44404 aS'dishonouring' p44405 aS'dishonoured' p44406 aS'dishonoured' p44407 asS'ferrule' p44408 (lp44409 S'ferrules' p44410 aS'ferruling' p44411 aS'ferruled' p44412 aS'ferruled' p44413 asS'feudalize' p44414 (lp44415 S'feudalizes' p44416 aS'feudalizing' p44417 aS'feudalized' p44418 aS'feudalized' p44419 asS'spouse' p44420 (lp44421 S'spouses' p44422 aS'spousing' p44423 aS'spoused' p44424 aS'spoused' p44425 asS'verjuice' p44426 (lp44427 S'verjuices' p44428 aS'verjuicing' p44429 aS'verjuiced' p44430 aS'verjuiced' p44431 asS'crossbred' p44432 (lp44433 S'crossbred' p44434 aS'crossbred' p44435 asS'luxate' p44436 (lp44437 S'luxates' p44438 aS'luxating' p44439 aS'luxated' p44440 aS'luxated' p44441 asS'overblow' p44442 (lp44443 S'overblows' p44444 aS'overblowing' p44445 aS'overblew' p44446 aS'overblown' p44447 asS'invest' p44448 (lp44449 S'invests' p44450 aS'investing' p44451 aS'invested' p44452 aS'invested' p44453 asS'curve' p44454 (lp44455 S'curves' p44456 aS'curving' p44457 aS'curved' p44458 aS'curved' p44459 asS'lyse' p44460 (lp44461 S'lyses' p44462 aS'lysing' p44463 aS'lysed' p44464 aS'lysed' p44465 asS'wamble' p44466 (lp44467 S'wambles' p44468 aS'wambling' p44469 aS'wambled' p44470 aS'wambled' p44471 asS'philosophize' p44472 (lp44473 S'philosophizes' p44474 aS'philosophizing' p44475 aS'philosophized' p44476 aS'philosophized' p44477 asS'derrick' p44478 (lp44479 S'derricks' p44480 aS'derricking' p44481 aS'derricked' p44482 aS'derricked' p44483 asS'fizzle' p44484 (lp44485 S'fizzles' p44486 aS'fizzling' p44487 aS'fizzled' p44488 aS'fizzled' p44489 asS'enswathe' p44490 (lp44491 S'enswathes' p44492 aS'enswathing' p44493 aS'enswathed' p44494 aS'enswathed' p44495 asS'lallygag' p44496 (lp44497 S'lallygags' p44498 aS'lallygagging' p44499 aS'lallygagged' p44500 aS'lallygagged' p44501 asS'lack' p44502 (lp44503 S'lacks' p44504 aS'lacking' p44505 aS'lacked' p44506 aS'lacked' p44507 asS'disc' p44508 (lp44509 S'discs' p44510 aS'discing' p44511 aS'disced' p44512 aS'disced' p44513 asS'antagonize' p44514 (lp44515 S'antagonizes' p44516 aS'antagonizing' p44517 aS'antagonized' p44518 aS'antagonized' p44519 asS'dish' p44520 (lp44521 S'dishes' p44522 aS'dishing' p44523 aS'dished' p44524 aS'dished' p44525 asS'follow' p44526 (lp44527 S'follows' p44528 aS'following' p44529 aS'followed' p44530 aS'followed' p44531 asS'glimpse' p44532 (lp44533 S'glimpses' p44534 aS'glimpsing' p44535 aS'glimpsed' p44536 aS'glimpsed' p44537 asS'depressurize' p44538 (lp44539 S'depressurizes' p44540 aS'depressurizing' p44541 aS'depressurized' p44542 aS'depressurized' p44543 asS'homage' p44544 (lp44545 S'homages' p44546 aS'homaging' p44547 aS'homaged' p44548 aS'homaged' p44549 asS'assuage' p44550 (lp44551 S'assuages' p44552 aS'assuaging' p44553 aS'assuaged' p44554 aS'assuaged' p44555 asS'begird' p44556 (lp44557 S'begirds' p44558 aS'begirding' p44559 aS'begirt' p44560 aS'begirt' p44561 asS'precast' p44562 (lp44563 S'precasts' p44564 aS'precasting' p44565 aS'precast' p44566 aS'precast' p44567 asS'backslide' p44568 (lp44569 S'backslides' p44570 aS'backsliding' p44571 aS'backslidden' p44572 aS'backslidden' p44573 asS'fay' p44574 (lp44575 S'fays' p44576 aS'faying' p44577 aS'fayed' p44578 aS'fayed' p44579 asS'disjoin' p44580 (lp44581 S'disjoins' p44582 aS'disjoining' p44583 aS'disjoined' p44584 aS'disjoined' p44585 asS'induce' p44586 (lp44587 S'induces' p44588 aS'inducing' p44589 aS'induced' p44590 aS'induced' p44591 asS'fan' p44592 (lp44593 S'fans' p44594 aS'fanning' p44595 aS'fanned' p44596 aS'fanned' p44597 asS'ticket' p44598 (lp44599 S'tickets' p44600 aS'ticketing' p44601 aS'ticketed' p44602 aS'ticketed' p44603 asS'gainsay' p44604 (lp44605 S'gainsays' p44606 aS'gainsaying' p44607 aS'gainsaid' p44608 aS'gainsaid' p44609 asS'steeve' p44610 (lp44611 S'steeves' p44612 aS'steeving' p44613 aS'steeved' p44614 aS'steeved' p44615 asS'induct' p44616 (lp44617 S'inducts' p44618 aS'inducting' p44619 aS'inducted' p44620 aS'inducted' p44621 asS'lisp' p44622 (lp44623 S'lisps' p44624 aS'lisping' p44625 aS'lisped' p44626 aS'lisped' p44627 asS'list' p44628 (lp44629 S'lists' p44630 aS'listing' p44631 aS'listed' p44632 aS'listed' p44633 asS'goster' p44634 (lp44635 S'gosters' p44636 aS'gostering' p44637 aS'gostered' p44638 aS'gostered' p44639 asS'intimidate' p44640 (lp44641 S'intimidates' p44642 aS'intimidating' p44643 aS'intimidated' p44644 aS'intimidated' p44645 asS'programme' p44646 (lp44647 S'programs' p44648 aS'programming' p44649 aS'programmed' p44650 aS'programmed' p44651 asS'flick' p44652 (lp44653 S'flicks' p44654 aS'flicking' p44655 aS'flicked' p44656 aS'flicked' p44657 asS'ted' p44658 (lp44659 S'teds' p44660 aS'tedding' p44661 aS'tedded' p44662 aS'tedded' p44663 asS'tee' p44664 (lp44665 S'tees' p44666 aS'teeing' p44667 aS'teed' p44668 aS'teed' p44669 asS'jib' p44670 (lp44671 S'jibs' p44672 aS'jibbing' p44673 aS'jibbed' p44674 aS'jibbed' p44675 asS'rate' p44676 (lp44677 S'rates' p44678 aS'rating' p44679 aS'rated' p44680 aS'rated' p44681 asS'design' p44682 (lp44683 S'designs' p44684 aS'designing' p44685 aS'designed' p44686 aS'designed' p44687 asS'canalize' p44688 (lp44689 S'canalizes' p44690 aS'canalizing' p44691 aS'canalized' p44692 aS'canalized' p44693 asS'overachieve' p44694 (lp44695 S'overachieves' p44696 aS'overachieving' p44697 aS'overachieved' p44698 aS'overachieved' p44699 asS'countermove' p44700 (lp44701 S'countermoves' p44702 aS'countermoving' p44703 aS'countermoved' p44704 aS'countermoved' p44705 asS'sue' p44706 (lp44707 S'sues' p44708 aS'suing' p44709 aS'sued' p44710 aS'sued' p44711 asS'prepossess' p44712 (lp44713 S'prepossesses' p44714 aS'prepossessing' p44715 aS'prepossessed' p44716 aS'prepossessed' p44717 asS'sub' p44718 (lp44719 S'subs' p44720 aS'subbing' p44721 aS'subbed' p44722 aS'subbed' p44723 asS'whap' p44724 (lp44725 S'whaps' p44726 aS'whaping' p44727 aS'whaped' p44728 aS'whaped' p44729 asS'sun' p44730 (lp44731 S'suns' p44732 aS'sunning' p44733 aS'sunned' p44734 aS'sunned' p44735 asS'sum' p44736 (lp44737 S'sums' p44738 aS'summing' p44739 aS'summed' p44740 aS'summed' p44741 asS'whimper' p44742 (lp44743 S'whimpers' p44744 aS'whimpering' p44745 aS'whimpered' p44746 aS'whimpered' p44747 asS'crust' p44748 (lp44749 S'crusts' p44750 aS'crusting' p44751 aS'crusted' p44752 aS'crusted' p44753 asS'brief' p44754 (lp44755 S'briefs' p44756 aS'briefing' p44757 aS'briefed' p44758 aS'briefed' p44759 asS'overload' p44760 (lp44761 S'overloads' p44762 aS'overloading' p44763 aS'overloaded' p44764 aS'overloaded' p44765 asS'boodle' p44766 (lp44767 S'boodles' p44768 aS'boodling' p44769 aS'boodled' p44770 aS'boodled' p44771 asS'crush' p44772 (lp44773 S'crushes' p44774 aS'crushing' p44775 aS'crushed' p44776 aS'crushed' p44777 asS'desegregate' p44778 (lp44779 S'desegregates' p44780 aS'desegregating' p44781 aS'desegregated' p44782 aS'desegregated' p44783 asS'intersect' p44784 (lp44785 S'intersects' p44786 aS'intersecting' p44787 aS'intersected' p44788 aS'intersected' p44789 asS'sup' p44790 (lp44791 S'sups' p44792 aS'supping' p44793 aS'supped' p44794 aS'supped' p44795 asS'discern' p44796 (lp44797 S'discerns' p44798 aS'discerning' p44799 aS'discerned' p44800 aS'discerned' p44801 asS'experimentalize' p44802 (lp44803 S'experimentalizes' p44804 aS'experimentalizing' p44805 aS'experimentalized' p44806 aS'experimentalized' p44807 asS'lacquer' p44808 (lp44809 S'lacquers' p44810 aS'lacquering' p44811 aS'lacquered' p44812 aS'lacquered' p44813 asS'espalier' p44814 (lp44815 S'espaliers' p44816 aS'espaliering' p44817 aS'espaliered' p44818 aS'espaliered' p44819 asS'eventuate' p44820 (lp44821 S'eventuates' p44822 aS'eventuating' p44823 aS'eventuated' p44824 aS'eventuated' p44825 asS'alchemize' p44826 (lp44827 S'alchemizes' p44828 aS'alchemizing' p44829 aS'alchemized' p44830 aS'alchemized' p44831 asS'transfigure' p44832 (lp44833 S'transfigures' p44834 aS'transfiguring' p44835 aS'transfigured' p44836 aS'transfigured' p44837 asS'ventilate' p44838 (lp44839 S'ventilates' p44840 aS'ventilating' p44841 aS'ventilated' p44842 aS'ventilated' p44843 asS'misinterpret' p44844 (lp44845 S'misinterprets' p44846 aS'misinterpreting' p44847 aS'misinterpreted' p44848 aS'misinterpreted' p44849 asS'aphorize' p44850 (lp44851 S'aphorizes' p44852 aS'aphorizing' p44853 aS'aphorized' p44854 aS'aphorized' p44855 asS'qualify' p44856 (lp44857 S'qualifies' p44858 aS'qualifying' p44859 aS'qualified' p44860 aS'qualified' p44861 asS'sophisticate' p44862 (lp44863 S'sophisticates' p44864 aS'sophisticating' p44865 aS'sophisticated' p44866 aS'sophisticated' p44867 asS'infringe' p44868 (lp44869 S'infringes' p44870 aS'infringing' p44871 aS'infringed' p44872 aS'infringed' p44873 asS'supplicate' p44874 (lp44875 S'supplicates' p44876 aS'supplicating' p44877 aS'supplicated' p44878 aS'supplicated' p44879 asS'suckle' p44880 (lp44881 S'suckles' p44882 aS'suckling' p44883 aS'suckled' p44884 aS'suckled' p44885 asS'cooey' p44886 (lp44887 S'cooeys' p44888 aS'cooeying' p44889 aS'cooeyed' p44890 aS'cooeyed' p44891 asS'demit' p44892 (lp44893 S'demits' p44894 aS'demitting' p44895 aS'demitted' p44896 aS'demitted' p44897 asS'plonk' p44898 (lp44899 S'plonks' p44900 aS'plonking' p44901 aS'plonked' p44902 aS'plonked' p44903 asS'snub' p44904 (lp44905 S'snubs' p44906 aS'snubbing' p44907 aS'snubbed' p44908 aS'snubbed' p44909 asS'proceed' p44910 (lp44911 S'proceeds' p44912 aS'proceeding' p44913 aS'proceeded' p44914 aS'proceeded' p44915 asS'disenable' p44916 (lp44917 S'disenables' p44918 aS'disenabling' p44919 aS'disenabled' p44920 aS'disenabled' p44921 asS'faint' p44922 (lp44923 S'faints' p44924 aS'fainting' p44925 aS'fainted' p44926 aS'fainted' p44927 asS'wield' p44928 (lp44929 S'wields' p44930 aS'wielding' p44931 aS'wielded' p44932 aS'wielded' p44933 asS'somnambulate' p44934 (lp44935 S'somnambulates' p44936 aS'somnambulating' p44937 aS'somnambulated' p44938 aS'somnambulated' p44939 asS'irritate' p44940 (lp44941 S'irritates' p44942 aS'irritating' p44943 aS'irritated' p44944 aS'irritated' p44945 asS'inlay' p44946 (lp44947 S'inlays' p44948 aS'inlaying' p44949 aS'inlaid' p44950 aS'inlaid' p44951 asS'testmarket' p44952 (lp44953 S'testmarkets' p44954 aS'testmarketing' p44955 aS'testmarketed' p44956 aS'testmarketed' p44957 asS'garnish' p44958 (lp44959 S'garnishes' p44960 aS'garnishing' p44961 aS'garnished' p44962 aS'garnished' p44963 asS'hurrah' p44964 (lp44965 S'hurrahs' p44966 aS'hurrahing' p44967 aS'hurrahed' p44968 aS'hurrahed' p44969 asS'waxen' p44970 (lp44971 S'waxens' p44972 aS'waxening' p44973 aS'waxened' p44974 aS'waxened' p44975 asS'mercerize' p44976 (lp44977 S'mercerizes' p44978 aS'mercerizing' p44979 aS'mercerized' p44980 aS'mercerized' p44981 asS'flaw' p44982 (lp44983 S'flaws' p44984 aS'flawing' p44985 aS'flawed' p44986 aS'flawed' p44987 asS'flap' p44988 (lp44989 S'flaps' p44990 aS'flapping' p44991 aS'flapped' p44992 aS'flapped' p44993 asS'mire' p44994 (lp44995 S'mires' p44996 aS'miring' p44997 aS'mired' p44998 aS'mired' p44999 asS'unkennel' p45000 (lp45001 S'unkennels' p45002 aS'unkenneling' p45003 aS'unkenneled' p45004 aS'unkenneled' p45005 asS'stutter' p45006 (lp45007 S'stutters' p45008 aS'stuttering' p45009 aS'stuttered' p45010 aS'stuttered' p45011 asS're-sort' p45012 (lp45013 S're-sorts' p45014 aS're-sorting' p45015 ag17594 aS're-sorted' p45016 asS'flag' p45017 (lp45018 S'flags' p45019 aS'flagging' p45020 aS'flagged' p45021 aS'flagged' p45022 asS'stick' p45023 (lp45024 S'sticks' p45025 aS'sticking' p45026 aS'stuck' p45027 aS'stuck' p45028 asS'amputate' p45029 (lp45030 S'amputates' p45031 aS'amputating' p45032 aS'amputated' p45033 aS'amputated' p45034 asS'flam' p45035 (lp45036 S'flams' p45037 aS'flamming' p45038 aS'flammed' p45039 aS'flammed' p45040 asS'mellow' p45041 (lp45042 S'mellows' p45043 aS'mellowing' p45044 aS'mellowed' p45045 aS'mellowed' p45046 asS'glad' p45047 (lp45048 S'glads' p45049 aS'glading' p45050 aS'gladed' p45051 aS'gladed' p45052 asS'domineer' p45053 (lp45054 S'domineers' p45055 aS'domineering' p45056 aS'domineered' p45057 aS'domineered' p45058 asS'berth' p45059 (lp45060 S'berths' p45061 aS'berthing' p45062 aS'berthed' p45063 aS'berthed' p45064 asS'squish' p45065 (lp45066 S'squishes' p45067 aS'squishing' p45068 aS'squished' p45069 aS'squished' p45070 asS'conspire' p45071 (lp45072 S'conspires' p45073 aS'conspiring' p45074 aS'conspired' p45075 aS'conspired' p45076 asS'coerce' p45077 (lp45078 S'coerces' p45079 aS'coercing' p45080 aS'coerced' p45081 aS'coerced' p45082 asS'arise' p45083 (lp45084 S'arises' p45085 aS'arising' p45086 aS'arose' p45087 aS'arisen' p45088 asS'cultivate' p45089 (lp45090 S'cultivates' p45091 aS'cultivating' p45092 aS'cultivated' p45093 aS'cultivated' p45094 asS'allege' p45095 (lp45096 S'alleges' p45097 aS'alleging' p45098 aS'alleged' p45099 aS'alleged' p45100 asS'court' p45101 (lp45102 S'courts' p45103 aS'courting' p45104 aS'courted' p45105 aS'courted' p45106 asS'irrigate' p45107 (lp45108 S'irrigates' p45109 aS'irrigating' p45110 aS'irrigated' p45111 aS'irrigated' p45112 asS'goad' p45113 (lp45114 S'goads' p45115 aS'goading' p45116 aS'goaded' p45117 aS'goaded' p45118 asS'overbalance' p45119 (lp45120 S'overbalances' p45121 aS'overbalancing' p45122 aS'overbalanced' p45123 aS'overbalanced' p45124 asS'mould' p45125 (lp45126 S'moulds' p45127 aS'moulding' p45128 aS'moulded' p45129 aS'moulded' p45130 asS'sandwich' p45131 (lp45132 S'sandwiches' p45133 aS'sandwiching' p45134 aS'sandwiched' p45135 aS'sandwiched' p45136 asS'okay' p45137 (lp45138 S'okays' p45139 aS'okaying' p45140 aS'okayed' p45141 aS'okayed' p45142 asS'abdicate' p45143 (lp45144 S'abdicates' p45145 aS'abdicating' p45146 aS'abdicated' p45147 aS'abdicated' p45148 asS'acerbate' p45149 (lp45150 S'acerbates' p45151 aS'acerbating' p45152 aS'acerbated' p45153 aS'acerbated' p45154 asS'emulate' p45155 (lp45156 S'emulates' p45157 aS'emulating' p45158 aS'emulated' p45159 aS'emulated' p45160 asS'embalm' p45161 (lp45162 S'embalms' p45163 aS'embalming' p45164 aS'embalmed' p45165 aS'embalmed' p45166 asS'incumber' p45167 (lp45168 S'incumbers' p45169 aS'incumbering' p45170 aS'incumbered' p45171 aS'incumbered' p45172 asS'acierate' p45173 (lp45174 S'acierates' p45175 aS'acierating' p45176 aS'acierated' p45177 aS'acierated' p45178 asS'disable' p45179 (lp45180 S'disables' p45181 aS'disabling' p45182 aS'disabled' p45183 aS'disabled' p45184 asS'adventure' p45185 (lp45186 S'adventures' p45187 aS'adventuring' p45188 aS'adventured' p45189 aS'adventured' p45190 asS'incurvate' p45191 (lp45192 S'incurvates' p45193 aS'incurvating' p45194 aS'incurvated' p45195 aS'incurvated' p45196 asS'capitalize' p45197 (lp45198 S'capitalizes' p45199 aS'capitalizing' p45200 aS'capitalized' p45201 aS'capitalized' p45202 asS'castle' p45203 (lp45204 S'castles' p45205 aS'castling' p45206 aS'castled' p45207 aS'castled' p45208 asS'pronominalize' p45209 (lp45210 S'pronominalizes' p45211 aS'pronominalizing' p45212 aS'pronominalized' p45213 aS'pronominalized' p45214 asS'palpitate' p45215 (lp45216 S'palpitates' p45217 aS'palpitating' p45218 aS'palpitated' p45219 aS'palpitated' p45220 asS'rationalize' p45221 (lp45222 S'rationalizes' p45223 aS'rationalizing' p45224 aS'rationalized' p45225 aS'rationalized' p45226 asS'postfix' p45227 (lp45228 S'postfixes' p45229 aS'postfixing' p45230 aS'postfixed' p45231 aS'postfixed' p45232 asS'Gnosticize' p45233 (lp45234 S'Gnosticizes' p45235 aS'Gnosticizing' p45236 aS'Gnosticized' p45237 aS'Gnosticized' p45238 asS'stash' p45239 (lp45240 S'stashes' p45241 aS'stashing' p45242 aS'stashed' p45243 aS'stashed' p45244 asS'ricochet' p45245 (lp45246 S'ricochets' p45247 aS'ricochetting' p45248 aS'ricochetted' p45249 aS'ricochetted' p45250 asS'recrudesce' p45251 (lp45252 S'recrudesces' p45253 aS'recrudescing' p45254 aS'recrudesced' p45255 aS'recrudesced' p45256 asS'shore' p45257 (lp45258 S'shores' p45259 aS'shoring' p45260 aS'shored' p45261 aS'shored' p45262 asS'poohpooh' p45263 (lp45264 S'poohpoohs' p45265 aS'poohpoohing' p45266 aS'poohpoohed' p45267 aS'poohpoohed' p45268 asS'shade' p45269 (lp45270 S'shades' p45271 aS'shading' p45272 aS'shaded' p45273 aS'shaded' p45274 asS'retaliate' p45275 (lp45276 S'retaliates' p45277 aS'retaliating' p45278 aS'retaliated' p45279 aS'retaliated' p45280 asS'dissatisfy' p45281 (lp45282 S'dissatisfies' p45283 aS'dissatisfying' p45284 aS'dissatisfied' p45285 aS'dissatisfied' p45286 asS'abseil' p45287 (lp45288 S'abseils' p45289 aS'abseiling' p45290 aS'abseiled' p45291 aS'abseiled' p45292 asS'mission' p45293 (lp45294 S'missions' p45295 aS'missioning' p45296 aS'missioned' p45297 aS'missioned' p45298 asS'flaunt' p45299 (lp45300 S'flaunts' p45301 aS'flaunting' p45302 aS'flaunted' p45303 aS'flaunted' p45304 asS'reconnect' p45305 (lp45306 S'reconnects' p45307 aS'reconnecting' p45308 aS'reconnected' p45309 aS'reconnected' p45310 asS'flounce' p45311 (lp45312 S'flounces' p45313 aS'flouncing' p45314 aS'flounced' p45315 aS'flounced' p45316 asS'style' p45317 (lp45318 S'styles' p45319 aS'styling' p45320 aS'styled' p45321 aS'styled' p45322 asS'jollify' p45323 (lp45324 S'jollifies' p45325 aS'jollifying' p45326 aS'jollified' p45327 aS'jollified' p45328 asS'resorb' p45329 (lp45330 S'resorbs' p45331 aS'resorbing' p45332 aS'resorbed' p45333 aS'resorbed' p45334 asS'pray' p45335 (lp45336 S'prays' p45337 aS'praying' p45338 aS'prayed' p45339 aS'prayed' p45340 asS'wilder' p45341 (lp45342 S'wilders' p45343 aS'wildering' p45344 aS'wildered' p45345 aS'wildered' p45346 asS'constitutionalize' p45347 (lp45348 S'constitutionalizes' p45349 aS'constitutionalizing' p45350 aS'constitutionalized' p45351 aS'constitutionalized' p45352 asS'cocknify' p45353 (lp45354 S'cocknifies' p45355 aS'cocknifying' p45356 aS'cocknified' p45357 aS'cocknified' p45358 asS'might' p45359 (lp45360 S"mightn't" p45361 asS'alter' p45362 (lp45363 S'alters' p45364 aS'altering' p45365 aS'altered' p45366 aS'altered' p45367 asS'return' p45368 (lp45369 S'returns' p45370 aS'returning' p45371 aS'returned' p45372 aS'returned' p45373 asS'belittle' p45374 (lp45375 S'belittles' p45376 aS'belittling' p45377 aS'belittled' p45378 aS'belittled' p45379 asS'accumulate' p45380 (lp45381 S'accumulates' p45382 aS'accumulating' p45383 aS'accumulated' p45384 aS'accumulated' p45385 asS'slipper' p45386 (lp45387 S'slippers' p45388 aS'slippering' p45389 aS'slippered' p45390 aS'slippered' p45391 asS'refresh' p45392 (lp45393 S'refreshes' p45394 aS'refreshing' p45395 aS'refreshed' p45396 aS'refreshed' p45397 asS'modge' p45398 (lp45399 S'modges' p45400 aS'modging' p45401 aS'modged' p45402 aS'modged' p45403 asS'malfunction' p45404 (lp45405 S'malfunctions' p45406 aS'malfunctioning' p45407 aS'malfunctioned' p45408 aS'malfunctioned' p45409 asS'readdress' p45410 (lp45411 S'readdresses' p45412 aS'readdressing' p45413 aS'readdressed' p45414 aS'readdressed' p45415 asS'shoal' p45416 (lp45417 S'shoals' p45418 aS'shoaling' p45419 aS'shoaled' p45420 aS'shoaled' p45421 asS'formulate' p45422 (lp45423 S'formulates' p45424 aS'formulating' p45425 aS'formulated' p45426 aS'formulated' p45427 asS'repartition' p45428 (lp45429 S'repartitions' p45430 aS'repartitioning' p45431 aS'repartitioned' p45432 aS'repartitioned' p45433 asS'recapitulate' p45434 (lp45435 S'recapitulates' p45436 aS'recapitulating' p45437 aS'recapitulated' p45438 aS'recapitulated' p45439 asS'expect' p45440 (lp45441 S'expects' p45442 aS'expecting' p45443 aS'expected' p45444 aS'expected' p45445 asS'inflict' p45446 (lp45447 S'inflicts' p45448 aS'inflicting' p45449 aS'inflicted' p45450 aS'inflicted' p45451 asS'chunder' p45452 (lp45453 S'chunders' p45454 aS'chundering' p45455 aS'chundered' p45456 aS'chundered' p45457 asS'focalize' p45458 (lp45459 S'focalizes' p45460 aS'focalizing' p45461 aS'focalized' p45462 aS'focalized' p45463 asS'rebound' p45464 (lp45465 sS'disquiet' p45466 (lp45467 S'disquiets' p45468 aS'disquieting' p45469 aS'disquieted' p45470 aS'disquieted' p45471 asS'hilt' p45472 (lp45473 S'hilts' p45474 aS'hilting' p45475 aS'hilted' p45476 aS'hilted' p45477 asS'loll' p45478 (lp45479 S'lolls' p45480 aS'lolling' p45481 aS'lolled' p45482 aS'lolled' p45483 asS'chaffer' p45484 (lp45485 S'chaffers' p45486 aS'chaffering' p45487 aS'chaffered' p45488 aS'chaffered' p45489 asS'hill' p45490 (lp45491 S'hills' p45492 aS'hilling' p45493 aS'hilled' p45494 aS'hilled' p45495 asS'silicify' p45496 (lp45497 S'silicifies' p45498 aS'silicifying' p45499 aS'silicified' p45500 aS'silicified' p45501 asS'gut' p45502 (lp45503 S'guts' p45504 aS'gutting' p45505 aS'gutted' p45506 aS'gutted' p45507 asS'forgive' p45508 (lp45509 S'forgives' p45510 aS'forgiving' p45511 aS'forgave' p45512 aS'forgiven' p45513 asS'powwow' p45514 (lp45515 S'powwows' p45516 aS'powwowing' p45517 aS'powwowed' p45518 aS'powwowed' p45519 asS'disinfect' p45520 (lp45521 S'disinfects' p45522 aS'disinfecting' p45523 aS'disinfected' p45524 aS'disinfected' p45525 asS'teach' p45526 (lp45527 S'teaches' p45528 aS'teaching' p45529 aS'taught' p45530 aS'taught' p45531 asS'interiorize' p45532 (lp45533 S'interiorizes' p45534 aS'interiorizing' p45535 aS'interiorized' p45536 aS'interiorized' p45537 asS'blister' p45538 (lp45539 S'blisters' p45540 aS'blistering' p45541 aS'blistered' p45542 aS'blistered' p45543 asS'thread' p45544 (lp45545 S'threads' p45546 aS'threading' p45547 aS'threaded' p45548 aS'threaded' p45549 asS'stampede' p45550 (lp45551 S'stampedes' p45552 aS'stampeding' p45553 aS'stampeded' p45554 aS'stampeded' p45555 asS'misreport' p45556 (lp45557 S'misreports' p45558 aS'misreporting' p45559 aS'misreported' p45560 aS'misreported' p45561 asS'prejudice' p45562 (lp45563 S'prejudices' p45564 aS'prejudicing' p45565 aS'prejudiced' p45566 aS'prejudiced' p45567 asS'circuit' p45568 (lp45569 S'circuits' p45570 aS'circuiting' p45571 aS'circuited' p45572 aS'circuited' p45573 asS'debouch' p45574 (lp45575 S'debouches' p45576 aS'debouching' p45577 aS'debouched' p45578 aS'debouched' p45579 asS'bushel' p45580 (lp45581 S'bushels' p45582 aS'bushelling' p45583 aS'bushelled' p45584 aS'bushelled' p45585 asS'feed' p45586 (lp45587 S'fees' p45588 aS'feeing' p45589 aS'feed' p45590 aS'feed' p45591 asS'dine' p45592 (lp45593 S'dines' p45594 aS'dining' p45595 aS'dined' p45596 aS'dined' p45597 asS'feel' p45598 (lp45599 S'feels' p45600 aS'feeling' p45601 aS'felt' p45602 aS'felt' p45603 asS'relate' p45604 (lp45605 S'relates' p45606 aS'relating' p45607 aS'related' p45608 aS'related' p45609 asS'fancy' p45610 (lp45611 S'fancies' p45612 aS'fancying' p45613 aS'fancied' p45614 aS'fancied' p45615 asS'plummet' p45616 (lp45617 S'plummets' p45618 aS'plummeting' p45619 aS'plummeted' p45620 aS'plummeted' p45621 asS'notify' p45622 (lp45623 S'notifies' p45624 aS'notifying' p45625 aS'notified' p45626 aS'notified' p45627 asS'wench' p45628 (lp45629 S'wenches' p45630 aS'wenching' p45631 aS'wenched' p45632 aS'wenched' p45633 asS'blank' p45634 (lp45635 S'blanks' p45636 aS'blanking' p45637 aS'blanked' p45638 aS'blanked' p45639 asS'moan' p45640 (lp45641 S'moans' p45642 aS'moaning' p45643 aS'moaned' p45644 aS'moaned' p45645 asS'story' p45646 (lp45647 S'stories' p45648 aS'storying' p45649 aS'storied' p45650 aS'storied' p45651 asS'script' p45652 (lp45653 S'scripts' p45654 aS'scripting' p45655 aS'scripted' p45656 aS'scripted' p45657 asS'interact' p45658 (lp45659 S'interacts' p45660 aS'interacting' p45661 aS'interacted' p45662 aS'interacted' p45663 asS'grime' p45664 (lp45665 S'grimes' p45666 aS'griming' p45667 aS'grimed' p45668 aS'grimed' p45669 asS'collar' p45670 (lp45671 S'collars' p45672 aS'collaring' p45673 aS'collared' p45674 aS'collared' p45675 asS'swarm' p45676 (lp45677 S'swarms' p45678 aS'swarming' p45679 aS'swarmed' p45680 aS'swarmed' p45681 asS'storm' p45682 (lp45683 S'storms' p45684 aS'storming' p45685 aS'stormed' p45686 aS'stormed' p45687 asS'moat' p45688 (lp45689 S'moats' p45690 aS'moating' p45691 aS'moated' p45692 aS'moated' p45693 asS'syrup' p45694 (lp45695 S'syrups' p45696 aS'syruping' p45697 aS'syruped' p45698 aS'syruped' p45699 asS'embus' p45700 (lp45701 S'embuses' p45702 aS'embusing' p45703 aS'embused' p45704 aS'embused' p45705 asS'store' p45706 (lp45707 S'stores' p45708 aS'storing' p45709 aS'stored' p45710 aS'stored' p45711 asS'redistribute' p45712 (lp45713 S'redistributes' p45714 aS'redistributing' p45715 aS'redistributed' p45716 aS'redistributed' p45717 asS'flyfish' p45718 (lp45719 S'flyfishes' p45720 aS'flyfishing' p45721 aS'flyfished' p45722 aS'flyfished' p45723 asS'fidget' p45724 (lp45725 S'fidgets' p45726 aS'fidgeting' p45727 aS'fidgeted' p45728 aS'fidgeted' p45729 asS'rifle' p45730 (lp45731 S'rifles' p45732 aS'rifling' p45733 aS'rifled' p45734 aS'rifled' p45735 asS'officiate' p45736 (lp45737 S'officiates' p45738 aS'officiating' p45739 aS'officiated' p45740 aS'officiated' p45741 asS'throttle' p45742 (lp45743 S'throttles' p45744 aS'throttling' p45745 aS'throttled' p45746 aS'throttled' p45747 asS'denazify' p45748 (lp45749 S'denazifies' p45750 aS'denazifying' p45751 aS'denazified' p45752 aS'denazified' p45753 asS'double' p45754 (lp45755 S'doubles' p45756 aS'doubling' p45757 aS'doubled' p45758 aS'doubled' p45759 asS'countercharge' p45760 (lp45761 S'countercharges' p45762 aS'countercharging' p45763 aS'countercharged' p45764 aS'countercharged' p45765 asS'medicate' p45766 (lp45767 S'medicates' p45768 aS'medicating' p45769 aS'medicated' p45770 aS'medicated' p45771 asS'stall' p45772 (lp45773 S'stalls' p45774 aS'stalling' p45775 aS'stalled' p45776 aS'stalled' p45777 asS'cuff' p45778 (lp45779 S'cuffs' p45780 aS'cuffing' p45781 aS'cuffed' p45782 aS'cuffed' p45783 asS'parenthesize' p45784 (lp45785 S'parenthesizes' p45786 aS'parenthesizing' p45787 aS'parenthesized' p45788 aS'parenthesized' p45789 asS'stale' p45790 (lp45791 S'stales' p45792 aS'staling' p45793 aS'staled' p45794 aS'staled' p45795 asS'amass' p45796 (lp45797 S'amasses' p45798 aS'amassing' p45799 aS'amassed' p45800 aS'amassed' p45801 asS'sectionalize' p45802 (lp45803 S'sectionalizes' p45804 aS'sectionalizing' p45805 aS'sectionalized' p45806 aS'sectionalized' p45807 asS'exert' p45808 (lp45809 S'exerts' p45810 aS'exerting' p45811 aS'exerted' p45812 aS'exerted' p45813 asS'strengthen' p45814 (lp45815 S'strengthens' p45816 aS'strengthening' p45817 aS'strengthened' p45818 aS'strengthened' p45819 asS'redintegrate' p45820 (lp45821 S'redintegrates' p45822 aS'redintegrating' p45823 aS'redintegrated' p45824 aS'redintegrated' p45825 asS'gall' p45826 (lp45827 S'galls' p45828 aS'galling' p45829 aS'galled' p45830 aS'galled' p45831 asS'remodel' p45832 (lp45833 S'remodels' p45834 aS'remodeling' p45835 aS'remodeled' p45836 aS'remodeled' p45837 asS'toughen' p45838 (lp45839 S'toughens' p45840 aS'toughening' p45841 aS'toughened' p45842 aS'toughened' p45843 asS'humanize' p45844 (lp45845 S'humanizes' p45846 aS'humanizing' p45847 aS'humanized' p45848 aS'humanized' p45849 asS'over-heat' p45850 (lp45851 S'over-heats' p45852 aS'over-heating' p45853 ag25579 aS'over-heated' p45854 asS'recentralize' p45855 (lp45856 S'recentralizes' p45857 aS'recentralizing' p45858 aS'recentralized' p45859 aS'recentralized' p45860 asS'eff' p45861 (lp45862 S'effs' p45863 aS'effing' p45864 aS'effed' p45865 aS'effed' p45866 asS'gill' p45867 (lp45868 S'gills' p45869 aS'gilling' p45870 aS'gilled' p45871 aS'gilled' p45872 asS'populate' p45873 (lp45874 S'populates' p45875 aS'populating' p45876 aS'populated' p45877 aS'populated' p45878 asS'nonsuit' p45879 (lp45880 S'nonsuits' p45881 aS'nonsuiting' p45882 aS'nonsuited' p45883 aS'nonsuited' p45884 asS'customize' p45885 (lp45886 S'customizes' p45887 aS'customizing' p45888 aS'customized' p45889 aS'customized' p45890 asS'pillage' p45891 (lp45892 S'pillages' p45893 aS'pillaging' p45894 aS'pillaged' p45895 aS'pillaged' p45896 asS'inconvenience' p45897 (lp45898 S'inconveniences' p45899 aS'inconveniencing' p45900 aS'inconvenienced' p45901 aS'inconvenienced' p45902 asS'reach' p45903 (lp45904 S'reaches' p45905 aS'reaching' p45906 aS'reached' p45907 aS'reached' p45908 asS'circumfuse' p45909 (lp45910 S'circumfuses' p45911 aS'circumfusing' p45912 aS'circumfused' p45913 aS'circumfused' p45914 asS'palpate' p45915 (lp45916 S'palpates' p45917 aS'palpating' p45918 aS'palpated' p45919 aS'palpated' p45920 asS'cofound' p45921 (lp45922 S'cofounds' p45923 aS'cofounding' p45924 aS'cofounded' p45925 aS'cofounded' p45926 asS'destruct' p45927 (lp45928 S'destructs' p45929 aS'destructing' p45930 aS'destructed' p45931 aS'destructed' p45932 asS'devalue' p45933 (lp45934 S'devalues' p45935 aS'devaluing' p45936 aS'devalued' p45937 aS'devalued' p45938 asS'eloin' p45939 (lp45940 S'eloins' p45941 aS'eloining' p45942 aS'eloined' p45943 aS'eloined' p45944 asS'notch' p45945 (lp45946 S'notches' p45947 aS'notching' p45948 aS'notched' p45949 aS'notched' p45950 asS'liberate' p45951 (lp45952 S'liberates' p45953 aS'liberating' p45954 aS'liberated' p45955 aS'liberated' p45956 asS'scaffold' p45957 (lp45958 S'scaffolds' p45959 aS'scaffolding' p45960 aS'scaffolded' p45961 aS'scaffolded' p45962 asS'niggle' p45963 (lp45964 S'niggles' p45965 aS'niggling' p45966 aS'niggled' p45967 aS'niggled' p45968 asS'unclose' p45969 (lp45970 S'uncloses' p45971 aS'unclosing' p45972 aS'unclosed' p45973 aS'unclosed' p45974 asS'barter' p45975 (lp45976 S'barters' p45977 aS'bartering' p45978 aS'bartered' p45979 aS'bartered' p45980 asS'unloosen' p45981 (lp45982 S'unlooses' p45983 aS'unloosing' p45984 aS'unloosened' p45985 aS'unloosened' p45986 asS'divulgate' p45987 (lp45988 S'divulgates' p45989 aS'divulgating' p45990 aS'divulgated' p45991 aS'divulgated' p45992 asS'cinchonize' p45993 (lp45994 S'cinchonizes' p45995 aS'cinchonizing' p45996 aS'cinchonized' p45997 aS'cinchonized' p45998 asS'uniform' p45999 (lp46000 S'uniforms' p46001 aS'uniforming' p46002 aS'uniformed' p46003 aS'uniformed' p46004 asS'whiffle' p46005 (lp46006 S'whiffles' p46007 aS'whiffling' p46008 aS'whiffled' p46009 aS'whiffled' p46010 asS'aggravate' p46011 (lp46012 S'aggravates' p46013 aS'aggravating' p46014 aS'aggravated' p46015 aS'aggravated' p46016 asS'predecease' p46017 (lp46018 S'predeceases' p46019 aS'predeceasing' p46020 aS'predeceased' p46021 aS'predeceased' p46022 asS'justle' p46023 (lp46024 S'justles' p46025 aS'justling' p46026 aS'justled' p46027 aS'justled' p46028 asS'mosey' p46029 (lp46030 S'moseys' p46031 aS'moseying' p46032 aS'moseyed' p46033 aS'moseyed' p46034 asS'frivol' p46035 (lp46036 S'frivols' p46037 aS'frivolling' p46038 aS'frivolled' p46039 aS'frivolled' p46040 asS'betray' p46041 (lp46042 S'betrays' p46043 aS'betraying' p46044 aS'betrayed' p46045 aS'betrayed' p46046 asS'shepherd' p46047 (lp46048 S'shepherds' p46049 aS'shepherding' p46050 aS'shepherded' p46051 aS'shepherded' p46052 asS'hit' p46053 (lp46054 S'hits' p46055 aS'hitting' p46056 aS'hit' p46057 aS'hit' p46058 asS'invoke' p46059 (lp46060 S'invokes' p46061 aS'invoking' p46062 aS'invoked' p46063 aS'invoked' p46064 asS'babble' p46065 (lp46066 S'babbles' p46067 aS'babbling' p46068 aS'babbled' p46069 aS'babbled' p46070 asS'abscise' p46071 (lp46072 S'abscises' p46073 aS'abscising' p46074 aS'abscised' p46075 aS'abscised' p46076 asS'affright' p46077 (lp46078 S'affrights' p46079 aS'affrighting' p46080 aS'affrighted' p46081 aS'affrighted' p46082 asS'whistle' p46083 (lp46084 S'whistles' p46085 aS'whistling' p46086 aS'whistled' p46087 aS'whistled' p46088 asS'cote' p46089 (lp46090 S'cotes' p46091 aS'coting' p46092 aS'coted' p46093 aS'coted' p46094 asS'hie' p46095 (lp46096 S'hies' p46097 aS'hying' p46098 aS'hied' p46099 aS'hied' p46100 asS'capacitate' p46101 (lp46102 S'capacitates' p46103 aS'capacitating' p46104 aS'capacitated' p46105 aS'capacitated' p46106 asS'unbelt' p46107 (lp46108 S'unbelts' p46109 aS'unbelting' p46110 aS'unbelted' p46111 aS'unbelted' p46112 asS'deaden' p46113 (lp46114 S'deadens' p46115 aS'deadening' p46116 aS'deadened' p46117 aS'deadened' p46118 asS'reprint' p46119 (lp46120 S'reprints' p46121 aS'reprinting' p46122 aS'reprinted' p46123 aS'reprinted' p46124 asS'banquet' p46125 (lp46126 S'banquets' p46127 aS'banqueting' p46128 aS'banqueted' p46129 aS'banqueted' p46130 asS'investigate' p46131 (lp46132 S'investigates' p46133 aS'investigating' p46134 aS'investigated' p46135 aS'investigated' p46136 asS'push-start' p46137 (lp46138 S'push-starts' p46139 aS'push-starting' p46140 aS'push-started' p46141 aS'push-started' p46142 asS'cringe' p46143 (lp46144 S'cringes' p46145 aS'cringing' p46146 aS'cringed' p46147 aS'cringed' p46148 asS'tourney' p46149 (lp46150 S'tourneys' p46151 aS'tourneying' p46152 aS'tourneyed' p46153 aS'tourneyed' p46154 asS'signify' p46155 (lp46156 S'signifies' p46157 aS'signifying' p46158 aS'signified' p46159 aS'signified' p46160 asS'dump' p46161 (lp46162 S'dumps' p46163 aS'dumping' p46164 aS'dumped' p46165 aS'dumped' p46166 asS'upsurge' p46167 (lp46168 S'upsurges' p46169 aS'upsurging' p46170 aS'upsurged' p46171 aS'upsurged' p46172 asS'resinate' p46173 (lp46174 S'resinates' p46175 aS'resinating' p46176 aS'resinated' p46177 aS'resinated' p46178 asS'arc' p46179 (lp46180 S'arcs' p46181 aS'arcking' p46182 aS'arcked' p46183 aS'arcked' p46184 asS'bare' p46185 (lp46186 S'bares' p46187 aS'baring' p46188 aS'bared' p46189 aS'bared' p46190 asS'bark' p46191 (lp46192 S'barks' p46193 aS'barking' p46194 aS'barked' p46195 aS'barked' p46196 asS'arm' p46197 (lp46198 S'arms' p46199 aS'arming' p46200 aS'armed' p46201 aS'armed' p46202 asS'visualize' p46203 (lp46204 S'visualizes' p46205 aS'visualizing' p46206 aS'visualized' p46207 aS'visualized' p46208 asS'chicane' p46209 (lp46210 S'chicanes' p46211 aS'chicaning' p46212 aS'chicaned' p46213 aS'chicaned' p46214 asS'blurt' p46215 (lp46216 S'blurts' p46217 aS'blurting' p46218 aS'blurted' p46219 aS'blurted' p46220 asS'inebriate' p46221 (lp46222 S'inebriates' p46223 aS'inebriating' p46224 aS'inebriated' p46225 aS'inebriated' p46226 asS'misjudge' p46227 (lp46228 S'misjudges' p46229 aS'misjudging' p46230 aS'misjudged' p46231 aS'misjudged' p46232 asS'enwrap' p46233 (lp46234 S'enwraps' p46235 aS'enwrapping' p46236 aS'enwrapped' p46237 aS'enwrapped' p46238 asS'cyclostyle' p46239 (lp46240 S'cyclostyles' p46241 aS'cyclostyling' p46242 aS'cyclostyled' p46243 aS'cyclostyled' p46244 asS'solo' p46245 (lp46246 S'solos' p46247 aS'soloing' p46248 aS'soloed' p46249 aS'soloed' p46250 asS'derestrict' p46251 (lp46252 S'derestricts' p46253 aS'derestricting' p46254 aS'derestricted' p46255 aS'derestricted' p46256 asS'serialize' p46257 (lp46258 S'serializes' p46259 aS'serializing' p46260 aS'serialized' p46261 aS'serialized' p46262 asS'sole' p46263 (lp46264 S'soles' p46265 aS'soling' p46266 aS'soled' p46267 aS'soled' p46268 asS'indue' p46269 (lp46270 S'indues' p46271 aS'induing' p46272 aS'indued' p46273 aS'indued' p46274 asS'outfit' p46275 (lp46276 S'outfits' p46277 aS'outfitting' p46278 aS'outfitted' p46279 aS'outfitted' p46280 asS'york' p46281 (lp46282 S'yorks' p46283 aS'yorking' p46284 aS'yorked' p46285 aS'yorked' p46286 asS'succeed' p46287 (lp46288 S'succeeds' p46289 aS'succeeding' p46290 aS'succeeded' p46291 aS'succeeded' p46292 asS'franchise' p46293 (lp46294 S'franchises' p46295 aS'franchising' p46296 aS'franchised' p46297 aS'franchised' p46298 asS'prelude' p46299 (lp46300 S'preludes' p46301 aS'preluding' p46302 aS'preluded' p46303 aS'preluded' p46304 asS'bronze' p46305 (lp46306 S'bronzes' p46307 aS'bronzing' p46308 aS'bronzed' p46309 aS'bronzed' p46310 asS'license' p46311 (lp46312 S'licenses' p46313 aS'licensing' p46314 aS'licensed' p46315 aS'licensed' p46316 asS'oversee' p46317 (lp46318 S'oversees' p46319 aS'overseeing' p46320 aS'oversaw' p46321 aS'overseen' p46322 asS'interrogate' p46323 (lp46324 S'interrogates' p46325 aS'interrogating' p46326 aS'interrogated' p46327 aS'interrogated' p46328 asS'entertain' p46329 (lp46330 S'entertains' p46331 aS'entertaining' p46332 aS'entertained' p46333 aS'entertained' p46334 asS'depredate' p46335 (lp46336 S'depredates' p46337 aS'depredating' p46338 aS'depredated' p46339 aS'depredated' p46340 asS'attorn' p46341 (lp46342 S'attorns' p46343 aS'attorning' p46344 aS'attorned' p46345 aS'attorned' p46346 asS'sheathe' p46347 (lp46348 S'sheathes' p46349 ag18565 ag18566 ag18567 asS'reside' p46350 (lp46351 S'resides' p46352 aS'residing' p46353 aS'resided' p46354 aS'resided' p46355 asS'distress' p46356 (lp46357 S'distresses' p46358 aS'distressing' p46359 aS'distressed' p46360 aS'distressed' p46361 asS'whelp' p46362 (lp46363 S'whelps' p46364 aS'whelping' p46365 aS'whelped' p46366 aS'whelped' p46367 asS'sweep' p46368 (lp46369 S'sweeps' p46370 aS'sweeping' p46371 aS'swept' p46372 aS'swept' p46373 asS'harbour' p46374 (lp46375 S'harbours' p46376 aS'harbouring' p46377 aS'harboured' p46378 aS'harboured' p46379 asS'whelm' p46380 (lp46381 S'whelms' p46382 aS'whelming' p46383 aS'whelmed' p46384 aS'whelmed' p46385 asS'rave' p46386 (lp46387 S'raves' p46388 aS'raving' p46389 aS'raved' p46390 aS'raved' p46391 asS'bolster' p46392 (lp46393 S'bolsters' p46394 aS'bolstering' p46395 aS'bolstered' p46396 aS'bolstered' p46397 asS'decline' p46398 (lp46399 S'declines' p46400 aS'declining' p46401 aS'declined' p46402 aS'declined' p46403 asS'dun' p46404 (lp46405 S'duns' p46406 aS'dunning' p46407 aS'dunned' p46408 aS'dunned' p46409 asS'dibble' p46410 (lp46411 S'dibbles' p46412 aS'dibbling' p46413 aS'dibbled' p46414 aS'dibbled' p46415 asS'overlook' p46416 (lp46417 S'overlooks' p46418 aS'overlooking' p46419 aS'overlooked' p46420 aS'overlooked' p46421 asS'whop' p46422 (lp46423 S'whops' p46424 aS'whopping' p46425 aS'whopped' p46426 aS'whopped' p46427 asS'stravaig' p46428 (lp46429 S'stravaigs' p46430 aS'stravaiging' p46431 aS'stravaiged' p46432 aS'stravaiged' p46433 asS'dup' p46434 (lp46435 S'dups' p46436 aS'dupping' p46437 aS'dupped' p46438 aS'dupped' p46439 asS'brick' p46440 (lp46441 S'bricks' p46442 aS'bricking' p46443 aS'bricked' p46444 aS'bricked' p46445 asS'pi' p46446 (lp46447 S'pies' p46448 aS'piing' p46449 aS'pied' p46450 aS'pied' p46451 asS'deice' p46452 (lp46453 S'deices' p46454 aS'deicing' p46455 aS'deiced' p46456 aS'deiced' p46457 asS'exculpate' p46458 (lp46459 S'exculpates' p46460 aS'exculpating' p46461 aS'exculpated' p46462 aS'exculpated' p46463 asS'referee' p46464 (lp46465 S'referees' p46466 aS'refereeing' p46467 aS'refereed' p46468 aS'refereed' p46469 asS'flight' p46470 (lp46471 S'flights' p46472 aS'flighting' p46473 aS'flighted' p46474 aS'flighted' p46475 asS'keratinize' p46476 (lp46477 S'keratinizes' p46478 aS'keratinizing' p46479 aS'keratinized' p46480 aS'keratinized' p46481 asS'dropout' p46482 (lp46483 S'dropouts' p46484 aS'dropouting' p46485 aS'dropouted' p46486 aS'dropouted' p46487 asS'heel-and-toe' p46488 (lp46489 S'heel-and-toes' p46490 aS'heel-and-toeing' p46491 aS'heel-and-toed' p46492 aS'heel-and-toed' p46493 asS'cinch' p46494 (lp46495 S'cinches' p46496 aS'cinching' p46497 aS'cinched' p46498 aS'cinched' p46499 asS'demand' p46500 (lp46501 S'demands' p46502 aS'demanding' p46503 aS'demanded' p46504 aS'demanded' p46505 asS'heighten' p46506 (lp46507 S'heightens' p46508 aS'heightening' p46509 aS'heightened' p46510 aS'heightened' p46511 asS'Australianize' p46512 (lp46513 S'Australianizes' p46514 aS'Australianizing' p46515 aS'Australianized' p46516 aS'Australianized' p46517 asS'shove' p46518 (lp46519 S'shoves' p46520 aS'shoving' p46521 aS'shoved' p46522 aS'shoved' p46523 asS'batch' p46524 (lp46525 S'batches' p46526 aS'batching' p46527 aS'batched' p46528 aS'batched' p46529 asS'bodge' p46530 (lp46531 S'bodges' p46532 aS'bodging' p46533 aS'bodged' p46534 aS'bodged' p46535 asS'pitchfork' p46536 (lp46537 S'pitchforks' p46538 aS'pitchforking' p46539 aS'pitchforked' p46540 aS'pitchforked' p46541 asS'barricade' p46542 (lp46543 S'barricades' p46544 aS'barricading' p46545 aS'barricaded' p46546 aS'barricaded' p46547 asS'enact' p46548 (lp46549 S'enacts' p46550 aS'enacting' p46551 aS'enacted' p46552 aS'enacted' p46553 asS'bedizen' p46554 (lp46555 S'bedizens' p46556 aS'bedizening' p46557 aS'bedizened' p46558 aS'bedizened' p46559 asS'putrefy' p46560 (lp46561 S'putrefies' p46562 aS'putrefying' p46563 aS'putrefied' p46564 aS'putrefied' p46565 asS'mordant' p46566 (lp46567 S'mordants' p46568 aS'mordanting' p46569 aS'mordanted' p46570 aS'mordanted' p46571 asS'demob' p46572 (lp46573 S'demobs' p46574 aS'demobbing' p46575 aS'demobbed' p46576 aS'demobbed' p46577 asS'waul' p46578 (lp46579 S'wauls' p46580 aS'wauling' p46581 aS'wauled' p46582 aS'wauled' p46583 asS'twiddle' p46584 (lp46585 S'twiddles' p46586 aS'twiddling' p46587 aS'twiddled' p46588 aS'twiddled' p46589 asS'rip' p46590 (lp46591 S'rips' p46592 aS'ripping' p46593 aS'ripped' p46594 aS'ripped' p46595 asS'rim' p46596 (lp46597 S'rims' p46598 aS'rimming' p46599 aS'rimmed' p46600 aS'rimmed' p46601 asS'impersonate' p46602 (lp46603 S'impersonates' p46604 aS'impersonating' p46605 aS'impersonated' p46606 aS'impersonated' p46607 asS'quail' p46608 (lp46609 S'quails' p46610 aS'quailing' p46611 aS'quailed' p46612 aS'quailed' p46613 asS'rid' p46614 (lp46615 S'rids' p46616 aS'ridding' p46617 aS'ridded' p46618 aS'ridded' p46619 asS'anguish' p46620 (lp46621 S'anguishes' p46622 aS'anguishing' p46623 aS'anguished' p46624 aS'anguished' p46625 asS'chauffeur' p46626 (lp46627 S'chauffeurs' p46628 aS'chauffeuring' p46629 aS'chauffeured' p46630 aS'chauffeured' p46631 asS'shirr' p46632 (lp46633 S'shirrs' p46634 aS'shirring' p46635 aS'shirred' p46636 aS'shirred' p46637 asS'unvoice' p46638 (lp46639 S'unvoices' p46640 aS'unvoicing' p46641 aS'unvoiced' p46642 aS'unvoiced' p46643 asS'shire' p46644 (lp46645 S'shires' p46646 aS'shiring' p46647 aS'shired' p46648 aS'shired' p46649 asS'stickle' p46650 (lp46651 S'stickles' p46652 aS'stickling' p46653 aS'stickled' p46654 aS'stickled' p46655 asS'seize' p46656 (lp46657 S'seizes' p46658 aS'seizing' p46659 aS'seized' p46660 aS'seized' p46661 asS'advise' p46662 (lp46663 S'advises' p46664 aS'advising' p46665 aS'advised' p46666 aS'advised' p46667 asS'sliver' p46668 (lp46669 S'slivers' p46670 aS'slivering' p46671 aS'slivered' p46672 aS'slivered' p46673 asS'overcrop' p46674 (lp46675 S'overcrops' p46676 aS'overcropping' p46677 aS'overcropped' p46678 aS'overcropped' p46679 asS'chequer' p46680 (lp46681 S'chequers' p46682 aS'chequering' p46683 aS'chequered' p46684 aS'chequered' p46685 asS'nitrogenize' p46686 (lp46687 S'nitrogenizes' p46688 aS'nitrogenizing' p46689 aS'nitrogenized' p46690 aS'nitrogenized' p46691 asS'negotiate' p46692 (lp46693 S'negotiates' p46694 aS'negotiating' p46695 aS'negotiated' p46696 aS'negotiated' p46697 asS'cement' p46698 (lp46699 S'cements' p46700 aS'cementing' p46701 aS'cemented' p46702 aS'cemented' p46703 asS'impede' p46704 (lp46705 S'impedes' p46706 aS'impeding' p46707 aS'impeded' p46708 aS'impeded' p46709 asS'birch' p46710 (lp46711 S'birches' p46712 aS'birching' p46713 aS'birched' p46714 aS'birched' p46715 asS'brocade' p46716 (lp46717 S'brocades' p46718 aS'brocading' p46719 aS'brocaded' p46720 aS'brocaded' p46721 asS'lower' p46722 (lp46723 sS'earmark' p46724 (lp46725 S'earmarks' p46726 aS'earmarking' p46727 aS'earmarked' p46728 aS'earmarked' p46729 asS'cheek' p46730 (lp46731 S'cheeks' p46732 aS'cheeking' p46733 aS'cheeked' p46734 aS'cheeked' p46735 asS'cheep' p46736 (lp46737 S'cheeps' p46738 aS'cheeping' p46739 aS'cheeped' p46740 aS'cheeped' p46741 asS'cheer' p46742 (lp46743 S'cheers' p46744 aS'cheering' p46745 aS'cheered' p46746 aS'cheered' p46747 asS'edge' p46748 (lp46749 S'edges' p46750 aS'edging' p46751 aS'edged' p46752 aS'edged' p46753 asS'reflect' p46754 (lp46755 S'reflects' p46756 aS'reflecting' p46757 aS'reflected' p46758 aS'reflected' p46759 asS'riffle' p46760 (lp46761 S'riffles' p46762 aS'riffling' p46763 aS'riffled' p46764 aS'riffled' p46765 asS'cohobate' p46766 (lp46767 S'cohobates' p46768 aS'cohobating' p46769 aS'cohobated' p46770 aS'cohobated' p46771 asS'frizz' p46772 (lp46773 S'frizzes' p46774 aS'frizzing' p46775 aS'frizzed' p46776 aS'frizzed' p46777 asS'hotdog' p46778 (lp46779 S'hotdogs' p46780 aS'hotdoging' p46781 aS'hotdoged' p46782 aS'hotdoged' p46783 asS'immingle' p46784 (lp46785 S'immingles' p46786 aS'immingling' p46787 aS'immingled' p46788 aS'immingled' p46789 asS'endeavour' p46790 (lp46791 S'endeavours' p46792 aS'endeavouring' p46793 aS'endeavoured' p46794 aS'endeavoured' p46795 asS'knot' p46796 (lp46797 S'knots' p46798 aS'knotting' p46799 aS'knotted' p46800 aS'knotted' p46801 asS'prorate' p46802 (lp46803 S'prorates' p46804 aS'prorating' p46805 aS'prorated' p46806 aS'prorated' p46807 asS'foreshorten' p46808 (lp46809 S'foreshortens' p46810 aS'foreshortening' p46811 aS'foreshortened' p46812 aS'foreshortened' p46813 asS'skinnydip' p46814 (lp46815 S'skinnydips' p46816 aS'skinnydipping' p46817 aS'skinnydipped' p46818 aS'skinnydipped' p46819 asS'predetermine' p46820 (lp46821 S'predetermines' p46822 aS'predetermining' p46823 aS'predetermined' p46824 aS'predetermined' p46825 asS'reinstate' p46826 (lp46827 S'reinstates' p46828 aS'reinstating' p46829 aS'reinstated' p46830 aS'reinstated' p46831 asS'vindicate' p46832 (lp46833 S'vindicates' p46834 aS'vindicating' p46835 aS'vindicated' p46836 aS'vindicated' p46837 asS'workharden' p46838 (lp46839 S'workhardens' p46840 aS'work-hardening' p46841 aS'workhardened' p46842 aS'workhardened' p46843 asS'advocate' p46844 (lp46845 S'advocates' p46846 aS'advocating' p46847 aS'advocated' p46848 aS'advocated' p46849 asS'conscript' p46850 (lp46851 S'conscripts' p46852 aS'conscripting' p46853 aS'conscripted' p46854 aS'conscripted' p46855 asS'preexist' p46856 (lp46857 S'preexists' p46858 aS'preexisting' p46859 aS'preexisted' p46860 aS'preexisted' p46861 asS'awaken' p46862 (lp46863 S'awakens' p46864 aS'awakening' p46865 aS'awakened' p46866 aS'awakened' p46867 asS'rotate' p46868 (lp46869 S'rotates' p46870 aS'rotating' p46871 aS'rotated' p46872 aS'rotated' p46873 asS'confront' p46874 (lp46875 S'confronts' p46876 aS'confronting' p46877 aS'confronted' p46878 aS'confronted' p46879 asS'ignore' p46880 (lp46881 S'ignores' p46882 aS'ignoring' p46883 aS'ignored' p46884 aS'ignored' p46885 asS'moralize' p46886 (lp46887 S'moralizes' p46888 aS'moralizing' p46889 aS'moralized' p46890 aS'moralized' p46891 asS'distrust' p46892 (lp46893 S'distrusts' p46894 aS'distrusting' p46895 aS'distrusted' p46896 aS'distrusted' p46897 asS'entice' p46898 (lp46899 S'entices' p46900 aS'enticing' p46901 aS'enticed' p46902 aS'enticed' p46903 asS'cohabit' p46904 (lp46905 S'cohabits' p46906 aS'cohabiting' p46907 aS'cohabited' p46908 aS'cohabited' p46909 asS'transmute' p46910 (lp46911 S'transmutes' p46912 aS'transmuting' p46913 aS'transmuted' p46914 aS'transmuted' p46915 asS'hallmark' p46916 (lp46917 S'hallmarks' p46918 aS'hallmarking' p46919 aS'hallmarked' p46920 aS'hallmarked' p46921 asS'embroil' p46922 (lp46923 S'embroils' p46924 aS'embroiling' p46925 aS'embroiled' p46926 aS'embroiled' p46927 asS'emanate' p46928 (lp46929 S'emanates' p46930 aS'emanating' p46931 aS'emanated' p46932 aS'emanated' p46933 asS'incriminate' p46934 (lp46935 S'incriminates' p46936 aS'incriminating' p46937 aS'incriminated' p46938 aS'incriminated' p46939 asS'empt' p46940 (lp46941 S'empts' p46942 aS'empting' p46943 aS'empted' p46944 aS'empted' p46945 asS'catalyze' p46946 (lp46947 S'catalyzes' p46948 aS'catalyzing' p46949 aS'catalyzed' p46950 aS'catalyzed' p46951 asS'uppercut' p46952 (lp46953 S'uppercuts' p46954 aS'uppercutting' p46955 aS'uppercut' p46956 aS'uppercut' p46957 asS'clown' p46958 (lp46959 S'clowns' p46960 aS'clowning' p46961 aS'clowned' p46962 aS'clowned' p46963 asS'vacate' p46964 (lp46965 S'vacates' p46966 aS'vacating' p46967 aS'vacated' p46968 aS'vacated' p46969 asS'modernize' p46970 (lp46971 S'modernizes' p46972 aS'modernizing' p46973 aS'modernized' p46974 aS'modernized' p46975 asS'retry' p46976 (lp46977 S'retries' p46978 aS'retrying' p46979 aS'retried' p46980 aS'retried' p46981 asS'debrief' p46982 (lp46983 S'debriefs' p46984 aS'debriefing' p46985 aS'debriefed' p46986 aS'debriefed' p46987 asS'prop' p46988 (lp46989 S'props' p46990 aS'propping' p46991 aS'propped' p46992 aS'propped' p46993 asS'inoculate' p46994 (lp46995 S'inoculates' p46996 aS'inoculating' p46997 aS'inoculated' p46998 aS'inoculated' p46999 asS'prog' p47000 (lp47001 S'progs' p47002 aS'progging' p47003 aS'progged' p47004 aS'progged' p47005 asS'prod' p47006 (lp47007 S'prods' p47008 aS'prodding' p47009 aS'prodded' p47010 aS'prodded' p47011 asS'shend' p47012 (lp47013 S'shends' p47014 aS'shending' p47015 aS'shent' p47016 aS'shent' p47017 asS'roughcast' p47018 (lp47019 sS'Sanforize' p47020 (lp47021 S'Sanforizes' p47022 aS'Sanforizing' p47023 aS'Sanforized' p47024 aS'Sanforized' p47025 asS'tinker' p47026 (lp47027 S'tinkers' p47028 aS'tinkering' p47029 aS'tinkered' p47030 aS'tinkered' p47031 asS'metallize' p47032 (lp47033 S'metallizes' p47034 aS'metallizing' p47035 aS'metallized' p47036 aS'metallized' p47037 asS'caseate' p47038 (lp47039 S'caseates' p47040 aS'caseating' p47041 aS'caseated' p47042 aS'caseated' p47043 asS'pipeline' p47044 (lp47045 S'pipelines' p47046 aS'pipelining' p47047 aS'pipelined' p47048 aS'pipelined' p47049 asS'row' p47050 (lp47051 S'rows' p47052 aS'rowing' p47053 aS'rowed' p47054 aS'rowed' p47055 asS'prove' p47056 (lp47057 S'proves' p47058 aS'proving' p47059 aS'proved' p47060 aS'proven' p47061 asS'vesture' p47062 (lp47063 S'vestures' p47064 aS'vesturing' p47065 aS'vestured' p47066 aS'vestured' p47067 asS'range' p47068 (lp47069 S'ranges' p47070 aS'ranging' p47071 aS'ranged' p47072 aS'ranged' p47073 asS'apperceive' p47074 (lp47075 S'apperceives' p47076 aS'apperceiving' p47077 aS'apperceived' p47078 aS'apperceived' p47079 asS'wanna' p47080 (lp47081 S'wannas' p47082 aS'wannaing' p47083 aS'wannaed' p47084 aS'wannaed' p47085 asS'degrease' p47086 (lp47087 S'degreases' p47088 aS'degreasing' p47089 aS'degreased' p47090 aS'degreased' p47091 asS'underrate' p47092 (lp47093 S'underrates' p47094 aS'underrating' p47095 aS'underrated' p47096 aS'underrated' p47097 asS'curtsy' p47098 (lp47099 S'curtsies' p47100 aS'curtsying' p47101 aS'curtsied' p47102 aS'curtsied' p47103 asS'numerate' p47104 (lp47105 S'numerates' p47106 aS'numerating' p47107 aS'numerated' p47108 aS'numerated' p47109 asS'canal' p47110 (lp47111 S'canals' p47112 aS'canalling' p47113 aS'canalled' p47114 aS'canalled' p47115 asS'gouge' p47116 (lp47117 S'gouges' p47118 aS'gouging' p47119 aS'gouged' p47120 aS'gouged' p47121 asS'scrunch' p47122 (lp47123 S'scrunches' p47124 aS'scrunching' p47125 aS'scrunched' p47126 aS'scrunched' p47127 asS'acquiesce' p47128 (lp47129 S'acquiesces' p47130 aS'acquiescing' p47131 aS'acquiesced' p47132 aS'acquiesced' p47133 asS'question' p47134 (lp47135 S'questions' p47136 aS'questioning' p47137 aS'questioned' p47138 aS'questioned' p47139 asS'deepfreeze' p47140 (lp47141 S'deepfreezes' p47142 aS'deepfreezing' p47143 aS'deepfrozen' p47144 aS'deepfrozen' p47145 asS'fast' p47146 (lp47147 S'fasts' p47148 aS'fasting' p47149 aS'fasted' p47150 aS'fasted' p47151 asS'fash' p47152 (lp47153 S'fashes' p47154 aS'fashing' p47155 aS'fashed' p47156 aS'fashed' p47157 asS'etch' p47158 (lp47159 S'etches' p47160 aS'etching' p47161 aS'etched' p47162 aS'etched' p47163 asS'analyze' p47164 (lp47165 S'analyzes' p47166 aS'analyzing' p47167 aS'analyzed' p47168 aS'analyzed' p47169 asS'sloganeer' p47170 (lp47171 S'sloganeers' p47172 aS'sloganeering' p47173 aS'sloganeered' p47174 aS'sloganeered' p47175 asS'counterpoise' p47176 (lp47177 S'counterpoises' p47178 aS'counterpoising' p47179 aS'counterpoised' p47180 aS'counterpoised' p47181 asS'plunge' p47182 (lp47183 S'plunges' p47184 aS'plunging' p47185 aS'plunged' p47186 aS'plunged' p47187 asS'crank' p47188 (lp47189 S'cranks' p47190 aS'cranking' p47191 aS'cranked' p47192 aS'cranked' p47193 asS'usurp' p47194 (lp47195 S'usurps' p47196 aS'usurping' p47197 aS'usurped' p47198 aS'usurped' p47199 asS'upright' p47200 (lp47201 S'uprights' p47202 aS'uprighting' p47203 aS'uprighted' p47204 aS'uprighted' p47205 asS'crane' p47206 (lp47207 S'cranes' p47208 aS'craning' p47209 aS'craned' p47210 aS'craned' p47211 asS'supercool' p47212 (lp47213 S'supercools' p47214 aS'supercooling' p47215 aS'supercooled' p47216 aS'supercooled' p47217 asS'showcase' p47218 (lp47219 S'showcases' p47220 aS'showcasing' p47221 aS'showcased' p47222 aS'showcased' p47223 asS'mystify' p47224 (lp47225 S'mystifies' p47226 aS'mystifying' p47227 aS'mystified' p47228 aS'mystified' p47229 asS'hush' p47230 (lp47231 S'hushes' p47232 aS'hushing' p47233 aS'hushed' p47234 aS'hushed' p47235 asS'consist' p47236 (lp47237 S'consists' p47238 aS'consisting' p47239 aS'consisted' p47240 aS'consisted' p47241 asS'incase' p47242 (lp47243 S'incases' p47244 aS'incasing' p47245 aS'incased' p47246 aS'incased' p47247 asS'elide' p47248 (lp47249 S'elides' p47250 aS'eliding' p47251 aS'elided' p47252 aS'elided' p47253 asS'telecasted' p47254 (lp47255 S'telecasts' p47256 aS'telecasting' p47257 aS'telecasteded' p47258 aS'telecasteded' p47259 asS'redress' p47260 (lp47261 S'redresses' p47262 aS'redressing' p47263 ag14226 aS'redressed' p47264 asS'highlight' p47265 (lp47266 S'highlights' p47267 aS'highlighting' p47268 aS'highlighted' p47269 aS'highlighted' p47270 asS'estivate' p47271 (lp47272 S'estivates' p47273 aS'estivating' p47274 aS'estivated' p47275 aS'estivated' p47276 asS'desorb' p47277 (lp47278 S'desorbs' p47279 aS'desorbing' p47280 aS'desorbed' p47281 aS'desorbed' p47282 asS'steepen' p47283 (lp47284 S'steepens' p47285 aS'steepening' p47286 aS'steepened' p47287 aS'steepened' p47288 asS'freak' p47289 (lp47290 S'freaks' p47291 aS'freaking' p47292 aS'freaked' p47293 aS'freaked' p47294 asS'sublet' p47295 (lp47296 S'sublets' p47297 aS'subletting' p47298 aS'sublet' p47299 aS'sublet' p47300 asS'photomap' p47301 (lp47302 S'photomaps' p47303 aS'photomapping' p47304 aS'photomapped' p47305 aS'photomapped' p47306 asS'rally' p47307 (lp47308 S'rallies' p47309 aS'rallying' p47310 aS'rallied' p47311 aS'rallied' p47312 asS'peach' p47313 (lp47314 S'peaches' p47315 aS'peaching' p47316 aS'peached' p47317 aS'peached' p47318 asS'peace' p47319 (lp47320 S'peaces' p47321 aS'peacing' p47322 aS'peaced' p47323 aS'peaced' p47324 asS'intwine' p47325 (lp47326 S'intwines' p47327 aS'intwining' p47328 aS'intwined' p47329 aS'intwined' p47330 asS'nick' p47331 (lp47332 S'nicks' p47333 aS'nicking' p47334 aS'nicked' p47335 aS'nicked' p47336 asS'disenchant' p47337 (lp47338 S'disenchants' p47339 aS'disenchanting' p47340 aS'disenchanted' p47341 aS'disenchanted' p47342 asS'caparison' p47343 (lp47344 S'caparisons' p47345 aS'caparisoning' p47346 aS'caparisoned' p47347 aS'caparisoned' p47348 asS'ferment' p47349 (lp47350 S'ferments' p47351 aS'fermenting' p47352 aS'fermented' p47353 aS'fermented' p47354 asS'buddle' p47355 (lp47356 S'buddles' p47357 aS'buddling' p47358 aS'buddled' p47359 aS'buddled' p47360 asS'mock' p47361 (lp47362 S'mocks' p47363 aS'mocking' p47364 aS'mocked' p47365 aS'mocked' p47366 asS'teasel' p47367 (lp47368 S'teasels' p47369 aS'teaselling' p47370 aS'teaselled' p47371 aS'teaselled' p47372 asS'chirm' p47373 (lp47374 S'chirms' p47375 aS'chirming' p47376 aS'chirmed' p47377 aS'chirmed' p47378 asS'inflame' p47379 (lp47380 S'inflames' p47381 aS'inflaming' p47382 aS'inflamed' p47383 aS'inflamed' p47384 asS'puncture' p47385 (lp47386 S'punctures' p47387 aS'puncturing' p47388 aS'punctured' p47389 aS'punctured' p47390 asS'assibilate' p47391 (lp47392 S'assibilates' p47393 aS'assibilating' p47394 aS'assibilated' p47395 aS'assibilated' p47396 asS'wrinkle' p47397 (lp47398 S'wrinkles' p47399 aS'wrinkling' p47400 aS'wrinkled' p47401 aS'wrinkled' p47402 asS'sightsee' p47403 (lp47404 S'sightsees' p47405 aS'sightseeing' p47406 aS'sightsaw' p47407 aS'sightseen' p47408 asS'relaunch' p47409 (lp47410 S'relaunches' p47411 aS'relaunching' p47412 aS'relaunched' p47413 aS'relaunched' p47414 asS'agist' p47415 (lp47416 S'agists' p47417 aS'agisting' p47418 aS'agisted' p47419 aS'agisted' p47420 asS'skydive' p47421 (lp47422 S'skydives' p47423 aS'skydiving' p47424 aS'skydived' p47425 aS'skydived' p47426 asS'transilluminate' p47427 (lp47428 S'transilluminates' p47429 aS'transilluminating' p47430 aS'transilluminated' p47431 aS'transilluminated' p47432 asS'liquefy' p47433 (lp47434 S'liquefies' p47435 aS'liquefying' p47436 aS'liquefied' p47437 aS'liquefied' p47438 asS'remit' p47439 (lp47440 S'remits' p47441 aS'remitting' p47442 aS'remitted' p47443 aS'remitted' p47444 asS'rehear' p47445 (lp47446 S'rehears' p47447 aS'rehearing' p47448 aS'reheard' p47449 aS'reheard' p47450 asS'buffalo' p47451 (lp47452 S'buffalos' p47453 aS'buffaloing' p47454 aS'buffaloed' p47455 aS'buffaloed' p47456 asS'peculate' p47457 (lp47458 S'peculates' p47459 aS'peculating' p47460 aS'peculated' p47461 aS'peculated' p47462 asS'pervert' p47463 (lp47464 S'perverts' p47465 aS'perverting' p47466 aS'perverted' p47467 aS'perverted' p47468 asS'overwind' p47469 (lp47470 S'overwinds' p47471 aS'overwinding' p47472 aS'overwound' p47473 aS'overwound' p47474 asS'dispel' p47475 (lp47476 S'dispels' p47477 aS'dispelling' p47478 aS'dispelled' p47479 aS'dispelled' p47480 asS'gang' p47481 (lp47482 S'gangs' p47483 aS'ganging' p47484 aS'ganged' p47485 aS'ganged' p47486 asS'pubcrawl' p47487 (lp47488 S'pubcrawls' p47489 aS'pubcrawling' p47490 aS'pubcrawled' p47491 aS'pubcrawled' p47492 asS'uphold' p47493 (lp47494 S'upholds' p47495 aS'upholding' p47496 aS'upheld' p47497 aS'upheld' p47498 asS'exterminate' p47499 (lp47500 S'exterminates' p47501 aS'exterminating' p47502 aS'exterminated' p47503 aS'exterminated' p47504 asS'cradle' p47505 (lp47506 S'cradles' p47507 aS'cradling' p47508 aS'cradled' p47509 aS'cradled' p47510 asS'repackage' p47511 (lp47512 S'repackages' p47513 aS'repackaging' p47514 aS'repackaged' p47515 aS'repackaged' p47516 asS'ironize' p47517 (lp47518 S'ironizes' p47519 aS'ironizing' p47520 aS'ironized' p47521 aS'ironized' p47522 asS'breach' p47523 (lp47524 S'breaches' p47525 aS'breaching' p47526 aS'breached' p47527 aS'breached' p47528 asS'include' p47529 (lp47530 S'includes' p47531 aS'including' p47532 aS'included' p47533 aS'included' p47534 asS'rag' p47535 (lp47536 S'rags' p47537 aS'ragging' p47538 aS'ragged' p47539 aS'ragged' p47540 asS'ladle' p47541 (lp47542 S'ladles' p47543 aS'ladling' p47544 aS'ladled' p47545 aS'ladled' p47546 asS'ghostwrite' p47547 (lp47548 S'ghostwrites' p47549 aS'ghostwriting' p47550 aS'ghostwrote' p47551 aS'ghostwritten' p47552 asS'elutriate' p47553 (lp47554 S'elutriates' p47555 aS'elutriating' p47556 aS'elutriated' p47557 aS'elutriated' p47558 asS'spoor' p47559 (lp47560 S'spoors' p47561 aS'spooring' p47562 aS'spoored' p47563 aS'spoored' p47564 asS'spool' p47565 (lp47566 S'spools' p47567 aS'spooling' p47568 aS'spooled' p47569 aS'spooled' p47570 asS'spoon' p47571 (lp47572 S'spoons' p47573 aS'spooning' p47574 aS'spooned' p47575 aS'spooned' p47576 asS'foretell' p47577 (lp47578 S'foretells' p47579 aS'foretelling' p47580 aS'foretold' p47581 aS'foretold' p47582 asS'photocompose' p47583 (lp47584 S'photocomposes' p47585 aS'photocomposing' p47586 aS'photocomposed' p47587 aS'photocomposed' p47588 asS'spook' p47589 (lp47590 S'spooks' p47591 aS'spooking' p47592 aS'spooked' p47593 aS'spooked' p47594 asS'spoof' p47595 (lp47596 S'spoofs' p47597 aS'spoofing' p47598 aS'spoofed' p47599 aS'spoofed' p47600 asS'posture' p47601 (lp47602 S'postures' p47603 aS'posturing' p47604 aS'postured' p47605 aS'postured' p47606 asS'bedeck' p47607 (lp47608 S'bedecks' p47609 aS'bedecking' p47610 aS'bedecked' p47611 aS'bedecked' p47612 asS'diazotize' p47613 (lp47614 S'diazotizes' p47615 aS'diazotizing' p47616 aS'diazotized' p47617 aS'diazotized' p47618 asS'extenuate' p47619 (lp47620 S'extenuates' p47621 aS'extenuating' p47622 aS'extenuated' p47623 aS'extenuated' p47624 asS'sleave' p47625 (lp47626 S'sleaves' p47627 aS'sleaving' p47628 aS'sleaved' p47629 aS'sleaved' p47630 asS'deaminize' p47631 (lp47632 S'deaminizes' p47633 aS'deaminizing' p47634 aS'deaminized' p47635 aS'deaminized' p47636 asS'idealize' p47637 (lp47638 S'idealizes' p47639 aS'idealizing' p47640 aS'idealized' p47641 aS'idealized' p47642 asS'outdo' p47643 (lp47644 S'outdoes' p47645 aS'outdoing' p47646 aS'outdid' p47647 aS'outdone' p47648 asS'unchain' p47649 (lp47650 S'unchains' p47651 aS'unchaining' p47652 aS'unchained' p47653 aS'unchained' p47654 asS'misplay' p47655 (lp47656 S'misplays' p47657 aS'misplaying' p47658 aS'misplayed' p47659 aS'misplayed' p47660 asS'miscall' p47661 (lp47662 S'miscalls' p47663 aS'miscalling' p47664 aS'miscalled' p47665 aS'miscalled' p47666 asS'hinder' p47667 (lp47668 S'hinders' p47669 aS'hindering' p47670 aS'hindered' p47671 aS'hindered' p47672 asS'smirch' p47673 (lp47674 S'smirches' p47675 aS'smirching' p47676 aS'smirched' p47677 aS'smirched' p47678 asS'vittle' p47679 (lp47680 S'vittles' p47681 aS'vittling' p47682 aS'vittled' p47683 aS'vittled' p47684 asS'reinsure' p47685 (lp47686 S'reinsures' p47687 aS'reinsuring' p47688 aS'reinsured' p47689 aS'reinsured' p47690 asS'pleat' p47691 (lp47692 S'pleats' p47693 aS'pleating' p47694 aS'pleated' p47695 aS'pleated' p47696 asS'chastise' p47697 (lp47698 S'chastises' p47699 aS'chastising' p47700 aS'chastised' p47701 aS'chastised' p47702 asS'colorcode' p47703 (lp47704 S'colorcodes' p47705 aS'colorcoding' p47706 aS'colorcoded' p47707 aS'colorcoded' p47708 asS'procession' p47709 (lp47710 S'processions' p47711 aS'processioning' p47712 aS'processioned' p47713 aS'processioned' p47714 asS'pleach' p47715 (lp47716 S'pleaches' p47717 aS'pleaching' p47718 aS'pleached' p47719 aS'pleached' p47720 asS'plead' p47721 (lp47722 S'pleads' p47723 aS'pleading' p47724 aS'pled' p47725 aS'pled' p47726 asS'interosculate' p47727 (lp47728 S'interosculates' p47729 aS'interosculating' p47730 aS'interosculated' p47731 aS'interosculated' p47732 asS'concelebrate' p47733 (lp47734 S'concelebrates' p47735 aS'concelebrating' p47736 aS'concelebrated' p47737 aS'concelebrated' p47738 asS'folk' p47739 (lp47740 S'folks' p47741 aS'folking' p47742 aS'folked' p47743 aS'folked' p47744 asS'outsmart' p47745 (lp47746 S'outsmarts' p47747 aS'outsmarting' p47748 aS'outsmarted' p47749 aS'outsmarted' p47750 asS'spelunk' p47751 (lp47752 S'spelunks' p47753 aS'spelunking' p47754 aS'spelunked' p47755 aS'spelunked' p47756 asS'relent' p47757 (lp47758 S'relents' p47759 aS'relenting' p47760 aS'relented' p47761 aS'relented' p47762 asS'attire' p47763 (lp47764 S'attires' p47765 aS'attiring' p47766 aS'attired' p47767 aS'attired' p47768 asS'relocate' p47769 (lp47770 S'relocates' p47771 aS'relocating' p47772 aS'relocated' p47773 aS'relocated' p47774 asS'kangaroo' p47775 (lp47776 S'kangaroos' p47777 aS'kangarooing' p47778 aS'kangarooed' p47779 aS'kangarooed' p47780 asS'sough' p47781 (lp47782 S'soughs' p47783 aS'soughing' p47784 aS'soughed' p47785 aS'soughed' p47786 asS'swoosh' p47787 (lp47788 S'swooshes' p47789 aS'swooshing' p47790 aS'swooshed' p47791 aS'swooshed' p47792 asS'explore' p47793 (lp47794 S'explores' p47795 aS'exploring' p47796 aS'explored' p47797 aS'explored' p47798 asS'gloat' p47799 (lp47800 S'gloats' p47801 aS'gloating' p47802 aS'gloated' p47803 aS'gloated' p47804 asS'scunner' p47805 (lp47806 S'scunners' p47807 aS'scunnering' p47808 aS'scunnered' p47809 aS'scunnered' p47810 asS'trivialize' p47811 (lp47812 S'trivializes' p47813 aS'trivializing' p47814 aS'trivialized' p47815 aS'trivialized' p47816 asS'opiate' p47817 (lp47818 S'opiates' p47819 aS'opiating' p47820 aS'opiated' p47821 aS'opiated' p47822 asS'subedit' p47823 (lp47824 S'subedits' p47825 aS'subediting' p47826 aS'subedited' p47827 aS'subedited' p47828 asS'largen' p47829 (lp47830 S'largens' p47831 aS'largening' p47832 aS'largened' p47833 aS'largened' p47834 asS'requite' p47835 (lp47836 S'requites' p47837 aS'requiting' p47838 aS'requited' p47839 aS'requited' p47840 asS'ruin' p47841 (lp47842 S'ruins' p47843 aS'ruining' p47844 aS'ruined' p47845 aS'ruined' p47846 asS'shovel' p47847 (lp47848 S'shovels' p47849 aS'shovelling' p47850 aS'shovelled' p47851 aS'shovelled' p47852 asS'blether' p47853 (lp47854 S'blethers' p47855 aS'blethering' p47856 aS'blethered' p47857 aS'blethered' p47858 asS'spy' p47859 (lp47860 S'spies' p47861 aS'spying' p47862 aS'spied' p47863 aS'spied' p47864 asS'forbid' p47865 (lp47866 S'forbids' p47867 aS'forbidding' p47868 aS'forbade' p47869 aS'forbidden' p47870 asS'dichotomize' p47871 (lp47872 S'dichotomizes' p47873 aS'dichotomizing' p47874 aS'dichotomized' p47875 aS'dichotomized' p47876 asS'sandbag' p47877 (lp47878 S'sandbags' p47879 aS'sandbagging' p47880 aS'sandbagged' p47881 aS'sandbagged' p47882 asS'motor' p47883 (lp47884 S'motors' p47885 aS'motoring' p47886 aS'motored' p47887 aS'motored' p47888 asS'duck' p47889 (lp47890 S'ducks' p47891 aS'ducking' p47892 aS'ducked' p47893 aS'ducked' p47894 asS'apply' p47895 (lp47896 S'applies' p47897 aS'applying' p47898 aS'applied' p47899 aS'applied' p47900 asS'depute' p47901 (lp47902 S'deputes' p47903 aS'deputing' p47904 aS'deputed' p47905 aS'deputed' p47906 asS'redo' p47907 (lp47908 S'redoes' p47909 aS'redoing' p47910 aS'redid' p47911 aS'redone' p47912 asS'ape' p47913 (lp47914 S'apes' p47915 aS'aping' p47916 aS'aped' p47917 aS'aped' p47918 asS'fed' p47919 (lp47920 S'fed' p47921 aS'fed' p47922 asS'stream' p47923 (lp47924 S'streams' p47925 aS'streaming' p47926 aS'streamed' p47927 aS'streamed' p47928 asS'birdlime' p47929 (lp47930 S'birdlimes' p47931 aS'birdliming' p47932 aS'birdlimed' p47933 aS'birdlimed' p47934 asS'doodle' p47935 (lp47936 S'doodles' p47937 aS'doodling' p47938 aS'doodled' p47939 aS'doodled' p47940 asS'obelize' p47941 (lp47942 S'obelizes' p47943 aS'obelizing' p47944 aS'obelized' p47945 aS'obelized' p47946 asS'frog' p47947 (lp47948 S'frogs' p47949 aS'frogging' p47950 aS'frogged' p47951 aS'frogged' p47952 asS'procrastinate' p47953 (lp47954 S'procrastinates' p47955 aS'procrastinating' p47956 aS'procrastinated' p47957 aS'procrastinated' p47958 asS'overman' p47959 (lp47960 S'overmans' p47961 aS'overmanning' p47962 aS'overmanned' p47963 aS'overmanned' p47964 asS'dishevel' p47965 (lp47966 S'dishevels' p47967 aS'dishevelling' p47968 aS'dishevelled' p47969 aS'dishevelled' p47970 asS'slue' p47971 (lp47972 S'slues' p47973 aS'sluing' p47974 aS'slued' p47975 aS'slued' p47976 asS'start' p47977 (lp47978 S'starts' p47979 aS'starting' p47980 aS'started' p47981 aS'started' p47982 asS'sanitize' p47983 (lp47984 S'sanitizes' p47985 aS'sanitizing' p47986 aS'sanitized' p47987 aS'sanitized' p47988 asS'sort' p47989 (lp47990 S'sorts' p47991 aS'sorting' p47992 aS'sorted' p47993 aS'sorted' p47994 asS'detail' p47995 (lp47996 S'details' p47997 aS'detailing' p47998 aS'detailed' p47999 aS'detailed' p48000 asS'impress' p48001 (lp48002 S'impresses' p48003 aS'impressing' p48004 aS'impressed' p48005 aS'impressed' p48006 asS'underdrain' p48007 (lp48008 S'underdrains' p48009 aS'underdraining' p48010 aS'underdrained' p48011 aS'underdrained' p48012 asS'cooperate' p48013 (lp48014 S'cooperates' p48015 aS'cooperating' p48016 aS'cooperated' p48017 aS'cooperated' p48018 asS'rabbit' p48019 (lp48020 S'rabbits' p48021 aS'rabbiting' p48022 aS'rabbited' p48023 aS'rabbited' p48024 asS'recount' p48025 (lp48026 S'recounts' p48027 aS'recounting' p48028 ag39405 aS'recounted' p48029 asS'sorn' p48030 (lp48031 S'sorns' p48032 aS'sorning' p48033 aS'sorned' p48034 aS'sorned' p48035 asS'hand-knit' p48036 (lp48037 S'hand-knits' p48038 aS'hand-knitting' p48039 aS'hand-knitted' p48040 aS'hand-knitted' p48041 asS'incline' p48042 (lp48043 S'inclines' p48044 aS'inclining' p48045 aS'inclined' p48046 aS'inclined' p48047 asS'annoy' p48048 (lp48049 S'annoys' p48050 aS'annoying' p48051 aS'annoyed' p48052 aS'annoyed' p48053 asS'fraternize' p48054 (lp48055 S'fraternizes' p48056 aS'fraternizing' p48057 aS'fraternized' p48058 aS'fraternized' p48059 asS'augment' p48060 (lp48061 S'augments' p48062 aS'augmenting' p48063 aS'augmented' p48064 aS'augmented' p48065 asS'saddle' p48066 (lp48067 S'saddles' p48068 aS'saddling' p48069 aS'saddled' p48070 aS'saddled' p48071 asS'octuple' p48072 (lp48073 S'octuples' p48074 aS'octupling' p48075 aS'octupled' p48076 aS'octupled' p48077 asS'regale' p48078 (lp48079 S'regales' p48080 aS'regaling' p48081 aS'regaled' p48082 aS'regaled' p48083 asS'dissolve' p48084 (lp48085 S'dissolves' p48086 aS'dissolving' p48087 aS'dissolved' p48088 aS'dissolved' p48089 asS'proof' p48090 (lp48091 S'proofs' p48092 aS'proofing' p48093 aS'proofed' p48094 aS'proofed' p48095 asS'tat' p48096 (lp48097 S'tats' p48098 aS'tatting' p48099 aS'tatted' p48100 aS'tatted' p48101 asS'patrol' p48102 (lp48103 S'patrols' p48104 aS'patrolling' p48105 aS'patrolled' p48106 aS'patrolled' p48107 asS'tar' p48108 (lp48109 S'tars' p48110 aS'tarring' p48111 aS'tarred' p48112 aS'tarred' p48113 asS'manhandle' p48114 (lp48115 S'manhandles' p48116 aS'manhandling' p48117 ag12738 aS'manhandled' p48118 asS'tax' p48119 (lp48120 S'taxes' p48121 aS'taxing' p48122 aS'taxed' p48123 aS'taxed' p48124 asS'crick' p48125 (lp48126 S'cricks' p48127 aS'cricking' p48128 aS'cricked' p48129 aS'cricked' p48130 asS'tag' p48131 (lp48132 S'tags' p48133 aS'tagging' p48134 aS'tagged' p48135 aS'tagged' p48136 asS'condescend' p48137 (lp48138 S'condescends' p48139 aS'condescending' p48140 aS'condescended' p48141 aS'condescended' p48142 asS'wizen' p48143 (lp48144 S'wizens' p48145 aS'wizening' p48146 aS'wizened' p48147 aS'wizened' p48148 asS'tan' p48149 (lp48150 S'tans' p48151 aS'tanning' p48152 aS'tanned' p48153 aS'tanned' p48154 asS'rape' p48155 (lp48156 S'rapes' p48157 aS'raping' p48158 aS'raped' p48159 aS'raped' p48160 asS'counterfeit' p48161 (lp48162 S'counterfeits' p48163 aS'counterfeiting' p48164 aS'counterfeited' p48165 aS'counterfeited' p48166 asS'sip' p48167 (lp48168 S'sips' p48169 aS'sipping' p48170 aS'sipped' p48171 aS'sipped' p48172 asS'jape' p48173 (lp48174 S'japes' p48175 aS'japing' p48176 aS'japed' p48177 aS'japed' p48178 asS'sit' p48179 (lp48180 S'sits' p48181 aS'sitting' p48182 aS'sat' p48183 aS'sat' p48184 asS'tamper' p48185 (lp48186 S'tampers' p48187 aS'tampering' p48188 aS'tampered' p48189 aS'tampered' p48190 asS'outclass' p48191 (lp48192 S'outclasses' p48193 aS'outclassing' p48194 aS'outclassed' p48195 aS'outclassed' p48196 asS'patronize' p48197 (lp48198 S'patronizes' p48199 aS'patronizing' p48200 aS'patronized' p48201 aS'patronized' p48202 asS'sic' p48203 (lp48204 S'sics' p48205 aS'sicking' p48206 aS'sicked' p48207 aS'sicked' p48208 asS'crutch' p48209 (lp48210 S'crutches' p48211 aS'crutching' p48212 aS'crutched' p48213 aS'crutched' p48214 asS'resurge' p48215 (lp48216 S'resurges' p48217 aS'resurging' p48218 aS'resurged' p48219 aS'resurged' p48220 asS'panic' p48221 (lp48222 S'panics' p48223 aS'panicking' p48224 aS'panicked' p48225 aS'panicked' p48226 asS'sin' p48227 (lp48228 S'sins' p48229 aS'sinning' p48230 aS'sinned' p48231 aS'sinned' p48232 asS'exemplify' p48233 (lp48234 S'exemplifies' p48235 aS'exemplifying' p48236 aS'exemplified' p48237 aS'exemplified' p48238 asS'underfeed' p48239 (lp48240 S'underfeeds' p48241 aS'underfeeding' p48242 aS'underfed' p48243 aS'underfed' p48244 asS'attend' p48245 (lp48246 S'attends' p48247 aS'attending' p48248 aS'attended' p48249 aS'attended' p48250 asS'perjure' p48251 (lp48252 S'perjures' p48253 aS'perjuring' p48254 aS'perjured' p48255 aS'perjured' p48256 asS'discomfort' p48257 (lp48258 S'discomforts' p48259 aS'discomforting' p48260 aS'discomforted' p48261 aS'discomforted' p48262 asS'abuse' p48263 (lp48264 S'abuses' p48265 aS'abusing' p48266 aS'abused' p48267 aS'abused' p48268 asS'light' p48269 (lp48270 S'lights' p48271 aS'lighting' p48272 aS'lighted' p48273 aS'lighted' p48274 asS'budge' p48275 (lp48276 S'budges' p48277 aS'budging' p48278 aS'budged' p48279 aS'budged' p48280 asS'melodize' p48281 (lp48282 S'melodizes' p48283 aS'melodizing' p48284 aS'melodized' p48285 aS'melodized' p48286 asS'acetify' p48287 (lp48288 S'acetifies' p48289 aS'acetifying' p48290 aS'acetified' p48291 aS'acetified' p48292 asS're-serve' p48293 (lp48294 S're-serves' p48295 aS're-serving' p48296 ag14196 aS're-served' p48297 asS'retrogress' p48298 (lp48299 S'retrogresses' p48300 aS'retrogressing' p48301 aS'retrogressed' p48302 aS'retrogressed' p48303 asS'windrow' p48304 (lp48305 S'windrows' p48306 aS'windrowing' p48307 aS'windrowed' p48308 aS'windrowed' p48309 asS'beguile' p48310 (lp48311 S'beguiles' p48312 aS'beguiling' p48313 aS'beguiled' p48314 aS'beguiled' p48315 asS'wawa' p48316 (lp48317 S'wawas' p48318 aS'wawaing' p48319 aS'wawaed' p48320 aS'wawaed' p48321 asS'quake' p48322 (lp48323 S'quakes' p48324 aS'quaking' p48325 aS'quaked' p48326 aS'quaked' p48327 asS'double-time' p48328 (lp48329 S'double-times' p48330 aS'double-timing' p48331 aS'double-timed' p48332 aS'double-timed' p48333 asS'wawl' p48334 (lp48335 S'wawls' p48336 aS'wawling' p48337 aS'wawled' p48338 aS'wawled' p48339 asS'badger' p48340 (lp48341 S'badgers' p48342 aS'badgering' p48343 aS'badgered' p48344 aS'badgered' p48345 asS'write' p48346 (lp48347 S'writes' p48348 ag10295 aS'wrote' p48349 aS'written' p48350 asS'complicate' p48351 (lp48352 S'complicates' p48353 aS'complicating' p48354 aS'complicated' p48355 aS'complicated' p48356 asS'inlet' p48357 (lp48358 S'inlets' p48359 aS'inletting' p48360 aS'inlet' p48361 aS'inlet' p48362 asS'reeve' p48363 (lp48364 S'reeves' p48365 aS'reeving' p48366 aS'reeved' p48367 aS'reeved' p48368 asS'overvalue' p48369 (lp48370 S'overvalues' p48371 aS'overvaluing' p48372 aS'overvalued' p48373 aS'overvalued' p48374 asS'stridulate' p48375 (lp48376 S'stridulates' p48377 aS'stridulating' p48378 aS'stridulated' p48379 aS'stridulated' p48380 asS'flank' p48381 (lp48382 S'flanks' p48383 aS'flanking' p48384 aS'flanked' p48385 aS'flanked' p48386 asS'restrain' p48387 (lp48388 S'restrains' p48389 aS'restraining' p48390 aS'restrained' p48391 aS'restrained' p48392 asS'choose' p48393 (lp48394 S'chooses' p48395 aS'choosing' p48396 aS'chose' p48397 aS'chosen' p48398 asS'underpin' p48399 (lp48400 S'underpins' p48401 aS'underpinning' p48402 aS'underpinned' p48403 aS'underpinned' p48404 asS'holiday' p48405 (lp48406 S'holidays' p48407 aS'holidaying' p48408 aS'holidayed' p48409 aS'holidayed' p48410 asS'fley' p48411 (lp48412 S'fleys' p48413 aS'fleying' p48414 aS'fleyed' p48415 aS'fleyed' p48416 asS'flex' p48417 (lp48418 S'flexs' p48419 aS'flexing' p48420 aS'flexed' p48421 aS'flexed' p48422 asS'crash' p48423 (lp48424 S'crashes' p48425 aS'crashing' p48426 aS'crashed' p48427 aS'crashed' p48428 asS'flour' p48429 (lp48430 S'flours' p48431 aS'flouring' p48432 aS'floured' p48433 aS'floured' p48434 asS'practice' p48435 (lp48436 S'practices' p48437 aS'practicing' p48438 aS'practiced' p48439 aS'practiced' p48440 asS'flout' p48441 (lp48442 S'flouts' p48443 aS'flouting' p48444 aS'flouted' p48445 aS'flouted' p48446 asS'precess' p48447 (lp48448 S'precesses' p48449 aS'precessing' p48450 aS'precessed' p48451 aS'precessed' p48452 asS'fingerprint' p48453 (lp48454 S'fingerprints' p48455 aS'fingerprinting' p48456 aS'fingerprinted' p48457 aS'fingerprinted' p48458 asS'liquify' p48459 (lp48460 S'liquifies' p48461 aS'liquifying' p48462 aS'liquified' p48463 aS'liquified' p48464 asS'flee' p48465 (lp48466 S'flees' p48467 aS'fleeing' p48468 aS'fled' p48469 aS'fled' p48470 asS'parasitize' p48471 (lp48472 S'parasitizes' p48473 aS'parasitizing' p48474 aS'parasitized' p48475 aS'parasitized' p48476 asS'impower' p48477 (lp48478 S'impowers' p48479 aS'impowering' p48480 aS'impowered' p48481 aS'impowered' p48482 asS'edit' p48483 (lp48484 S'edits' p48485 aS'editing' p48486 aS'edited' p48487 aS'edited' p48488 asS'fuze' p48489 (lp48490 S'fuzes' p48491 aS'fuzing' p48492 aS'fuzed' p48493 aS'fuzed' p48494 asS'fuzz' p48495 (lp48496 S'fuzzes' p48497 aS'fuzzing' p48498 aS'fuzzed' p48499 aS'fuzzed' p48500 asS'fiddle' p48501 (lp48502 S'fiddles' p48503 aS'fiddling' p48504 aS'fiddled' p48505 aS'fiddled' p48506 asS'trap' p48507 (lp48508 S'traps' p48509 aS'trapping' p48510 aS'trapped' p48511 aS'trapped' p48512 asS'cocoon' p48513 (lp48514 S'cocoons' p48515 aS'cocooning' p48516 aS'cocooned' p48517 aS'cocooned' p48518 asS'stithy' p48519 (lp48520 S'stithies' p48521 aS'stithying' p48522 aS'stithied' p48523 aS'stithied' p48524 asS'sojourn' p48525 (lp48526 S'sojourns' p48527 aS'sojourning' p48528 aS'sojourned' p48529 aS'sojourned' p48530 asS'interfuse' p48531 (lp48532 S'interfuses' p48533 aS'interfusing' p48534 aS'interfused' p48535 aS'interfused' p48536 asS'tabulate' p48537 (lp48538 S'tabulates' p48539 aS'tabulating' p48540 aS'tabulated' p48541 aS'tabulated' p48542 asS'out' p48543 (lp48544 S'outs' p48545 aS'outing' p48546 aS'outed' p48547 aS'outed' p48548 asS'Afrikanerize' p48549 (lp48550 S'Afrikanerizes' p48551 aS'Afrikanerizing' p48552 aS'Afrikanerized' p48553 aS'Afrikanerized' p48554 asS'effloresce' p48555 (lp48556 S'effloresces' p48557 aS'efflorescing' p48558 aS'effloresced' p48559 aS'effloresced' p48560 asS'notarize' p48561 (lp48562 S'notarizes' p48563 aS'notarizing' p48564 aS'notarized' p48565 aS'notarized' p48566 asS'ejaculate' p48567 (lp48568 S'ejaculates' p48569 aS'ejaculating' p48570 aS'ejaculated' p48571 aS'ejaculated' p48572 asS'superintend' p48573 (lp48574 S'superintends' p48575 aS'superintending' p48576 aS'superintended' p48577 aS'superintended' p48578 asS'clatter' p48579 (lp48580 S'clatters' p48581 aS'clattering' p48582 aS'clattered' p48583 aS'clattered' p48584 asS'impart' p48585 (lp48586 S'imparts' p48587 aS'imparting' p48588 aS'imparted' p48589 aS'imparted' p48590 asS'sacrifice' p48591 (lp48592 S'sacrifices' p48593 aS'sacrificing' p48594 aS'sacrificed' p48595 aS'sacrificed' p48596 asS'disclose' p48597 (lp48598 S'discloses' p48599 aS'disclosing' p48600 aS'disclosed' p48601 aS'disclosed' p48602 asS'enfranchise' p48603 (lp48604 S'enfranchises' p48605 aS'enfranchising' p48606 aS'enfranchised' p48607 aS'enfranchised' p48608 asS'implode' p48609 (lp48610 S'implodes' p48611 aS'imploding' p48612 aS'imploded' p48613 aS'imploded' p48614 asS'planish' p48615 (lp48616 S'planishes' p48617 aS'planishing' p48618 aS'planished' p48619 aS'planished' p48620 asS'rejoice' p48621 (lp48622 S'rejoices' p48623 aS'rejoicing' p48624 aS'rejoiced' p48625 aS'rejoiced' p48626 asS'tenant' p48627 (lp48628 S'tenants' p48629 aS'tenanting' p48630 aS'tenanted' p48631 aS'tenanted' p48632 asS'overtake' p48633 (lp48634 S'overtakes' p48635 aS'overtaking' p48636 aS'overtook' p48637 aS'overtaken' p48638 asS'substantiate' p48639 (lp48640 S'substantiates' p48641 aS'substantiating' p48642 aS'substantiated' p48643 aS'substantiated' p48644 asS'outman' p48645 (lp48646 S'outmans' p48647 aS'outmanning' p48648 aS'outmanned' p48649 aS'outmanned' p48650 asS'uproot' p48651 (lp48652 S'uproots' p48653 aS'uprooting' p48654 aS'uprooted' p48655 aS'uprooted' p48656 asS'boondoggle' p48657 (lp48658 S'boondoggles' p48659 aS'boondoggling' p48660 aS'boondoggled' p48661 aS'boondoggled' p48662 asS'rubberneck' p48663 (lp48664 sS'echo' p48665 (lp48666 S'echoes' p48667 aS'echoing' p48668 aS'echoed' p48669 aS'echoed' p48670 asS'collogue' p48671 (lp48672 S'collogues' p48673 aS'colloguing' p48674 aS'collogued' p48675 aS'collogued' p48676 asS'droop' p48677 (lp48678 S'droops' p48679 aS'drooping' p48680 aS'drooped' p48681 aS'drooped' p48682 asS'overtrump' p48683 (lp48684 S'overtrumps' p48685 aS'overtrumping' p48686 aS'overtrumped' p48687 aS'overtrumped' p48688 asS'liquate' p48689 (lp48690 S'liquates' p48691 aS'liquating' p48692 aS'liquated' p48693 aS'liquated' p48694 asS'accent' p48695 (lp48696 S'accents' p48697 aS'accenting' p48698 aS'accented' p48699 aS'accented' p48700 asS'glister' p48701 (lp48702 S'glisters' p48703 aS'glistering' p48704 aS'glistered' p48705 aS'glistered' p48706 asS'boil' p48707 (lp48708 S'boils' p48709 aS'boiling' p48710 aS'boiled' p48711 aS'boiled' p48712 asS'shell' p48713 (lp48714 S'shells' p48715 aS'shelling' p48716 aS'shelled' p48717 aS'shelled' p48718 asS'shallow' p48719 (lp48720 S'shallows' p48721 aS'shallowing' p48722 aS'shallowed' p48723 aS'shallowed' p48724 asS'simulate' p48725 (lp48726 S'simulates' p48727 aS'simulating' p48728 aS'simulated' p48729 aS'simulated' p48730 asS'diminish' p48731 (lp48732 S'diminishes' p48733 aS'diminishing' p48734 aS'diminished' p48735 aS'diminished' p48736 asS'commence' p48737 (lp48738 S'commences' p48739 aS'commencing' p48740 aS'commenced' p48741 aS'commenced' p48742 asS'vilipend' p48743 (lp48744 S'vilipends' p48745 aS'vilipending' p48746 aS'vilipended' p48747 aS'vilipended' p48748 asS'elope' p48749 (lp48750 S'elopes' p48751 aS'eloping' p48752 aS'eloped' p48753 aS'eloped' p48754 asS'featherstitch' p48755 (lp48756 S'featherstitches' p48757 aS'featherstitching' p48758 aS'featherstitched' p48759 aS'featherstitched' p48760 asS'brazen' p48761 (lp48762 S'brazens' p48763 aS'brazening' p48764 aS'brazened' p48765 aS'brazened' p48766 asS'elongate' p48767 (lp48768 S'elongates' p48769 aS'elongating' p48770 aS'elongated' p48771 aS'elongated' p48772 asS'sculpture' p48773 (lp48774 S'sculptures' p48775 aS'sculpturing' p48776 aS'sculptured' p48777 aS'sculptured' p48778 asS'encore' p48779 (lp48780 S'encores' p48781 aS'encoring' p48782 aS'encored' p48783 aS'encored' p48784 asS'reposit' p48785 (lp48786 S'reposits' p48787 aS'repositing' p48788 aS'reposited' p48789 aS'reposited' p48790 asS'crucify' p48791 (lp48792 S'crucifies' p48793 aS'crucifying' p48794 aS'crucified' p48795 aS'crucified' p48796 asS'clip' p48797 (lp48798 S'clips' p48799 aS'clipping' p48800 aS'clipped' p48801 aS'clipped' p48802 asS'fowl' p48803 (lp48804 S'fowls' p48805 aS'fowling' p48806 aS'fowled' p48807 aS'fowled' p48808 asS'splatter' p48809 (lp48810 S'splatters' p48811 aS'splattering' p48812 aS'splattered' p48813 aS'splattered' p48814 asS'softland' p48815 (lp48816 S'softlands' p48817 aS'softlanding' p48818 aS'softlanded' p48819 aS'softlanded' p48820 asS'blip' p48821 (lp48822 S'blips' p48823 aS'blipping' p48824 aS'blipped' p48825 aS'blipped' p48826 asS'unknit' p48827 (lp48828 S'unknits' p48829 aS'unknitting' p48830 aS'unknitted' p48831 aS'unknitted' p48832 asS'outstrip' p48833 (lp48834 S'outstrips' p48835 aS'outstripping' p48836 aS'outstripped' p48837 aS'outstripped' p48838 asS'disjoint' p48839 (lp48840 S'disjoints' p48841 aS'disjointing' p48842 aS'disjointed' p48843 aS'disjointed' p48844 asS'luminesce' p48845 (lp48846 S'luminesces' p48847 aS'luminescing' p48848 aS'luminesced' p48849 aS'luminesced' p48850 asS'angle' p48851 (lp48852 S'angles' p48853 aS'angling' p48854 aS'angled' p48855 aS'angled' p48856 asS'inform' p48857 (lp48858 S'informs' p48859 aS'informing' p48860 aS'informed' p48861 aS'informed' p48862 asS'rout' p48863 (lp48864 S'routs' p48865 ag23043 ag23044 ag23045 asS'invigilate' p48866 (lp48867 S'invigilates' p48868 aS'invigilating' p48869 aS'invigilated' p48870 aS'invigilated' p48871 asS'roup' p48872 (lp48873 S'roups' p48874 aS'rouping' p48875 aS'rouped' p48876 aS'rouped' p48877 asS'lope' p48878 (lp48879 S'lopes' p48880 aS'loping' p48881 aS'loped' p48882 aS'loped' p48883 asS'deprave' p48884 (lp48885 S'depraves' p48886 aS'depraving' p48887 aS'depraved' p48888 aS'depraved' p48889 asS'divert' p48890 (lp48891 S'diverts' p48892 aS'diverting' p48893 aS'diverted' p48894 aS'diverted' p48895 asS'outpour' p48896 (lp48897 S'outpours' p48898 aS'outpouring' p48899 aS'outpoured' p48900 aS'outpoured' p48901 asS'clash' p48902 (lp48903 S'clashes' p48904 aS'clashing' p48905 aS'clashed' p48906 aS'clashed' p48907 asS'centre' p48908 (lp48909 S'centres' p48910 aS'centring' p48911 aS'centred' p48912 aS'centred' p48913 asS'quitclaim' p48914 (lp48915 S'quitclaims' p48916 aS'quitclaiming' p48917 aS'quitclaimed' p48918 aS'quitclaimed' p48919 asS'invocate' p48920 (lp48921 S'invocates' p48922 aS'invocating' p48923 aS'invocated' p48924 aS'invocated' p48925 asS'filch' p48926 (lp48927 S'filches' p48928 aS'filching' p48929 aS'filched' p48930 aS'filched' p48931 asS'writhen' p48932 (lp48933 S'writhens' p48934 aS'writhening' p48935 aS'writhened' p48936 aS'writhened' p48937 asS'tinplate' p48938 (lp48939 S'tinplates' p48940 aS'tinplating' p48941 aS'tinplated' p48942 aS'tinplated' p48943 asS'delve' p48944 (lp48945 S'delves' p48946 aS'delving' p48947 aS'delved' p48948 aS'delved' p48949 asS'class' p48950 (lp48951 S'classes' p48952 aS'classing' p48953 aS'classed' p48954 aS'classed' p48955 asS'clasp' p48956 (lp48957 S'clasps' p48958 aS'clasping' p48959 aS'clasped' p48960 aS'clasped' p48961 asS'tinct' p48962 (lp48963 S'tincts' p48964 aS'tincting' p48965 aS'tincted' p48966 aS'tincted' p48967 asS'discourage' p48968 (lp48969 S'discourages' p48970 aS'discouraging' p48971 aS'discouraged' p48972 aS'discouraged' p48973 asS'refract' p48974 (lp48975 S'refracts' p48976 aS'refracting' p48977 aS'refracted' p48978 aS'refracted' p48979 asS'dent' p48980 (lp48981 S'dents' p48982 aS'denting' p48983 aS'dented' p48984 aS'dented' p48985 asS'pipe' p48986 (lp48987 S'pipes' p48988 aS'piping' p48989 aS'piped' p48990 aS'piped' p48991 asS'intercross' p48992 (lp48993 S'intercrosses' p48994 aS'intercrossing' p48995 aS'intercrossed' p48996 aS'intercrossed' p48997 asS'stove' p48998 (lp48999 S'stoves' p49000 aS'stoving' p49001 aS'stoved' p49002 aS'stoved' p49003 asS'swizzle' p49004 (lp49005 S'swizzles' p49006 aS'swizzling' p49007 aS'swizzled' p49008 aS'swizzled' p49009 asS'betake' p49010 (lp49011 S'betakes' p49012 aS'betaking' p49013 aS'betook' p49014 aS'betaken' p49015 asS'complot' p49016 (lp49017 S'complots' p49018 aS'complotting' p49019 aS'complotted' p49020 aS'complotted' p49021 asS'fear' p49022 (lp49023 S'fears' p49024 aS'fearing' p49025 aS'feared' p49026 aS'feared' p49027 asS'debate' p49028 (lp49029 S'debates' p49030 aS'debating' p49031 aS'debated' p49032 aS'debated' p49033 asS'vesicate' p49034 (lp49035 S'vesicates' p49036 aS'vesicating' p49037 aS'vesicated' p49038 aS'vesicated' p49039 asS'succour' p49040 (lp49041 S'succours' p49042 aS'succouring' p49043 aS'succoured' p49044 aS'succoured' p49045 asS'manacle' p49046 (lp49047 S'manacles' p49048 aS'manacling' p49049 aS'manacled' p49050 aS'manacled' p49051 asS'filiate' p49052 (lp49053 S'filiates' p49054 aS'filiating' p49055 aS'filiated' p49056 aS'filiated' p49057 asS'reminisce' p49058 (lp49059 S'reminisces' p49060 aS'reminiscing' p49061 aS'reminisced' p49062 aS'reminisced' p49063 asS'freeload' p49064 (lp49065 S'freeloads' p49066 aS'freeloading' p49067 aS'freeloaded' p49068 aS'freeloaded' p49069 asS're-echo' p49070 (lp49071 S're-echoes' p49072 aS're-echoing' p49073 aS're-echoed' p49074 aS're-echoed' p49075 asS'herald' p49076 (lp49077 S'heralds' p49078 aS'heralding' p49079 aS'heralded' p49080 aS'heralded' p49081 asS'inhabit' p49082 (lp49083 S'inhabits' p49084 aS'inhabiting' p49085 aS'inhabited' p49086 aS'inhabited' p49087 asS'outsell' p49088 (lp49089 S'outsells' p49090 aS'outselling' p49091 aS'outsold' p49092 aS'outsold' p49093 asS'prosecute' p49094 (lp49095 S'prosecutes' p49096 aS'prosecuting' p49097 aS'prosecuted' p49098 aS'prosecuted' p49099 asS'winterize' p49100 (lp49101 S'winterizes' p49102 aS'winterizing' p49103 aS'winterized' p49104 aS'winterized' p49105 asS'cube' p49106 (lp49107 S'cubes' p49108 aS'cubing' p49109 aS'cubed' p49110 aS'cubed' p49111 asS'topple' p49112 (lp49113 S'topples' p49114 aS'toppling' p49115 aS'toppled' p49116 aS'toppled' p49117 asS'skimp' p49118 (lp49119 S'skimps' p49120 aS'skimping' p49121 aS'skimped' p49122 aS'skimped' p49123 asS'dope' p49124 (lp49125 S'dopes' p49126 aS'doping' p49127 aS'doped' p49128 aS'doped' p49129 asS'massacre' p49130 (lp49131 S'massacres' p49132 aS'massacring' p49133 aS'massacred' p49134 aS'massacred' p49135 asS'blare' p49136 (lp49137 S'blares' p49138 aS'blaring' p49139 aS'blared' p49140 aS'blared' p49141 asS'penetrate' p49142 (lp49143 S'penetrates' p49144 aS'penetrating' p49145 aS'penetrated' p49146 aS'penetrated' p49147 asS'isochronize' p49148 (lp49149 S'isochronizes' p49150 aS'isochronizing' p49151 aS'isochronized' p49152 aS'isochronized' p49153 asS'swindle' p49154 (lp49155 S'swindles' p49156 aS'swindling' p49157 aS'swindled' p49158 aS'swindled' p49159 asS'anatomize' p49160 (lp49161 S'anatomizes' p49162 aS'anatomizing' p49163 aS'anatomized' p49164 aS'anatomized' p49165 asS'cotter' p49166 (lp49167 S'cotters' p49168 aS'cottering' p49169 aS'cottered' p49170 aS'cottered' p49171 asS'bisect' p49172 (lp49173 S'bisects' p49174 aS'bisecting' p49175 aS'bisected' p49176 aS'bisected' p49177 asS'postil' p49178 (lp49179 S'postils' p49180 aS'postiling' p49181 aS'postiled' p49182 aS'postiled' p49183 asS'compliment' p49184 (lp49185 S'compliments' p49186 aS'complimenting' p49187 aS'complimented' p49188 aS'complimented' p49189 asS'ascertain' p49190 (lp49191 S'ascertains' p49192 aS'ascertaining' p49193 aS'ascertained' p49194 aS'ascertained' p49195 asS'editorialize' p49196 (lp49197 S'editorializes' p49198 aS'editorializing' p49199 aS'editorialized' p49200 aS'editorialized' p49201 asS'view' p49202 (lp49203 S'views' p49204 aS'viewing' p49205 aS'viewed' p49206 aS'viewed' p49207 asS'premiss' p49208 (lp49209 S'premisses' p49210 aS'premissing' p49211 aS'premissed' p49212 aS'premissed' p49213 asS'ebb' p49214 (lp49215 S'ebbs' p49216 aS'ebbing' p49217 aS'ebbed' p49218 aS'ebbed' p49219 asS'expel' p49220 (lp49221 S'expels' p49222 aS'expelling' p49223 aS'expelled' p49224 aS'expelled' p49225 asS'grieve' p49226 (lp49227 S'grieves' p49228 aS'grieving' p49229 aS'grieved' p49230 aS'grieved' p49231 asS'gerrymander' p49232 (lp49233 S'gerrymanders' p49234 aS'gerrymandering' p49235 aS'gerrymandered' p49236 aS'gerrymandered' p49237 asS'crossruff' p49238 (lp49239 S'crossruffs' p49240 aS'crossruffing' p49241 aS'crossruffed' p49242 aS'crossruffed' p49243 asS'lapidate' p49244 (lp49245 S'lapidates' p49246 aS'lapidating' p49247 aS'lapidated' p49248 aS'lapidated' p49249 asS'closet' p49250 (lp49251 S'closets' p49252 aS'closeting' p49253 aS'closeted' p49254 aS'closeted' p49255 asS'enamour' p49256 (lp49257 S'enamours' p49258 aS'enamouring' p49259 aS'enamoured' p49260 aS'enamoured' p49261 asS'diverge' p49262 (lp49263 S'diverges' p49264 aS'diverging' p49265 aS'diverged' p49266 aS'diverged' p49267 asS'torpedo' p49268 (lp49269 S'torpedos' p49270 aS'torpedoing' p49271 aS'torpedoed' p49272 aS'torpedoed' p49273 asS'whipstitch' p49274 (lp49275 S'whipstitches' p49276 aS'whipstitching' p49277 aS'whipstitched' p49278 aS'whipstitched' p49279 asS'flitch' p49280 (lp49281 S'flitches' p49282 aS'flitching' p49283 aS'flitched' p49284 aS'flitched' p49285 asS'avow' p49286 (lp49287 S'avows' p49288 aS'avowing' p49289 aS'avowed' p49290 aS'avowed' p49291 asS'jot' p49292 (lp49293 S'jots' p49294 aS'jotting' p49295 aS'jotted' p49296 aS'jotted' p49297 asS'overdevelop' p49298 (lp49299 S'overdevelops' p49300 aS'overdeveloping' p49301 aS'overdeveloped' p49302 aS'overdeveloped' p49303 asS'joy' p49304 (lp49305 S'joys' p49306 aS'joying' p49307 aS'joyed' p49308 aS'joyed' p49309 asS'uprouse' p49310 (lp49311 S'uprouses' p49312 aS'uprousing' p49313 aS'uproused' p49314 aS'uproused' p49315 asS'job' p49316 (lp49317 S'jobs' p49318 aS'jobbing' p49319 aS'jobbed' p49320 aS'jobbed' p49321 asS'joggle' p49322 (lp49323 S'joggles' p49324 aS'joggling' p49325 aS'joggled' p49326 aS'joggled' p49327 asS'depolymerize' p49328 (lp49329 S'depolymerizes' p49330 aS'depolymerizing' p49331 aS'depolymerized' p49332 aS'depolymerized' p49333 asS'spoil' p49334 (lp49335 S'spoils' p49336 aS'spoiling' p49337 aS'spoilt' p49338 aS'spoilt' p49339 asS'jog' p49340 (lp49341 S'jogs' p49342 aS'jogging' p49343 aS'jogged' p49344 aS'jogged' p49345 asS'disallow' p49346 (lp49347 S'disallows' p49348 aS'disallowing' p49349 aS'disallowed' p49350 aS'disallowed' p49351 asS'stucco' p49352 (lp49353 S'stuccos' p49354 aS'stuccoing' p49355 aS'stuccoed' p49356 aS'stuccoed' p49357 asS'stagemanage' p49358 (lp49359 S'stagemanages' p49360 aS'stagemanaging' p49361 aS'stagemanaged' p49362 aS'stagemanaged' p49363 asS'outshoot' p49364 (lp49365 S'outshoots' p49366 aS'outshooting' p49367 aS'outshot' p49368 aS'outshot' p49369 asS'disestablish' p49370 (lp49371 S'disestablishes' p49372 aS'disestablishing' p49373 aS'disestablished' p49374 aS'disestablished' p49375 asS'demulsify' p49376 (lp49377 S'demulsifies' p49378 aS'demulsifying' p49379 aS'demulsified' p49380 aS'demulsified' p49381 asS'grain' p49382 (lp49383 S'grains' p49384 aS'graining' p49385 aS'grained' p49386 aS'grained' p49387 asS'retrograde' p49388 (lp49389 S'retrogrades' p49390 aS'retrograding' p49391 aS'retrograded' p49392 aS'retrograded' p49393 asS'tousle' p49394 (lp49395 S'tousles' p49396 aS'tousling' p49397 aS'tousled' p49398 aS'tousled' p49399 asS'canopy' p49400 (lp49401 S'canopies' p49402 aS'canopying' p49403 aS'canopied' p49404 aS'canopied' p49405 asS'wale' p49406 (lp49407 S'wales' p49408 aS'waling' p49409 aS'waled' p49410 aS'waled' p49411 asS'dement' p49412 (lp49413 S'dements' p49414 aS'dementing' p49415 aS'demented' p49416 aS'demented' p49417 asS'munition' p49418 (lp49419 S'munitions' p49420 aS'munitioning' p49421 aS'munitioned' p49422 aS'munitioned' p49423 asS'wall' p49424 (lp49425 S'walls' p49426 aS'walling' p49427 aS'walled' p49428 aS'walled' p49429 asS'immunize' p49430 (lp49431 S'immunizes' p49432 aS'immunizing' p49433 aS'immunized' p49434 aS'immunized' p49435 asS'walk' p49436 (lp49437 S'walks' p49438 aS'walking' p49439 aS'walked' p49440 aS'walked' p49441 asS'subscribe' p49442 (lp49443 S'subscribes' p49444 aS'subscribing' p49445 aS'subscribed' p49446 aS'subscribed' p49447 asS'coddle' p49448 (lp49449 S'coddles' p49450 aS'coddling' p49451 aS'coddled' p49452 aS'coddled' p49453 asS'predestinate' p49454 (lp49455 S'predestinates' p49456 aS'predestinating' p49457 aS'predestinated' p49458 aS'predestinated' p49459 asS'transubstantiate' p49460 (lp49461 S'transubstantiates' p49462 aS'transubstantiating' p49463 aS'transubstantiated' p49464 aS'transubstantiated' p49465 asS'trademark' p49466 (lp49467 S'trademarks' p49468 aS'trademarking' p49469 aS'trademarked' p49470 aS'trademarked' p49471 asS'enchain' p49472 (lp49473 S'enchains' p49474 aS'enchaining' p49475 aS'enchained' p49476 aS'enchained' p49477 asS'tutor' p49478 (lp49479 S'tutors' p49480 aS'tutoring' p49481 aS'tutored' p49482 aS'tutored' p49483 asS'catechize' p49484 (lp49485 S'catechizes' p49486 aS'catechizing' p49487 aS'catechized' p49488 aS'catechized' p49489 asS'bottlefeed' p49490 (lp49491 S'bottlefeeds' p49492 aS'bottlefeeding' p49493 aS'bottlefed' p49494 aS'bottlefed' p49495 asS'mike' p49496 (lp49497 S'mikes' p49498 aS'miking' p49499 aS'miked' p49500 aS'miked' p49501 asS'nickel' p49502 (lp49503 S'nickels' p49504 aS'nickelling' p49505 aS'nickelled' p49506 aS'nickelled' p49507 asS'tap' p49508 (lp49509 S'taps' p49510 aS'tapping' p49511 aS'tapped' p49512 aS'tapped' p49513 asS'twinge' p49514 (lp49515 S'twinges' p49516 aS'twinging' p49517 aS'twinged' p49518 aS'twinged' p49519 asS'overture' p49520 (lp49521 S'overtures' p49522 aS'overturing' p49523 aS'overtured' p49524 aS'overtured' p49525 asS'nicker' p49526 (lp49527 S'nickers' p49528 aS'nickering' p49529 aS'nickered' p49530 aS'nickered' p49531 asS'overturn' p49532 (lp49533 S'overturns' p49534 aS'overturning' p49535 aS'overturned' p49536 aS'overturned' p49537 asS'present' p49538 (lp49539 S'presents' p49540 aS'presenting' p49541 aS'presented' p49542 aS'presented' p49543 asS'twist' p49544 (lp49545 S'twists' p49546 aS'twisting' p49547 aS'twisted' p49548 aS'twisted' p49549 asS'corset' p49550 (lp49551 S'corsets' p49552 aS'corseting' p49553 aS'corseted' p49554 aS'corseted' p49555 asS'sanctify' p49556 (lp49557 S'sanctifies' p49558 aS'sanctifying' p49559 aS'sanctified' p49560 aS'sanctified' p49561 asS'wilt' p49562 (lp49563 S'wilts' p49564 aS'wilting' p49565 aS'wilted' p49566 aS'wilted' p49567 asS'exclaim' p49568 (lp49569 S'exclaims' p49570 aS'exclaiming' p49571 aS'exclaimed' p49572 aS'exclaimed' p49573 asS'will' p49574 (lp49575 S'willing' p49576 aS'willed' p49577 aS'willed' p49578 aS"won't" p49579 asS'ensconce' p49580 (lp49581 S'ensconces' p49582 aS'ensconcing' p49583 aS'ensconced' p49584 aS'ensconced' p49585 asS'wile' p49586 (lp49587 S'wiles' p49588 aS'wiling' p49589 aS'wiled' p49590 aS'wiled' p49591 asS'rename' p49592 (lp49593 S'renames' p49594 aS'renaming' p49595 aS'renamed' p49596 aS'renamed' p49597 asS'hobbyhorse' p49598 (lp49599 S'hobbyhorses' p49600 aS'hobbyhorsing' p49601 aS'hobbyhorsed' p49602 aS'hobbyhorsed' p49603 asS'layer' p49604 (lp49605 sS'apprehend' p49606 (lp49607 S'apprehends' p49608 aS'apprehending' p49609 aS'apprehended' p49610 aS'apprehended' p49611 asS'wrongfoot' p49612 (lp49613 S'wrongfoots' p49614 aS'wrongfooting' p49615 aS'wrongfooted' p49616 aS'wrongfooted' p49617 asS'disapprove' p49618 (lp49619 S'disapproves' p49620 aS'disapproving' p49621 aS'disapproved' p49622 aS'disapproved' p49623 asS'thud' p49624 (lp49625 S'thuds' p49626 aS'thudding' p49627 aS'thudded' p49628 aS'thudded' p49629 asS'whore' p49630 (lp49631 S'whores' p49632 aS'whoring' p49633 aS'whored' p49634 aS'whored' p49635 asS'hocus' p49636 (lp49637 S'hocuses' p49638 aS'hocusing' p49639 aS'hocused' p49640 aS'hocused' p49641 asS'vintage' p49642 (lp49643 S'vintages' p49644 aS'vintaging' p49645 aS'vintaged' p49646 aS'vintaged' p49647 asS'subcontract' p49648 (lp49649 S'subcontracts' p49650 aS'subcontracting' p49651 aS'subcontracted' p49652 aS'subcontracted' p49653 asS'cross' p49654 (lp49655 S'crosses' p49656 aS'crossing' p49657 aS'crossed' p49658 aS'crossed' p49659 asS'unite' p49660 (lp49661 S'unites' p49662 aS'uniting' p49663 aS'united' p49664 aS'united' p49665 asS'clinker' p49666 (lp49667 S'clinkers' p49668 aS'clinkering' p49669 aS'clinkered' p49670 aS'clinkered' p49671 asS'scamp' p49672 (lp49673 S'scamps' p49674 aS'scamping' p49675 aS'scamped' p49676 aS'scamped' p49677 asS'maculate' p49678 (lp49679 S'maculates' p49680 aS'maculating' p49681 aS'maculated' p49682 aS'maculated' p49683 asS'slave' p49684 (lp49685 S'slaves' p49686 aS'slaving' p49687 aS'slaved' p49688 aS'slaved' p49689 asS'recline' p49690 (lp49691 S'reclines' p49692 aS'reclining' p49693 aS'reclined' p49694 aS'reclined' p49695 asS'disagree' p49696 (lp49697 S'disagrees' p49698 aS'disagreeing' p49699 aS'disagreed' p49700 aS'disagreed' p49701 asS'pestle' p49702 (lp49703 S'pestles' p49704 aS'pestling' p49705 aS'pestled' p49706 aS'pestled' p49707 asS'pedal' p49708 (lp49709 S'pedals' p49710 aS'pedaling' p49711 aS'pedaled' p49712 aS'pedaled' p49713 asS'whale' p49714 (lp49715 S'whales' p49716 aS'whaling' p49717 aS'whaled' p49718 aS'whaled' p49719 asS'lobby' p49720 (lp49721 S'lobbies' p49722 aS'lobbying' p49723 aS'lobbied' p49724 aS'lobbied' p49725 asS'gutter' p49726 (lp49727 S'gutters' p49728 aS'guttering' p49729 aS'guttered' p49730 aS'guttered' p49731 asS'splint' p49732 (lp49733 S'splints' p49734 aS'splinting' p49735 aS'splinted' p49736 aS'splinted' p49737 asS'stablish' p49738 (lp49739 S'stablishes' p49740 aS'stablishing' p49741 aS'stablished' p49742 aS'stablished' p49743 asS'overwork' p49744 (lp49745 S'overworks' p49746 aS'overworking' p49747 aS'overworked' p49748 aS'overworked' p49749 asS'perpetrate' p49750 (lp49751 S'perpetrates' p49752 aS'perpetrating' p49753 aS'perpetrated' p49754 aS'perpetrated' p49755 asS'scissor' p49756 (lp49757 S'scissors' p49758 aS'scissoring' p49759 aS'scissored' p49760 aS'scissored' p49761 asS'demonize' p49762 (lp49763 S'demonizes' p49764 aS'demonizing' p49765 aS'demonized' p49766 aS'demonized' p49767 asS'hale' p49768 (lp49769 S'hales' p49770 aS'haling' p49771 aS'haled' p49772 aS'haled' p49773 asS'outgrow' p49774 (lp49775 S'outgrows' p49776 aS'outgrowing' p49777 aS'outgrew' p49778 aS'outgrown' p49779 asS'rocket' p49780 (lp49781 S'rockets' p49782 aS'rocketing' p49783 aS'rocketed' p49784 aS'rocketed' p49785 asS'obtain' p49786 (lp49787 S'obtains' p49788 aS'obtaining' p49789 aS'obtained' p49790 aS'obtained' p49791 asS'replenish' p49792 (lp49793 S'replenishes' p49794 aS'replenishing' p49795 aS'replenished' p49796 aS'replenished' p49797 asS'mythicize' p49798 (lp49799 S'mythicizes' p49800 aS'mythicizing' p49801 aS'mythicized' p49802 aS'mythicized' p49803 asS'faceharden' p49804 (lp49805 S'facehardens' p49806 aS'facehardening' p49807 aS'facehardened' p49808 aS'facehardened' p49809 asS'distend' p49810 (lp49811 S'distends' p49812 aS'distending' p49813 aS'distended' p49814 aS'distended' p49815 asS'smite' p49816 (lp49817 S'smites' p49818 aS'smiting' p49819 aS'smited' p49820 aS'smitten' p49821 asS'console' p49822 (lp49823 S'consoles' p49824 aS'consoling' p49825 aS'consoled' p49826 aS'consoled' p49827 asS'reprehend' p49828 (lp49829 S'reprehends' p49830 aS'reprehending' p49831 aS'reprehended' p49832 aS'reprehended' p49833 asS'supply' p49834 (lp49835 S'supplies' p49836 aS'supplying' p49837 aS'supplied' p49838 aS'supplied' p49839 asS'sky' p49840 (lp49841 S'skies' p49842 aS'skying' p49843 aS'skied' p49844 aS'skied' p49845 asS'halo' p49846 (lp49847 S'halos' p49848 aS'haloing' p49849 aS'haloed' p49850 aS'haloed' p49851 asS'smart' p49852 (lp49853 S'smarts' p49854 aS'smarting' p49855 aS'smarted' p49856 aS'smarted' p49857 asS'ski' p49858 (lp49859 S'skis' p49860 aS'skiing' p49861 ag49844 aS"ski'd" p49862 asS'empoison' p49863 (lp49864 S'empoisons' p49865 aS'empoisoning' p49866 aS'empoisoned' p49867 aS'empoisoned' p49868 asS'ambulate' p49869 (lp49870 S'ambulates' p49871 aS'ambulating' p49872 aS'ambulated' p49873 aS'ambulated' p49874 asS'knob' p49875 (lp49876 S'knobs' p49877 aS'knobbing' p49878 aS'knobbed' p49879 aS'knobbed' p49880 asS'te-hee' p49881 (lp49882 S'te-hees' p49883 aS'te-heeing' p49884 aS'te-heed' p49885 aS'te-heed' p49886 asS'quartersaw' p49887 (lp49888 S'quartersaws' p49889 aS'quartersawing' p49890 aS'quartersawed' p49891 aS'quartersawed' p49892 asS'masquerade' p49893 (lp49894 S'masquerades' p49895 aS'masquerading' p49896 aS'masqueraded' p49897 aS'masqueraded' p49898 asS'term' p49899 (lp49900 S'terms' p49901 aS'terming' p49902 aS'termed' p49903 aS'termed' p49904 asS'overmaster' p49905 (lp49906 S'overmasters' p49907 aS'overmastering' p49908 aS'overmastered' p49909 aS'overmastered' p49910 asS'know' p49911 (lp49912 S'knows' p49913 aS'knowing' p49914 aS'knew' p49915 aS'known' p49916 asS'exsanguinate' p49917 (lp49918 S'exsanguinates' p49919 aS'exsanguinating' p49920 aS'exsanguinated' p49921 aS'exsanguinated' p49922 asS'press' p49923 (lp49924 S'presses' p49925 aS'pressing' p49926 aS'pressed' p49927 aS'pressed' p49928 asS'redesign' p49929 (lp49930 S'redesigns' p49931 aS'redesigning' p49932 aS'redesigned' p49933 aS'redesigned' p49934 asS'hollow' p49935 (lp49936 S'hollows' p49937 aS'hollowing' p49938 aS'hollowed' p49939 aS'hollowed' p49940 asS'mongrelize' p49941 (lp49942 S'mongrelizes' p49943 aS'mongrelizing' p49944 aS'mongrelized' p49945 aS'mongrelized' p49946 asS'calliper' p49947 (lp49948 S'callipers' p49949 aS'callipering' p49950 aS'callipered' p49951 aS'callipered' p49952 asS'unthrone' p49953 (lp49954 S'unthrones' p49955 aS'unthroning' p49956 aS'unthroned' p49957 aS'unthroned' p49958 asS'hitchhike' p49959 (lp49960 S'hitchhikes' p49961 aS'hitchhiking' p49962 aS'hitchhiked' p49963 aS'hitchhiked' p49964 asS'apostrophize' p49965 (lp49966 S'apostrophizes' p49967 aS'apostrophizing' p49968 aS'apostrophized' p49969 aS'apostrophized' p49970 asS'exceed' p49971 (lp49972 S'exceeds' p49973 aS'exceeding' p49974 aS'exceeded' p49975 aS'exceeded' p49976 asS'tumble' p49977 (lp49978 S'tumbles' p49979 aS'tumbling' p49980 aS'tumbled' p49981 aS'tumbled' p49982 asS'holler' p49983 (lp49984 S'hollers' p49985 aS'hollering' p49986 aS'hollered' p49987 aS'hollered' p49988 asS'earwig' p49989 (lp49990 S'earwigs' p49991 aS'earwigging' p49992 aS'earwigged' p49993 aS'earwigged' p49994 asS'leaf' p49995 (lp49996 S'leafs' p49997 aS'leafing' p49998 aS'leafed' p49999 aS'leafed' p50000 asS'lead' p50001 (lp50002 S'leads' p50003 aS'leading' p50004 aS'led' p50005 aS'led' p50006 asS'leak' p50007 (lp50008 S'leaks' p50009 aS'leaking' p50010 aS'leaked' p50011 aS'leaked' p50012 asS'skelp' p50013 (lp50014 S'skelps' p50015 aS'skelping' p50016 aS'skelped' p50017 aS'skelped' p50018 asS'lean' p50019 (lp50020 S'leans' p50021 aS'leaning' p50022 aS'leant' p50023 aS'leant' p50024 asS'thank' p50025 (lp50026 S'thanks' p50027 aS'thanking' p50028 aS'thanked' p50029 aS'thanked' p50030 asS'handfast' p50031 (lp50032 S'handfasts' p50033 aS'handfasting' p50034 aS'handfasted' p50035 aS'handfasted' p50036 asS'leap' p50037 (lp50038 S'leaps' p50039 aS'leaping' p50040 aS'leapt' p50041 aS'leapt' p50042 asS'belt' p50043 (lp50044 S'belts' p50045 aS'belting' p50046 aS'belted' p50047 aS'belted' p50048 asS'locate' p50049 (lp50050 S'locates' p50051 aS'locating' p50052 aS'located' p50053 aS'located' p50054 asS'obey' p50055 (lp50056 S'obeys' p50057 aS'obeying' p50058 aS'obeyed' p50059 aS'obeyed' p50060 asS'slur' p50061 (lp50062 S'slurs' p50063 aS'slurring' p50064 aS'slurred' p50065 aS'slurred' p50066 asS'slum' p50067 (lp50068 S'slums' p50069 aS'slumming' p50070 aS'slummed' p50071 aS'slummed' p50072 asS'paste' p50073 (lp50074 S'pastes' p50075 ag6555 ag6556 ag6557 asS'slug' p50076 (lp50077 S'slugs' p50078 aS'slugging' p50079 aS'slugged' p50080 aS'slugged' p50081 asS'reward' p50082 (lp50083 S'rewards' p50084 aS'rewarding' p50085 aS'rewarded' p50086 aS'rewarded' p50087 asS'throne' p50088 (lp50089 S'thrones' p50090 aS'throning' p50091 aS'throned' p50092 aS'throned' p50093 asS'pike' p50094 (lp50095 S'pikes' p50096 aS'piking' p50097 aS'piked' p50098 aS'piked' p50099 asS'throng' p50100 (lp50101 S'throngs' p50102 aS'thronging' p50103 aS'thronged' p50104 aS'thronged' p50105 asS'plane-table' p50106 (lp50107 S'plane-tables' p50108 aS'plane-tabling' p50109 aS'plane-tabled' p50110 aS'plane-tabled' p50111 asS'linger' p50112 (lp50113 S'lingers' p50114 aS'lingering' p50115 aS'lingered' p50116 aS'lingered' p50117 asS'hookup' p50118 (lp50119 S'hookups' p50120 aS'hookuping' p50121 aS'hookuped' p50122 aS'hookuped' p50123 asS'surge' p50124 (lp50125 S'surges' p50126 aS'surging' p50127 aS'surged' p50128 aS'surged' p50129 asS'swear' p50130 (lp50131 S'swears' p50132 aS'swearing' p50133 aS'swore' p50134 aS'sworn' p50135 asS'prestress' p50136 (lp50137 S'prestresses' p50138 aS'prestressing' p50139 aS'prestressed' p50140 aS'prestressed' p50141 asS'bugle' p50142 (lp50143 S'bugles' p50144 aS'bugling' p50145 aS'bugled' p50146 aS'bugled' p50147 asS'own' p50148 (lp50149 S'owns' p50150 aS'owning' p50151 aS'owned' p50152 aS'owned' p50153 asS'owe' p50154 (lp50155 S'owes' p50156 aS'owing' p50157 aS'owed' p50158 aS'owed' p50159 asS'cocker' p50160 (lp50161 S'cockers' p50162 aS'cockering' p50163 aS'cockered' p50164 aS'cockered' p50165 asS'champ' p50166 (lp50167 S'champs' p50168 aS'champing' p50169 aS'champed' p50170 aS'champed' p50171 asS'brush' p50172 (lp50173 S'brushes' p50174 aS'brushing' p50175 aS'brushed' p50176 aS'brushed' p50177 asS'outdate' p50178 (lp50179 S'outdates' p50180 aS'outdating' p50181 aS'outdated' p50182 aS'outdated' p50183 asS'negate' p50184 (lp50185 S'negates' p50186 aS'negating' p50187 aS'negated' p50188 aS'negated' p50189 asS'gurgle' p50190 (lp50191 S'gurgles' p50192 aS'gurgling' p50193 aS'gurgled' p50194 aS'gurgled' p50195 asS'stellify' p50196 (lp50197 S'stellifies' p50198 aS'stellifying' p50199 aS'stellified' p50200 aS'stellified' p50201 asS'limn' p50202 (lp50203 S'limns' p50204 aS'limning' p50205 aS'limned' p50206 aS'limned' p50207 asS'single-tongue' p50208 (lp50209 S'single-tongues' p50210 aS'single-tonguing' p50211 aS'single-tongued' p50212 aS'single-tongued' p50213 asS'transfer' p50214 (lp50215 S'transfers' p50216 aS'transferring' p50217 aS'transferred' p50218 aS'transferred' p50219 asS'spiral' p50220 (lp50221 S'spirals' p50222 aS'spiralling' p50223 aS'spiralled' p50224 aS'spiralled' p50225 asS'overtime' p50226 (lp50227 S'overtimes' p50228 aS'overtiming' p50229 aS'overtimed' p50230 aS'overtimed' p50231 asS'unreason' p50232 (lp50233 S'unreasons' p50234 aS'unreasoning' p50235 aS'unreasoned' p50236 aS'unreasoned' p50237 asS'dynamite' p50238 (lp50239 S'dynamites' p50240 aS'dynamiting' p50241 aS'dynamited' p50242 aS'dynamited' p50243 asS'vat' p50244 (lp50245 S'vats' p50246 aS'vatting' p50247 aS'vatted' p50248 aS'vatted' p50249 asS'nourish' p50250 (lp50251 S'nourishes' p50252 aS'nourishing' p50253 aS'nourished' p50254 aS'nourished' p50255 asS'shank' p50256 (lp50257 S'shanks' p50258 aS'shanking' p50259 aS'shanked' p50260 aS'shanked' p50261 asS'unwrap' p50262 (lp50263 S'unwraps' p50264 aS'unwrapping' p50265 aS'unwrapped' p50266 aS'unwrapped' p50267 asS'mutter' p50268 (lp50269 S'mutters' p50270 aS'muttering' p50271 aS'muttered' p50272 aS'muttered' p50273 asS'assail' p50274 (lp50275 S'assails' p50276 aS'assailing' p50277 aS'assailed' p50278 aS'assailed' p50279 asS'squeeze' p50280 (lp50281 S'squeezes' p50282 aS'squeezing' p50283 aS'squeezed' p50284 aS'squeezed' p50285 asS'goose' p50286 (lp50287 S'gooses' p50288 aS'goosing' p50289 aS'goosed' p50290 aS'goosed' p50291 asS'embolden' p50292 (lp50293 S'emboldens' p50294 aS'emboldening' p50295 aS'emboldened' p50296 aS'emboldened' p50297 asS'recede' p50298 (lp50299 S'recedes' p50300 aS'receding' p50301 ag3443 aS'receded' p50302 asS'distract' p50303 (lp50304 S'distracts' p50305 aS'distracting' p50306 aS'distracted' p50307 aS'distracted' p50308 asS'retool' p50309 (lp50310 S'retools' p50311 aS'retooling' p50312 aS'retooled' p50313 aS'retooled' p50314 asS'record' p50315 (lp50316 S'records' p50317 aS'recording' p50318 aS'recorded' p50319 aS'recorded' p50320 asS'supplant' p50321 (lp50322 S'supplants' p50323 aS'supplanting' p50324 aS'supplanted' p50325 aS'supplanted' p50326 asS'cake' p50327 (lp50328 S'cakes' p50329 aS'caking' p50330 aS'caked' p50331 aS'caked' p50332 asS'demonstrate' p50333 (lp50334 S'demonstrates' p50335 aS'demonstrating' p50336 aS'demonstrated' p50337 aS'demonstrated' p50338 asS'hornswoggle' p50339 (lp50340 S'hornswoggles' p50341 aS'hornswoggling' p50342 aS'hornswoggled' p50343 aS'hornswoggled' p50344 asS'bewail' p50345 (lp50346 S'bewails' p50347 aS'bewailing' p50348 aS'bewailed' p50349 aS'bewailed' p50350 asS'affranchise' p50351 (lp50352 S'affranchises' p50353 aS'affranchising' p50354 aS'affranchised' p50355 aS'affranchised' p50356 asS'nobble' p50357 (lp50358 S'nobbles' p50359 aS'nobbling' p50360 aS'nobbled' p50361 aS'nobbled' p50362 asS'maroon' p50363 (lp50364 S'maroons' p50365 aS'marooning' p50366 aS'marooned' p50367 aS'marooned' p50368 asS'happen' p50369 (lp50370 S'happens' p50371 aS'happening' p50372 aS'happened' p50373 aS'happened' p50374 asS'immobilize' p50375 (lp50376 S'immobilizes' p50377 aS'immobilizing' p50378 aS'immobilized' p50379 aS'immobilized' p50380 asS'wimple' p50381 (lp50382 S'wimples' p50383 aS'wimpling' p50384 aS'wimpled' p50385 aS'wimpled' p50386 asS'glint' p50387 (lp50388 S'glints' p50389 aS'glinting' p50390 aS'glinted' p50391 aS'glinted' p50392 asS'boot' p50393 (lp50394 S'boots' p50395 aS'booting' p50396 aS'booted' p50397 aS'booted' p50398 asS'portion' p50399 (lp50400 S'portions' p50401 aS'portioning' p50402 aS'portioned' p50403 aS'portioned' p50404 asS'tessellate' p50405 (lp50406 S'tessellates' p50407 aS'tessellating' p50408 aS'tessellated' p50409 aS'tessellated' p50410 asS'book' p50411 (lp50412 S'books' p50413 aS'booking' p50414 aS'booked' p50415 aS'booked' p50416 asS'boom' p50417 (lp50418 S'booms' p50419 aS'booming' p50420 aS'boomed' p50421 aS'boomed' p50422 asS'branch' p50423 (lp50424 S'branches' p50425 aS'branching' p50426 aS'branched' p50427 aS'branched' p50428 asS'disproportion' p50429 (lp50430 S'disproportions' p50431 aS'disproportioning' p50432 aS'disproportioned' p50433 aS'disproportioned' p50434 asS'repute' p50435 (lp50436 S'reputes' p50437 aS'reputing' p50438 aS'reputed' p50439 aS'reputed' p50440 asS'boob' p50441 (lp50442 S'boobs' p50443 aS'boobing' p50444 aS'boobed' p50445 aS'boobed' p50446 asS'pantomime' p50447 (lp50448 S'pantomimes' p50449 aS'pantomiming' p50450 aS'pantomimed' p50451 aS'pantomimed' p50452 asS'lance' p50453 (lp50454 S'lances' p50455 aS'lancing' p50456 aS'lanced' p50457 aS'lanced' p50458 asS'junk' p50459 (lp50460 S'junks' p50461 aS'junking' p50462 aS'junked' p50463 aS'junked' p50464 asS'mulch' p50465 (lp50466 S'mulches' p50467 aS'mulching' p50468 aS'mulched' p50469 aS'mulched' p50470 asS'auscultate' p50471 (lp50472 S'auscultates' p50473 aS'auscultating' p50474 aS'auscultated' p50475 aS'auscultated' p50476 asS'frustrate' p50477 (lp50478 S'frustrates' p50479 aS'frustrating' p50480 aS'frustrated' p50481 aS'frustrated' p50482 asS'mulct' p50483 (lp50484 S'mulcts' p50485 aS'mulcting' p50486 aS'mulcted' p50487 aS'mulcted' p50488 asS'squeak' p50489 (lp50490 S'squeaks' p50491 aS'squeaking' p50492 aS'squeaked' p50493 aS'squeaked' p50494 asS'squeal' p50495 (lp50496 S'squeals' p50497 aS'squealing' p50498 aS'squealed' p50499 aS'squealed' p50500 asS'extort' p50501 (lp50502 S'extorts' p50503 aS'extorting' p50504 aS'extorted' p50505 aS'extorted' p50506 asS'highhat' p50507 (lp50508 S'highhats' p50509 aS'highhatting' p50510 aS'highhatted' p50511 aS'highhatted' p50512 asS'sass' p50513 (lp50514 S'sasses' p50515 aS'sassing' p50516 aS'sassed' p50517 aS'sassed' p50518 asS'unbridle' p50519 (lp50520 S'unbridles' p50521 aS'unbridling' p50522 aS'unbridled' p50523 aS'unbridled' p50524 asS'jewel' p50525 (lp50526 S'jewels' p50527 aS'jewelling' p50528 aS'jewelled' p50529 aS'jewelled' p50530 asS'understand' p50531 (lp50532 S'understands' p50533 aS'understanding' p50534 aS'understood' p50535 aS'understood' p50536 asS'sash' p50537 (lp50538 S'sashes' p50539 aS'sashing' p50540 aS'sashed' p50541 aS'sashed' p50542 asS'inspan' p50543 (lp50544 S'inspans' p50545 aS'inspanning' p50546 aS'inspanned' p50547 aS'inspanned' p50548 as. ================================================ FILE: corpkit/dictionaries/process_types.py ================================================ #!/usr/bin/python # dictionaries: process type wordlists # Author: Daniel McDonald # make regular expressions and lists of inflected words from word lists try: from corpkit.lazyprop import lazyprop except: import corpkit from lazyprop import lazyprop def _verbs(): import corpkit from corpkit.dictionaries.verblist import allverbs verblist = [i for i in allverbs if '_' not in i] return Wordlist(verblist) def load_verb_data(): """load the verb lexicon""" def resource_path(relative): """seemingly not working""" import os return os.path.join(os.environ.get("_MEIPASS2", os.path.abspath(".")), relative) import os import corpkit import pickle from corpkit.process import get_gui_resource_dir corpath = os.path.dirname(corpkit.__file__) baspat = os.path.dirname(corpath) dicpath = os.path.join(baspat, 'dictionaries') lastpath = os.path.join(baspat, 'corpkit', 'dictionaries') paths_to_check = [resource_path('eng_verb_lexicon.p'), os.path.join(dicpath, 'eng_verb_lexicon.p'), os.path.join(get_gui_resource_dir(), 'eng_verb_lexicon.p'), os.path.join(lastpath, 'eng_verb_lexicon.p')] for p in paths_to_check: try: return pickle.load(open(p, 'rb')) except: pass return def find_lexeme(verb): """ For a regular verb (base form), returns the forms using a rule-based approach. taken from pattern.en, because it wouldn't go into py2app properly """ vowels = ['a', 'e', 'i', 'o', 'u'] v = verb.lower() if len(v) > 1 and v.endswith("e") and v[-2] not in vowels: # Verbs ending in a consonant followed by "e": dance, save, devote, evolve. return [v, v, v, v+"s", v, v[:-1]+"ing"] + [v+"d"]*6 if len(v) > 1 and v.endswith("y") and v[-2] not in vowels: # Verbs ending in a consonant followed by "y": comply, copy, magnify. return [v, v, v, v[:-1]+"ies", v, v+"ing"] + [v[:-1]+"ied"]*6 if v.endswith(("ss", "sh", "ch", "x")): # Verbs ending in sibilants: kiss, bless, box, polish, preach. return [v, v, v, v+"es", v, v+"ing"] + [v+"ed"]*6 if v.endswith("ic"): # Verbs ending in -ic: panic, mimic. return [v, v, v, v+"es", v, v+"king"] + [v+"ked"]*6 if len(v) > 1 and v[-1] not in vowels and v[-2] not in vowels: # Verbs ending in a consonant cluster: delight, clamp. return [v, v, v, v+"s", v, v+"ing"] + [v+"ed"]*6 if (len(v) > 1 and v.endswith(("y", "w")) and v[-2] in vowels) \ or (len(v) > 2 and v[-1] not in vowels and v[-2] in vowels and v[-3] in vowels) \ or (len(v) > 3 and v[-1] not in vowels and v[-3] in vowels and v[-4] in vowels): # Verbs ending in a long vowel or diphthong followed by a consonant: paint, devour, play. return [v, v, v, v+"s", v, v+"ing"] + [v+"ed"]*6 if len(v) > 2 and v[-1] not in vowels and v[-2] in vowels and v[-3] not in vowels: # Verbs ending in a short vowel followed by a consonant: chat, chop, or compel. return [v, v, v, v+"s", v, v+v[-1]+"ing"] + [v+v[-1]+"ed"]*6 return [v, v, v, v+"s", v, v+"ing"] + [v+"ed"]*6 def get_both_spellings(verb_list): """add alternative spellings to verb_list""" from corpkit.dictionaries.word_transforms import usa_convert uk_convert = {v: k for k, v in usa_convert.items()} to_add_to_verb_list = [] for w in verb_list: if w in usa_convert.keys(): to_add_to_verb_list.append(usa_convert[w]) for w in verb_list: if w in uk_convert.keys(): to_add_to_verb_list.append(uk_convert[w]) verb_list = sorted(list(set(verb_list + to_add_to_verb_list))) return verb_list def add_verb_inflections(verb_list): """add verb inflections to verb_list""" from corpkit.dictionaries.word_transforms import usa_convert uk_convert = {v: k for k, v in usa_convert.items()} # get lexemes lexemes = load_verb_data() verbforms = [] # for each verb, get or guess the inflections # make list of ALL VERBS IN ALL INFLECTIONS all_lists = [lst for lst in lexemes.values()] allverbs = [] for lst in all_lists: for v in lst: if v: allverbs.append(v) allverbs = list(set(allverbs)) # use dict first for w in verb_list: verbforms.append(w) try: wforms = lexemes[w] except KeyError: # if not in dict, if it's an inflection, forget it if w in allverbs: continue if "'" in w: continue # if it's a coinage, guess else: wforms = find_lexeme(w) # get list of unique forms forms = list(set([form.replace("n't", "").replace(" not", "") for form in wforms if form])) for f in forms: verbforms.append(f) # deal with contractions if w == 'be': be_conts = [r"'m", r"'re", r"'s"] for cont in be_conts: verbforms.append(cont) if w == "have": have_conts = [r"'d", r"'s", r"'ve"] for cont in have_conts: verbforms.append(cont) # go over again, and add both possible spellings to_add = [] for w in verbforms: if w in usa_convert.keys(): to_add.append(usa_convert[w]) for w in verbforms: if w in uk_convert.keys(): to_add.append(uk_convert[w]) verbforms = sorted(list(set(verbforms + to_add))) # ensure unicode t = [] for w in verbforms: try: t.append(unicode(w, errors='ignore')) except: t.append(w) return t # using 'list' keeps compatibility---change to object with no super call soon class Wordlist(list): """A list of words, containing a `words` attribute and a `lemmata` attribute""" def __init__(self, data, **kwargs): self.data = data self.kwargs = kwargs super(Wordlist, self).__init__(self.data) # make slice also return wordlist @lazyprop def words(self): """get inflections""" if not self.kwargs.get('single'): return Wordlist(add_verb_inflections(get_both_spellings(self.data)), single=True) else: return @lazyprop def lemmata(self): """show base forms of verbs""" if not self.kwargs.get('single'): return Wordlist(get_both_spellings(self.data), single=True) else: return def as_regex(self, boundaries='w', case_sensitive=False, inverse=False, compile=False): """ Turn list into regular expression matching any item in list """ from corpkit.other import as_regex return as_regex(get_both_spellings(self.data), boundaries=boundaries, case_sensitive=case_sensitive, inverse=inverse, compile=compile) class Processes(object): """Process types: relational, verbal, mental, material""" def __init__(self): relational = ["become", "feel", "be", "have", "sound", "look", "seem", "appear", "smell" ] verbal = ["forbid", "forswear", "prophesy", "say", "swear", "tell", "write", "certify", "deny", "imply", "move", "notify", "reply", "specify", "accede", "add", "admit", "advise", "advocate", "allege", "announce", "answer", "apprise", "argue", "ask", "assert", "assure", "attest", "aver", "avow", "bark", "beg", "bellow", "blubber", "boast", "brag", "cable", "call", "claim", "comment", "complain", "confess", "confide", "confirm", "contend", "convey", "counsel", "declare", "demand", "disclaim", "disclose", "divulge", "emphasise", "emphasize", "encourage", "exclaim", "explain", "forecast", "gesture", "grizzle", "guarantee", "hint", "holler", "indicate", "inform", "insist", "intimate", "mention", "moan", "mumble", "murmur", "mutter", "note", "object", "offer", "phone", "pledge", "preach", "predicate", "preordain", "prescribe", "proclaim", "profess", "prohibit", "promise", "propose", "protest", "reaffirm", "reassure", "rejoin", "remark", "remind", "repeat", "report", "request", "require", "respond", "retort", "reveal", "riposte", "roar", "scream", "shout", "signal", "state", "stipulate", "telegraph", "telephone", "testify", "threaten", "vow", "warn", "wire", "reemphasise", "reemphasize", "rumor", "rumour", "yell", # added manually: 'tell', 'say', 'call', 'vent', 'talk', 'ask', 'prescribe', 'diagnose', 'speak', 'suggest', 'mention', 'recommend', 'add', 'discuss', 'agree', 'contact', 'refer', 'explain', 'write', 'consult', 'advise', 'insist', 'perscribe', 'warn', 'offer', 'inform', 'question', 'describe', 'convince', 'order', 'report', 'lie', 'address', 'ring', 'state', "pray", 'phone', 'share', 'beg', 'blame', 'instruct', 'chat', 'assure', 'dx', 'recomend', 'prescibe', 'promise', 'communicate', 'notify', 'claim', 'convince', 'page', 'wish', 'post', 'complain', 'swear'] behavioural = ['laugh', 'cry', 'listen', 'look', 'hear', 'wake', 'awaken', ] mental = ["choose", "feel", "find", "forget", "hear", "know", "mean", "overhear", "prove", "read", "see", "think", "understand", "abide", "abominate", "accept", "acknowledge", "acquiesce", "adjudge", "adore", "affirm", "agree", "allow", "allure", "anticipate", "appreciate", "ascertain", "aspire", "assent", "assume", "begrudge", "believe", "calculate", "care", "conceal", "concede", "conceive", "concern", "conclude", "concur", "condone", "conjecture", "consent", "consider", "contemplate", "convince", "crave", "decide", "deduce", "deem", "delight", "desire", "determine", "detest", "discern", "discover", "dislike", "doubt", "dread", "enjoy", "envisage", "estimate", "excuse", "expect", "exult", "fear", "foreknow", "foresee", "gather", "grant", "grasp", "hate", "hope", "hurt", "hypothesise", "hypothesize", "imagine", "infer", "inspire", "intend", "intuit", "judge", "ken", "lament", "like", "loathe", "love", "marvel", "mind", "miss", "need", "neglect", "notice", "observe", "omit", "opine", "perceive", "plan", "please", "posit", "postulate", "pray", "preclude", "prefer", "presume", "presuppose", "pretend", "provoke", "realize", "realise", "reason", "recall", "reckon", "recognise", "recognize", "recollect", "reflect", "regret", "rejoice", "relish", "remember", "resent", "resolve", "rue", "scent", "scorn", "sense", "settle", "speculate", "suffer", "suppose", "surmise", "surprise", "suspect", "trust", "visualise", "visualize", "want", "wish", "wonder", "yearn", "rediscover", "dream", "justify", "figure", "smell", "worry", 'know', 'think', 'feel', 'want', 'hope', 'find', 'guess', 'love', 'wish', 'like', 'understand', 'wonder', 'believe', 'hate', 'remember', 'agree', 'notice', 'learn', 'realize', 'miss', 'appreciate', 'decide', 'suffer', 'deal', 'forget', 'care', 'imagine', 'relate', 'worry', 'figure', 'handle', 'struggle', 'pray', 'consider', 'enjoy', 'expect', 'plan', 'suppose', 'trust', 'bother', 'blame', 'accept', 'admit', 'assume', 'remind', 'seek', 'bet', 'refuse', 'cope', 'choose', 'freak', 'fear', 'question', 'recall', 'doubt', 'suspect', 'focus', 'calm' ] can_be_material = ['bother', 'find'] self.relational = Wordlist(relational) self.verbal = Wordlist(verbal) self.mental = Wordlist(mental) self.behavioural = Wordlist(behavioural) from corpkit.dictionaries.verblist import allverbs nonmat = set(self.relational + self.verbal + self.behavioural + self.mental) vbs = [i for i in allverbs if i not in nonmat and '_' not in i] self.material = Wordlist(vbs + can_be_material) processes = Processes() verbs = _verbs() ================================================ FILE: corpkit/dictionaries/queries.py ================================================ try: from corpkit.lazyprop import lazyprop except: import corpkit from lazyprop import lazyprop class Queries(object): def __init__(self): import corpkit from corpkit.dictionaries import roles, processes self.sayer = {'f': roles.participant1, 'gl': processes.verbal.lemmata, 'gf': roles.event} self.verbiage = {'f': roles.participant2, 'gl': processes.verbal.lemmata, 'gf': roles.event} self.senser = {'f': roles.participant1, 'gl': processes.mental.lemmata, 'gf': roles.event} self.phenomenon = {'f': roles.participant2, 'gl': processes.mental.lemmata, 'gf': roles.event} self.token = {'f': roles.participant1, 'gl': processes.relational.lemmata, 'gf': roles.event} self.value = {'f': roles.participant2, 'gl': processes.relational.lemmata, 'gf': roles.event} self.agent = {'f': roles.participant1} queries = Queries() ================================================ FILE: corpkit/dictionaries/roles.py ================================================ # This file translates CoreNLP labels into SFL categories def translator(): from collections import namedtuple roledict = { 'actor': ['nsubj', 'agent', 'csubj', 'agent'], 'adjunct': ['advmod', 'agent', '(prep|nmod)(_|:).*', 'advcl', 'tmod'], 'auxiliary': ['auxpass', 'aux'], 'circumstance': ['advmod', r'(prep|nmod)(_|:).*', 'pobj', 'tmod'], 'classifier': ['compound', 'nn'], 'complement': ['acomp', 'dobj', 'iobj'], 'deictic': ['possessive', 'predet', 'poss', 'det', 'preconj'], 'epithet': ['amod'], 'event': ['ccomp', 'cop', 'advcl', 'root', 'acl', r'acl(_|:)relcl'], 'existential': ['expl'], 'finite': ['aux'], 'goal': ['nsubjpass', 'acomp', 'dobj', 'csubjpass', 'iobj'], 'modifier': ['advmod', 'amod', 'compound', 'nn', r'nmod.*', r'acl(_|:)relcl'], 'premodifier': ['amod', 'compound', 'nn', r'nmod'], 'postmodifier': [r'nmod:.*', r'acl(_|:)relcl'], 'modal': ['auxpass', 'aux'], 'numerative': ['number', 'quantmod'], 'participant': ['xsubj', 'nsubj', 'agent', 'nsubjpass', 'acomp', 'csubj', 'dobj', 'appos', 'csubjpass', 'iobj', 'xcomp'], 'participant1': ['nsubj', 'agent', 'csubj'], 'participant2': ['nsubjpass', 'acomp', 'dobj', 'csubjpass', 'iobj', 'xcomp'], 'polarity': ['neg'], 'predicator': ['ccomp', 'cop', 'root'], 'process': ['ccomp', 'prt', 'cop', 'advcl', 'root', 'aux', 'auxpass', 'acl', r'acl(_|:)relcl'], 'qualifier': ['rcmod', 'vmod'], 'subject': ['nsubj', 'nsubjpass', 'csubj', 'csubjpass'], 'textual': ['cc', 'ref', 'mark'], 'thing': ['nsubj', 'agent', 'nsubjpass', 'csubj', 'dobj', r'(prep|nmod)(_|:).*', 'appos', 'csubjpass', 'pobj', 'iobj', 'tmod'], 'any': ['acl', r'acl(_|:)relcl', 'advcl', 'advmod', 'amod', 'appos', 'aux', 'auxpass', 'case', 'cc', 'cc:preconj', 'ccomp', 'compound', 'compound:prt', 'conj', 'cop', 'csubj', 'csubjpass', 'dep', 'det', 'det:predet', 'discourse', 'dislocated', 'dobj', 'expl', 'foreign', 'goeswith', 'iobj', 'list', 'mark', 'mwe', 'name', 'neg', 'nmod', 'nmod:npmod', 'nmod:poss', 'nmod:tmod', 'nsubj', 'nsubjpass', 'nummod', 'parataxis', 'punct', 'remnant', 'reparandum', 'root', 'vocative', 'xcomp'] } from corpkit.dictionaries.process_types import Wordlist outputnames = namedtuple('roles', sorted([i for i in roledict.keys()])) fields = [Wordlist(sorted(roledict[w]), single=True) for w in outputnames._fields] return outputnames(*fields) roles = translator() ================================================ FILE: corpkit/dictionaries/stopwords.py ================================================ # stopwords from spindle from corpkit.dictionaries.process_types import Wordlist stopwords = Wordlist(["yeah", "monday","tuesday","wednesday","thursday","friday", "saturday","sunday","a","able","about","above","abst","accordance", "according","accordingly","across","act","actually","added","adj", "adopted","affected","affecting","affects","after","afterwards", "again","against","ah","all","almost","alone","along","already", "also","although","always","am","among","amongst","an","and", "announce","another","any","anybody","anyhow","anymore","anyone", "anything","anyway","anyways","anywhere","apparently","approximately", "are","aren","arent","arise","around","as","aside","ask","asking","at", "auth","available","away","awfully","b","back","be","became","because", "become","becomes","becoming","been","before","beforehand","begin", "beginning","beginnings","begins","behind","being","believe","below", "beside","besides","between","beyond","biol","both","brief","briefly", "but","by","c","ca","came","can","cannot","cant","cause","causes", "certain","certainly","co","com","come","comes","contain","containing", "contains","could","couldnt","d","date","did","didnt","different","do", "does","doesnt","doing","done","dont","down","downwards","due","during", "e","each","ed","edu","effect","eg","eight","eighty","either","else", "elsewhere","end","ending","enough","especially","et","et-al","etc","even", "ever","every","everybody","everyone","everything","everywhere","ex", "except","f","far","few","ff","fifth","first","five","fix","followed", "following","follows","for","former","formerly","forth","found","four", "from","further","furthermore","going","g","gave","get","gets","getting", "give","given","gives","giving","go","goes","gone","got","gotten","h", "had","happens","hardly","has","hasnt","have","havent","having","he", "hed","hence","her","here","hereafter","hereby","herein","heres", "hereupon","hers","herself","hes","hi","hid","him","himself","his", "hither","home","how","howbeit","however","hundred","i","id","ie", "if","ill","im","immediate","immediately","importance","important", "in","inc","indeed","index","information","instead","into","invention", "inward","is","isnt","it","itd","itll","its","itself","ive","j","just", "k","keep","keeps","kept","keys","kg","km","know","known","knows", "l","largely","last","lately","later","latter","latterly","least","less", "lest","let","lets","like","liked","likely","line","little","ll","look", "looking","looks","ltd","m","made","mainly","make","makes","many","may", "maybe","me","mean","means","meantime","meanwhile","merely","mg","might", "million","miss","ml","more","moreover","most","mostly","mr","mrs","much", "mug","must","my","myself","n","na","name","namely","nay","nd","near", "nearly","necessarily","necessary","need","needs","neither","never", "nevertheless","new","next","nine","ninety","no","nobody","non","none", "nonetheless","noone","nor","normally","nos","not","noted","nothing", "now","nowhere","o","obtain","obtained","obviously","of","off","often", "oh","ok","okay","old","omitted","on","once","one","ones","only","onto", "or","ord","other","others","otherwise","ought","our","ours","ourselves", "out","outside","over","overall","owing","own","p","page","pages","part", "particular","particularly","past","per","perhaps","placed","please", "plus","poorly","possible","possibly","potentially","pp","predominantly", "present","previously","primarily","probably","promptly","proud","provides", "put","q","que","quickly","quite","qv","r","ran","rather","rd","re", "readily","really","recent","recently","ref","refs","regarding","regardless", "regards","related","relatively","research","respectively","resulted", "resulting","results","right","run","s","said","same","saw","say","saying", "says","sec","section","see","seeing","seem","seemed","seeming","seems", "seen","self","selves","sent","seven","several","shall","she","shed","shell", "shes","should","shouldnt","show","showed","shown","showns","shows", "significant","significantly","similar","similarly","since","six", "slightly","so","some","somebody","somehow","someone","somethan","something", "sometime","sometimes","somewhat","somewhere","soon","sorry","specifically", "specified","specify","specifying","state","states","still","stop", "strongly","sub","substantially","successfully","such","sufficiently", "suggest","sup","sure","t","take","taken","taking","tell","tends","th", "than","thank","thanks","thanx","that","thatll","thats","thatve","the", "their","theirs","them","themselves","then","thence","there","thereafter", "thereby","thered","therefore","therein","therell","thereof","therere", "theres","thereto","thereupon","thereve","these","they","theyd","theyll", "theyre","theyve","think","this","those","thou","though","thoughh","thousand", "throug","through","throughout","thru","thus","til","tip","to","together", "too","took","toward","towards","tried","tries","truly","try","trying", "ts","twice","two","u","un","under","unfortunately","unless","unlike", "unlikely","until","unto","up","upon","ups","us","use","used","useful", "usefully","usefulness","uses","using","usually","v","value","various","ve", "very","via","viz","vol","vols","vs","w","want","wants","was","wasnt","way", "we","wed","welcome","well","went","were","werent","weve","what","whatever", "whatll","whats","when","whence","whenever","where","whereafter","whereas", "whereby","wherein","wheres","whereupon","wherever","whether","which", "while","whim","whither","who","whod","whoever","whole","wholl","whom", "whomever","whos","whose","why","widely","willing","wish","with","within", "without","wont","words","world","would","wouldnt","www","x","y","yes","yet", "you","youd","youll","your","youre","yours","yourself","yourselves","youve", "z","zero", "isn", "doesn","didn", "couldn", "mustn","shoudn","wasn","woudn", "i", "me", "my", "myself", "we", "our", "ours", "ourselves", "you", "your", "yours", "yourself", "yourselves", "he", "him", "his", "himself", "she", "her", "hers", "herself", "it", "its", "itself", "they", "them", "their", "theirs", "themselves", "what", "which", "who", "whom", "this", "that", "these", "those", "am", "is", "are", "was", "were", "be", "been", "being", "have", "has", "had", "having", "do", "does", "did", "doing", "a", "an", "the", "and", "but", "if", "or", "because", "as", "until", "while", "of", "at", "by", "for", "with", "about", "against", "between", "into", "through", "during", "before", "after", "above", "below", "to", "from", "up", "down", "in", "out", "on", "off", "over", "under", "again", "further", "then", "once", "here", "there", "when", "where", "why", "how", "all", "any", "both", "each", "few", "more", "most", "other", "some", "such", "no", "nor", "not", "only", "own", "same", "so", "than", "too", "very", "s", "t", "can", "will", "just", "don", "should", "now", "gonna", "n't", '-lrb-', '-rrb-', "'m", "'ll", "'re", "'s", "'ve", "&"], single=True) # add nltk, justext and minilist here ... justtext_stopwords = Wordlist(["the","of","and","in","to","a","was","is","The","for","as","on","with","by", "that","from","at","his","an","he","In","are","were","which","be","has","He","it", "or","also","had","first","It","their","not","but","have","who","its","one","this", "been","her","two","they","other","into","after","all","when","more","This","only", "would","A","she","New","most","can","over","during","where","new","used","such","up", "between","many","made","some","than","out","United","known","about","time","then", "became","under","The","being","part","there","him","years","three","through","On", "including","later","will","American","both","After","until","before","She","well", "no","against","while","called","second","As","several","University","number","name", "these","played","early","may","They","World","His","located","National","same","them", "released","There","de","area","use","work","any","school","since","team","age","so", "John","won","people","began","each","year","population","now","family","film","found", "city","British","four","album","could","very","However","South","named","At","around", "took","former","because","series","For","States","did","within","state","end","based", "May","I","local","held","September","still","often","those","member","small","town","along", "back","School","large","January","June","group","served","March","high","own","During","North", "July","October","if","like","following","built","August","April","music","born","village","game", "due","last","place","home","State","left","major","set","include","U.S","much","December", "November","received","When","York","main","War","public","band","born","season","published", "even","different","original","members","station","single","government","another","near","what", "died","moved","become","just","February","company","included","song","came","led","late", "form","national","make","went","These","off","show","French","five","system","few","various", "given","best","English","City","long","third","among","every","West","German","using","do", "said","started","currently","having","down","next","order","One","final","take","species", "established","created","life","play","line","building","History","political","without","support", "written","district","per","produced","High","popular","League","service","football","considered", "St","way","returned","International","book","again","although","important","living","role", "River","students","married","son","top","worked","San","continued","however","founded", "joined","appeared","total","power","By","record","College","side","William","title","death", "County","years","career","never","From","north","club","County","military","version", "European","According","old","While","six","day","average","television","similar","world", "general","million","With","Some","water","formed","international","usually","current","though", "south","General","time","community","East","House","land","Although","George","making","player", "playing","President","development","James","developed","common","should","great","century", "does","further","run","working","largest","recorded","All","lost","must","elected","history", "seen","live","opened","short","taken","once","professional","production","point","head", "children","throughout","games","period","himself","originally","term","control","available", "less","King","Its","modern","position","eventually","across","Royal","works","site","young", "wrote","income","house","David","Other","Since","how","able","full","war","Australian", "Air","London","Army","includes","law","designed","sold","featured","appointed","business","An", "get","either","Japanese","program","US","Canadian","father","lead","approximately","performed", "leading","radio","upon","remained","famous","Indian","we","Robert","First","help","west","gave", "announced","men","result","times","field","you","right","east","almost","country","story", "Church","followed","good","days","signed","features","together","described","research","sent", "open","special","close","see","To","character","social","miles","rather","life","Council", "Western","the","party","official","years","church"], single=True) ================================================ FILE: corpkit/dictionaries/verblist.py ================================================ allverbs = ["bird's-nest", 'abandon', 'abase', 'abash', 'abate', 'abbreviate', 'abdicate', 'abduct', 'abet', 'abhor', 'abide', 'abirritate', 'abjure', 'ablate', 'abnegate', 'abolish', 'abominate', 'abort', 'abound', 'about-ship', 'about-turn', 'aboutface', 'abrade', 'abreact', 'abridge', 'abrogate', 'abscess', 'abscise', 'abscond', 'abseil', 'absent', 'absolve', 'absorb', 'absquatulate', 'abstain', 'abstract', 'abuse', 'abut', 'abye', 'accede', 'accelerate', 'accent', 'accentuate', 'accept', 'access', 'accession', 'acclaim', 'acclimatize', 'accommodate', 'accompany', 'accomplish', 'accord', 'accost', 'account', 'accoutre', 'accredit', 'accrete', 'accrue', 'acculturate', 'accumulate', 'accuse', 'accustom', 'acerbate', 'acetify', 'acetylate', 'ache', 'achieve', 'achromatize', 'acidify', 'acidulate', 'acierate', 'acknowledge', 'acquaint', 'acquiesce', 'acquire', 'acquit', 'act', 'activate', 'actualize', 'actuate', 'acuminate', 'adapt', 'add', 'addict', 'addle', 'address', 'adduce', 'adduct', 'adhere', 'adhibit', 'adjoin', 'adjourn', 'adjudge', 'adjudicate', 'adjure', 'adjust', 'adlib', 'admeasure', 'administer', 'administrate', 'admire', 'admit', 'admix', 'admonish', 'adopt', 'adore', 'adorn', 'adsorb', 'adulate', 'adulterate', 'adumbrate', 'advance', 'advantage', 'adventure', 'advert', 'advertize', 'advise', 'advocate', 'aerate', 'aerify', 'aestivate', 'affect', 'affiance', 'affiliate', 'affirm', 'affix', 'afflict', 'afford', 'afforest', 'affranchise', 'affray', 'affright', 'affront', 'Africanize', 'Afrikanerize', 'age', 'agglomerate', 'agglutinate', 'aggrade', 'aggrandize', 'aggravate', 'aggregate', 'aggress', 'aggrieve', 'agist', 'agitate', 'agonize', 'agree', 'aid', 'ail', 'aim', 'air', 'aircondition', 'aircool', 'airdrop', 'airdry', 'airlift', 'airmail', 'alarm', 'albumenize', 'alchemize', 'alcoholize', 'alert', 'alibi', 'alien', 'alienate', 'alight', 'aliment', 'aline', 'alit', 'alkalify', 'alkalize', 'allay', 'allege', 'allegorize', 'alleviate', 'alliterate', 'allocate', 'allot', 'allow', 'allowance', 'alloy', 'allude', 'allure', 'ally', 'alphabetize', 'alter', 'altercate', 'alternate', 'aluminize', 'amalgamate', 'amass', 'amaze', 'amble', 'ambulate', 'ambuscade', 'ambush', 'ameliorate', 'amend', 'amerce', 'Americanize', 'ammoniate', 'ammonify', 'amnesty', 'amortize', 'amount', 'amplify', 'amputate', 'amuse', 'anagrammatize', 'analogize', 'analyze', 'anastomose', 'anathematize', 'anatomize', 'anchor', 'anele', 'anesthetize', 'anger', 'angle', 'angle-park', 'anglicize', 'anglify', 'anguish', 'angulate', 'animadvert', 'animalize', 'animate', 'ankylose', 'anneal', 'annex', 'annihilate', 'annotate', 'announce', 'annoy', 'annualize', 'annul', 'annunciate', 'anodize', 'anoint', 'answer', 'antagonize', 'ante', 'antecede', 'antedate', 'antevert', 'anthologize', 'anthropomorphize', 'anticipate', 'antiquate', 'antique', 'ape', 'aphorize', 'apocopate', 'apologize', 'apostatize', 'apostrophize', 'apotheosize', 'appall', 'appeal', 'appear', 'appease', 'append', 'apperceive', 'appertain', 'applaud', 'appliqu_e', 'apply', 'appoint', 'apportion', 'appose', 'appraise', 'appreciate', 'apprehend', 'apprentice', 'apprize', 'approach', 'approbate', 'appropriate', 'approve', 'approximate', 'apron', 'aquaplane', 'aquatint', 'arbitrate', 'arc', 'arch', 'archaize', 'argue', 'argufy', 'arise', 'arm', 'armour', 'aromatize', 'arouse', 'arraign', 'arrange', 'array', 'arrest', 'arrive', 'arrogate', 'arterialize', 'article', 'articulate', 'artificialize', 'Aryanize', 'ascend', 'ascertain', 'ascribe', 'ask', 'asperse', 'asphalt', 'asphyxiate', 'aspirate', 'aspire', 'assail', 'assassinate', 'assault', 'assay', 'assemble', 'assent', 'assert', 'assess', 'asseverate', 'assibilate', 'assign', 'assimilate', 'assist', 'associate', 'assoil', 'assort', 'assuage', 'assume', 'assure', 'asterisk', 'astonish', 'astound', 'astrict', 'atomize', 'atone', 'atrophy', 'attach', 'attack', 'attain', 'attaint', 'attemper', 'attempt', 'attend', 'attenuate', 'attest', 'attire', 'attitudinize', 'attorn', 'attract', 'attribute', 'attune', 'auction', 'auctioneer', 'audit', 'audition', 'augment', 'augur', 'auscultate', 'auspicate', 'Australianize', 'authenticate', 'authorize', 'autoclave', 'autograph', 'autolyze', 'automate', 'automatize', 'autotomize', 'avail', 'avalanche', 'avenge', 'aver', 'average', 'avert', 'aviate', 'avoid', 'avouch', 'avow', 'await', 'awake', 'awaken', 'award', 'awe', 'axe', 'azotize', 'baa', 'babbitt', 'babble', 'baby', 'babysit', 'back', 'backbite', 'backcomb', 'backcross', 'backdate', 'backfill', 'backfire', 'backhand', 'backpedal', 'backslide', 'backspace', 'backstitch', 'backstroke', 'backtrack', 'backwash', 'backwater', 'badger', 'badmouth', 'baffle', 'bag', 'bail', 'bait', 'baize', 'bake', 'baksheesh', 'balance', 'bale', 'Balkanize', 'ball', 'ballast', 'balloon', 'ballot', 'ballyhoo', 'ballyrag', 'bamboozle', 'ban', 'band', 'bandage', 'bandy', 'bang', 'banish', 'bankroll', 'bankrupt', 'banquet', 'bant', 'banter', 'baptize', 'bar', 'barbarize', 'barber', 'barde', 'bare', 'bargain', 'barge', 'bark', 'barnstorm', 'barr_e', 'barrack', 'barrage', 'barrel', 'barrel-roll', 'barricade', 'barter', 'base', 'bash', 'basify', 'bask', 'basset', 'bastardize', 'baste', 'bastinado', 'bat', 'batch', 'bate', 'batfowl', 'bath', 'bathe', 'batten', 'batter', 'battle', 'battledore', 'baulk', 'bawl', 'bay', 'bayonet', 'be', 'beach', 'beacon', 'bead', 'beagle', 'beam', 'bear', 'beard', 'beat', 'beatify', 'beautify', 'beaver', 'bechance', 'beckon', 'becloud', 'become', 'bed', 'bedaub', 'bedazzle', 'bedeck', 'bedevil', 'bedew', 'bedight', 'bedim', 'bedizen', 'bedraggle', 'beef', 'beep', 'beeswax', 'beetle', 'befall', 'befit', 'befog', 'befool', 'befoul', 'befriend', 'befuddle', 'beg', 'beget', 'beggar', 'begin', 'begird', 'begrime', 'begrudge', 'beguile', 'behave', 'behead', 'behold', 'behove', 'bejewel', 'belabour', 'belay', 'belch', 'beleaguer', 'belie', 'believe', 'belittle', 'bell', 'bellow', 'belly', 'belly-laugh', 'bellyache', 'bellyland', 'belong', 'belt', 'bemean', 'bemire', 'bemoan', 'bemuse', 'bename', 'bench', 'bend', 'benefice', 'benefit', 'benumb', 'bequeath', 'berate', 'bereave', 'bereft', 'berry', 'berth', 'beseech', 'beseem', 'beset', 'beshrew', 'besiege', 'besmear', 'besmirch', 'bespangle', 'bespatter', 'bespeak', 'bespread', 'besprinkle', 'best', 'besteaded', 'bestialize', 'bestir', 'bestow', 'bestrew', 'bestride', 'bet', 'betake', 'bethink', 'betide', 'betoken', 'betray', 'betroth', 'better', 'bewail', 'beware', 'bewilder', 'bewitch', 'bewray', 'bias', 'bicker', 'bicycle', 'bid', 'bide', 'biff', 'bifurcate', 'big-note', 'bight', 'bike', 'bilge', 'bilk', 'bill', 'billet', 'bin', 'bioassay', 'birch', 'birddog', 'birdlime', 'birdy', 'birl', 'birr', 'birth', 'bisect', 'bit', 'bitch', 'bite', 'bitter', 'bituminize', 'bivouac', 'blab', 'blabber', 'black-lead', 'blackball', 'blackbird', 'blacken', 'blackguard', 'blackjack', 'blackleg', 'blacklist', 'blackmail', 'blackmarket', 'blackout', 'blah', 'blame', 'blanch', 'blandish', 'blank', 'blanket', 'blare', 'blarney', 'blaspheme', 'blast', 'blat', 'blather', 'blaze', 'blazon', 'bleach', 'blear', 'bleat', 'bleed', 'bleep', 'blemish', 'blench', 'blend', 'blent', 'bless', 'blest', 'blether', 'blight', 'blind', 'blindfold', 'blink', 'blip', 'blister', 'blitz', 'bloat', 'blob', 'block', 'blockade', 'blood', 'bloody', 'bloom', 'blossom', 'blot', 'blotch', 'blouse', 'blow', 'blow-wave', 'blowdry', 'blub', 'blubber', 'bludge', 'bludgeon', 'blue', 'bluepencil', 'blueprint', 'bluff', 'blunder', 'blunge', 'blunt', 'blur', 'blurt', 'blush', 'bluster', 'board', 'boast', 'boat', 'bob', 'bobol', 'bobsleigh', 'bode', 'bodge', 'body', 'bodycheck', 'boggle', 'bogie', 'boil', 'bolster', 'bomb', 'bombard', 'bond', 'bone', 'bong', 'boo', 'boob', 'booby-trap', 'boodle', 'boogie', 'boohoo', 'book', 'boom', 'boomerang', 'boondoggle', 'boost', 'boot', 'bootleg', 'bootlick', 'booze', 'bop', 'borate', 'border', 'bore', 'borrow', 'bosom', 'boss', 'botanize', 'botch', 'bother', 'bottle', 'bottlefeed', 'bottleneck', 'bottom', 'boult', 'bounce', 'bound', 'bow', 'bowdlerize', 'bowl', 'bowse', 'bowwow', 'box', 'boxhaul', 'boycott', 'brabble', 'brace', 'brachiate', 'bracket', 'brag', 'brail', 'Braille', 'brain', 'brainwash', 'braise', 'brake', 'bramble', 'branch', 'brand', 'brandish', 'brattice', 'brave', 'brawl', 'bray', 'braze', 'brazen', 'breach', 'bread', 'break', 'breakaway', 'breakfast', 'bream', 'breast', 'breastfeed', 'breathalyze', 'breathe', 'brede', 'breech', 'breed', 'breeze', 'brevet', 'brew', 'brey', 'bribe', 'brick', 'bridge', 'bridle', 'brief', 'brigade', 'brighten', 'brim', 'brine', 'bring', 'briquette', 'bristle', 'broach', 'broadcast', 'broaden', 'brocade', 'broddle', 'broider', 'broil', 'bromate', 'brominate', 'bronze', 'brood', 'brook', 'browbeat', 'brown', 'browse', 'bruise', 'bruit', 'brush', 'brutalize', 'brutify', 'bubble', 'buck', 'bucket', 'buckle', 'buckler', 'buckram', 'bud', 'buddle', 'budge', 'budget', 'buffalo', 'buffer', 'buffet', 'bug', 'bugger', 'bugle', 'build', 'bulge', 'bulk', 'bull', 'bulldoze', 'bulletin', 'bulletproof', 'bullshit', 'bullwhip', 'bully', 'bullyrag', 'bulwark', 'bum', 'bumble', 'bump', 'bump-start', 'bumper', 'bunch', 'bundle', 'bung', 'bungle', 'bunk', 'bunker', 'bunko', 'bunt', 'buoy', 'bur', 'burble', 'burden', 'bureaucratize', 'burgeon', 'burglarize', 'burgle', 'burke', 'burl', 'burlesque', 'burn', 'burnish', 'burp', 'burrow', 'burst', 'burthen', 'bury', 'bus', 'bush', 'bushel', 'bushwhack', 'busk', 'bust', 'bustle', 'busy', 'butcher', 'butt', 'butter', 'button', 'buttonhole', 'buttress', 'buy', 'buzz', 'bypass', 'cabal', 'cabbage', 'cable', 'cachinnate', 'cackle', 'caddy', 'cadge', 'cage', 'cagmag', 'cajole', 'cake', 'calcify', 'calcine', 'calculate', 'calendar', 'calender', 'calibrate', 'calk', 'call', 'calliper', 'callous', 'callus', 'calm', 'calque', 'calumniate', 'calve', 'camber', 'camouflage', 'camp', 'campaign', 'camphorate', 'can', 'canal', 'canalize', 'cancel', 'candle', 'candy', 'cane', 'canker', 'cannibalize', 'cannon', 'cannonade', 'cannonball', 'canoe', 'canonize', 'canoodle', 'canopy', 'canter', 'cantilever', 'cantillate', 'canton', 'canulate', 'canvass', 'cap', 'capacitate', 'caparison', 'caper', 'capitalize', 'capitulate', 'caponize', 'capriole', 'capsize', 'capsulize', 'captain', 'caption', 'captivate', 'capture', 'caramelize', 'caravan', 'carbolize', 'carbonado', 'carbonate', 'carbonize', 'carburet', 'carburize', 'card', 'care', 'careen', 'career', 'caress', 'caricature', 'carillon', 'cark', 'carnify', 'carny', 'carol', 'carouse', 'carp', 'carpenter', 'carpet', 'carry', 'cartelize', 'carve', 'cascade', 'case', 'caseate', 'casefy', 'caseharden', 'cash', 'cashier', 'casserole', 'cast', 'castigate', 'castle', 'castoff', 'castrate', 'cat', 'catalogue', 'catalyze', 'catapult', 'catcall', 'catch', 'catechize', 'categorize', 'catenate', 'cater', 'caterwaul', 'catheterize', 'catholicize', 'catnap', 'caucus', 'caulk', 'cause', 'cauterize', 'caution', 'cave', 'cavern', 'cavil', 'cavort', 'caw', 'caway', 'cease', 'cede', 'ceil', 'celebrate', 'cellar', 'cement', 'cense', 'censor', 'censure', 'centralize', 'centre', 'centrifuge', 'centuplicate', 'cere', 'cerebrate', 'certificate', 'certify', 'cess', 'chafe', 'chaff', 'chaffer', 'chagrin', 'chain', 'chain-stitch', 'chainreact', 'chainsmoke', 'chair', 'chalk', 'challenge', 'chamber', 'chamfer', 'chamois', 'champ', 'champion', 'chance', 'chandelle', 'change', 'changeover', 'channel', 'channelize', 'chant', 'chap', 'chaperone', 'chapter', 'char', 'character', 'characterize', 'charcoal', 'charge', 'charm', 'chart', 'charter', 'chase', 'chass_e', 'chasten', 'chastise', 'chat', 'chatter', 'chauffeur', 'chaw', 'cheapen', 'cheat', 'check', 'checker', 'checkmate', 'checkrow', 'cheek', 'cheep', 'cheer', 'cheese', 'chelate', 'chelp', 'chemosorb', 'chequer', 'cherish', 'chevy', 'chew', 'chiack', 'chicane', 'chide', 'chill', 'chime', 'chin', 'chine', 'chink', 'chip', 'chirm', 'chirp', 'chirre', 'chirrup', 'chisel', 'chitchat', 'chitter', 'chivy', 'chlorinate', 'chock', 'choke', 'chomp', 'chondrify', 'choose', 'chop', 'chord', 'choreograph', 'chortle', 'chorus', 'christen', 'Christianize', 'chrome', 'chronicle', 'chuck', 'chuckle', 'chuff', 'chug', 'chum', 'chump', 'chunder', 'chunter', 'church', 'churn', 'churr', 'chute', 'chyack', 'cicatrize', 'cinch', 'cinchonize', 'cinder', 'cinematograph', 'cipher', 'circle', 'circuit', 'circularize', 'circulate', 'circumambulate', 'circumcise', 'circumfuse', 'circumnavigate', 'circumnutate', 'circumscribe', 'circumstantiate', 'circumvallate', 'circumvent', 'cite', 'cityfy', 'civilize', 'clack', 'clad', 'claim', 'clam', 'clamber', 'clamour', 'clamp', 'clang', 'clangour', 'clank', 'clap', 'clapboard', 'clapperclaw', 'clarify', 'clarion', 'clash', 'clasp', 'class', 'classicize', 'classify', 'clatter', 'claver', 'claw', 'clay', 'clean', 'cleanse', 'clear', 'cleat', 'cleave', 'cleck', 'cleft', 'clem', 'clench', 'clepe', 'clerk', 'clew', 'click', 'climax', 'climb', 'clinch', 'cling', 'clink', 'clinker', 'clip', 'cloak', 'clobber', 'clock', 'clog', 'cloister', 'clomb', 'clomp', 'clonk', 'clop', 'close', 'closet', 'closure', 'clot', 'clothe', 'cloture', 'cloud', 'clout', 'clown', 'cloy', 'club', 'clubhaul', 'cluck', 'clue', 'clump', 'clunk', 'cluster', 'clutch', 'clutter', 'clype', 'co-edit', 'coach', 'coagulate', 'coal', 'coalesce', 'coarsen', 'coast', 'coat', 'coauthor', 'coax', 'cob', 'cobble', 'cocainize', 'cock', 'cocker', 'cockle', 'cocknify', 'cocoon', 'cod', 'coddle', 'code', 'codename', 'codify', 'coedit', 'coerce', 'coexist', 'coextend', 'coextrude', 'coff', 'coffer', 'cofound', 'cog', 'cogitate', 'cognize', 'cohabit', 'cohere', 'cohobate', 'coif', 'coiffure', 'coil', 'coin', 'coincide', 'coinsure', 'coke', 'cold', 'coldshoulder', 'coldweld', 'collaborate', 'collapse', 'collar', 'collate', 'collect', 'collectivize', 'collet', 'collide', 'colligate', 'collimate', 'collocate', 'collogue', 'collude', 'colly', 'colonize', 'colorcode', 'colour', 'comanage', 'comb', 'combat', 'combine', 'combust', 'come', 'comfort', 'command', 'commandeer', 'commeasure', 'commemorate', 'commence', 'commend', 'comment', 'commentate', 'commercialize', 'commingle', 'comminute', 'commiserate', 'commission', 'commit', 'commix', 'commove', 'communalize', 'commune', 'communicate', 'communize', 'commutate', 'commute', 'comp`ere', 'compact', 'companion', 'company', 'compare', 'compartmentalize', 'compass', 'compel', 'compensate', 'compere', 'compete', 'compile', 'complain', 'complect', 'complement', 'complete', 'complicate', 'compliment', 'complot', 'comply', 'comport', 'compose', 'compost', 'compound', 'comprehend', 'compress', 'comprise', 'compromise', 'compute', 'computerize', 'concatenate', 'concave', 'conceal', 'concede', 'conceive', 'concelebrate', 'concentrate', 'concentre', 'conceptualize', 'concern', 'concertina', 'concertize', 'conciliate', 'conclude', 'concoct', 'concrete', 'concretize', 'concur', 'concuss', 'condemn', 'condense', 'condescend', 'condition', 'condole', 'condone', 'conduce', 'conduct', 'cone', 'confab', 'confabulate', 'confect', 'confederate', 'confer', 'confess', 'confide', 'configure', 'confine', 'confirm', 'confiscate', 'conflate', 'conflict', 'conform', 'confound', 'confront', 'confuse', 'confute', 'conga', 'congeal', 'congest', 'conglobate', 'conglomerate', 'conglutinate', 'congratulate', 'congregate', 'conjecture', 'conjoin', 'conjugate', 'conjure', 'conk', 'conn', 'connect', 'connive', 'connote', 'conquer', 'conscript', 'consecrate', 'consent', 'conserve', 'consider', 'consign', 'consist', 'consociate', 'console', 'consolidate', 'consort', 'conspire', 'constellate', 'consternate', 'constipate', 'constitute', 'constitutionalize', 'constrain', 'constrict', 'constringe', 'construct', 'construe', 'consubstantiate', 'consult', 'consume', 'consummate', 'contact', 'contain', 'containerize', 'contaminate', 'contango', 'contemn', 'contemplate', 'contemporize', 'contend', 'content', 'contest', 'contextualize', 'continue', 'contort', 'contour', 'contract', 'contradict', 'contradistinguish', 'contraindicate', 'contrast', 'contravene', 'contribute', 'contrive', 'control', 'controvert', 'contuse', 'convalesce', 'convene', 'conventionalize', 'converge', 'converse', 'convert', 'convex', 'convey', 'convict', 'convince', 'convoke', 'convolve', 'convoy', 'convulse', 'coo', 'cooey', 'cook', 'cool', 'coop', 'cooper', 'cooperate', 'coopt', 'coordinate', 'cop', 'cope', 'copolymerize', 'copper', 'copper-bottom', 'coproduce', 'copulate', 'copy', 'copyedit', 'copyread', 'copyright', 'coquet', 'corbel', 'cord', 'cordon', 'core', 'cork', 'corkscrew', 'corn', 'corner', 'cornice', 'corrade', 'corral', 'correct', 'correlate', 'correspond', 'corrival', 'corroborate', 'corrode', 'corrugate', 'corrupt', 'corset', 'coruscate', 'cosh', 'cosher', 'cosponsor', 'cosset', 'cost', 'costar', 'costume', 'cote', 'cotter', 'couch', 'cough', 'counsel', 'count', 'countenance', 'counter', 'counteract', 'counterattack', 'counterbalance', 'counterchange', 'countercharge', 'counterclaim', 'counterfeit', 'countermand', 'countermarch', 'countermine', 'countermove', 'counterplot', 'counterpoise', 'counterproposal', 'counterpunch', 'countersign', 'countersink', 'countervail', 'counterweigh', 'couple', 'course', 'court', 'courtmartial', 'cove', 'covenant', 'cover', 'coverup', 'covet', 'cow', 'cower', 'cowk', 'cowl', 'cowp', 'cox', 'cozen', 'crab', 'crack', 'crackle', 'cradle', 'craft', 'cram', 'cramp', 'crane', 'crank', 'crap', 'crash', 'crash-dive', 'crashland', 'crate', 'crater', 'craunch', 'crave', 'crawl', 'crayon', 'craze', 'creak', 'cream', 'crease', 'create', 'credit', 'creep', 'cremate', 'crenellate', 'crepe', 'crepitate', 'crescendo', 'crevasse', 'crew', 'crib', 'crick', 'criminalize', 'criminate', 'crimp', 'crimple', 'crimson', 'cringe', 'crinkle', 'cripple', 'crisp', 'crisscross', 'criticize', 'croak', 'crochet', 'crock', 'crook', 'croon', 'crop', 'croquet', 'cross', 'cross-breed', 'cross-fade', 'crossbred', 'crosscheck', 'crosscut', 'crossexamine', 'crossfertilize', 'crosshatch', 'crossindex', 'crosspollinate', 'crossquestion', 'crossrefer', 'crossreference', 'crossruff', 'crossstitch', 'crouch', 'croup', 'crow', 'crowd', 'crown', 'crucify', 'cruise', 'crumb', 'crumble', 'crump', 'crumple', 'crunch', 'crusade', 'crush', 'crust', 'crutch', 'cry', 'crystallize', 'cub', 'cube', 'cuckold', 'cuckoo', 'cuddle', 'cudgel', 'cue', 'cuff', 'cuirass', 'cull', 'culminate', 'cultivate', 'culture', 'cumber', 'cumulate', 'cup', 'cupel', 'curarize', 'curb', 'curd', 'curdle', 'cure', 'curette', 'curl', 'curry', 'curse', 'curtail', 'curtain', 'curtsy', 'curve', 'curvet', 'cushion', 'customize', 'cut', 'cutback', 'cutinize', 'cwtch', 'cybernate', 'cycle', 'cyclostyle', 'cypher', 'dab', 'dabble', 'dado', 'daff', 'dag', 'dagger', 'dally', 'dam', 'damage', 'damascene', 'damask', 'damn', 'damnify', 'damp', 'dampen', 'dance', 'dander', 'dandify', 'dandle', 'dangle', 'dap', 'dapple', 'dare', 'dark', 'darken', 'darkle', 'darn', 'dart', 'dash', 'date', 'dateline', 'daub', 'daunt', 'dawdle', 'dawn', 'day-dream', 'daydream', 'daze', 'dazzle', 'de-horn', 'deactivate', 'deaden', 'deadhead', 'deadlock', 'deafen', 'deal', 'deaminize', 'debag', 'debar', 'debark', 'debase', 'debate', 'debauch', 'debilitate', 'debit', 'debouch', 'debrief', 'debug', 'debunk', 'debus', 'debut', 'decaffeinate', 'decal', 'decalcify', 'decamp', 'decant', 'decapitate', 'decarbonate', 'decarbonize', 'decarburize', 'decay', 'decease', 'deceive', 'decelerate', 'decentralize', 'decerebrate', 'decern', 'decertify', 'decide', 'decimalize', 'decimate', 'decipher', 'deck', 'declaim', 'declare', 'declass', 'declassify', 'decline', 'declutch', 'decoct', 'decode', 'decoke', 'decollate', 'decolonize', 'decolour', 'decompose', 'decompound', 'decompress', 'deconsecrate', 'decontaminate', 'decontrol', 'decorate', 'decorticate', 'decoy', 'decrease', 'decree', 'decrepitate', 'decribe', 'decry', 'decrypt', 'decuple', 'decussate', 'dedicate', 'deduce', 'deduct', 'deed', 'deek', 'deem', 'deemphasize', 'deepen', 'deepfreeze', 'deepfry', 'deepsix', 'deescalate', 'deface', 'defalcate', 'defame', 'default', 'defeat', 'defecate', 'defect', 'defend', 'defer', 'defilade', 'defile', 'define', 'deflagrate', 'deflate', 'deflect', 'deflocculate', 'deflower', 'defoliate', 'deforce', 'deforest', 'deform', 'defraud', 'defray', 'defrock', 'defrost', 'defuze', 'defy', 'degas', 'degauss', 'degenerate', 'deglutinate', 'degrade', 'degrease', 'degustate', 'dehisce', 'dehorn', 'dehumanize', 'dehumidify', 'dehydrate', 'dehydrogenize', 'dehypnotize', 'deice', 'deify', 'deign', 'deject', 'delaminate', 'delate', 'delay', 'dele', 'delete', 'deliberate', 'delight', 'delimitate', 'delineate', 'deliquesce', 'deliver', 'delocalize', 'delouse', 'delude', 'deluge', 'delve', 'demagnetize', 'demagogue', 'demand', 'demarcate', 'dematerialize', 'demean', 'dement', 'demilitarize', 'demineralize', 'demise', 'demist', 'demit', 'demob', 'demobilize', 'democratize', 'demodulate', 'demolish', 'demonetize', 'demonize', 'demonstrate', 'demoralize', 'demote', 'demount', 'demulsify', 'demur', 'demystify', 'demythologize', 'den', 'denationalize', 'denaturalize', 'denaturize', 'denazify', 'denigrate', 'denitrate', 'denitrify', 'denizen', 'denominate', 'denote', 'denounce', 'dent', 'denuclearize', 'denudate', 'denude', 'denunciate', 'deny', 'deodorize', 'deoxidize', 'deoxygenize', 'depart', 'departmentalize', 'depasture', 'depend', 'depersonalize', 'depict', 'depicture', 'depilate', 'deplane', 'deplete', 'deplore', 'deploy', 'deplume', 'depolarize', 'depoliticize', 'depolymerize', 'depone', 'depopulate', 'deport', 'depose', 'deposit', 'deprave', 'deprecate', 'depreciate', 'depredate', 'depress', 'depressurize', 'deprive', 'depurate', 'depute', 'deputize', 'deracinate', 'deraign', 'derail', 'derange', 'derate', 'deration', 'deregister', 'derequisition', 'derestrict', 'deride', 'derive', 'derogate', 'derrick', 'desalinize', 'desalt', 'descale', 'descant', 'descend', 'deschool', 'describe', 'descry', 'desecrate', 'desegregate', 'desensitize', 'desert', 'deserve', 'desexualize', 'desiccate', 'desiderate', 'design', 'designate', 'desire', 'desist', 'desolate', 'desorb', 'despair', 'despatch', 'despise', 'despite', 'despoil', 'despond', 'despumate', 'desquamate', 'destine', 'destroy', 'destruct', 'desulphurize', 'detach', 'detail', 'detain', 'detect', 'deter', 'deterge', 'deteriorate', 'determine', 'detest', 'dethrone', 'detonate', 'detour', 'detoxicate', 'detoxify', 'detract', 'detrain', 'detribalize', 'detrude', 'detruncate', 'deuterate', 'devalue', 'devastate', 'develop', 'devest', 'deviate', 'devil', 'devise', 'devitalize', 'devitrify', 'devoice', 'devolve', 'devote', 'devour', 'dew', 'diabolize', 'diadem', 'diagnose', 'diagram', 'dial', 'dialogize', 'dialogue', 'dialyze', 'diamond', 'diaper', 'diazotize', 'dib', 'dibble', 'dice', 'dichotomize', 'dicker', 'dictate', 'diddle', 'die', 'die-cast', 'diet', 'differ', 'differentiate', 'diffract', 'diffuse', 'dig', 'digest', 'dight', 'digitalize', 'digitize', 'dignify', 'digress', 'dike', 'dilapidate', 'dilate', 'dillydally', 'dilute', 'dim', 'dimension', 'dimidiate', 'diminish', 'dimple', 'din', 'dine', 'ding', 'dint', 'dip', 'diphthongize', 'direct', 'dirk', 'dirty', 'disable', 'disabuse', 'disaccord', 'disaccredit', 'disaccustom', 'disadvantage', 'disaffect', 'disaffiliate', 'disaffirm', 'disafforest', 'disagree', 'disallow', 'disambiguate', 'disannul', 'disappear', 'disappoint', 'disapprove', 'disarm', 'disarrange', 'disarray', 'disarticulate', 'disassemble', 'disassociate', 'disavow', 'disband', 'disbar', 'disbelieve', 'disbranch', 'disbud', 'disburden', 'disburse', 'disc', 'discant', 'discard', 'discern', 'discharge', 'discipline', 'disclaim', 'disclose', 'discolour', 'discombobulate', 'discomfit', 'discomfort', 'discommend', 'discommode', 'discommon', 'discompose', 'disconcert', 'disconnect', 'disconsider', 'discontent', 'discontinue', 'discord', 'discount', 'discountenance', 'discourage', 'discourse', 'discover', 'discredit', 'discriminate', 'discuss', 'disdain', 'disembark', 'disembarrass', 'disembody', 'disembogue', 'disembowel', 'disembroil', 'disenable', 'disenchant', 'disencumber', 'disendow', 'disenfranchise', 'disengage', 'disentail', 'disentangle', 'disenthrall', 'disentitle', 'disentomb', 'disentwine', 'disestablish', 'disesteem', 'disfavour', 'disfeature', 'disfigure', 'disforest', 'disfranchise', 'disfrock', 'disgorge', 'disgrace', 'disgruntle', 'disguise', 'disgust', 'dish', 'dishearten', 'dishevel', 'dishonour', 'disillusion', 'disincline', 'disinfect', 'disinfest', 'disinherit', 'disintegrate', 'disinter', 'disinterest', 'disject', 'disjoin', 'disjoint', 'dislike', 'dislimn', 'dislocate', 'dislodge', 'dismantle', 'dismast', 'dismay', 'dismember', 'dismiss', 'dismount', 'disobey', 'disoblige', 'disorder', 'disorganize', 'disorientate', 'disown', 'disparage', 'dispatch', 'dispel', 'dispend', 'dispense', 'disperse', 'dispirit', 'displace', 'displant', 'display', 'displease', 'displeasure', 'displode', 'disport', 'dispose', 'dispossess', 'dispraise', 'disprize', 'disproportion', 'disproportionate', 'disprove', 'dispute', 'disqualify', 'disquiet', 'disrate', 'disregard', 'disrelish', 'disremember', 'disrespect', 'disrobe', 'disrupt', 'dissatisfy', 'dissect', 'disseize', 'dissemble', 'disseminate', 'dissent', 'dissertate', 'disserve', 'dissever', 'dissimilate', 'dissimulate', 'dissipate', 'dissociate', 'dissolve', 'dissuade', 'distance', 'distaste', 'distemper', 'distend', 'distill', 'distinguish', 'distort', 'distract', 'distrain', 'distress', 'distribute', 'district', 'distrust', 'disturb', 'disunite', 'ditch', 'dither', 'ditto', 'divagate', 'divaricate', 'dive', 'divebomb', 'diverge', 'diversify', 'divert', 'divest', 'divide', 'divine', 'divinize', 'divorce', 'divulgate', 'divulge', 'divvy', 'dizen', 'dizzy', 'do', 'dock', 'docket', 'doctor', 'document', 'dodder', 'dodge', 'doff', 'dog', 'dog-paddle', 'dogear', 'dogmatize', 'dole', 'dolly', 'dome', 'domesticize', 'domicile', 'dominate', 'domineer', 'don', 'donate', 'dong', 'doodle', 'doom', 'dope', 'dose', 'doss', 'dot', 'dote', 'double', 'double-bank', 'double-declutch', 'double-fault', 'double-stop', 'double-time', 'doublebogey', 'doublecheck', 'doublecross', 'doublepark', 'doublespace', 'doubletongue', 'doubt', 'douche', 'douse', 'dovetail', 'dow', 'dower', 'down', 'downgrade', 'downplay', 'dowse', 'doze', 'drab', 'drabble', 'draft', 'draggle', 'draghunt', 'dragoon', 'drain', 'dramatize', 'drape', 'drat', 'draw', 'drawl', 'dread', 'dream', 'dredge', 'dree', 'drench', 'dress', 'dribble', 'drift', 'drill', 'drink', 'drip', 'drive', 'drivel', 'drizzle', 'drone', 'drool', 'droop', 'drop', 'dropkick', 'dropout', 'drown', 'drowse', 'drub', 'drudge', 'drug', 'drum', 'dry', 'dry-salt', 'dryclean', 'drydock', 'dub', 'duck', 'duel', 'duff', 'dulcify', 'dull', 'dumfound', 'dummy', 'dump', 'dun', 'dung', 'dunk', 'dunt', 'dup', 'dupe', 'duplicate', 'dusk', 'dust', 'dwarf', 'dwell', 'dwindle', 'dye', 'dyke', 'dynamite', 'ear', 'earbash', 'earmark', 'earn', 'earth', 'earwig', 'ease', 'eat', 'eavesdrop', 'ebb', 'ebonize', 'echelon', 'echo', 'eclipse', 'economize', 'eddy', 'edge', 'edify', 'edit', 'editorialize', 'educate', 'educe', 'edulcorate', 'eff', 'efface', 'effect', 'effectuate', 'effervesce', 'effloresce', 'effuse', 'egest', 'egg', 'egotrip', 'egress', 'ejaculate', 'eject', 'eke', 'elaborate', 'elapse', 'elasticate', 'elasticize', 'elate', 'elbow', 'elect', 'electioneer', 'electrify', 'electrocute', 'electrodeposit', 'electroform', 'electrolyze', 'electroplate', 'electrotype', 'elegize', 'elevate', 'elicit', 'elide', 'eliminate', 'eloin', 'elongate', 'elope', 'elucidate', 'elude', 'elute', 'elutriate', 'emaciate', 'emanate', 'emancipate', 'emasculate', 'embalm', 'embank', 'embargo', 'embark', 'embarrass', 'embattle', 'embay', 'embellish', 'embezzle', 'embitter', 'emblaze', 'emblazon', 'emblemize', 'embody', 'embolden', 'embosom', 'emboss', 'embow', 'embowel', 'embower', 'embrace', 'embrangle', 'embrocate', 'embroider', 'embroil', 'embus', 'emend', 'emerge', 'emigrate', 'emit', 'emote', 'emotionalize', 'empathize', 'emphasize', 'emplace', 'emplane', 'employ', 'empoison', 'empower', 'empt', 'empty', 'emulate', 'emulsify', 'enable', 'enact', 'enamel', 'enamour', 'encage', 'encamp', 'encarnalize', 'encash', 'enchain', 'enchant', 'enchase', 'encipher', 'encircle', 'enclasp', 'encode', 'encompass', 'encore', 'encounter', 'encourage', 'encroach', 'encrypt', 'encyst', 'end', 'endamage', 'endanger', 'endear', 'endeavour', 'endow', 'endure', 'energize', 'enervate', 'enface', 'enfeeble', 'enfeoff', 'enfilade', 'enforce', 'enfranchise', 'engage', 'engender', 'engineer', 'English', 'englut', 'engorge', 'engrail', 'engrave', 'engross', 'enhance', 'enigmatize', 'enisle', 'enjoin', 'enjoy', 'enkindle', 'enlace', 'enlarge', 'enlighten', 'enlist', 'enliven', 'ennoble', 'enounce', 'enplane', 'enquire', 'enrage', 'enrapture', 'enrich', 'enrobe', 'enroll', 'enroot', 'ensanguine', 'ensconce', 'enshrinshrine', 'enshroud', 'ensile', 'enslave', 'ensue', 'enswathe', 'entail', 'entangle', 'enter', 'entertain', 'enthrall', 'enthrone', 'enthuse', 'entice', 'entitle', 'entoil', 'entomb', 'entomologize', 'entrain', 'entrammel', 'entrance', 'entrap', 'entwintwine', 'enucleate', 'enumerate', 'enunciate', 'envelop', 'envenom', 'environ', 'envisage', 'envision', 'envy', 'enwind', 'enwomb', 'enwrap', 'enwreath', 'epigrammatize', 'epilate', 'epitomize', 'equal', 'equalize', 'equate', 'equilibrate', 'equip', 'equipoise', 'equiponderate', 'equivocate', 'eradiate', 'eradicate', 'erase', 'erect', 'erode', 'err', 'eructate', 'erupt', 'escalade', 'escalate', 'escallop', 'escape', 'escarp', 'escheat', 'eschew', 'escort', 'escribe', 'espalier', 'espouse', 'espy', 'esquire', 'essay', 'establish', 'esteem', 'esterify', 'estimate', 'estivate', 'estop', 'estrange', 'estreat', 'etch', 'eternize', 'etherealize', 'etherify', 'etherize', 'ethicize', 'etiolate', 'etymologize', 'euchre', 'euhemerize', 'eulogize', 'euphemize', 'euphonize', 'Europeanize', 'evacuate', 'evade', 'evaginate', 'evaluate', 'evanesce', 'evangelize', 'evanish', 'evaporate', 'even', 'eventuate', 'evert', 'evict', 'evidence', 'evince', 'eviscerate', 'evite', 'evoke', 'evolve', 'exacerbate', 'exact', 'exaggerate', 'exalt', 'examine', 'exasperate', 'excavate', 'exceed', 'excel', 'except', 'excerpt', 'exchange', 'excide', 'excise', 'excite', 'exclaim', 'exclude', 'excogitate', 'excommunicate', 'excorciate', 'excoriate', 'excrete', 'excruciate', 'exculpate', 'excuse', 'execrate', 'execute', 'exemplify', 'exempt', 'exenterate', 'exercise', 'exert', 'exfoliate', 'exhale', 'exhaust', 'exhibit', 'exhilarate', 'exhort', 'exhume', 'exile', 'exist', 'exit', 'exonerate', 'exorcize', 'expand', 'expatiate', 'expatriate', 'expect', 'expectorate', 'expedite', 'expel', 'expend', 'expense', 'experience', 'experiment', 'experimentalize', 'expertize', 'expiate', 'expire', 'explain', 'explant', 'explicate', 'explode', 'exploit', 'explore', 'export', 'expose', 'expostulate', 'expound', 'express', 'expropriate', 'expunge', 'expurgate', 'exsanguinate', 'exscind', 'exsect', 'exsert', 'exsiccate', 'extemporize', 'extend', 'extenuate', 'exterminate', 'externalize', 'extinguish', 'extirpate', 'extoll', 'extort', 'extract', 'extradite', 'extrapolate', 'extravagate', 'extravasate', 'extricate', 'extrude', 'exuberate', 'exude', 'exult', 'exuviate', 'eye', 'eyeball', 'eyelet', 'f^ete', 'fable', 'fabricate', 'face', 'faceharden', 'faceoff', 'facet', 'facilitate', 'factor', 'factorize', 'fade', 'fadge', 'faff', 'fag', 'fail', 'faint', 'fair', 'fake', 'fall', 'fallow', 'false-card', 'falsify', 'falter', 'fame', 'familiarize', 'famish', 'fan', 'fanaticize', 'fancy', 'fankle', 'fantasize', 'faradize', 'farce', 'fare', 'farm', 'farrow', 'fart', 'fascinate', 'fash', 'fashion', 'fast', 'fasten', 'fat', 'fate', 'father', 'fathom', 'fatigue', 'fatten', 'fault', 'favour', 'fawn', 'fay', 'faze', 'fear', 'feast', 'feather', 'featherbed', 'featherstitch', 'feature', 'feaze', 'fecundate', 'fed', 'federalize', 'federate', 'feed', 'feel', 'feeze', 'feign', 'feint', 'felicitate', 'fellow', 'feminize', 'fence', 'fend', 'feoff', 'ferment', 'ferret', 'ferrule', 'ferry', 'fertilize', 'ferule', 'fester', 'festoon', 'fetch', 'fete', 'fetter', 'fettle', 'feud', 'feudalize', 'fever', 'fib', 'fictionalize', 'fiddle', 'fiddlefaddle', 'fidge', 'fidget', 'field', 'fife', 'fig', 'fight', 'figure', 'filagree', 'filch', 'file', 'filiate', 'filibuster', 'fill', 'fillagree', 'fillet', 'fillip', 'film', 'filmset', 'filter', 'filtrate', 'fin', 'finagle', 'finalize', 'finance', 'find', 'fine', 'fine-draw', 'finesse', 'finger', 'fingerprint', 'finish', 'fink', 'fire', 'firecure', 'fireproof', 'firm', 'first-foot', 'fishes', 'fishtail', 'fissure', 'fist', 'fit', 'fix', 'fixate', 'fizz', 'fizzle', 'flabbergast', 'flag', 'flagellate', 'flail', 'flake', 'flam', 'flame', 'flameout', 'flange', 'flank', 'flannel', 'flap', 'flare', 'flash', 'flatten', 'flatter', 'flaunt', 'flavour', 'flaw', 'fleck', 'fledge', 'flee', 'fleece', 'fleer', 'fleet', 'flense', 'flesh', 'fletch', 'flex', 'fley', 'flick', 'flicker', 'flight', 'flimflam', 'flinch', 'fling', 'flint', 'flip', 'flirt', 'flit', 'flitch', 'flite', 'flitter', 'float', 'flocculate', 'flock', 'flog', 'flood', 'floodlight', 'floor', 'flop', 'flounce', 'flounder', 'flour', 'flourish', 'flout', 'flow', 'flower', 'fluctuate', 'flue-cure', 'fluff', 'fluidize', 'fluke', 'flume', 'flummox', 'flunk', 'fluoresce', 'fluoridate', 'fluoridize', 'fluorinate', 'flurry', 'flush', 'fluster', 'flute', 'flutter', 'flux', 'fly', 'flyblow', 'flyfish', 'flyspeck', 'flyte', 'foal', 'foam', 'fob', 'focalize', 'focus', 'fodder', 'fog', 'foil', 'foin', 'foist', 'fold', 'foliate', 'folio', 'folk', 'folk-dance', 'follow', 'foment', 'fondle', 'fool', 'foot', 'foot-slog', 'footle', 'footnote', 'foozle', 'forage', 'foray', 'forbear', 'forbid', 'force', 'force-land', 'force-ripe', 'forcefeed', 'ford', 'forearm', 'forebode', 'forecast', 'foreclose', 'foredo', 'foredoom', 'foregather', 'forehand', 'foreknow', 'forelock', 'foreordain', 'forereach', 'forerun', 'foresee', 'foreshadow', 'foreshorten', 'foreshow', 'forespeak', 'forest', 'forestall', 'foreswear', 'foretaste', 'foretell', 'foretoken', 'forewarn', 'forfeit', 'forfend', 'forgat', 'forgather', 'forge', 'forget', 'forgive', 'forgo', 'forjudge', 'fork', 'form', 'formalize', 'format', 'formicate', 'formularize', 'formulate', 'fornicate', 'forsake', 'forspeak', 'forswear', 'fortify', 'fortress', 'fortune', 'forward', 'fossick', 'fossilize', 'foster', 'foul', 'founder', 'fourflush', 'fowl', 'fox', 'foxhunt', 'fraction', 'fractionate', 'fractionize', 'fracture', 'frag', 'fragment', 'frame', 'franchise', 'frank', 'frap', 'fraternize', 'fray', 'frazzle', 'freak', 'freckle', 'free', 'free-select', 'free-wheel', 'freeboot', 'freelance', 'freeload', 'freewheel', 'freeze', 'freezedry', 'freight', 'French-polish', 'Frenchify', 'frenzy', 'frequent', 'fresh', 'freshen', 'fret', 'fribble', 'fricassee', 'friend', 'frig', 'frighten', 'frill', 'fringe', 'frisk', 'fritt', 'fritter', 'frivol', 'frizz', 'frizzle', 'frock', 'frog', 'frogmarch', 'frolic', 'front', 'frost', 'froth', 'frown', 'fructify', 'fruit', 'frustrate', 'fry', 'fuck', 'fuddle', 'fudge', 'fuel', 'fulfill', 'fulgurate', 'fuller', 'fulminate', 'fumble', 'fume', 'fumigate', 'fun', 'function', 'fund', 'funk', 'funnel', 'fur', 'furbelow', 'furbish', 'furcate', 'furl', 'furlough', 'furnish', 'furrow', 'further', 'fusillade', 'fuss', 'fustigate', 'fuze', 'fuzz', 'gab', 'gabble', 'gad', 'gaff', 'gag', 'gaggle', 'gain', 'gainsay', 'gall', 'gallant', 'Gallicize', 'gallivant', 'gallop', 'galumph', 'galvanize', 'gam', 'gamble', 'gambol', 'game', 'gammon', 'gang', 'gangrene', 'gape', 'garage', 'garb', 'garble', 'garden', 'gargle', 'garland', 'garment', 'garner', 'garnish', 'garnishee', 'garrison', 'garrotte', 'garter', 'gas', 'gasconade', 'gash', 'gasify', 'gasp', 'gat', 'gate', 'gate-crash', 'gatecrash', 'gather', 'gauge', 'gawk', 'gawp', 'gaze', 'gazette', 'gazump', 'gear', 'gee', 'gelatinize', 'geld', 'gem', 'geminate', 'gemmate', 'generalize', 'generate', 'gentle', 'genuflect', 'geologize', 'geometrize', 'Germanize', 'germinate', 'gerrymander', 'gestate', 'gesticulate', 'gesture', 'get', 'getter', 'ghost', 'ghostwrite', 'gib', 'gibber', 'gibbet', 'gibe', 'gie', 'gift', 'giftwrap', 'gig', 'giggle', 'gild', 'gill', 'gimlet', 'gimme', 'gin', 'ginger', 'gird', 'girdle', 'girth', 'give', 'glac_e', 'glaciate', 'glad', 'gladden', 'glair', 'glamourize', 'glance', 'glare', 'glass', 'glaze', 'gleam', 'glean', 'glide', 'glimmer', 'glimpse', 'glint', 'glissade', 'glisten', 'glister', 'glitter', 'gloat', 'globe', 'globe-trot', 'gloom', 'glorify', 'glory', 'gloss', 'glove', 'glow', 'glower', 'gloze', 'glue', 'glut', 'gnarl', 'gnash', 'gnaw', 'Gnosticize', 'go', 'goad', 'gob', 'gobble', 'goffer', 'goggle', 'gold-plate', 'gollop', 'golly', 'goof', 'goose', 'goosestep', 'gore', 'gorge', 'gormandize', 'gossip', 'goster', 'Gothicize', 'gotta', 'gouge', 'govern', 'gown', 'grab', 'grabble', 'grace', 'gradate', 'grade', 'graduate', 'graft', 'grain', 'grandstand', 'grangerize', 'grant', 'granulate', 'graph', 'graphitize', 'grapple', 'grasp', 'grass', 'grate', 'gratify', 'gratulate', 'grave', 'gravel', 'gravitate', 'graze', 'grease', 'greaten', 'Grecize', 'gree', 'greet', 'grey', 'griddle', 'gride', 'grieve', 'grill', 'grimace', 'grime', 'grin', 'grind', 'grip', 'gripe', 'grit', 'grizzle', 'groan', 'groin', 'groom', 'groove', 'grope', 'gross', 'grouch', 'ground', 'group', 'grouse', 'grout', 'grovel', 'grow', 'growl', 'grub', 'grubstake', 'grudge', 'grumble', 'grump', 'grunt', 'guarantee', 'guaranty', 'guard', 'gudgeon', 'guerdon', 'guess', 'guest', 'guffaw', 'guide', 'guillotine', 'guise', 'gulf', 'gull', 'gully', 'gulp', 'gum', 'gumshoe', 'gun', 'gurgle', 'gush', 'gusset', 'gut', 'gutter', 'gutturalize', 'guy', 'guzzle', 'gybe', 'gyp', 'gyrate', 'gyve', 'habilitate', 'habit', 'habituate', 'hachure', 'hack', 'hackle', 'hackney', 'hacksaw', 'hade', 'haft', 'haggle', 'hail', 'hale', 'half-volley', 'hallal', 'hallmark', 'halloo', 'hallow', 'hallucinate', 'halo', 'halogenate', 'halter', 'halve', 'ham', 'hammer', 'hamper', 'hamshackle', 'hamstring', 'hand', 'hand-knit', 'handcuff', 'handfast', 'handfeed', 'handicap', 'handle', 'handpick', 'hang', 'hank', 'hanker', 'hansel', 'hap', 'happen', 'harangue', 'harass', 'harbinger', 'harbour', 'harden', 'hare', 'hark', 'harm', 'harmonize', 'harness', 'harp', 'harpoon', 'harrow', 'harrumph', 'harry', 'harvest', 'hash', 'hasp', 'hassle', 'haste', 'hasten', 'hat', 'hatch', 'hatchel', 'hate', 'haul', 'haunt', 'have', 'haven', 'haver', 'havoc', 'haw', 'hawk', 'hawse', 'hay', 'hazard', 'haze', 'head', 'head-load', 'headline', 'headreach', 'heal', 'heap', 'hear', 'hearken', 'heart', 'hearten', 'heat', 'heathenize', 'heattreat', 'heave', 'hebetate', 'Hebraize', 'heckle', 'hector', 'hedge', 'hedge-hop', 'hedgehop', 'heed', 'heel', 'heel-and-toe', 'heft', 'heighten', 'heist', 'Hellenize', 'helm', 'help', 'helve', 'hem', 'hemagglutinate', 'hemorrhage', 'hemstitch', 'henpeck', 'hent', 'herald', 'herd', 'heroworship', 'herringbone', 'hesitate', 'heterodyne', 'hew', 'hex', 'hibernate', 'hiccough', 'hiccup', 'hide', 'hie', 'higgle', 'highhat', 'highlight', 'hight', 'hightail', 'hijack', 'hike', 'hill', 'hilt', 'hinder', 'hinge', 'hinny', 'hint', 'hire', 'Hispanicize', 'hiss', 'hit', 'hitch', 'hitchhike', 'hive', 'hoard', 'hoarsen', 'hoax', 'hob', 'hobble', 'hobbyhorse', 'hobnob', 'hock', 'hocus', 'hocuspocus', 'hoe', 'hog', 'hogtie', 'hoick', 'hoiden', 'hoist', 'hoke', 'hold', 'holden', 'hole', 'holiday', 'holler', 'hollow', 'holp', 'holpen', 'holystone', 'homage', 'home', 'homogenize', 'homologate', 'homologize', 'hone', 'honey', 'honeycomb', 'honeymoon', 'honor', 'honour', 'hood', 'hoodoo', 'hoodwink', 'hoof', 'hook', 'hookup', 'hoop', 'hooray', 'hoot', 'Hoover', 'hop', 'hope', 'hopple', 'horde', 'horn', 'hornswoggle', 'horrify', 'horse', 'horseshoe', 'horsewhip', 'hose', 'hospitalize', 'host', 'hot-press', 'hotdog', 'hotfoot', 'hound', 'house', 'house-train', 'housel', 'hovel', 'hover', 'howl', 'huckster', 'huddle', 'huff', 'hug', 'huggermugger', 'hulk', 'hum', 'humanize', 'humble', 'humbug', 'humidify', 'humiliate', 'humour', 'hump', 'hunch', 'hunger', 'hunt', 'hurdle', 'hurl', 'hurrah', 'hurry', 'hurt', 'hurtle', 'husband', 'hush', 'hustle', 'hutch', 'huzzah', 'hybridize', 'hydrate', 'hydrogenize', 'hydrolyze', 'hydroplane', 'hymn', 'hyperbolize', 'hypersensitize', 'hypertrophy', 'hyphenate', 'hypnotize', 'hyposensitize', 'hypostasize', 'hypostatize', 'hypothecate', 'hypothesize', 'hysterectomize', 'ice', 'iceskate', 'idealize', 'ideate', 'identify', 'idle', 'idolatrize', 'idolize', 'ignite', 'ignore', 'illegalize', 'illtreat', 'illude', 'illume', 'illuminate', 'illumine', 'illuse', 'illustrate', 'image', 'imagine', 'imbed', 'imbibe', 'imbricate', 'imbrue', 'imbue', 'imitate', 'immaterialize', 'immerge', 'immerse', 'immigrate', 'immingle', 'immix', 'immobilize', 'immolate', 'immortalize', 'immunize', 'immure', 'imp', 'impact', 'impair', 'impale', 'impanel', 'imparadise', 'impart', 'impassion', 'impaste', 'impeach', 'impearl', 'impede', 'impel', 'impend', 'imperil', 'impersonalize', 'impersonate', 'impetrate', 'impinge', 'implant', 'implead', 'implement', 'implicate', 'implode', 'implore', 'imply', 'impolder', 'import', 'importune', 'impose', 'impost', 'impound', 'impoverish', 'impower', 'imprecate', 'impregnate', 'impress', 'imprint', 'imprison', 'impropriate', 'improve', 'improvise', 'impugn', 'impulse-buy', 'impute', 'inactivate', 'inarch', 'inaugurate', 'inbreathe', 'inbred', 'incandesce', 'incapacitate', 'incapsulate', 'incarcerate', 'incardinate', 'incarnadine', 'incarnate', 'incase', 'incense', 'incept', 'incinerate', 'incise', 'incite', 'incline', 'inclose', 'include', 'incommode', 'inconvenience', 'incorporate', 'incrassate', 'increase', 'incriminate', 'incross', 'incrust', 'incubate', 'inculcate', 'inculpate', 'incumber', 'incur', 'incurvate', 'indemnify', 'indent', 'indenture', 'index', 'indicate', 'indict', 'indispose', 'indite', 'individualize', 'individuate', 'indoctrinate', 'indorse', 'induce', 'induct', 'indue', 'indulge', 'indurate', 'industrialize', 'indwell', 'inearth', 'inebriate', 'infamize', 'infatuate', 'infect', 'infer', 'infest', 'infibulate', 'infiltrate', 'infix', 'inflame', 'inflate', 'inflect', 'inflict', 'influence', 'infold', 'inform', 'infract', 'infringe', 'infuriate', 'infuse', 'ingather', 'ingeminate', 'ingenerate', 'ingest', 'ingot', 'ingraft', 'ingrain', 'ingratiate', 'ingulf', 'ingurgitate', 'inhabit', 'inhale', 'inhere', 'inherit', 'inhibit', 'inhume', 'initial', 'initialize', 'initiate', 'inject', 'injure', 'ink', 'inlace', 'inlay', 'inlet', 'inmesh', 'innervate', 'innerve', 'innovate', 'inoculate', 'inosculate', 'inquire', 'insalivate', 'inscribe', 'inseminate', 'insert', 'inset', 'inshrine', 'insinuate', 'insist', 'insnare', 'insolate', 'insoul', 'inspan', 'inspect', 'insphere', 'inspire', 'inspirit', 'inspissate', 'install', 'instance', 'instantiate', 'instate', 'instigate', 'instill', 'institute', 'institutionalize', 'instruct', 'insufflate', 'insulate', 'insult', 'insure', 'integrate', 'intellectualize', 'intend', 'intenerate', 'intensify', 'inter', 'interact', 'interbreed', 'intercalate', 'intercede', 'intercept', 'interchange', 'intercommunicate', 'intercrop', 'intercross', 'intercut', 'interdict', 'interdigitate', 'interest', 'interfere', 'interfile', 'interflow', 'interfuse', 'intergrade', 'interiorize', 'interject', 'interlace', 'interlaminate', 'interlap', 'interlard', 'interlay', 'interleave', 'interlineate', 'interlink', 'interlock', 'interlope', 'intermarry', 'intermingle', 'intermit', 'intermix', 'intern', 'internalize', 'internationalize', 'interosculate', 'interpage', 'interpellate', 'interpenetrate', 'interplead', 'interpolate', 'interpose', 'interpret', 'interrelate', 'interrogate', 'interrupt', 'intersect', 'interspace', 'intersperse', 'interstratify', 'intertwine', 'intervene', 'interview', 'interweave', 'intimate', 'intimidate', 'intitule', 'intonate', 'intone', 'intoxicate', 'intreat', 'intrench', 'intrigue', 'introduce', 'introject', 'intromit', 'introspect', 'introvert', 'intrude', 'intrust', 'intubate', 'intuit', 'intumesce', 'intussuscept', 'intwine', 'inundate', 'inure', 'inurn', 'invade', 'invaginate', 'invalid', 'invalidate', 'inveigh', 'inveigle', 'invent', 'inventory', 'invert', 'invest', 'investigate', 'invigilate', 'invigorate', 'invite', 'invocate', 'invoice', 'invoke', 'involute', 'involve', 'inweave', 'inwrap', 'iodate', 'iodize', 'ionize', 'irk', 'iron', 'ironize', 'irradiate', 'irrigate', 'irritate', 'irrupt', 'Islamize', 'island', 'isochronize', 'isolate', 'isomerize', 'issue', 'Italianize', 'italicize', 'itch', 'item', 'itemize', 'iterate', 'itinerate', 'jab', 'jabber', 'jack', 'jacket', 'jackknife', 'jade', 'jaga', 'jagg', 'jail', 'jam', 'jampack', 'jangle', 'japan', 'jape', 'jar', 'jargon', 'jargonize', 'jaundice', 'jaunt', 'jaup', 'jaw', 'jay-walk', 'jaywalk', 'jazz', 'jeer', 'jell', 'jellify', 'jelly', 'jemmy', 'jeopardize', 'jerk', 'jerrybuild', 'jess', 'jest', 'jet', 'jettison', 'Jew', 'jewel', 'jib', 'jibe', 'jig', 'jiggle', 'jilt', 'jimmy', 'jingle', 'jink', 'jinx', 'jitter', 'job', 'jockey', 'jog', 'jog-trot', 'joggle', 'join', 'joint', 'joist', 'joke', 'jollify', 'jolly', 'jolt', 'jook', 'josh', 'jot', 'jounce', 'journalize', 'journey', 'joust', 'joy', 'joy-ride', 'joypop', 'jubilate', 'Judaize', 'judder', 'judge', 'jug', 'juggle', 'jugulate', 'jumble', 'jump', 'jumpstart', 'junk', 'junket', 'justify', 'justle', 'jut', 'juxtapose', 'kalsomine', 'kangaroo', 'kayo', 'keck', 'kedge', 'keek', 'keel', 'keelhaul', 'keen', 'keep', 'ken', 'kennel', 'kep', 'keratinize', 'kerfuffle', 'kerne', 'kernel', 'key', 'keyboard', 'keynote', 'keypunch', 'kibble', 'kibitz', 'kibosh', 'kick', 'kick-start', 'kid', 'kidnap', 'kill', 'kiln', 'kilt', 'kindle', 'kip', 'kipper', 'kiss', 'kite', 'kitten', 'kittle', 'knacker', 'knap', 'knead', 'kneel', 'knife', 'knight', 'knit', 'knob', 'knock', 'knoll', 'knot', 'know', 'knurl', 'ko', 'kockelsch', 'kotow', 'kowtow', 'kraal', 'kyanize', 'label', 'labialize', 'labour', 'lace', 'lacerate', 'lack', 'lackey', 'lacquer', 'lactate', 'ladder', 'lade', 'ladle', 'ladyfy', 'lag', 'laicize', 'laik', 'lair', 'lallygag', 'lam', 'lamb', 'lambaste', 'lame', 'lament', 'laminate', 'lampoon', 'lance', 'land', 'landscape', 'languish', 'lap', 'lapidate', 'lapidify', 'lapse', 'lard', 'largen', 'lark', 'larn', 'larrup', 'lase', 'lash', 'lasso', 'last', 'latch', 'lath', 'lathe', 'lather', 'Latinize', 'lattice', 'laud', 'laugh', 'launch', 'launder', 'lave', 'lavish', 'layer', 'laze', 'leach', 'lead', 'leaf', 'league', 'leak', 'lean', 'leap', 'leapfrog', 'learn', 'lease', 'leash', 'leather', 'leave', 'leaven', 'lecture', 'ledger', 'leer', 'left', 'leg', 'legalize', 'legislate', 'legitimate', 'legitimize', 'leister', 'lend', 'lengthen', 'lessen', 'lesson', 'let', 'letch', 'letter', 'levant', 'level', 'lever', 'levigate', 'levitate', 'levy', 'LHlike', 'liaise', 'libel', 'liberalize', 'liberate', 'librate', 'licence', 'license', 'lick', 'lie', 'lift', 'ligate', 'ligature', 'light', 'lighten', 'lignify', 'like', 'liken', 'lilt', 'limb', 'limber', 'lime', 'limit', 'limn', 'limp', 'line', 'linger', 'link', 'lionize', 'lip', 'lipread', 'liquate', 'liquefy', 'liquesce', 'liquidate', 'liquidize', 'liquify', 'liquor', 'lisp', 'list', 'listen', 'lit', 'lithograph', 'litigate', 'litter', 'live', 'liven', 'lixiviate', 'load', 'loaf', 'loam', 'loan', 'loathe', 'lob', 'lobby', 'localize', 'locate', 'lock', 'loco', 'lodge', 'loft', 'log', 'logroll', 'loiter', 'loll', 'lollop', 'long', 'look', 'loom', 'loop', 'loophole', 'loose', 'loosen', 'loot', 'lop', 'lope', 'lord', 'lose', 'lot', 'louden', 'lounge', 'lour', 'lout', 'love', 'lower', 'lowercase', 'lubricate', 'luck', 'lucubrate', 'luff', 'lug', 'lull', 'lullaby', 'lumber', 'luminesce', 'lump', 'lunch', 'lunge', 'lurch', 'lure', 'lurk', 'lush', 'lust', 'lustrate', 'lustre', 'lute', 'luxate', 'luxuriate', 'lynch', 'lyophilize', 'lyse', 'macadamize', 'Mace', 'macerate', 'machicolate', 'machinate', 'machine', 'machinegun', 'maculate', 'mad', 'madden', 'maffick', 'magnetize', 'magnify', 'mail', 'maim', 'maintain', 'major', 'make', 'maladminister', 'maledict', 'malfunction', 'malign', 'malinger', 'malt', 'maltreat', 'mamaguy', 'mambo', 'mammock', 'man', 'man-handle', 'manacle', 'manage', 'mandate', 'manducate', 'maneuver', 'mangle', 'manhandle', 'manicure', 'manifest', 'manifold', 'manipulate', 'manoeuvre', 'mantle', 'manufacture', 'manumit', 'manure', 'map', 'mar', 'maraud', 'marble', 'marcel', 'march', 'margin', 'marginalize', 'marginate', 'marinade', 'marinate', 'mark', 'market', 'marl', 'maroon', 'marry', 'marshal', 'martyr', 'marvel', 'mash', 'mask', 'mason', 'masquerade', 'mass', 'massacre', 'massage', 'massproduce', 'mast', 'master', 'master-mind', 'mastermind', 'masticate', 'masturbate', 'mat', 'match', 'matchmark', 'mate', 'materialize', 'matriculate', 'matter', 'maturate', 'mature', 'maul', 'maunder', 'maximize', 'may', 'maze', 'mean', 'meander', 'measure', 'mechanize', 'medal', 'meddle', 'mediate', 'mediatize', 'medicate', 'meditate', 'meet', 'meld', 'meliorate', 'mellow', 'melodize', 'melodramatize', 'melt', 'memorialize', 'memorize', 'menace', 'mend', 'menstruate', 'mention', 'mercerize', 'merchant', 'mercurate', 'mercurialize', 'merge', 'merit', 'mesh', 'mesmerize', 'mess', 'metabolize', 'metal', 'metallize', 'metamorphose', 'metaphrase', 'metaphysicize', 'metastasize', 'metathesize', 'mete', 'meter', 'methodize', 'methought', 'methylate', 'metricate', 'metricize', 'metrify', 'mew', 'mewl', 'mezzotint', 'miaul', 'microfilm', 'micturate', 'middle', 'miff', 'might', 'migrate', 'mike', 'milden', 'mildew', 'militarize', 'militate', 'milk', 'mill', 'milt', 'mime', 'mimeograph', 'Mimeograph', 'mimic', 'mince', 'mind', 'mine', 'mineralize', 'mingle', 'miniaturize', 'minify', 'minimize', 'minister', 'mint', 'minute', 'mire', 'mirror', 'misadvise', 'misapply', 'misapprehend', 'misappropriate', 'misbecome', 'misbehave', 'miscalculate', 'miscall', 'miscarry', 'miscast', 'misconceive', 'misconduct', 'misconstrue', 'miscount', 'miscreate', 'miscue', 'misdate', 'misdeal', 'misdemean', 'misdirect', 'misdoubt', 'misfile', 'misfire', 'misfit', 'misgive', 'misgovern', 'misguide', 'mishandle', 'mishear', 'mishit', 'misinform', 'misinterpret', 'misjudge', 'mislay', 'mislead', 'mislike', 'mismanage', 'mismatch', 'misname', 'misplace', 'misplay', 'mispled', 'misprint', 'misprize', 'mispronounce', 'misquote', 'misread', 'misreport', 'misrepresent', 'misrule', 'miss', 'misshape', 'mission', 'misspell', 'misspend', 'misstate', 'mist', 'mistake', 'mister', 'mistime', 'mistranslate', 'mistreat', 'mistrust', 'misunderstand', 'misuse', 'mitch', 'mitigate', 'mitre', 'mix', 'mizzle', 'moan', 'moat', 'mob', 'mobilize', 'mock', 'model', 'moderate', 'modernize', 'modge', 'modify', 'modulate', 'Mohammedanize', 'moil', 'moisten', 'moisturize', 'moither', 'molest', 'mollify', 'mollycoddle', 'molt', 'monetize', 'mongrelize', 'monitor', 'monopolize', 'monotonize', 'moo', 'mooch', 'moon', 'moonlight', 'moor', 'moot', 'mop', 'mope', 'moralize', 'mordant', 'mortar', 'mortgage', 'mortify', 'mortise', 'mosey', 'mothball', 'mother', 'mothproof', 'motion', 'motivate', 'motive', 'motor', 'motorize', 'mottle', 'mould', 'moulder', 'moult', 'mound', 'mount', 'mountaineer', 'mountebank', 'mourn', 'mouse', 'mouth', 'move', 'mow', 'muck', 'muckamuck', 'muckrake', 'mud', 'muddle', 'muddy', 'muff', 'muffle', 'mug', 'mulch', 'mulct', 'mull', 'multiply', 'mumble', 'mumm', 'mummify', 'mump', 'munch', 'municipalize', 'munition', 'murdabad', 'murder', 'mure', 'murmur', 'murther', 'muscle', 'muse', 'mushroom', 'muss', 'must', 'muster', 'mutate', 'mutch', 'mute', 'mutilate', 'mutiny', 'mutter', 'mutualize', 'muzz', 'muzzle', 'mystify', 'mythicize', 'mythologize', 'nab', 'nag', 'nail', 'name', 'name-drop', 'nap', 'napalm', 'narcotize', 'nark', 'narrate', 'narrow', 'nasalize', 'nationalize', 'natter', 'naturalize', 'nauseate', 'navigate', 'naysay', 'Nazify', 'near', 'neaten', 'nebulize', 'necessitate', 'neck', 'necrose', 'need', 'needle', 'negate', 'neglect', 'negotiate', 'neigh', 'neighbour', 'neologize', 'nerve', 'nest', 'nestle', 'net', 'nettle', 'network', 'neuter', 'neutralize', 'nibble', 'nick', 'nickel', 'nicker', 'nickname', 'nictitate', 'nid-nod', 'nidify', 'niello', 'niggle', 'nigrify', 'nip', 'nitrify', 'nitrogenize', 'nix', 'nobble', 'nock', 'nod', 'noddle', 'noise', 'nomadize', 'nominate', 'nonplus', 'nonpros', 'nonsuit', 'normalize', 'Normanize', 'nose', 'nosedive', 'nosh', 'notarize', 'notate', 'notch', 'note', 'notice', 'notify', 'nourish', 'novelize', 'nucleate', 'nudge', 'nullify', 'number', 'numerate', 'nurse', 'nurture', 'nut', 'nuzzle', 'oar', 'obelize', 'obey', 'obfuscate', 'object', 'objectify', 'objurgate', 'obligate', 'oblige', 'oblique', 'obliterate', 'obnubilate', 'obscure', 'obsecrate', 'observe', 'obsess', 'obsolesce', 'obsolete', 'obstruct', 'obtain', 'obtest', 'obtrude', 'obtund', 'obturate', 'obvert', 'obviate', 'occasion', 'Occidentalize', 'occlude', 'occult', 'occupy', 'occur', 'ochre', 'octuple', 'offend', 'offer', 'officer', 'officiate', 'offload', 'offprint', 'offset', 'ogle', 'oil', 'ok', 'okay', 'old-talk', 'omen', 'omit', 'ooze', 'opalesce', 'opaque', 'ope', 'open', 'operate', 'operatize', 'opiate', 'opine', 'oppilate', 'oppose', 'oppress', 'oppugn', 'opsonize', 'opt', 'optimize', 'orate', 'orb', 'orbit', 'orchestrate', 'ordain', 'order', 'organize', 'orient', 'Orientalize', 'orientate', 'originate', 'ornament', 'orphan', 'oscillate', 'osculate', 'osmose', 'ossify', 'ostracize', 'ought', 'oust', 'out', 'out-herod', 'outbalance', 'outbid', 'outbrave', 'outbreed', 'outclass', 'outcrop', 'outcross', 'outcry', 'outdate', 'outdistance', 'outdo', 'outface', 'outfight', 'outfit', 'outflank', 'outfoot', 'outfox', 'outgain', 'outgas', 'outgeneral', 'outgo', 'outgrow', 'outgun', 'outjockey', 'outlast', 'outlaw', 'outlay', 'outleap', 'outline', 'outlive', 'outman', 'outmanoeuvre', 'outmarch', 'outmatch', 'outnumber', 'outpace', 'outperform', 'outplay', 'outpoint', 'outpour', 'outrage', 'outrange', 'outrank', 'outreach', 'outride', 'outrival', 'outrun', 'outsail', 'outsell', 'outshine', 'outshoot', 'outsmart', 'outspan', 'outspread', 'outstand', 'outstay', 'outstretch', 'outstrip', 'outthink', 'outvie', 'outvote', 'outwear', 'outweigh', 'outwit', 'outwork', 'over-burden', 'over-estimate', 'over-expose', 'over-heat', 'over-simplify', 'overachieve', 'overact', 'overarch', 'overawe', 'overbalance', 'overbear', 'overbid', 'overblow', 'overbuild', 'overburden', 'overcall', 'overcapitalize', 'overcharge', 'overcloud', 'overcome', 'overcompensate', 'overcook', 'overcrop', 'overcrowd', 'overdevelop', 'overdo', 'overdose', 'overdraw', 'overdress', 'overdrive', 'overdye', 'overeat', 'overemphasize', 'overestimate', 'overexert', 'overexpose', 'overfeed', 'overflow', 'overfly', 'overgrow', 'overhand', 'overhang', 'overhaul', 'overhear', 'overheat', 'overindulge', 'overissue', 'overjoy', 'overland', 'overlap', 'overlay', 'overleap', 'overlie', 'overlive', 'overload', 'overlook', 'overman', 'overmaster', 'overmatch', 'overpass', 'overpay', 'overpersuade', 'overpitch', 'overplay', 'overpower', 'overpraise', 'overprint', 'overproduce', 'overprotect', 'overrate', 'overreach', 'overreact', 'overrefine', 'override', 'overrule', 'overrun', 'overscore', 'oversee', 'oversell', 'overset', 'oversew', 'overshadow', 'overshoot', 'overshot', 'oversimplify', 'oversleep', 'overspend', 'overspill', 'overstaff', 'overstate', 'overstay', 'oversteer', 'overstep', 'overstock', 'overstrain', 'overstuff', 'oversubscribe', 'overtake', 'overtask', 'overtax', 'overthrow', 'overtime', 'overtop', 'overtrade', 'overtrump', 'overture', 'overturn', 'overvalue', 'overwatch', 'overweigh', 'overweight', 'overwhelm', 'overwind', 'overwinter', 'overwork', 'overwrite', 'oviposit', 'ovulate', 'owe', 'own', 'oxidate', 'oxidize', 'oxygenize', 'oyster', 'ozonize', 'pace', 'pacify', 'pack', 'package', 'packet', 'pad', 'paddle', 'padlock', 'paganize', 'page', 'paginate', 'pain', 'paint', 'pair', 'pal', 'palatalize', 'palaver', 'pale', 'palisade', 'palliate', 'palm', 'palpate', 'palpebrate', 'palpitate', 'palter', 'pamper', 'pamphleteer', 'pan', 'pander', 'pandy', 'panegyrize', 'panel', 'panhandle', 'panic', 'pant', 'pantomime', 'paper', 'parabolize', 'parachute', 'parade', 'paragon', 'paragraph', 'parallel', 'paralyze', 'paraphrase', 'parasitize', 'parboil', 'parbuckle', 'parcel', 'parch', 'pardon', 'pare', 'parenthesize', 'park', 'parlay', 'parley', 'parleyvoo', 'parody', 'parole', 'parrot', 'parry', 'parse', 'part', 'partake', 'participate', 'particularize', 'partition', 'partner', 'pash', 'pass', 'passage', 'past', 'paste', 'pasteurize', 'pasture', 'pat', 'patch', 'patent', 'patrol', 'patronize', 'patter', 'pauperize', 'pause', 'pave', 'pavilion', 'paw', 'pawn', 'pay', 'peace', 'peach', 'peacock', 'peak', 'peal', 'pearl', 'pebble', 'peck', 'pectize', 'peculate', 'pedal', 'peddle', 'pedestrianize', 'pee', 'peek', 'peel', 'peen', 'peep', 'peer', 'peeve', 'peg', 'pellet', 'pelt', 'pen', 'penalize', 'penance', 'pencil', 'pend', 'penetrate', 'peninsulate', 'pension', 'people', 'pep', 'pepper', 'pepsinate', 'peptize', 'peptonize', 'perambulate', 'perceive', 'perch', 'percolate', 'percuss', 'peregrinate', 'perennate', 'perfect', 'perforate', 'perform', 'perfume', 'perfuse', 'perish', 'perjure', 'perk', 'permeate', 'permit', 'permute', 'perorate', 'peroxide', 'perpend', 'perpetrate', 'perpetuate', 'perplex', 'persecute', 'persevere', 'persist', 'personalize', 'personate', 'personify', 'perspire', 'persuade', 'pertain', 'perturb', 'peruse', 'pervade', 'pervert', 'pester', 'pestle', 'pet', 'peter', 'petition', 'petrify', 'pettifog', 'phantasy', 'phase', 'phenolate', 'philander', 'philosophize', 'phlebotomize', 'phonate', 'phone', 'phosphatize', 'phosphorate', 'phosphoresce', 'photocompose', 'photocopy', 'photoengrave', 'photograph', 'photolithograph', 'photomap', 'photosensitize', 'photoset', 'photostat', 'Photostat', 'photosynthesize', 'phototype', 'phrase', 'physic', 'pi', 'pick', 'pickaxe', 'picket', 'pickle', 'picnic', 'picture', 'piddle', 'piece', 'pierce', 'piffle', 'pig', 'pigeonhole', 'pigstick', 'pike', 'pile', 'pilfer', 'pilgrimage', 'pill', 'pillage', 'pillar', 'pillory', 'pillow', 'pilot', 'pimp', 'pin', 'pinch', 'pinchhit', 'pine', 'pinfold', 'ping', 'pinion', 'pink', 'pinnacle', 'pinpoint', 'pinprick', 'pioneer', 'pip', 'pipe', 'pipeline', 'pipette', 'pique', 'pirate', 'pirouette', 'pish', 'piss', 'pistol', 'pistolwhip', 'pit', 'pitapat', 'pitch', 'pitchfork', 'pith', 'pitterpatter', 'pity', 'pivot', 'pize', 'placard', 'placate', 'place', 'placekick', 'plagiarize', 'plague', 'plain', 'plait', 'plan', 'plane', 'plane-table', 'planish', 'plank', 'plant', 'plash', 'plasmolyze', 'plaster', 'plasticize', 'plate', 'platemark', 'platinize', 'platitudinize', 'Platonize', 'play', 'playact', 'playback', 'pleach', 'plead', 'please', 'pleasure', 'pleat', 'pledge', 'plenish', 'plight', 'ploat', 'plod', 'plodge', 'plonk', 'plop', 'plot', 'plough', 'plow', 'pluck', 'plug', 'plumb', 'plume', 'plummet', 'plump', 'plunder', 'plunge', 'plunk', 'pluralize', 'ply', 'poach', 'pocket', 'pockmark', 'pod', 'podzolize', 'poetize', 'poind', 'point', 'poise', 'poison', 'poke', 'polarize', 'pole', 'poleax', 'poleaxe', 'polevault', 'police', 'polish', 'politicize', 'politick', 'polka', 'poll', 'pollard', 'pollinate', 'pollute', 'polymerize', 'pomade', 'pommel', 'ponce', 'ponder', 'pong', 'poniard', 'pontificate', 'poohpooh', 'pool', 'poop', 'pop', 'popple', 'popularize', 'populate', 'pore', 'port', 'portage', 'portend', 'portion', 'portray', 'pose', 'posit', 'position', 'poss', 'posse', 'possess', 'post', 'postdate', 'postfix', 'postil', 'postpone', 'postulate', 'posture', 'posturize', 'pot', 'potentiate', 'pother', 'potter', 'pouch', 'poultice', 'pounce', 'pound', 'pour', 'poussette', 'pout', 'powder', 'power', 'powerdive', 'powwow', 'practice', 'practise', 'praise', 'prance', 'prank', 'prate', 'prattle', 'pray', 'pre-digest', 'preach', 'preachify', 'prearrange', 'precancel', 'precast', 'precede', 'precess', 'precipitate', 'precis', 'preclude', 'preconceive', 'precondition', 'preconize', 'precontract', 'predate', 'predecease', 'predestinate', 'predestine', 'predetermine', 'predicate', 'predict', 'predigest', 'predispose', 'predominate', 'preempt', 'preen', 'preexist', 'prefabricate', 'preface', 'prefer', 'prefigure', 'prefix', 'prejudge', 'prejudice', 'prelect', 'prelude', 'premeditate', 'premier', 'premise', 'premiss', 'premonish', 'preoccupy', 'preordain', 'prepare', 'prepay', 'preponderate', 'prepossess', 'prerecord', 'preregister', 'presage', 'prescind', 'prescribe', 'present', 'preserve', 'preside', 'presignify', 'press', 'pressgang', 'pressure', 'pressure-cook', 'pressurize', 'prestress', 'presume', 'presuppose', 'pretend', 'pretermit', 'prettify', 'prevail', 'prevaricate', 'prevent', 'previse', 'prevue', 'prey', 'price', 'prick', 'prickle', 'pride', 'prig', 'prill', 'prime', 'primp', 'prink', 'print', 'prise', 'privateer', 'privatize', 'privilege', 'prize', 'probe', 'proceed', 'process', 'procession', 'proclaim', 'procrastinate', 'procreate', 'procure', 'prod', 'produce', 'profane', 'profess', 'proffer', 'profit', 'profiteer', 'prog', 'prognosticate', 'programme', 'programtrade', 'progress', 'prohibit', 'project', 'prolapse', 'proliferate', 'prologue', 'prolong', 'promenade', 'promise', 'promote', 'prompt', 'promulgate', 'pronate', 'prong', 'pronominalize', 'pronounce', 'proof', 'proofread', 'prop', 'propagandize', 'propagate', 'propel', 'propend', 'prophesy', 'propitiate', 'proportion', 'proportionate', 'propose', 'proposition', 'propound', 'prorate', 'prorogue', 'proscribe', 'prose', 'prosecute', 'proselyte', 'proselytize', 'prospect', 'prosper', 'prostitute', 'prostrate', 'protect', 'protest', 'protract', 'protrude', 'protuberate', 'prove', 'provide', 'provision', 'provoke', 'prowl', 'prune', 'Prussianize', 'pry', 'psyche', 'psycho-analyse', 'psychoanalyze', 'psychologize', 'pubcrawl', 'publicize', 'publish', 'pucker', 'puddle', 'puff', 'pug', 'puke', 'pule', 'pull', 'pullulate', 'pulp', 'pulsate', 'pulse', 'pulverize', 'pummel', 'pump', 'pun', 'punce', 'punch', 'punctuate', 'puncture', 'punish', 'punt', 'pup', 'pupate', 'pur_ee', 'purchase', 'purfle', 'purge', 'purify', 'purl', 'purloin', 'purport', 'purpose', 'purr', 'purse', 'pursue', 'purvey', 'push', 'push-start', 'pussyfoot', 'pustulate', 'put', 'putput', 'putrefy', 'putt', 'putter', 'putty', 'puzzle', 'pyramid', 'quack', 'quadrisect', 'quadruple', 'quadruplicate', 'quaff', 'quail', 'quake', 'qualify', 'quant', 'quantify', 'quantize', 'quarantine', 'quarrel', 'quarry', 'quarter', 'quartersaw', 'quash', 'quaver', 'queen', 'queer', 'quell', 'quench', 'query', 'quest', 'question', 'queue', 'quibble', 'quicken', 'quickfreeze', 'quickstep', 'quiet', 'quieten', 'quill', 'quilt', 'quintuple', 'quintuplicate', 'quip', 'quit', 'quitclaim', 'quiver', 'quiz', 'quote', 'rabbit', 'rabble', 'race', 'racemize', 'racketeer', 'rackrent', 'racquet', 'raddle', 'radiate', 'radio', 'radioactivate', 'radiotelegraph', 'radiotelephone', 'raffle', 'raft', 'rag', 'rage', 'ragout', 'raid', 'rail', 'railroad', 'rain', 'rainproof', 'raise', 'rake', 'rally', 'ram', 'ramble', 'ramify', 'ramp', 'rampage', 'rampart', 'ranch', 'randomize', 'range', 'rank', 'rankle', 'ransack', 'ransom', 'rant', 'rap', 'rape', 'rappel', 'rapture', 'rarify', 'rash', 'rasp', 'rat', 'rate', 'ratify', 'ratiocinate', 'ration', 'rationalize', 'rattle', 'rattoon', 'ravage', 'rave', 'ravel', 'ravin', 'ravish', 'ray', 'raze', 'razor-cut', 'razz', 're-act', 're-afforest', 're-cede', 're-count', 're-cover', 're-create', 're-dress', 're-echo', 're-form', 're-fund', 're-join', 're-present', 're-press', 're-proof', 're-serve', 're-sign', 're-sort', 're-sound', 're-trace', 're-tread', 'reach', 'react', 'reactivate', 'read', 'readdress', 'readjust', 'ready', 'reaffirm', 'realign', 'realize', 'ream', 'reanimate', 'reap', 'reappear', 'reapportion', 'reappraise', 'rear', 'reard', 'rearm', 'rearrange', 'reason', 'reassert', 'reassign', 'reassure', 'reave', 'rebate', 'rebel', 'rebellow', 'rebound', 'rebuff', 'rebuild', 'rebuke', 'rebut', 'recalculate', 'recalesce', 'recall', 'recant', 'recap', 'recapitulate', 'recapture', 'recast', 'recce', 'recede', 'receipt', 'receive', 'recentralize', 'recess', 'reciprocate', 'recite', 'reck', 'reckon', 'reclaim', 'reclassify', 'recline', 'recognize', 'recoil', 'recollect', 'recommend', 'recommit', 'recompense', 'recompose', 'reconcile', 'recondition', 'reconnect', 'reconnoitre', 'reconsider', 'reconstitute', 'reconstruct', 'reconvert', 'record', 'recount', 'recoup', 'recover', 'recreate', 'recriminate', 'recrudesce', 'recruit', 'recrystallize', 'rectify', 'recuperate', 'recur', 'recurve', 'recycle', 'red', 'redact', 'redd', 'redden', 'reddle', 'rede', 'redeem', 'redeploy', 'redesign', 'redevelop', 'redintegrate', 'redirect', 'redistribute', 'redo', 'redouble', 'redound', 'redpencil', 'redraft', 'redraw', 'redress', 'reduce', 'reduplicate', 'reed', 'reef', 'reek', 'reel', 'reelect', 'reemphasize', 'reenact', 'reenter', 'reest', 'reestablish', 'reeve', 'reexamine', 'reexport', 'reface', 'refer', 'referee', 'reference', 'refile', 'refill', 'refinance', 'refine', 'refit', 'reflate', 'reflect', 'refloat', 'reflux', 'refocuse', 'reforest', 'reform', 'refract', 'refrain', 'refresh', 'refrigerate', 'reft', 'refuel', 'refuge', 'refund', 'refurbish', 'refuse', 'refute', 'regain', 'regale', 'regard', 'regelate', 'regenerate', 'regiment', 'register', 'regorge', 'regrate', 'regress', 'regret', 'regroup', 'regularize', 'regulate', 'regurgitate', 'rehabilitate', 'rehash', 'rehear', 'rehearse', 'reheat', 'rehouse', 'reify', 'reign', 'reignite', 'reimburse', 'reimport', 'rein', 'reincarnate', 'reindict', 'reinforce', 'reinstate', 'reinstitute', 'reinsure', 'reintroduce', 'reinvent', 'reinvest', 'reinvigorate', 'reissue', 'reiterate', 'reive', 'reject', 'rejig', 'rejoice', 'rejoin', 'rejuvenate', 'rejuvenesce', 'rekindle', 'relapse', 'relate', 'relativize', 'relaunch', 'relax', 'relay', 'release', 'relegate', 'relent', 'relieve', 'reline', 'relinquish', 'relish', 'relive', 'relocate', 'reluct', 'relumine', 'rely', 'remain', 'remainder', 'remake', 'remand', 'remark', 'remarry', 'rematch', 'remedy', 'remember', 'remilitarize', 'remind', 'reminisce', 'remise', 'remit', 'remodel', 'remonetize', 'remonstrate', 'remould', 'remount', 'remove', 'remunerate', 'rename', 'rencounter', 'rend', 'render', 'rendezvous', 'renegotiate', 'renegue', 'renew', 'renounce', 'renovate', 'rent', 'reopen', 'reorganize', 'reorient', 'reorientate', 'repackage', 'repair', 'repartition', 'repast', 'repatriate', 'repay', 'repeal', 'repeat', 'repel', 'repent', 'rephrase', 'repine', 'replace', 'replay', 'replenish', 'replevin', 'replevy', 'replicate', 'reply', 'repoint', 'repone', 'report', 'repose', 'reposit', 'reposition', 'repossess', 'repot', 'reprehend', 'represent', 'repress', 'reprieve', 'reprimand', 'reprint', 'reprise', 'reproach', 'reprobate', 'reproduce', 'reprove', 'republicanize', 'repudiate', 'repugn', 'repulse', 'repurchase', 'repute', 'request', 'require', 'requisition', 'requite', 'reread', 'reroute', 'rerun', 'reschedule', 'rescind', 'rescue', 'research', 'reseat', 'resell', 'resemble', 'resent', 'reserve', 'reset', 'resettle', 'reshape', 'reshuffle', 'reside', 'resign', 'resile', 'resin', 'resinate', 'resist', 'resit', 'resole', 'resolve', 'resonate', 'resorb', 'resort', 'resound', 'respect', 'respire', 'respite', 'respond', 'rest', 'restate', 'restock', 'restore', 'restrain', 'restrict', 'restring', 'restructure', 'resubmit', 'result', 'resume', 'resurface', 'resurge', 'resurrect', 'resuscitate', 'ret', 'retail', 'retain', 'retake', 'retaliate', 'retard', 'retch', 'retell', 'rethink', 'reticulate', 'retire', 'retool', 'retort', 'retouch', 'retrace', 'retract', 'retread', 'retreat', 'retrench', 'retrieve', 'retroact', 'retrocede', 'retrofit', 'retrograde', 'retrogress', 'retroject', 'retrospect', 'retry', 'return', 'reunify', 'reunite', 'rev', 'revalorize', 'revalue', 'revamp', 'reveal', 'revegetate', 'revel', 'revenge', 'reverberate', 'revere', 'reverence', 'reverse', 'revert', 'revest', 'revet', 'review', 'revile', 'revise', 'revisit', 'revitalize', 'revive', 'revivify', 'revoice', 'revoke', 'revolt', 'revolutionize', 'revolve', 'reward', 'rewind', 'rewire', 'reword', 'rework', 'rewrite', 'rhapsodize', 'rhubarb', 'rib', 'ribbon', 'rice', 'rick', 'ricochet', 'rid', 'riddle', 'ride', 'ridge', 'ridicule', 'riff', 'riffle', 'rifle', 'rift', 'rig', 'right', 'righten', 'rigidify', 'rile', 'rim', 'rime', 'ring', 'rinse', 'riot', 'rip', 'ripen', 'riposte', 'ripple', 'rise', 'risk', 'ritualize', 'rival', 'rive', 'rivet', 'roam', 'roar', 'roast', 'rob', 'robe', 'rock', 'rock-and-roll', 'rocket', 'rodomontade', 'roil', 'roister', 'roll', 'rollerskate', 'rollick', 'romance', 'Romanize', 'romanticize', 'romp', 'rone', 'Roneo', 'rontgenize', 'roof', 'rook', 'roose', 'roost', 'root', 'rootle', 'roquet', 'rosin', 'roster', 'rot', 'rotate', 'rouge', 'rough', 'rough-house', 'roughcast', 'roughdry', 'roughen', 'roughhew', 'roughhouse', 'round', 'roup', 'rouse', 'roust', 'rout', 'route', 'row', 'rowel', 'rub', 'rubber', 'rubberize', 'rubberneck', 'rubberstamp', 'rubbish', 'rubefy', 'rubricate', 'ruck', 'ruddle', 'rue', 'ruff', 'ruffle', 'ruggedize', 'ruin', 'rule', 'rumble', 'ruminate', 'rummage', 'rumour', 'rumple', 'run', 'rupture', 'ruralize', 'rush', 'Russianize', 'rust', 'rusticate', 'rustle', 'rut', 'saber', 'sabotage', 'saccharize', 'sack', 'sacrifice', 'sadden', 'saddle', 'safeconduct', 'safeguard', 'safety', 'sag', 'sail', 'sain', 'saint', 'salify', 'salivate', 'sallow', 'sally', 'salt', 'salute', 'salvage', 'salve', 'samba', 'sample', 'sanctify', 'sanction', 'sand', 'sand-blast', 'sandbag', 'sandblast', 'sandcast', 'sandpaper', 'sandwich', 'Sanforize', 'sanitize', 'sap', 'saponify', 'sash', 'sass', 'sate', 'satiate', 'satirize', 'satisfy', 'saturate', 'sauce', 'saunter', 'saut_e', 'savage', 'save', 'savour', 'savvy', 'saw', 'say', 'scab', 'scabble', 'scaffold', 'scag', 'scald', 'scale', 'scallop', 'scalp', 'scamp', 'scamper', 'scan', 'scandal', 'scandalize', 'scant', 'scape', 'scar', 'scare', 'scarf', 'scarify', 'scarp', 'scarper', 'scat', 'scathe', 'scatter', 'scavenge', 'scend', 'scent', 'sceptre', 'schedule', 'schematize', 'scheme', 'schlep', 'schmooze', 'school', 'schuss', 'scintillate', 'scissor', 'sclaff', 'scoff', 'scold', 'scollop', 'sconce', 'scoop', 'scoot', 'scorch', 'score', 'scorify', 'scorn', 'scotch', 'scour', 'scourge', 'scout', 'scowl', 'scrabble', 'scrag', 'scram', 'scramb', 'scramble', 'scrap', 'scrape', 'scratch', 'scrawl', 'screak', 'scream', 'screech', 'screen', 'screw', 'scribble', 'scribe', 'scrimmage', 'scrimp', 'scrimshank', 'scrimshaw', 'script', 'scroll', 'scroop', 'scrouge', 'scrounge', 'scrub', 'scrum', 'scrummage', 'scrump', 'scrunch', 'scruple', 'scrutinize', 'scry', 'scud', 'scuff', 'scuffle', 'scull', 'sculpt', 'sculpture', 'scum', 'scumble', 'scunge', 'scunner', 'scupper', 'scurry', 'scutch', 'scutter', 'scuttle', 'scythe', 'seal', 'seam', 'search', 'season', 'seat', 'secede', 'secern', 'seclude', 'second', 'secondguess', 'secrete', 'sectarianize', 'section', 'sectionalize', 'secularize', 'secure', 'sedate', 'seduce', 'see', 'seed', 'seek', 'seel', 'seem', 'seep', 'seesaw', 'seethe', 'segment', 'segregate', 'seine', 'seise', 'seize', 'select', 'sell', 'semaphore', 'send', 'sendoff', 'sense', 'sensitize', 'sentence', 'sentimentalize', 'sentinel', 'separate', 'septuple', 'sepulchre', 'sequester', 'sequestrate', 'sere', 'serenade', 'serialize', 'sermonize', 'serrate', 'serve', 'service', 'set', 'settle', 'sever', 'sew', 'sewer', 'sex', 'sextuplicate', 'shackle', 'shade', 'shadow', 'shadowbox', 'shaft', 'shag', 'shake', 'shall', 'shallow', 'shalt', 'sham', 'shamble', 'shame', 'shampoo', 'shanghai', 'shank', 'shape', 'share', 'sharecrop', 'shark', 'sharp', 'sharpen', 'shatter', 'shave', 'sheaf', 'shear', 'sheath', 'sheathe', 'sheave', 'shed', 'sheen', 'sheer', 'sheet', 'shell', 'shellac', 'shelter', 'shelve', 'shend', 'shepherd', 'sherardize', 'shew', 'shield', 'shift', 'shikar', 'shillyshally', 'shim', 'shimmer', 'shimmy', 'shin', 'shine', 'shingle', 'shinty', 'ship', 'shipwreck', 'shire', 'shirk', 'shirr', 'shit', 'shiver', 'shoal', 'shock', 'shoe', 'shoo', 'shoogle', 'shoot', 'shop', 'shop-lift', 'shore', 'short', 'short-list', 'shortchange', 'shortcircuit', 'shorten', 'shot', 'shotgun', 'should', 'shoulder', 'shouldst', 'shout', 'shove', 'shovel', 'show', 'showcase', 'showd', 'shower', 'shrank', 'shred', 'shriek', 'shrill', 'shrimp', 'shrine', 'shrink', 'shrinkwrap', 'shrive', 'shrivel', 'shroff', 'shroud', 'shrug', 'shrunk', 'shuck', 'shudder', 'shuffle', 'shun', 'shunt', 'shush', 'shut', 'shutter', 'shuttle', 'shy', 'sibilate', 'sic', 'sicken', 'side', 'side-dress', 'sideline', 'sideslip', 'sidestep', 'sideswipe', 'sidetrack', 'sidle', 'siege', 'sieve', 'sift', 'sigh', 'sight', 'sightread', 'sightsee', 'sign', 'signal', 'signalize', 'signet', 'signify', 'signpost', 'sile', 'silence', 'silhouette', 'silicify', 'silk', 'silver', 'silver-plate', 'simmer', 'simper', 'simplify', 'simulate', 'simulcast', 'sin', 'sing', 'singe', 'single', 'single-step', 'single-tongue', 'singlefoot', 'singlespace', 'singularize', 'sink', 'sinter', 'sip', 'sire', 'sit', 'site', 'situate', 'siwash', 'size', 'sizzle', 'sjambok', 'skate', 'skedaddle', 'skeletonize', 'skelly', 'skelp', 'sken', 'sket', 'sketch', 'skewer', 'ski', 'ski-jump', 'skid', 'skim', 'skimp', 'skin', 'skinnydip', 'skinpop', 'skip', 'skipper', 'skirl', 'skirmish', 'skirr', 'skirt', 'skite', 'skitter', 'skive', 'skivvy', 'skulk', 'skunks', 'sky', 'sky-rocket', 'skydive', 'skyjack', 'skylark', 'skyrocket', 'slab', 'slack', 'slacken', 'slake', 'slalom', 'slam', 'slander', 'slang', 'slant', 'slap', 'slash', 'slat', 'slate', 'slaughter', 'slave', 'slaver', 'slay', 'sleave', 'sledge', 'sledgehammer', 'sleek', 'sleep', 'sleepwalk', 'sleet', 'sleeve', 'sleigh', 'slenderize', 'sleuth', 'slice', 'slick', 'slide', 'slight', 'slim', 'slime', 'sling', 'slink', 'slip', 'slipper', 'slipsheet', 'slit', 'slither', 'sliver', 'slobber', 'slog', 'sloganeer', 'slop', 'slope', 'slosh', 'slot', 'slouch', 'slough', 'slow', 'slue', 'sluff', 'slug', 'sluice', 'slum', 'slumber', 'slump', 'slur', 'slurp', 'slush', 'smack', 'smarm', 'smart', 'smarten', 'smash', 'smatter', 'smear', 'smell', 'smelt', 'smile', 'smirch', 'smirk', 'smite', 'smock', 'smoke', 'smooch', 'smoodge', 'smooth', 'smoothen', 'smote', 'smother', 'smoulder', 'smudge', 'smuggle', 'smut', 'smutch', 'snack', 'snaffle', 'snafu', 'snake', 'snap', 'snare', 'snarl', 'snatch', 'sneak', 'sneck', 'sned', 'sneer', 'sneeze', 'snick', 'snicker', 'sniff', 'sniffle', 'snigger', 'sniggle', 'snip', 'snipe', 'snitch', 'snivel', 'snog', 'snood', 'snooker', 'snoop', 'snooze', 'snore', 'snorkel', 'snort', 'snow', 'snowshoe', 'snub', 'snuff', 'snuffle', 'snug', 'snuggle', 'soak', 'soap', 'soar', 'sob', 'sober', 'socialize', 'sock', 'socket', 'sodden', 'soft-solder', 'soften', 'softland', 'softpedal', 'softsoap', 'soil', 'sojourn', 'solace', 'solarize', 'solder', 'soldier', 'sole', 'solemnify', 'solemnize', 'solfa', 'solicit', 'solidify', 'soliloquize', 'solo', 'solubilize', 'solvate', 'solve', 'somnambulate', 'sonnet', 'soot', 'soothe', 'soothsay', 'sop', 'sophisticate', 'sorn', 'sorrow', 'sort', 'sortie', 'sough', 'sound', 'soundproof', 'sour', 'souse', 'sovietize', 'sow', 'space', 'spacewalk', 'spade', 'spae', 'spag', 'spall', 'span', 'spancel', 'spangle', 'spank', 'spar', 'spare', 'sparge', 'spark', 'sparkle', 'spatter', 'spawn', 'spay', 'speak', 'spear', 'spearhead', 'specialize', 'specify', 'speckle', 'speculate', 'speechify', 'speed', 'spell', 'spellbind', 'spelunk', 'spend', 'spew', 'spice', 'spiel', 'spiflicate', 'spike', 'spile', 'spill', 'spin', 'spin-dry', 'spindle', 'spiral', 'spire', 'spiritualize', 'spit', 'spite', 'splash', 'splatter', 'splay', 'splice', 'spline', 'splint', 'splinter', 'split', 'splodge', 'splosh', 'splotch', 'splurge', 'splutter', 'spoil', 'spoliate', 'sponge', 'sponsor', 'spoof', 'spook', 'spool', 'spoon', 'spoon-feed', 'spoor', 'spore', 'sport', 'sporulate', 'spot', 'spot-weld', 'spotlight', 'spouse', 'spout', 'sprain', 'sprawl', 'spray', 'spread', 'spreadeagle', 'sprig', 'spring', 'spring-clean', 'sprinkle', 'sprint', 'sprout', 'spruce', 'spruik', 'sprung', 'spud', 'spue', 'spume', 'spur', 'spurn', 'spurt', 'sputter', 'spy', 'squabble', 'squall', 'squander', 'square', 'squaredance', 'squash', 'squat', 'squawk', 'squeak', 'squeal', 'squeeze', 'squelch', 'squiggle', 'squilgee', 'squint', 'squire', 'squirm', 'squirt', 'squish', 'stab', 'stabilize', 'stable', 'stablish', 'stack', 'staff', 'stage', 'stagemanage', 'stagger', 'stagnate', 'stain', 'stake', 'stale', 'stalemate', 'stalk', 'stall', 'stallfeed', 'stammer', 'stamp', 'stampede', 'stanchion', 'stand', 'standardize', 'stang', 'staple', 'star', 'starch', 'stare', 'stargaze', 'start', 'startle', 'starve', 'stash', 'state', 'station', 'staunch', 'stave', 'stay', 'stead', 'steady', 'steal', 'steam', 'steam-heat', 'steamroller', 'steel', 'steep', 'steepen', 'steeplechase', 'steer', 'steeve', 'stellify', 'stem', 'stencil', 'stenograph', 'step', 'stereochrome', 'stereotype', 'sterilize', 'stet', 'stevedore', 'stew', 'steward', 'stick', 'stickle', 'sticky', 'stiffen', 'stifle', 'stigmatize', 'still', 'stillhunt', 'stilt', 'stimulate', 'sting', 'stint', 'stipple', 'stipulate', 'stir', 'stitch', 'stithy', 'stock', 'stockade', 'stockpile', 'stodge', 'stoke', 'stomach', 'stomp', 'stone', 'stone-wall', 'stonewall', 'stonk', 'stooge', 'stook', 'stool', 'stoop', 'stop', 'stope', 'stopper', 'store', 'storm', 'story', 'stot', 'stoush', 'stove', 'stow', 'straddle', 'strafe', 'straggle', 'straightarm', 'straighten', 'strain', 'straiten', 'strand', 'strangle', 'strangulate', 'strap', 'stratify', 'stravaig', 'straw', 'stray', 'streak', 'stream', 'streamline', 'strengthen', 'stress', 'stretch', 'strew', 'striate', 'strickle', 'stride', 'stridulate', 'strike', 'string', 'strip', 'stripe', 'strive', 'stroke', 'stroll', 'strongarm', 'strop', 'strow', 'stroy', 'structure', 'struggle', 'strum', 'strut', 'stub', 'stucco', 'stud', 'study', 'stuff', 'stultify', 'stum', 'stumble', 'stump', 'stun', 'stunk', 'stunt', 'stupefy', 'stutter', 'sty', 'style', 'stylize', 'stylopize', 'stymy', 'sub', 'subclass', 'subcontract', 'subculture', 'subdivide', 'subduct', 'subdue', 'subedit', 'suberize', 'subinfeudate', 'subirrigate', 'subject', 'subjectify', 'subjoin', 'subjugate', 'sublease', 'sublet', 'sublimate', 'sublime', 'submerse', 'subminiaturize', 'submit', 'subordinate', 'suborn', 'subpoena', 'subrogate', 'subscribe', 'subserve', 'subside', 'subsidize', 'subsist', 'subsoil', 'substantialize', 'substantiate', 'substantivize', 'substitute', 'substract', 'subsume', 'subtend', 'subtilize', 'subtitle', 'subtotal', 'subtract', 'suburbanize', 'subvene', 'subvert', 'succeed', 'succour', 'succumb', 'succuss', 'suck', 'sucker', 'suckle', 'sue', 'suffer', 'suffice', 'suffix', 'sufflate', 'suffocate', 'suffumigate', 'suffuse', 'sugar', 'sugarcoat', 'suggest', 'suit', 'sulk', 'sully', 'sulphate', 'sulphonate', 'sulphurate', 'sulphuret', 'sulphurize', 'sum', 'summarize', 'summer', 'summersault', 'summons', 'sun', 'sunbathe', 'sunder', 'sunk', 'sup', 'superabound', 'superadd', 'superannuate', 'supercalender', 'supercede', 'supercharge', 'supercool', 'supererogate', 'superfuse', 'superheat', 'superimpose', 'superinduce', 'superintend', 'superordinate', 'superpose', 'superscribe', 'supersede', 'superstruct', 'supervene', 'supervise', 'supinate', 'supper', 'supplant', 'supplement', 'supplicate', 'supply', 'support', 'suppose', 'suppress', 'suppurate', 'surcease', 'surcharge', 'surcingle', 'surf', 'surface', 'surfeit', 'surge', 'surmise', 'surmount', 'surname', 'surpass', 'surprint', 'surprise', 'surrender', 'surrogate', 'surround', 'surtax', 'survey', 'survive', 'suspect', 'suspend', 'suspire', 'suss', 'sustain', 'susurrate', 'suture', 'swab', 'swaddle', 'swag', 'swage', 'swagger', 'swallow', 'swamp', 'swank', 'swap', 'swarm', 'swarth', 'swash', 'swat', 'swathe', 'sway', 'swear', 'sweaway', 'sweep', 'sweeten', 'sweettalk', 'swell', 'swelter', 'swerve', 'swig', 'swill', 'swim', 'swindle', 'swing', 'swinge', 'swingle', 'swink', 'swipe', 'swirl', 'swish', 'switch', 'swive', 'swivel', 'swizzle', 'swob', 'swoon', 'swoop', 'swoosh', 'swop', 'swot', 'swound', 'syllabify', 'syllabize', 'syllable', 'syllogize', 'symbol', 'symbolize', 'symmetrize', 'sympathize', 'sync', 'synchronize', 'syncopate', 'syncretize', 'syndicate', 'synonymize', 'synopsize', 'synthetize', 'sypher', 'syphon', 'syringe', 'syrup', 'systemize', 'table', 'tabu', 'tabulate', 'tack', 'tackle', 'tag', 'tailor', 'taint', 'take', 'talc', 'talk', 'tallage', 'tallow', 'tally', 'tallyho', 'tambour', 'tame', 'tamp', 'tamper', 'tampon', 'tan', 'tangle', 'tango', 'tantalize', 'tap', 'tape', 'taper', 'tar', 'tare', 'target', 'tariff', 'tarmac', 'tarnish', 'tarry', 'tartarize', 'task', 'tassel', 'taste', 'tat', 'tatter', 'tattle', 'tattoo', 'taunt', 'tauten', 'tautologize', 'taway', 'taws', 'tawse', 'tax', 'taxi', 'te-hee', 'teach', 'team', 'tear', 'tease', 'teasel', 'ted', 'tee', 'teem', 'teeter', 'teethe', 'telecasted', 'telegraph', 'telemeter', 'telepathize', 'telephone', 'telescope', 'Teletype', 'televise', 'telex', 'tell', 'tellurize', 'telpher', 'temper', 'tempest', 'temporize', 'tempt', 'tenant', 'tend', 'tender', 'tenderize', 'tenon', 'tense', 'tent', 'tenter', 'tepefy', 'tergiversate', 'term', 'terminate', 'terrace', 'terrify', 'territorialize', 'terrorize', 'tessellate', 'test', 'testdrive', 'testfire', 'testify', 'testmarket', 'tetanize', 'tether', 'Teutonize', 'thank', 'thatch', 'thaw', 'theologize', 'theorize', 'thermalize', 'thicken', 'thieve', 'thin', 'think', 'thirl', 'thirst', 'thole', 'thrall', 'thrash', 'thread', 'threat', 'threaten', 'threep', 'thresh', 'thrill', 'thrive', 'throb', 'thrombose', 'throne', 'throng', 'throttle', 'throve', 'throw', 'throwaway', 'throwback', 'thrum', 'thrust', 'thud', 'thumb', 'thumbindex', 'thump', 'thunder', 'thwack', 'thwart', 'tick', 'ticket', 'tickle', 'ticktock', 'tide', 'tidy', 'tie', 'tier', 'tiff', 'tighten', 'tile', 'till', 'tiller', 'tilt', 'timber', 'time', 'tin', 'tinct', 'tincture', 'ting', 'tinge', 'tingle', 'tinker', 'tinkle', 'tinplate', 'tinsel', 'tint', 'tip', 'tipple', 'tiptoe', 'tire', 'tissue', 'tithe', 'titillate', 'titivate', 'title', 'titrate', 'titter', 'tittivate', 'tittletattle', 'tittup', 'toady', 'toast', 'toboggan', 'toddle', 'toe', 'toe-dance', 'toenail', 'tog', 'toggle', 'toil', 'token', 'tolerate', 'toll', 'tomb', 'tone', 'tong', 'tongue', 'tongue-lash', 'tonsure', 'tool', 'toot', 'tooth', 'tootle', 'top', 'topdress', 'tope', 'topple', 'topsoil', 'torch', 'torment', 'torpedo', 'torrify', 'torture', 'toss', 'tot', 'total', 'totalize', 'tote', 'totter', 'touch', 'touchdown', 'touchtype', 'toughen', 'tour', 'tourney', 'tousle', 'tout', 'touzle', 'tow', 'towel', 'trace', 'track', 'trade', 'trademark', 'traduce', 'traffic', 'trail', 'train', 'traipse', 'traject', 'tram', 'trammel', 'tramp', 'trample', 'trampoline', 'trance', 'tranquillize', 'transact', 'transcend', 'transcribe', 'transect', 'transfer', 'transfigure', 'transfix', 'transform', 'transfuse', 'transgress', 'transilluminate', 'transistorize', 'transit', 'translate', 'transliterate', 'translocate', 'transmigrate', 'transmit', 'transmogrify', 'transmute', 'transpierce', 'transpire', 'transplant', 'transport', 'transpose', 'transship', 'transubstantiate', 'transude', 'transvalue', 'trap', 'trapan', 'trapes', 'trash', 'traumatize', 'travail', 'travel', 'traverse', 'travesty', 'trawl', 'tread', 'treadle', 'treasure', 'treat', 'treble', 'tree', 'trek', 'trellis', 'tremble', 'trench', 'trend', 'trepan', 'trephine', 'trespass', 'triangulate', 'trice', 'trichinize', 'trick', 'trickle', 'tricycle', 'trifle', 'trig', 'trigger', 'trill', 'trim', 'trip', 'triple', 'triple-tongue', 'triplicate', 'trisect', 'tritiate', 'triturate', 'triumph', 'trivialize', 'troat', 'trode', 'trog', 'troll', 'troop', 'tropicalize', 'trot', 'trouble', 'trounce', 'troupe', 'trow', 'trowel', 'truant', 'truck', 'truckle', 'trudge', 'true', 'trump', 'trumpet', 'truncate', 'truncheon', 'trundle', 'truss', 'trust', 'try', 'tryst', 'tub', 'tube', 'tubulate', 'tuck', 'tucker', 'tuft', 'tug', 'tumble', 'tumefy', 'tun', 'tune', 'tunnel', 'tup', 'turf', 'turmoil', 'turn', 'turpentine', 'turtle', 'tusk', 'tussle', 'tut', 'tut-tut', 'tutor', 'twaddle', 'twang', 'tweak', 'tweet', 'tweeze', 'twiddle', 'twig', 'twill', 'twin', 'twine', 'twinge', 'twinkle', 'twirl', 'twist', 'twit', 'twitch', 'twitter', 'twotime', 'type', 'typecast', 'typeset', 'typewrite', 'typify', 'tyrannize', 'tyre', 'uglify', 'ulcerate', 'ullage', 'ululate', 'umpire', 'unarm', 'unbalance', 'unbar', 'unbelt', 'unbend', 'unbind', 'unbolt', 'unbonnet', 'unbosom', 'unbrace', 'unbridle', 'unbuckle', 'unburden', 'unbutton', 'uncap', 'unchain', 'unchurch', 'unclasp', 'unclog', 'unclose', 'unclothe', 'uncoil', 'uncork', 'uncouple', 'uncover', 'uncurl', 'undeceive', 'underachieve', 'underact', 'underbid', 'underbuy', 'undercapitalize', 'undercharge', 'undercoat', 'undercool', 'undercut', 'underdevelop', 'underdrain', 'underestimate', 'underexpose', 'underfeed', 'underfund', 'undergird', 'undergo', 'underlay', 'underlet', 'underlie', 'underline', 'undermine', 'undernourish', 'underpay', 'underperform', 'underpin', 'underplay', 'underprice', 'underprop', 'underquote', 'underrate', 'underscore', 'underseal', 'undersell', 'underset', 'undershot', 'undersign', 'understand', 'understate', 'understock', 'understudy', 'undertake', 'undertrump', 'undervalue', 'underwrite', 'undo', 'undock', 'undress', 'undulate', 'unearth', 'unfasten', 'unfetter', 'unfit', 'unfix', 'unfold', 'unfreeze', 'unfrock', 'unfurl', 'unhair', 'unhallow', 'unhand', 'unharness', 'unhelm', 'unhinge', 'unhook', 'unhorse', 'uniform', 'unify', 'unionize', 'unite', 'universalize', 'unkennel', 'unknit', 'unlace', 'unlade', 'unlash', 'unlatch', 'unlay', 'unlead', 'unlearn', 'unleash', 'unlimber', 'unlive', 'unload', 'unlock', 'unloosen', 'unmake', 'unman', 'unmask', 'unmoor', 'unmuzzle', 'unnerve', 'unpack', 'unpeg', 'unpeople', 'unpick', 'unpin', 'unplug', 'unquote', 'unravel', 'unreason', 'unreeve', 'unriddle', 'unrig', 'unrip', 'unroll', 'unroot', 'unsaddle', 'unsay', 'unscramble', 'unscrew', 'unseal', 'unseam', 'unseat', 'unsettle', 'unsex', 'unsheathe', 'unship', 'unsling', 'unsnap', 'unsnarl', 'unspeak', 'unsphere', 'unsteady', 'unsteel', 'unstep', 'unstick', 'unstop', 'unstring', 'unswear', 'untangle', 'unteach', 'unthink', 'unthread', 'unthrone', 'untidy', 'untie', 'untread', 'untruss', 'untuck', 'unveil', 'unvoice', 'unwind', 'unwish', 'unwrap', 'unyoke', 'unzip', 'up', 'up-anchor', 'upbraid', 'upbuild', 'upcast', 'update', 'upend', 'upgrade', 'upheave', 'uphold', 'upholster', 'uplift', 'uppercase', 'uppercut', 'upraise', 'uprear', 'upright', 'uprise', 'uproot', 'uprouse', 'upset', 'upspring', 'upstage', 'upstart', 'upsurge', 'upsweep', 'upswell', 'upswing', 'uptilt', 'upturn', 'urbanize', 'urge', 'urinate', 'urticate', 'used', 'usher', 'usurp', 'utilize', 'utter', 'vacate', 'vacation', 'vaccinate', 'vacillate', 'vacuum', 'vail', 'valet', 'validate', 'valorize', 'valuate', 'value', 'vamoose', 'vamp', 'vandalize', 'vanish', 'vanquish', 'vaporize', 'variegate', 'variolate', 'varitype', 'varnish', 'vary', 'vassalize', 'vat', 'vaticinate', 'vault', 'vaunt', 'vector', 'veer', 'vegetate', 'veil', 'vein', 'velarize', 'vellicate', 'vend', 'veneer', 'venerate', 'venge', 'vent', 'ventilate', 'ventriloquize', 'venture', 'verbalize', 'verbify', 'verge', 'verify', 'verjuice', 'vermiculate', 'vernalize', 'verse', 'versify', 'vesicate', 'vesiculate', 'vest', 'vesture', 'vet', 'veto', 'vex', 'vibrate', 'victimize', 'victual', 'videotape', 'vie', 'view', 'vignette', 'vilify', 'vilipend', 'vindicate', 'vinegar', 'vintage', 'violate', 'visa', 'vise', 'vision', 'visit', 'visor', 'visualize', 'vitalize', 'vitiate', 'vitrify', 'vitriol', 'vitriolize', 'vittle', 'vituperate', 'vivify', 'vivisect', 'vizor', 'vocalize', 'vociferate', 'voice', 'void', 'volatilize', 'volcanize', 'volley', 'volplane', 'volunteer', 'vomit', 'voodoo', 'vote', 'vouch', 'vouchsafe', 'vow', 'vowelize', 'voyage', 'vulcanize', 'vulgarize', 'wabble', 'wad', 'waddle', 'waddy', 'wade', 'wadset', 'wafer', 'waff', 'waffle', 'waft', 'wag', 'wage', 'wager', 'waggle', 'waggon', 'wagon', 'wail', 'wainscot', 'wait', 'waive', 'wake', 'waken', 'wale', 'walk', 'wall', 'wallop', 'wallow', 'wallpaper', 'waltz', 'wamble', 'wan', 'wander', 'wane', 'wangle', 'wank', 'wanna', 'want', 'wanton', 'warble', 'ward', 'ware', 'warehouse', 'warm', 'warn', 'warp', 'warrant', 'warsle', 'wash', 'wassail', 'waste', 'watch', 'water', 'watercool', 'watermark', 'waterproof', 'waterski', 'watersoak', 'wattle', 'waul', 'wave', 'waver', 'wawa', 'wawl', 'wax', 'waxen', 'waylay', 'weaken', 'wean', 'wear', 'weary', 'weather', 'weathercock', 'weatherproof', 'weave', 'web', 'wed', 'wedge', 'wee-wee', 'weed', 'weekend', 'ween', 'weep', 'weigh', 'weight', 'welch', 'welcome', 'weld', 'well', 'welsh', 'welt', 'welter', 'wench', 'wend', 'wester', 'westernize', 'wet', 'wetnurse', 'whack', 'whale', 'wham', 'whang', 'whap', 'wharf', 'wheedle', 'wheel', 'wheelbarrow', 'wheeze', 'whelm', 'whelp', 'wherrit', 'whet', 'whicker', 'whiff', 'whiffle', 'whimper', 'whine', 'whinge', 'whinny', 'whip', 'whipsaw', 'whipstitch', 'whirl', 'whirr', 'whish', 'whisk', 'whisper', 'whist', 'whistle', 'whistlestop', 'white', 'whiten', 'whitewash', 'whittle', 'whizz', 'wholesale', 'whoop', 'whop', 'whore', 'widen', 'widow', 'wield', 'wig', 'wiggle', 'wigwag', 'wildcat', 'wilder', 'wile', 'will', 'wilt', 'wimble', 'wimple', 'win', 'wince', 'winch', 'wind', 'windlass', 'windmill', 'window', 'windowshop', 'windrow', 'wine', 'wing', 'wink', 'winkle', 'winnow', 'winter', 'winterfeed', 'winterize', 'winterkill', 'wipe', 'wire', 'wiredraw', 'wireless', 'wis', 'wise', 'wisecrack', 'wish', 'wisp', 'wist', 'witch', 'withdraw', 'withe', 'wither', 'withhold', 'withstand', 'witness', 'wive', 'wizen', 'wobble', 'wolf', 'wolfwhistle', 'woman', 'womanize', 'wonder', 'wont', 'woo', 'wood', 'woof', 'woosh', 'word', 'work', 'work-to-rule', 'workharden', 'worm', 'worrit', 'worry', 'worsen', 'worship', 'worst', 'worth', 'would', 'wouldst', 'wow', 'wrack', 'wrangle', 'wrapped', 'wreak', 'wreathe', 'wreck', 'wrench', 'wrest', 'wrestle', 'wrick', 'wriggle', 'wring', 'wrinkle', 'writ', 'write', 'writhe', 'writhen', 'wrong', 'wrongfoot', 'wrought', 'wry', 'X-ray', 'Xerox', 'xylograph', 'yabber', 'yacht', 'yack', 'yammer', 'yank', 'yap', 'yarn', 'yaup', 'yaw', 'yawl', 'yawn', 'yawp', 'yean', 'yearn', 'yell', 'yellow', 'yelp', 'yield', 'yirr', 'yoke', 'york', 'yowl', 'zap', 'zero', 'zest', 'zigzag', 'zindabad', 'zing', 'zip', 'zone', 'zoom', 'zugzwang'] ================================================ FILE: corpkit/dictionaries/word_transforms.py ================================================ """ corpkit: manual word cludging """ # WordNet/CoreNLP lemmatiser are used for lemmatisation, but they can both # struggle with a few things. During lemmatisation, words will be corrected via # this list. So, if you are asking for lemmas and getting a result you don't like, # you can insert the word and its correction below and it will be transformed # automatically. wordlist = {u"felt": u"feel", u"'s": u"be", u"'re": u"be", u"'m": u"be", u"'d": u"have", u"'ve": u"have", u"n't": u"not", u"smelt": u"smell", u"saw": u"see", u"hated": u"hate", u"people": u"person", u"peoples": u"person", u"persons": u"person", u"women": u"woman", u"men": u"man", u"teen-ager": u"teenager", u"teen-agers": u"teenager", u"republicans": u"republican", u"them": u"they", u"us": u"we", u"me": u"i", u"her": u"she", u"him": u"he", u"pdocs": u"pdoc", u'can': u'can', u'will': u'will', u'would': u'will', u'could': u'can', u'ca': u'can', u'may': u'may', u'should': u'shall', u'shalt': u'shall', u"'ll": u'will', u'might': u'may', u'wo': u'will', u'shall': u'shall', u'mighta': u'may'} # Turn POS tags into word classes taglemma = {u"cc": u"Coordinating conjunction", u"cd": u"Cardinal number", u"dt": u"Determiner", u"ex": u"Ex. there", u"fw": u"Foreign word", u"in": u"Preposition", u"ls": u"List item marker", u"md": u"Modal", u"pdt": u"Predeterminer", u"pos": u"Possessive ending", u"rp": u"Particle", u"sym": u"Symbol", u"to": u"to", u"uh": u"Interjection", u"wdt": u"Wh-determiner", u"wp": u"Wh-pronoun", u"wp$": u"Possessive wh-pronoun", u"wrb": u"Wh-adverb", u"vbp": u"Verb", u"vbz": u"Verb", u"vbn": u"Verb", u"vbd": u"Verb", u"vbg": u"Verb", u"vb": u"Verb", u"nnp": u"Noun", u"nns": u"Noun", u"nnps": u"Noun", u"nn": u"Noun", u"prp": u"Pronoun", u"prp$": u"Pronoun", u"jj": u"Adjective", u"jjr": u"Adjective", u"jjs": u"Adjective", u"rb": u"Adverb", u"rbr": u"Adverb", u"rbs": u"Adverb", u"wp": u"Wh- pronoun", u"wp$": u"Wh- pronoun", u"-rrb-": u"Bracket", u"-lrb-": u"Bracket", u"-rsb-": u"Bracket", u"-lsb-": u"Bracket", u"to": u"To", u'$': u'Symbol', u'x': u'Other', u"!": u'Punctuation', u'"': u'Punctuation', u"#": u'Punctuation', u"%": u'Punctuation', u"&": u'Punctuation', u"\\": u'Punctuation', u"'": u'Punctuation', u"(": u'Punctuation', u")": u'Punctuation', u"*": u'Punctuation', u"+": u'Punctuation', u",": u'Punctuation', u"-": u'Punctuation', u".": u'Punctuation', u"/": u'Punctuation', u":": u'Punctuation', u";": u'Punctuation', u"<": u'Punctuation', u"=": u'Punctuation', u">": u'Punctuation', u"?": u'Punctuation', u"@": u'Punctuation', u"[": u'Punctuation', u"]": u'Punctuation', u"^": u'Punctuation', u"_": u'Punctuation', u"`": u'Punctuation', u"{": u'Punctuation', u"|": u'Punctuation', u"}": u'Punctuation', u"~": u'Punctuation'} # the below produced with: # # from corpkit import * # from corpkit.dictionaries import * # out = {} # for wordclass in tagtoclass.values(): # criteria = [tag for tag, clas in tagtoclass.items() if clas == wordclass] # reg = as_regex(criteria, boundaries='l') # out[wordclass] = reg mergetags = {u'Adjective': r'(?i)^(?:jj|jjr|jjs)$', u'Adverb': r'(?i)^(?:rb|rbr|rbs)$', u'Bracket': r'(?i)^(?:\-lrb\-|\-lsb\-|\-rrb\-|\-rsb\-)$', u'Cardinal number': r'(?i)^(?:cd)$', u'Coordinating conjunction': r'(?i)^(?:cc)$', u'Determiner': r'(?i)^(?:dt)$', u'Ex. there': r'(?i)^(?:ex)$', u'Foreign word': r'(?i)^(?:fw)$', u'Interjection': r'(?i)^(?:uh)$', u'List item marker': r'(?i)^(?:ls)$', u'Modal': r'(?i)^(?:md)$', u'Noun': r'(?i)^(?:nn|nnp|nnps|nns)$', U'Other': r'(?i)^(?:x)$', u'Particle': r'(?i)^(?:rp)$', u'Possessive ending': r'(?i)^(?:pos)$', u'Predeterminer': r'(?i)^(?:pdt)$', u'Preposition': r'(?i)^(?:in)$', u'Pronoun': r'(?i)^(?:prp|prp\$)$', u'Symbol': r'(?i)^(?:\$|sym)$', u'To': r'(?i)^(?:to)$', u'Verb': r'(?i)^(?:vb|vbd|vbg|vbn|vbp|vbz)$', u'Wh- pronoun': r'(?i)^(?:wp|wp\$)$', u'Wh-adverb': r'(?i)^(?:wrb)$', u'Wh-determiner': r'(?i)^(?:wdt)$'} # A simple spelling converter usa_convert = {u"accessorise": u"accessorize", u"accessorised": u"accessorized", u"accessorises": u"accessorizes", u"accessorising": u"accessorizing", u"acclimatisation": u"acclimatization", u"acclimatise": u"acclimatize", u"acclimatised": u"acclimatized", u"acclimatises": u"acclimatizes", u"acclimatising": u"acclimatizing", u"accoutrements": u"accouterments", u"aeon": u"eon", u"aeons": u"eons", u"aerogramme": u"aerogram", u"aerogrammes": u"aerograms", u"aeroplane": u"airplane", u"aeroplanes": u"airplanes", u"aesthete": u"esthete", u"aesthetes": u"esthetes", u"aesthetic": u"esthetic", u"aesthetically": u"esthetically", u"aesthetics": u"esthetics", u"aetiology": u"etiology", u"ageing": u"aging", u"aggrandisement": u"aggrandizement", u"agonise": u"agonize", u"agonised": u"agonized", u"agonises": u"agonizes", u"agonising": u"agonizing", u"agonisingly": u"agonizingly", u"almanack": u"almanac", u"almanacks": u"almanacs", u"aluminium": u"aluminum", u"amortisable": u"amortizable", u"amortisation": u"amortization", u"amortisations": u"amortizations", u"amortise": u"amortize", u"amortised": u"amortized", u"amortises": u"amortizes", u"amortising": u"amortizing", u"amphitheatre": u"amphitheater", u"amphitheatres": u"amphitheaters", u"anaemia": u"anemia", u"anaemic": u"anemic", u"anaesthesia": u"anesthesia", u"anaesthetic": u"anesthetic", u"anaesthetics": u"anesthetics", u"anaesthetise": u"anesthetize", u"anaesthetised": u"anesthetized", u"anaesthetises": u"anesthetizes", u"anaesthetising": u"anesthetizing", u"anaesthetist": u"anesthetist", u"anaesthetists": u"anesthetists", u"anaesthetize": u"anesthetize", u"anaesthetized": u"anesthetized", u"anaesthetizes": u"anesthetizes", u"anaesthetizing": u"anesthetizing", u"analogue": u"analog", u"analogues": u"analogs", u"analyse": u"analyze", u"analysed": u"analyzed", u"analyses": u"analyzes", u"analysing": u"analyzing", u"anglicise": u"anglicize", u"anglicised": u"anglicized", u"anglicises": u"anglicizes", u"anglicising": u"anglicizing", u"annualised": u"annualized", u"antagonise": u"antagonize", u"antagonised": u"antagonized", u"antagonises": u"antagonizes", u"antagonising": u"antagonizing", u"apologise": u"apologize", u"apologised": u"apologized", u"apologises": u"apologizes", u"apologising": u"apologizing", u"appal": u"appall", u"appals": u"appalls", u"appetiser": u"appetizer", u"appetisers": u"appetizers", u"appetising": u"appetizing", u"appetisingly": u"appetizingly", u"arbour": u"arbor", u"arbours": u"arbors", u"archaeological": u"archeological", u"archaeologically": u"archeologically", u"archaeologist": u"archeologist", u"archaeologists": u"archeologists", u"archaeology": u"archeology", u"ardour": u"ardor", u"armour": u"armor", u"armoured": u"armored", u"armourer": u"armorer", u"armourers": u"armorers", u"armouries": u"armories", u"armoury": u"armory", u"artefact": u"artifact", u"artefacts": u"artifacts", u"authorise": u"authorize", u"authorised": u"authorized", u"authorises": u"authorizes", u"authorising": u"authorizing", u"axe": u"ax", u"backpedalled": u"backpedaled", u"backpedalling": u"backpedaling", u"bannister": u"banister", u"bannisters": u"banisters", u"baptise": u"baptize", u"baptised": u"baptized", u"baptises": u"baptizes", u"baptising": u"baptizing", u"bastardise": u"bastardize", u"bastardised": u"bastardized", u"bastardises": u"bastardizes", u"bastardising": u"bastardizing", u"battleaxe": u"battleax", u"baulk": u"balk", u"baulked": u"balked", u"baulking": u"balking", u"baulks": u"balks", u"bedevilled": u"bedeviled", u"bedevilling": u"bedeviling", u"behaviour": u"behavior", u"behavioural": u"behavioral", u"behaviourism": u"behaviorism", u"behaviourist": u"behaviorist", u"behaviourists": u"behaviorists", u"behaviours": u"behaviors", u"behove": u"behoove", u"behoved": u"behooved", u"behoves": u"behooves", u"bejewelled": u"bejeweled", u"belabour": u"belabor", u"belaboured": u"belabored", u"belabouring": u"belaboring", u"belabours": u"belabors", u"bevelled": u"beveled", u"bevvies": u"bevies", u"bevvy": u"bevy", u"biassed": u"biased", u"biassing": u"biasing", u"bingeing": u"binging", u"bougainvillaea": u"bougainvillea", u"bougainvillaeas": u"bougainvilleas", u"bowdlerise": u"bowdlerize", u"bowdlerised": u"bowdlerized", u"bowdlerises": u"bowdlerizes", u"bowdlerising": u"bowdlerizing", u"breathalyse": u"breathalyze", u"breathalysed": u"breathalyzed", u"breathalyser": u"breathalyzer", u"breathalysers": u"breathalyzers", u"breathalyses": u"breathalyzes", u"breathalysing": u"breathalyzing", u"brutalise": u"brutalize", u"brutalised": u"brutalized", u"brutalises": u"brutalizes", u"brutalising": u"brutalizing", u"buses": u"busses", u"busing": u"bussing", u"caesarean": u"cesarean", u"caesareans": u"cesareans", u"calibre": u"caliber", u"calibres": u"calibers", u"calliper": u"caliper", u"callipers": u"calipers", u"callisthenics": u"calisthenics", u"canalise": u"canalize", u"canalised": u"canalized", u"canalises": u"canalizes", u"canalising": u"canalizing", u"cancellation": u"cancelation", u"cancellations": u"cancelations", u"cancelled": u"canceled", u"cancelling": u"canceling", u"candour": u"candor", u"cannibalise": u"cannibalize", u"cannibalised": u"cannibalized", u"cannibalises": u"cannibalizes", u"cannibalising": u"cannibalizing", u"canonise": u"canonize", u"canonised": u"canonized", u"canonises": u"canonizes", u"canonising": u"canonizing", u"capitalise": u"capitalize", u"capitalised": u"capitalized", u"capitalises": u"capitalizes", u"capitalising": u"capitalizing", u"caramelise": u"caramelize", u"caramelised": u"caramelized", u"caramelises": u"caramelizes", u"caramelising": u"caramelizing", u"carbonise": u"carbonize", u"carbonised": u"carbonized", u"carbonises": u"carbonizes", u"carbonising": u"carbonizing", u"carolled": u"caroled", u"carolling": u"caroling", u"catalogue": u"catalog", u"catalogued": u"cataloged", u"catalogues": u"catalogs", u"cataloguing": u"cataloging", u"catalyse": u"catalyze", u"catalysed": u"catalyzed", u"catalyses": u"catalyzes", u"catalysing": u"catalyzing", u"categorise": u"categorize", u"categorised": u"categorized", u"categorises": u"categorizes", u"categorising": u"categorizing", u"cauterise": u"cauterize", u"cauterised": u"cauterized", u"cauterises": u"cauterizes", u"cauterising": u"cauterizing", u"cavilled": u"caviled", u"cavilling": u"caviling", u"centigramme": u"centigram", u"centigrammes": u"centigrams", u"centilitre": u"centiliter", u"centilitres": u"centiliters", u"centimetre": u"centimeter", u"centimetres": u"centimeters", u"centralise": u"centralize", u"centralised": u"centralized", u"centralises": u"centralizes", u"centralising": u"centralizing", u"centre": u"center", u"centred": u"centered", u"centrefold": u"centerfold", u"centrefolds": u"centerfolds", u"centrepiece": u"centerpiece", u"centrepieces": u"centerpieces", u"centres": u"centers", u"channelled": u"channeled", u"channelling": u"channeling", u"characterise": u"characterize", u"characterised": u"characterized", u"characterises": u"characterizes", u"characterising": u"characterizing", u"cheque": u"check", u"chequebook": u"checkbook", u"chequebooks": u"checkbooks", u"chequered": u"checkered", u"cheques": u"checks", u"chilli": u"chili", u"chimaera": u"chimera", u"chimaeras": u"chimeras", u"chiselled": u"chiseled", u"chiselling": u"chiseling", u"circularise": u"circularize", u"circularised": u"circularized", u"circularises": u"circularizes", u"circularising": u"circularizing", u"civilise": u"civilize", u"civilised": u"civilized", u"civilises": u"civilizes", u"civilising": u"civilizing", u"clamour": u"clamor", u"clamoured": u"clamored", u"clamouring": u"clamoring", u"clamours": u"clamors", u"clangour": u"clangor", u"clarinettist": u"clarinetist", u"clarinettists": u"clarinetists", u"collectivise": u"collectivize", u"collectivised": u"collectivized", u"collectivises": u"collectivizes", u"collectivising": u"collectivizing", u"colonisation": u"colonization", u"colonise": u"colonize", u"colonised": u"colonized", u"coloniser": u"colonizer", u"colonisers": u"colonizers", u"colonises": u"colonizes", u"colonising": u"colonizing", u"colour": u"color", u"colourant": u"colorant", u"colourants": u"colorants", u"coloured": u"colored", u"coloureds": u"coloreds", u"colourful": u"colorful", u"colourfully": u"colorfully", u"colouring": u"coloring", u"colourize": u"colorize", u"colourized": u"colorized", u"colourizes": u"colorizes", u"colourizing": u"colorizing", u"colourless": u"colorless", u"colours": u"colors", u"commercialise": u"commercialize", u"commercialised": u"commercialized", u"commercialises": u"commercializes", u"commercialising": u"commercializing", u"compartmentalise": u"compartmentalize", u"compartmentalised": u"compartmentalized", u"compartmentalises": u"compartmentalizes", u"compartmentalising": u"compartmentalizing", u"computerise": u"computerize", u"computerised": u"computerized", u"computerises": u"computerizes", u"computerising": u"computerizing", u"conceptualise": u"conceptualize", u"conceptualised": u"conceptualized", u"conceptualises": u"conceptualizes", u"conceptualising": u"conceptualizing", u"connexion": u"connection", u"connexions": u"connections", u"contextualise": u"contextualize", u"contextualised": u"contextualized", u"contextualises": u"contextualizes", u"contextualising": u"contextualizing", u"cosier": u"cozier", u"cosies": u"cozies", u"cosiest": u"coziest", u"cosily": u"cozily", u"cosiness": u"coziness", u"cosy": u"cozy", u"councillor": u"councilor", u"councillors": u"councilors", u"counselled": u"counseled", u"counselling": u"counseling", u"counsellor": u"counselor", u"counsellors": u"counselors", u"crenellated": u"crenelated", u"criminalise": u"criminalize", u"criminalised": u"criminalized", u"criminalises": u"criminalizes", u"criminalising": u"criminalizing", u"criticise": u"criticize", u"criticised": u"criticized", u"criticises": u"criticizes", u"criticising": u"criticizing", u"crueller": u"crueler", u"cruellest": u"cruelest", u"crystallisation": u"crystallization", u"crystallise": u"crystallize", u"crystallised": u"crystallized", u"crystallises": u"crystallizes", u"crystallising": u"crystallizing", u"cudgelled": u"cudgeled", u"cudgelling": u"cudgeling", u"customise": u"customize", u"customised": u"customized", u"customises": u"customizes", u"customising": u"customizing", u"cypher": u"cipher", u"cyphers": u"ciphers", u"decentralisation": u"decentralization", u"decentralise": u"decentralize", u"decentralised": u"decentralized", u"decentralises": u"decentralizes", u"decentralising": u"decentralizing", u"decriminalisation": u"decriminalization", u"decriminalise": u"decriminalize", u"decriminalised": u"decriminalized", u"decriminalises": u"decriminalizes", u"decriminalising": u"decriminalizing", u"defence": u"defense", u"defenceless": u"defenseless", u"defences": u"defenses", u"dehumanisation": u"dehumanization", u"dehumanise": u"dehumanize", u"dehumanised": u"dehumanized", u"dehumanises": u"dehumanizes", u"dehumanising": u"dehumanizing", u"demeanour": u"demeanor", u"demilitarisation": u"demilitarization", u"demilitarise": u"demilitarize", u"demilitarised": u"demilitarized", u"demilitarises": u"demilitarizes", u"demilitarising": u"demilitarizing", u"demobilisation": u"demobilization", u"demobilise": u"demobilize", u"demobilised": u"demobilized", u"demobilises": u"demobilizes", u"demobilising": u"demobilizing", u"democratisation": u"democratization", u"democratise": u"democratize", u"democratised": u"democratized", u"democratises": u"democratizes", u"democratising": u"democratizing", u"demonise": u"demonize", u"demonised": u"demonized", u"demonises": u"demonizes", u"demonising": u"demonizing", u"demoralisation": u"demoralization", u"demoralise": u"demoralize", u"demoralised": u"demoralized", u"demoralises": u"demoralizes", u"demoralising": u"demoralizing", u"denationalisation": u"denationalization", u"denationalise": u"denationalize", u"denationalised": u"denationalized", u"denationalises": u"denationalizes", u"denationalising": u"denationalizing", u"deodorise": u"deodorize", u"deodorised": u"deodorized", u"deodorises": u"deodorizes", u"deodorising": u"deodorizing", u"depersonalise": u"depersonalize", u"depersonalised": u"depersonalized", u"depersonalises": u"depersonalizes", u"depersonalising": u"depersonalizing", u"deputise": u"deputize", u"deputised": u"deputized", u"deputises": u"deputizes", u"deputising": u"deputizing", u"desensitisation": u"desensitization", u"desensitise": u"desensitize", u"desensitised": u"desensitized", u"desensitises": u"desensitizes", u"desensitising": u"desensitizing", u"destabilisation": u"destabilization", u"destabilise": u"destabilize", u"destabilised": u"destabilized", u"destabilises": u"destabilizes", u"destabilising": u"destabilizing", u"dialled": u"dialed", u"dialling": u"dialing", u"dialogue": u"dialog", u"dialogues": u"dialogs", u"diarrhoea": u"diarrhea", u"digitise": u"digitize", u"digitised": u"digitized", u"digitises": u"digitizes", u"digitising": u"digitizing", u"disc": u"disk", u"discolour": u"discolor", u"discoloured": u"discolored", u"discolouring": u"discoloring", u"discolours": u"discolors", u"discs": u"disks", u"disembowelled": u"disemboweled", u"disembowelling": u"disemboweling", u"disfavour": u"disfavor", u"dishevelled": u"disheveled", u"dishonour": u"dishonor", u"dishonourable": u"dishonorable", u"dishonourably": u"dishonorably", u"dishonoured": u"dishonored", u"dishonouring": u"dishonoring", u"dishonours": u"dishonors", u"disorganisation": u"disorganization", u"disorganised": u"disorganized", u"distil": u"distill", u"distils": u"distills", u"dramatisation": u"dramatization", u"dramatisations": u"dramatizations", u"dramatise": u"dramatize", u"dramatised": u"dramatized", u"dramatises": u"dramatizes", u"dramatising": u"dramatizing", u"draught": u"draft", u"draughtboard": u"draftboard", u"draughtboards": u"draftboards", u"draughtier": u"draftier", u"draughtiest": u"draftiest", u"draughts": u"drafts", u"draughtsman": u"draftsman", u"draughtsmanship": u"draftsmanship", u"draughtsmen": u"draftsmen", u"draughtswoman": u"draftswoman", u"draughtswomen": u"draftswomen", u"draughty": u"drafty", u"drivelled": u"driveled", u"drivelling": u"driveling", u"duelled": u"dueled", u"duelling": u"dueling", u"economise": u"economize", u"economised": u"economized", u"economises": u"economizes", u"economising": u"economizing", u"edoema": u"edema", u"editorialise": u"editorialize", u"editorialised": u"editorialized", u"editorialises": u"editorializes", u"editorialising": u"editorializing", u"empathise": u"empathize", u"empathised": u"empathized", u"empathises": u"empathizes", u"empathising": u"empathizing", u"emphasise": u"emphasize", u"emphasised": u"emphasized", u"emphasises": u"emphasizes", u"emphasising": u"emphasizing", u"enamelled": u"enameled", u"enamelling": u"enameling", u"enamoured": u"enamored", u"encyclopaedia": u"encyclopedia", u"encyclopaedias": u"encyclopedias", u"encyclopaedic": u"encyclopedic", u"endeavour": u"endeavor", u"endeavoured": u"endeavored", u"endeavouring": u"endeavoring", u"endeavours": u"endeavors", u"energise": u"energize", u"energised": u"energized", u"energises": u"energizes", u"energising": u"energizing", u"enrol": u"enroll", u"enrols": u"enrolls", u"enthral": u"enthrall", u"enthrals": u"enthralls", u"epaulette": u"epaulet", u"epaulettes": u"epaulets", u"epicentre": u"epicenter", u"epicentres": u"epicenters", u"epilogue": u"epilog", u"epilogues": u"epilogs", u"epitomise": u"epitomize", u"epitomised": u"epitomized", u"epitomises": u"epitomizes", u"epitomising": u"epitomizing", u"equalisation": u"equalization", u"equalise": u"equalize", u"equalised": u"equalized", u"equaliser": u"equalizer", u"equalisers": u"equalizers", u"equalises": u"equalizes", u"equalising": u"equalizing", u"eulogise": u"eulogize", u"eulogised": u"eulogized", u"eulogises": u"eulogizes", u"eulogising": u"eulogizing", u"evangelise": u"evangelize", u"evangelised": u"evangelized", u"evangelises": u"evangelizes", u"evangelising": u"evangelizing", u"exorcise": u"exorcize", u"exorcised": u"exorcized", u"exorcises": u"exorcizes", u"exorcising": u"exorcizing", u"extemporisation": u"extemporization", u"extemporise": u"extemporize", u"extemporised": u"extemporized", u"extemporises": u"extemporizes", u"extemporising": u"extemporizing", u"externalisation": u"externalization", u"externalisations": u"externalizations", u"externalise": u"externalize", u"externalised": u"externalized", u"externalises": u"externalizes", u"externalising": u"externalizing", u"factorise": u"factorize", u"factorised": u"factorized", u"factorises": u"factorizes", u"factorising": u"factorizing", u"faecal": u"fecal", u"faeces": u"feces", u"familiarisation": u"familiarization", u"familiarise": u"familiarize", u"familiarised": u"familiarized", u"familiarises": u"familiarizes", u"familiarising": u"familiarizing", u"fantasise": u"fantasize", u"fantasised": u"fantasized", u"fantasises": u"fantasizes", u"fantasising": u"fantasizing", u"favour": u"favor", u"favourable": u"favorable", u"favourably": u"favorably", u"favoured": u"favored", u"favouring": u"favoring", u"favourite": u"favorite", u"favourites": u"favorites", u"favouritism": u"favoritism", u"favours": u"favors", u"feminise": u"feminize", u"feminised": u"feminized", u"feminises": u"feminizes", u"feminising": u"feminizing", u"fertilisation": u"fertilization", u"fertilise": u"fertilize", u"fertilised": u"fertilized", u"fertiliser": u"fertilizer", u"fertilisers": u"fertilizers", u"fertilises": u"fertilizes", u"fertilising": u"fertilizing", u"fervour": u"fervor", u"fibre": u"fiber", u"fibreglass": u"fiberglass", u"fibres": u"fibers", u"fictionalisation": u"fictionalization", u"fictionalisations": u"fictionalizations", u"fictionalise": u"fictionalize", u"fictionalised": u"fictionalized", u"fictionalises": u"fictionalizes", u"fictionalising": u"fictionalizing", u"fillet": u"filet", u"filleted": u"fileted", u"filleting": u"fileting", u"fillets": u"filets", u"finalisation": u"finalization", u"finalise": u"finalize", u"finalised": u"finalized", u"finalises": u"finalizes", u"finalising": u"finalizing", u"flautist": u"flutist", u"flautists": u"flutists", u"flavour": u"flavor", u"flavoured": u"flavored", u"flavouring": u"flavoring", u"flavourings": u"flavorings", u"flavourless": u"flavorless", u"flavours": u"flavors", u"flavoursome": u"flavorsome", u"flyer / flier": u"flier / flyer", u"foetal": u"fetal", u"foetid": u"fetid", u"foetus": u"fetus", u"foetuses": u"fetuses", u"formalisation": u"formalization", u"formalise": u"formalize", u"formalised": u"formalized", u"formalises": u"formalizes", u"formalising": u"formalizing", u"fossilisation": u"fossilization", u"fossilise": u"fossilize", u"fossilised": u"fossilized", u"fossilises": u"fossilizes", u"fossilising": u"fossilizing", u"fraternisation": u"fraternization", u"fraternise": u"fraternize", u"fraternised": u"fraternized", u"fraternises": u"fraternizes", u"fraternising": u"fraternizing", u"fulfil": u"fulfill", u"fulfilment": u"fulfillment", u"fulfils": u"fulfills", u"funnelled": u"funneled", u"funnelling": u"funneling", u"galvanise": u"galvanize", u"galvanised": u"galvanized", u"galvanises": u"galvanizes", u"galvanising": u"galvanizing", u"gambolled": u"gamboled", u"gambolling": u"gamboling", u"gaol": u"jail", u"gaolbird": u"jailbird", u"gaolbirds": u"jailbirds", u"gaolbreak": u"jailbreak", u"gaolbreaks": u"jailbreaks", u"gaoled": u"jailed", u"gaoler": u"jailer", u"gaolers": u"jailers", u"gaoling": u"jailing", u"gaols": u"jails", u"gases": u"gasses", u"gauge": u"gage", u"gauged": u"gaged", u"gauges": u"gages", u"gauging": u"gaging", u"generalisation": u"generalization", u"generalisations": u"generalizations", u"generalise": u"generalize", u"generalised": u"generalized", u"generalises": u"generalizes", u"generalising": u"generalizing", u"ghettoise": u"ghettoize", u"ghettoised": u"ghettoized", u"ghettoises": u"ghettoizes", u"ghettoising": u"ghettoizing", u"gipsies": u"gypsies", u"glamorise": u"glamorize", u"glamorised": u"glamorized", u"glamorises": u"glamorizes", u"glamorising": u"glamorizing", u"glamour": u"glamor", u"globalisation": u"globalization", u"globalise": u"globalize", u"globalised": u"globalized", u"globalises": u"globalizes", u"globalising": u"globalizing", u"glueing": u"gluing", u"goitre": u"goiter", u"goitres": u"goiters", u"gonorrhoea": u"gonorrhea", u"gramme": u"gram", u"grammes": u"grams", u"gravelled": u"graveled", u"grey": u"gray", u"greyed": u"grayed", u"greying": u"graying", u"greyish": u"grayish", u"greyness": u"grayness", u"greys": u"grays", u"grovelled": u"groveled", u"grovelling": u"groveling", u"groyne": u"groin", u"groynes": u"groins", u"gruelling": u"grueling", u"gruellingly": u"gruelingly", u"gryphon": u"griffin", u"gryphons": u"griffins", u"gynaecological": u"gynecological", u"gynaecologist": u"gynecologist", u"gynaecologists": u"gynecologists", u"gynaecology": u"gynecology", u"haematological": u"hematological", u"haematologist": u"hematologist", u"haematologists": u"hematologists", u"haematology": u"hematology", u"haemoglobin": u"hemoglobin", u"haemophilia": u"hemophilia", u"haemophiliac": u"hemophiliac", u"haemophiliacs": u"hemophiliacs", u"haemorrhage": u"hemorrhage", u"haemorrhaged": u"hemorrhaged", u"haemorrhages": u"hemorrhages", u"haemorrhaging": u"hemorrhaging", u"haemorrhoids": u"hemorrhoids", u"harbour": u"harbor", u"harboured": u"harbored", u"harbouring": u"harboring", u"harbours": u"harbors", u"harmonisation": u"harmonization", u"harmonise": u"harmonize", u"harmonised": u"harmonized", u"harmonises": u"harmonizes", u"harmonising": u"harmonizing", u"homoeopath": u"homeopath", u"homoeopathic": u"homeopathic", u"homoeopaths": u"homeopaths", u"homoeopathy": u"homeopathy", u"homogenise": u"homogenize", u"homogenised": u"homogenized", u"homogenises": u"homogenizes", u"homogenising": u"homogenizing", u"honour": u"honor", u"honourable": u"honorable", u"honourably": u"honorably", u"honoured": u"honored", u"honouring": u"honoring", u"honours": u"honors", u"hospitalisation": u"hospitalization", u"hospitalise": u"hospitalize", u"hospitalised": u"hospitalized", u"hospitalises": u"hospitalizes", u"hospitalising": u"hospitalizing", u"humanise": u"humanize", u"humanised": u"humanized", u"humanises": u"humanizes", u"humanising": u"humanizing", u"humour": u"humor", u"humoured": u"humored", u"humouring": u"humoring", u"humourless": u"humorless", u"humours": u"humors", u"hybridise": u"hybridize", u"hybridised": u"hybridized", u"hybridises": u"hybridizes", u"hybridising": u"hybridizing", u"hypnotise": u"hypnotize", u"hypnotised": u"hypnotized", u"hypnotises": u"hypnotizes", u"hypnotising": u"hypnotizing", u"hypothesise": u"hypothesize", u"hypothesised": u"hypothesized", u"hypothesises": u"hypothesizes", u"hypothesising": u"hypothesizing", u"idealisation": u"idealization", u"idealise": u"idealize", u"idealised": u"idealized", u"idealises": u"idealizes", u"idealising": u"idealizing", u"idolise": u"idolize", u"idolised": u"idolized", u"idolises": u"idolizes", u"idolising": u"idolizing", u"immobilisation": u"immobilization", u"immobilise": u"immobilize", u"immobilised": u"immobilized", u"immobiliser": u"immobilizer", u"immobilisers": u"immobilizers", u"immobilises": u"immobilizes", u"immobilising": u"immobilizing", u"immortalise": u"immortalize", u"immortalised": u"immortalized", u"immortalises": u"immortalizes", u"immortalising": u"immortalizing", u"immunisation": u"immunization", u"immunise": u"immunize", u"immunised": u"immunized", u"immunises": u"immunizes", u"immunising": u"immunizing", u"impanelled": u"impaneled", u"impanelling": u"impaneling", u"imperilled": u"imperiled", u"imperilling": u"imperiling", u"individualise": u"individualize", u"individualised": u"individualized", u"individualises": u"individualizes", u"individualising": u"individualizing", u"industrialise": u"industrialize", u"industrialised": u"industrialized", u"industrialises": u"industrializes", u"industrialising": u"industrializing", u"inflexion": u"inflection", u"inflexions": u"inflections", u"initialise": u"initialize", u"initialised": u"initialized", u"initialises": u"initializes", u"initialising": u"initializing", u"initialled": u"initialed", u"initialling": u"initialing", u"instal": u"install", u"instalment": u"installment", u"instalments": u"installments", u"instals": u"installs", u"instil": u"instill", u"instils": u"instills", u"institutionalisation": u"institutionalization", u"institutionalise": u"institutionalize", u"institutionalised": u"institutionalized", u"institutionalises": u"institutionalizes", u"institutionalising": u"institutionalizing", u"intellectualise": u"intellectualize", u"intellectualised": u"intellectualized", u"intellectualises": u"intellectualizes", u"intellectualising": u"intellectualizing", u"internalisation": u"internalization", u"internalise": u"internalize", u"internalised": u"internalized", u"internalises": u"internalizes", u"internalising": u"internalizing", u"internationalisation": u"internationalization", u"internationalise": u"internationalize", u"internationalised": u"internationalized", u"internationalises": u"internationalizes", u"internationalising": u"internationalizing", u"ionisation": u"ionization", u"ionise": u"ionize", u"ionised": u"ionized", u"ioniser": u"ionizer", u"ionisers": u"ionizers", u"ionises": u"ionizes", u"ionising": u"ionizing", u"italicise": u"italicize", u"italicised": u"italicized", u"italicises": u"italicizes", u"italicising": u"italicizing", u"itemise": u"itemize", u"itemised": u"itemized", u"itemises": u"itemizes", u"itemising": u"itemizing", u"jeopardise": u"jeopardize", u"jeopardised": u"jeopardized", u"jeopardises": u"jeopardizes", u"jeopardising": u"jeopardizing", u"jewelled": u"jeweled", u"jeweller": u"jeweler", u"jewellers": u"jewelers", u"jewellery": u"jewelry", u"judgement": u"judgment", u"kilogramme": u"kilogram", u"kilogrammes": u"kilograms", u"kilometre": u"kilometer", u"kilometres": u"kilometers", u"labelled": u"labeled", u"labelling": u"labeling", u"labour": u"labor", u"laboured": u"labored", u"labourer": u"laborer", u"labourers": u"laborers", u"labouring": u"laboring", u"labours": u"labors", u"lacklustre": u"lackluster", u"legalisation": u"legalization", u"legalise": u"legalize", u"legalised": u"legalized", u"legalises": u"legalizes", u"legalising": u"legalizing", u"legitimise": u"legitimize", u"legitimised": u"legitimized", u"legitimises": u"legitimizes", u"legitimising": u"legitimizing", u"leukaemia": u"leukemia", u"levelled": u"leveled", u"leveller": u"leveler", u"levellers": u"levelers", u"levelling": u"leveling", u"libelled": u"libeled", u"libelling": u"libeling", u"libellous": u"libelous", u"liberalisation": u"liberalization", u"liberalise": u"liberalize", u"liberalised": u"liberalized", u"liberalises": u"liberalizes", u"liberalising": u"liberalizing", u"licence": u"license", u"licenced": u"licensed", u"licences": u"licenses", u"licencing": u"licensing", u"likeable": u"likable", u"lionisation": u"lionization", u"lionise": u"lionize", u"lionised": u"lionized", u"lionises": u"lionizes", u"lionising": u"lionizing", u"liquidise": u"liquidize", u"liquidised": u"liquidized", u"liquidiser": u"liquidizer", u"liquidisers": u"liquidizers", u"liquidises": u"liquidizes", u"liquidising": u"liquidizing", u"litre": u"liter", u"litres": u"liters", u"localise": u"localize", u"localised": u"localized", u"localises": u"localizes", u"localising": u"localizing", u"louvre": u"louver", u"louvred": u"louvered", u"louvres": u"louvers", u"lustre": u"luster", u"magnetise": u"magnetize", u"magnetised": u"magnetized", u"magnetises": u"magnetizes", u"magnetising": u"magnetizing", u"manoeuvrability": u"maneuverability", u"manoeuvrable": u"maneuverable", u"manoeuvre": u"maneuver", u"manoeuvred": u"maneuvered", u"manoeuvres": u"maneuvers", u"manoeuvring": u"maneuvering", u"manoeuvrings": u"maneuverings", u"marginalisation": u"marginalization", u"marginalise": u"marginalize", u"marginalised": u"marginalized", u"marginalises": u"marginalizes", u"marginalising": u"marginalizing", u"marshalled": u"marshaled", u"marshalling": u"marshaling", u"marvelled": u"marveled", u"marvelling": u"marveling", u"marvellous": u"marvelous", u"marvellously": u"marvelously", u"materialisation": u"materialization", u"materialise": u"materialize", u"materialised": u"materialized", u"materialises": u"materializes", u"materialising": u"materializing", u"maximisation": u"maximization", u"maximise": u"maximize", u"maximised": u"maximized", u"maximises": u"maximizes", u"maximising": u"maximizing", u"meagre": u"meager", u"mechanisation": u"mechanization", u"mechanise": u"mechanize", u"mechanised": u"mechanized", u"mechanises": u"mechanizes", u"mechanising": u"mechanizing", u"mediaeval": u"medieval", u"memorialise": u"memorialize", u"memorialised": u"memorialized", u"memorialises": u"memorializes", u"memorialising": u"memorializing", u"memorise": u"memorize", u"memorised": u"memorized", u"memorises": u"memorizes", u"memorising": u"memorizing", u"mesmerise": u"mesmerize", u"mesmerised": u"mesmerized", u"mesmerises": u"mesmerizes", u"mesmerising": u"mesmerizing", u"metabolise": u"metabolize", u"metabolised": u"metabolized", u"metabolises": u"metabolizes", u"metabolising": u"metabolizing", u"metre": u"meter", u"metres": u"meters", u"micrometre": u"micrometer", u"micrometres": u"micrometers", u"militarise": u"militarize", u"militarised": u"militarized", u"militarises": u"militarizes", u"militarising": u"militarizing", u"milligramme": u"milligram", u"milligrammes": u"milligrams", u"millilitre": u"milliliter", u"millilitres": u"milliliters", u"millimetre": u"millimeter", u"millimetres": u"millimeters", u"miniaturisation": u"miniaturization", u"miniaturise": u"miniaturize", u"miniaturised": u"miniaturized", u"miniaturises": u"miniaturizes", u"miniaturising": u"miniaturizing", u"minibuses": u"minibusses", u"minimise": u"minimize", u"minimised": u"minimized", u"minimises": u"minimizes", u"minimising": u"minimizing", u"misbehaviour": u"misbehavior", u"misdemeanour": u"misdemeanor", u"misdemeanours": u"misdemeanors", u"misspelt": u"misspelled", u"mitre": u"miter", u"mitres": u"miters", u"mobilisation": u"mobilization", u"mobilise": u"mobilize", u"mobilised": u"mobilized", u"mobilises": u"mobilizes", u"mobilising": u"mobilizing", u"modelled": u"modeled", u"modeller": u"modeler", u"modellers": u"modelers", u"modelling": u"modeling", u"modernise": u"modernize", u"modernised": u"modernized", u"modernises": u"modernizes", u"modernising": u"modernizing", u"moisturise": u"moisturize", u"moisturised": u"moisturized", u"moisturiser": u"moisturizer", u"moisturisers": u"moisturizers", u"moisturises": u"moisturizes", u"moisturising": u"moisturizing", u"monologue": u"monolog", u"monologues": u"monologs", u"monopolisation": u"monopolization", u"monopolise": u"monopolize", u"monopolised": u"monopolized", u"monopolises": u"monopolizes", u"monopolising": u"monopolizing", u"moralise": u"moralize", u"moralised": u"moralized", u"moralises": u"moralizes", u"moralising": u"moralizing", u"motorised": u"motorized", u"mould": u"mold", u"moulded": u"molded", u"moulder": u"molder", u"mouldered": u"moldered", u"mouldering": u"moldering", u"moulders": u"molders", u"mouldier": u"moldier", u"mouldiest": u"moldiest", u"moulding": u"molding", u"mouldings": u"moldings", u"moulds": u"molds", u"mouldy": u"moldy", u"moult": u"molt", u"moulted": u"molted", u"moulting": u"molting", u"moults": u"molts", u"moustache": u"mustache", u"moustached": u"mustached", u"moustaches": u"mustaches", u"moustachioed": u"mustachioed", u"multicoloured": u"multicolored", u"nationalisation": u"nationalization", u"nationalisations": u"nationalizations", u"nationalise": u"nationalize", u"nationalised": u"nationalized", u"nationalises": u"nationalizes", u"nationalising": u"nationalizing", u"naturalisation": u"naturalization", u"naturalise": u"naturalize", u"naturalised": u"naturalized", u"naturalises": u"naturalizes", u"naturalising": u"naturalizing", u"neighbour": u"neighbor", u"neighbourhood": u"neighborhood", u"neighbourhoods": u"neighborhoods", u"neighbouring": u"neighboring", u"neighbourliness": u"neighborliness", u"neighbourly": u"neighborly", u"neighbours": u"neighbors", u"neutralisation": u"neutralization", u"neutralise": u"neutralize", u"neutralised": u"neutralized", u"neutralises": u"neutralizes", u"neutralising": u"neutralizing", u"normalisation": u"normalization", u"normalise": u"normalize", u"normalised": u"normalized", u"normalises": u"normalizes", u"normalising": u"normalizing", u"odour": u"odor", u"odourless": u"odorless", u"odours": u"odors", u"oesophagus": u"esophagus", u"oesophaguses": u"esophaguses", u"oestrogen": u"estrogen", u"offence": u"offense", u"offences": u"offenses", u"omelette": u"omelet", u"omelettes": u"omelets", u"optimise": u"optimize", u"optimised": u"optimized", u"optimises": u"optimizes", u"optimising": u"optimizing", u"organisation": u"organization", u"organisational": u"organizational", u"organisations": u"organizations", u"organise": u"organize", u"organised": u"organized", u"organiser": u"organizer", u"organisers": u"organizers", u"organises": u"organizes", u"organising": u"organizing", u"orthopaedic": u"orthopedic", u"orthopaedics": u"orthopedics", u"ostracise": u"ostracize", u"ostracised": u"ostracized", u"ostracises": u"ostracizes", u"ostracising": u"ostracizing", u"outmanoeuvre": u"outmaneuver", u"outmanoeuvred": u"outmaneuvered", u"outmanoeuvres": u"outmaneuvers", u"outmanoeuvring": u"outmaneuvering", u"overemphasise": u"overemphasize", u"overemphasised": u"overemphasized", u"overemphasises": u"overemphasizes", u"overemphasising": u"overemphasizing", u"oxidisation": u"oxidization", u"oxidise": u"oxidize", u"oxidised": u"oxidized", u"oxidises": u"oxidizes", u"oxidising": u"oxidizing", u"paederast": u"pederast", u"paederasts": u"pederasts", u"paediatric": u"pediatric", u"paediatrician": u"pediatrician", u"paediatricians": u"pediatricians", u"paediatrics": u"pediatrics", u"paedophile": u"pedophile", u"paedophiles": u"pedophiles", u"paedophilia": u"pedophilia", u"palaeolithic": u"paleolithic", u"palaeontologist": u"paleontologist", u"palaeontologists": u"paleontologists", u"palaeontology": u"paleontology", u"panelled": u"paneled", u"panelling": u"paneling", u"panellist": u"panelist", u"panellists": u"panelists", u"paralyse": u"paralyze", u"paralysed": u"paralyzed", u"paralyses": u"paralyzes", u"paralysing": u"paralyzing", u"parcelled": u"parceled", u"parcelling": u"parceling", u"parlour": u"parlor", u"parlours": u"parlors", u"particularise": u"particularize", u"particularised": u"particularized", u"particularises": u"particularizes", u"particularising": u"particularizing", u"passivisation": u"passivization", u"passivise": u"passivize", u"passivised": u"passivized", u"passivises": u"passivizes", u"passivising": u"passivizing", u"pasteurisation": u"pasteurization", u"pasteurise": u"pasteurize", u"pasteurised": u"pasteurized", u"pasteurises": u"pasteurizes", u"pasteurising": u"pasteurizing", u"patronise": u"patronize", u"patronised": u"patronized", u"patronises": u"patronizes", u"patronising": u"patronizing", u"patronisingly": u"patronizingly", u"pedalled": u"pedaled", u"pedalling": u"pedaling", u"pedestrianisation": u"pedestrianization", u"pedestrianise": u"pedestrianize", u"pedestrianised": u"pedestrianized", u"pedestrianises": u"pedestrianizes", u"pedestrianising": u"pedestrianizing", u"penalise": u"penalize", u"penalised": u"penalized", u"penalises": u"penalizes", u"penalising": u"penalizing", u"pencilled": u"penciled", u"pencilling": u"penciling", u"personalise": u"personalize", u"personalised": u"personalized", u"personalises": u"personalizes", u"personalising": u"personalizing", u"pharmacopoeia": u"pharmacopeia", u"pharmacopoeias": u"pharmacopeias", u"philosophise": u"philosophize", u"philosophised": u"philosophized", u"philosophises": u"philosophizes", u"philosophising": u"philosophizing", u"philtre": u"filter", u"philtres": u"filters", u"phoney": u"phony", u"plagiarise": u"plagiarize", u"plagiarised": u"plagiarized", u"plagiarises": u"plagiarizes", u"plagiarising": u"plagiarizing", u"plough": u"plow", u"ploughed": u"plowed", u"ploughing": u"plowing", u"ploughman": u"plowman", u"ploughmen": u"plowmen", u"ploughs": u"plows", u"ploughshare": u"plowshare", u"ploughshares": u"plowshares", u"polarisation": u"polarization", u"polarise": u"polarize", u"polarised": u"polarized", u"polarises": u"polarizes", u"polarising": u"polarizing", u"politicisation": u"politicization", u"politicise": u"politicize", u"politicised": u"politicized", u"politicises": u"politicizes", u"politicising": u"politicizing", u"popularisation": u"popularization", u"popularise": u"popularize", u"popularised": u"popularized", u"popularises": u"popularizes", u"popularising": u"popularizing", u"pouffe": u"pouf", u"pouffes": u"poufs", u"practise": u"practice", u"practised": u"practiced", u"practises": u"practices", u"practising": u"practicing", u"praesidium": u"presidium", u"praesidiums": u"presidiums", u"pressurisation": u"pressurization", u"pressurise": u"pressurize", u"pressurised": u"pressurized", u"pressurises": u"pressurizes", u"pressurising": u"pressurizing", u"pretence": u"pretense", u"pretences": u"pretenses", u"primaeval": u"primeval", u"prioritisation": u"prioritization", u"prioritise": u"prioritize", u"prioritised": u"prioritized", u"prioritises": u"prioritizes", u"prioritising": u"prioritizing", u"privatisation": u"privatization", u"privatisations": u"privatizations", u"privatise": u"privatize", u"privatised": u"privatized", u"privatises": u"privatizes", u"privatising": u"privatizing", u"professionalisation": u"professionalization", u"professionalise": u"professionalize", u"professionalised": u"professionalized", u"professionalises": u"professionalizes", u"professionalising": u"professionalizing", u"programme": u"program", u"programmes": u"programs", u"prologue": u"prolog", u"prologues": u"prologs", u"propagandise": u"propagandize", u"propagandised": u"propagandized", u"propagandises": u"propagandizes", u"propagandising": u"propagandizing", u"proselytise": u"proselytize", u"proselytised": u"proselytized", u"proselytiser": u"proselytizer", u"proselytisers": u"proselytizers", u"proselytises": u"proselytizes", u"proselytising": u"proselytizing", u"psychoanalyse": u"psychoanalyze", u"psychoanalysed": u"psychoanalyzed", u"psychoanalyses": u"psychoanalyzes", u"psychoanalysing": u"psychoanalyzing", u"publicise": u"publicize", u"publicised": u"publicized", u"publicises": u"publicizes", u"publicising": u"publicizing", u"pulverisation": u"pulverization", u"pulverise": u"pulverize", u"pulverised": u"pulverized", u"pulverises": u"pulverizes", u"pulverising": u"pulverizing", u"pummelled": u"pummel", u"pummelling": u"pummeled", u"pyjama": u"pajama", u"pyjamas": u"pajamas", u"pzazz": u"pizzazz", u"quarrelled": u"quarreled", u"quarrelling": u"quarreling", u"radicalise": u"radicalize", u"radicalised": u"radicalized", u"radicalises": u"radicalizes", u"radicalising": u"radicalizing", u"rancour": u"rancor", u"randomise": u"randomize", u"randomised": u"randomized", u"randomises": u"randomizes", u"randomising": u"randomizing", u"rationalisation": u"rationalization", u"rationalisations": u"rationalizations", u"rationalise": u"rationalize", u"rationalised": u"rationalized", u"rationalises": u"rationalizes", u"rationalising": u"rationalizing", u"ravelled": u"raveled", u"ravelling": u"raveling", u"realisable": u"realizable", u"realisation": u"realization", u"realisations": u"realizations", u"realise": u"realize", u"realised": u"realized", u"realises": u"realizes", u"realising": u"realizing", u"recognisable": u"recognizable", u"recognisably": u"recognizably", u"recognisance": u"recognizance", u"recognise": u"recognize", u"recognised": u"recognized", u"recognises": u"recognizes", u"recognising": u"recognizing", u"reconnoitre": u"reconnoiter", u"reconnoitred": u"reconnoitered", u"reconnoitres": u"reconnoiters", u"reconnoitring": u"reconnoitering", u"refuelled": u"refueled", u"refuelling": u"refueling", u"regularisation": u"regularization", u"regularise": u"regularize", u"regularised": u"regularized", u"regularises": u"regularizes", u"regularising": u"regularizing", u"remodelled": u"remodeled", u"remodelling": u"remodeling", u"remould": u"remold", u"remoulded": u"remolded", u"remoulding": u"remolding", u"remoulds": u"remolds", u"reorganisation": u"reorganization", u"reorganisations": u"reorganizations", u"reorganise": u"reorganize", u"reorganised": u"reorganized", u"reorganises": u"reorganizes", u"reorganising": u"reorganizing", u"revelled": u"reveled", u"reveller": u"reveler", u"revellers": u"revelers", u"revelling": u"reveling", u"revitalise": u"revitalize", u"revitalised": u"revitalized", u"revitalises": u"revitalizes", u"revitalising": u"revitalizing", u"revolutionise": u"revolutionize", u"revolutionised": u"revolutionized", u"revolutionises": u"revolutionizes", u"revolutionising": u"revolutionizing", u"rhapsodise": u"rhapsodize", u"rhapsodised": u"rhapsodized", u"rhapsodises": u"rhapsodizes", u"rhapsodising": u"rhapsodizing", u"rigour": u"rigor", u"rigours": u"rigors", u"ritualised": u"ritualized", u"rivalled": u"rivaled", u"rivalling": u"rivaling", u"romanticise": u"romanticize", u"romanticised": u"romanticized", u"romanticises": u"romanticizes", u"romanticising": u"romanticizing", u"rumour": u"rumor", u"rumoured": u"rumored", u"rumours": u"rumors", u"sabre": u"saber", u"sabres": u"sabers", u"saltpetre": u"saltpeter", u"sanitise": u"sanitize", u"sanitised": u"sanitized", u"sanitises": u"sanitizes", u"sanitising": u"sanitizing", u"satirise": u"satirize", u"satirised": u"satirized", u"satirises": u"satirizes", u"satirising": u"satirizing", u"saviour": u"savior", u"saviours": u"saviors", u"savour": u"savor", u"savoured": u"savored", u"savouries": u"savories", u"savouring": u"savoring", u"savours": u"savors", u"savoury": u"savory", u"scandalise": u"scandalize", u"scandalised": u"scandalized", u"scandalises": u"scandalizes", u"scandalising": u"scandalizing", u"sceptic": u"skeptic", u"sceptical": u"skeptical", u"sceptically": u"skeptically", u"scepticism": u"skepticism", u"sceptics": u"skeptics", u"sceptre": u"scepter", u"sceptres": u"scepters", u"scrutinise": u"scrutinize", u"scrutinised": u"scrutinized", u"scrutinises": u"scrutinizes", u"scrutinising": u"scrutinizing", u"secularisation": u"secularization", u"secularise": u"secularize", u"secularised": u"secularized", u"secularises": u"secularizes", u"secularising": u"secularizing", u"sensationalise": u"sensationalize", u"sensationalised": u"sensationalized", u"sensationalises": u"sensationalizes", u"sensationalising": u"sensationalizing", u"sensitise": u"sensitize", u"sensitised": u"sensitized", u"sensitises": u"sensitizes", u"sensitising": u"sensitizing", u"sentimentalise": u"sentimentalize", u"sentimentalised": u"sentimentalized", u"sentimentalises": u"sentimentalizes", u"sentimentalising": u"sentimentalizing", u"sepulchre": u"sepulcher", u"sepulchres": u"sepulchers", u"serialisation": u"serialization", u"serialisations": u"serializations", u"serialise": u"serialize", u"serialised": u"serialized", u"serialises": u"serializes", u"serialising": u"serializing", u"sermonise": u"sermonize", u"sermonised": u"sermonized", u"sermonises": u"sermonizes", u"sermonising": u"sermonizing", u"sheikh": u"sheik", u"shovelled": u"shoveled", u"shovelling": u"shoveling", u"shrivelled": u"shriveled", u"shrivelling": u"shriveling", u"signalise": u"signalize", u"signalised": u"signalized", u"signalises": u"signalizes", u"signalising": u"signalizing", u"signalled": u"signaled", u"signalling": u"signaling", u"smoulder": u"smolder", u"smouldered": u"smoldered", u"smouldering": u"smoldering", u"smoulders": u"smolders", u"snivelled": u"sniveled", u"snivelling": u"sniveling", u"snorkelled": u"snorkeled", u"snorkelling": u"snorkeling", u"snowplough": u"snowplow", u"snowploughs": u"snowplow", u"socialisation": u"socialization", u"socialise": u"socialize", u"socialised": u"socialized", u"socialises": u"socializes", u"socialising": u"socializing", u"sodomise": u"sodomize", u"sodomised": u"sodomized", u"sodomises": u"sodomizes", u"sodomising": u"sodomizing", u"solemnise": u"solemnize", u"solemnised": u"solemnized", u"solemnises": u"solemnizes", u"solemnising": u"solemnizing", u"sombre": u"somber", u"specialisation": u"specialization", u"specialisations": u"specializations", u"specialise": u"specialize", u"specialised": u"specialized", u"specialises": u"specializes", u"specialising": u"specializing", u"spectre": u"specter", u"spectres": u"specters", u"spiralled": u"spiraled", u"spiralling": u"spiraling", u"splendour": u"splendor", u"splendours": u"splendors", u"squirrelled": u"squirreled", u"squirrelling": u"squirreling", u"stabilisation": u"stabilization", u"stabilise": u"stabilize", u"stabilised": u"stabilized", u"stabiliser": u"stabilizer", u"stabilisers": u"stabilizers", u"stabilises": u"stabilizes", u"stabilising": u"stabilizing", u"standardisation": u"standardization", u"standardise": u"standardize", u"standardised": u"standardized", u"standardises": u"standardizes", u"standardising": u"standardizing", u"stencilled": u"stenciled", u"stencilling": u"stenciling", u"sterilisation": u"sterilization", u"sterilisations": u"sterilizations", u"sterilise": u"sterilize", u"sterilised": u"sterilized", u"steriliser": u"sterilizer", u"sterilisers": u"sterilizers", u"sterilises": u"sterilizes", u"sterilising": u"sterilizing", u"stigmatisation": u"stigmatization", u"stigmatise": u"stigmatize", u"stigmatised": u"stigmatized", u"stigmatises": u"stigmatizes", u"stigmatising": u"stigmatizing", u"storey": u"story", u"storeys": u"stories", u"subsidisation": u"subsidization", u"subsidise": u"subsidize", u"subsidised": u"subsidized", u"subsidiser": u"subsidizer", u"subsidisers": u"subsidizers", u"subsidises": u"subsidizes", u"subsidising": u"subsidizing", u"succour": u"succor", u"succoured": u"succored", u"succouring": u"succoring", u"succours": u"succors", u"sulphate": u"sulfate", u"sulphates": u"sulfates", u"sulphide": u"sulfide", u"sulphides": u"sulfides", u"sulphur": u"sulfur", u"sulphurous": u"sulfurous", u"summarise": u"summarize", u"summarised": u"summarized", u"summarises": u"summarizes", u"summarising": u"summarizing", u"swivelled": u"swiveled", u"swivelling": u"swiveling", u"symbolise": u"symbolize", u"symbolised": u"symbolized", u"symbolises": u"symbolizes", u"symbolising": u"symbolizing", u"sympathise": u"sympathize", u"sympathised": u"sympathized", u"sympathiser": u"sympathizer", u"sympathisers": u"sympathizers", u"sympathises": u"sympathizes", u"sympathising": u"sympathizing", u"synchronisation": u"synchronization", u"synchronise": u"synchronize", u"synchronised": u"synchronized", u"synchronises": u"synchronizes", u"synchronising": u"synchronizing", u"synthesise": u"synthesize", u"synthesised": u"synthesized", u"synthesiser": u"synthesizer", u"synthesisers": u"synthesizers", u"synthesises": u"synthesizes", u"synthesising": u"synthesizing", u"syphon": u"siphon", u"syphoned": u"siphoned", u"syphoning": u"siphoning", u"syphons": u"siphons", u"systematisation": u"systematization", u"systematise": u"systematize", u"systematised": u"systematized", u"systematises": u"systematizes", u"systematising": u"systematizing", u"tantalise": u"tantalize", u"tantalised": u"tantalized", u"tantalises": u"tantalizes", u"tantalising": u"tantalizing", u"tantalisingly": u"tantalizingly", u"tasselled": u"tasseled", u"technicolour": u"technicolor", u"temporise": u"temporize", u"temporised": u"temporized", u"temporises": u"temporizes", u"temporising": u"temporizing", u"tenderise": u"tenderize", u"tenderised": u"tenderized", u"tenderises": u"tenderizes", u"tenderising": u"tenderizing", u"terrorise": u"terrorize", u"terrorised": u"terrorized", u"terrorises": u"terrorizes", u"terrorising": u"terrorizing", u"theatre": u"theater", u"theatregoer": u"theatergoer", u"theatregoers": u"theatergoers", u"theatres": u"theaters", u"theorise": u"theorize", u"theorised": u"theorized", u"theorises": u"theorizes", u"theorising": u"theorizing", u"tonne": u"ton", u"tonnes": u"tons", u"towelled": u"toweled", u"towelling": u"toweling", u"toxaemia": u"toxemia", u"tranquillise": u"tranquilize", u"tranquillised": u"tranquilized", u"tranquilliser": u"tranquilizer", u"tranquillisers": u"tranquilizers", u"tranquillises": u"tranquilizes", u"tranquillising": u"tranquilizing", u"tranquillity": u"tranquility", u"tranquillize": u"tranquilize", u"tranquillized": u"tranquilized", u"tranquillizer": u"tranquilizer", u"tranquillizers": u"tranquilizers", u"tranquillizes": u"tranquilizes", u"tranquillizing": u"tranquilizing", u"tranquilly": u"tranquility", u"transistorised": u"transistorized", u"traumatise": u"traumatize", u"traumatised": u"traumatized", u"traumatises": u"traumatizes", u"traumatising": u"traumatizing", u"travelled": u"traveled", u"traveller": u"traveler", u"travellers": u"travelers", u"travelling": u"traveling", u"travelogue": u"travelog", u"travelogues": u"travelogs", u"trialled": u"trialed", u"trialling": u"trialing", u"tricolour": u"tricolor", u"tricolours": u"tricolors", u"trivialise": u"trivialize", u"trivialised": u"trivialized", u"trivialises": u"trivializes", u"trivialising": u"trivializing", u"tumour": u"tumor", u"tumours": u"tumors", u"tunnelled": u"tunneled", u"tunnelling": u"tunneling", u"tyrannise": u"tyrannize", u"tyrannised": u"tyrannized", u"tyrannises": u"tyrannizes", u"tyrannising": u"tyrannizing", u"tyre": u"tire", u"tyres": u"tires", u"unauthorised": u"unauthorized", u"uncivilised": u"uncivilized", u"underutilised": u"underutilized", u"unequalled": u"unequaled", u"unfavourable": u"unfavorable", u"unfavourably": u"unfavorably", u"unionisation": u"unionization", u"unionise": u"unionize", u"unionised": u"unionized", u"unionises": u"unionizes", u"unionising": u"unionizing", u"unorganised": u"unorganized", u"unravelled": u"unraveled", u"unravelling": u"unraveling", u"unrecognisable": u"unrecognizable", u"unrecognised": u"unrecognized", u"unrivalled": u"unrivaled", u"unsavoury": u"unsavory", u"untrammelled": u"untrammeled", u"urbanisation": u"urbanization", u"urbanise": u"urbanize", u"urbanised": u"urbanized", u"urbanises": u"urbanizes", u"urbanising": u"urbanizing", u"utilisable": u"utilizable", u"utilisation": u"utilization", u"utilise": u"utilize", u"utilised": u"utilized", u"utilises": u"utilizes", u"utilising": u"utilizing", u"valour": u"valor", u"vandalise": u"vandalize", u"vandalised": u"vandalized", u"vandalises": u"vandalizes", u"vandalising": u"vandalizing", u"vaporisation": u"vaporization", u"vaporise": u"vaporize", u"vaporised": u"vaporized", u"vaporises": u"vaporizes", u"vaporising": u"vaporizing", u"vapour": u"vapor", u"vapours": u"vapors", u"verbalise": u"verbalize", u"verbalised": u"verbalized", u"verbalises": u"verbalizes", u"verbalising": u"verbalizing", u"victimisation": u"victimization", u"victimise": u"victimize", u"victimised": u"victimized", u"victimises": u"victimizes", u"victimising": u"victimizing", u"videodisc": u"videodisk", u"videodiscs": u"videodisks", u"vigour": u"vigor", u"visualisation": u"visualization", u"visualisations": u"visualizations", u"visualise": u"visualize", u"visualised": u"visualized", u"visualises": u"visualizes", u"visualising": u"visualizing", u"vocalisation": u"vocalization", u"vocalisations": u"vocalizations", u"vocalise": u"vocalize", u"vocalised": u"vocalized", u"vocalises": u"vocalizes", u"vocalising": u"vocalizing", u"vulcanised": u"vulcanized", u"vulgarisation": u"vulgarization", u"vulgarise": u"vulgarize", u"vulgarised": u"vulgarized", u"vulgarises": u"vulgarizes", u"vulgarising": u"vulgarizing", u"waggon": u"wagon", u"waggons": u"wagons", u"watercolour": u"watercolor", u"watercolours": u"watercolors", u"weaselled": u"weaseled", u"weaselling": u"weaseling", u"westernisation": u"westernization", u"westernise": u"westernize", u"westernised": u"westernized", u"westernises": u"westernizes", u"westernising": u"westernizing", u"womanise": u"womanize", u"womanised": u"womanized", u"womaniser": u"womanizer", u"womanisers": u"womanizers", u"womanises": u"womanizes", u"womanising": u"womanizing", u"woollen": u"woolen", u"woollens": u"woolens", u"woollies": u"woolies", u"woolly": u"wooly", u"worshipped": u"worshiped", u"worshipping": u"worshiping", u"worshipper": u"worshiper", u"yodelled": u"yodeled", u"yodelling": u"yodeling", u"yoghourt": u"yogurt", u"yoghourts": u"yogurts", u"yoghurt": u"yogurt", u"yoghurts": u"yogurts"} ================================================ FILE: corpkit/dictionaries/wordlists.py ================================================ """ lists of closed class words """ # feel free to correct/add things---this was just a quick grab from the web def closed_class_wordlists(): """add words here if need be""" from collections import namedtuple pronouns = [u"all", u"another", u"any", u"anybody", u"anyone", u"anything", u"both", u"each", u"each", u"other", u"either", u"everybody", u"everyone", u"everything", u"few", u"he", u"her", u"hers", u"herself", u"him", u"himself", u"his", u"it", u"i", u"its", u"itself", u"many", u"me", u"mine", u"more", u"most", u"much", u"myself", u"neither", u"no", u"one", u"nobody", u"none", u"nothing", u"one", u"another", u"other", u"others", u"ours", u"ourselves", u"several", u"she", u"some", u"somebody", u"someone", u"something", u"that", u"their", u"theirs", u"them", u"there", u"themselves", u"these", u"they", u"this", u"those", u"us", u"we", u"what", u"whatever", u"which", u"whichever", u"who", u"whoever", u"whom", u"whomever", u"whose", u"you", u"your", u"yours", u"yourself", u"yourselves"] articles = [u"a", u"an", u"the", u"teh"] determiners = [u"all", u"anotha", u"another", u"any", u"any-and-all", u"atta", u"both", u"certain", u"couple", u"dat", u"dem", u"dis", u"each", u"either", u"enough", u"enuf", u"enuff", u"every", u"few", u"fewer", u"fewest", u"her", u"hes", u"his", u"its", u"last", u"least", #u"little", u"many", u"more", u"most", u"much", u"muchee", u"my", u"neither", #u"next", u"nil", u"no", u"none", u"other", u"our", u"overmuch", u"owne", u"plenty", u"quodque", #u"said", u"several", u"some", u"such", u"sufficient", u"that", u"their", u"them", u"these", u"they", u"thilk", u"thine", u"this", u"those", u"thy", u"umpteen", u"us", u"various", u"wat", u"we", u"what", u"whatever", u"which", u"whichever", u"yonder", u"you", u"your"] prepositions = [u"about", u"above", u"across", u"after", u"against", u"along", u"among", u"around", u"at", u"before", u"behind", u"below", u"beneath", u"beside", u"between", u"by", u"down", u"during", u"except", u"for", u"from", u"front", u"in", u"inside", u"instead", u"into", u"like", u"near", u"of", u"off", u"on", u"onto", u"out", u"outside", u"over", u"past", u"since", u"through", u"to", u"top", u"toward", u"under", u"underneath", u"until", u"up", u"upon", u"with", u"within", u"without"] connectors = [u"about", u"above", u"across", u"after", u"against", u"along", u"among", u"around", u"at", u"before", u"behind", u"below", u"beneath", u"beside", u"between", u"by", u"down", u"during", u"except", u"for", u"from", u"front", u"in", u"inside", u"instead", u"into", u"like", u"near", u"of", u"off", u"on", u"onto", u"out", u"outside", u"over", u"past", u"since", u"through", u"to", u"top", u"toward", u"under", u"underneath", u"until", u"up", u"upon", u"with", u"within", u"without"] modals = [u"would", u"will", u"can", u"could", u"may", u"should", u"might", u"must", u"ca", u"'ll", u"'d", u"wo", u"ought", u"need", u"shall", u"dare", u"shalt"] conjunctions = [u"though", u"although", u"even though", u"while", u"if", u"only if", u"unless", u"until", u"provided that", u"assuming that", u"even if", u"in case", u"lest", u"than", u"rather than", u"whether", u"as much as", u"whereas", u"after", u"as long as", u"as soon as", u"before", u"by the time", u"now that", u"once", u"since", u"till", u"until", u"when", u"whenever", u"while", u"because", u"since", u"so that", u"why", u"that", u"what", u"whatever", u"which", u"whichever", u"who", u"whoever", u"whom", u"whomever", u"whose", u"how", u"as though", u"as if", u"where", u"wherever", u"for", u"and", u"nor", u"but", u"or", u"yet", u"so", u"however"] stopwords = ["yeah", "monday","tuesday","wednesday","thursday","friday", "saturday","sunday","a","able","about","above","abst","accordance", "according","accordingly","across","act","actually","added","adj", "adopted","affected","affecting","affects","after","afterwards", "again","against","ah","all","almost","alone","along","already", "also","although","always","am","among","amongst","an","and", "announce","another","any","anybody","anyhow","anymore","anyone", "anything","anyway","anyways","anywhere","apparently","approximately", "are","aren","arent","arise","around","as","aside","ask","asking","at", "auth","available","away","awfully","b","back","be","became","because", "become","becomes","becoming","been","before","beforehand","begin", "beginning","beginnings","begins","behind","being","believe","below", "beside","besides","between","beyond","biol","both","brief","briefly", "but","by","c","ca","came","can","cannot","cant","cause","causes", "certain","certainly","co","com","come","comes","contain","containing", "contains","could","couldnt","d","date","did","didnt","different","do", "does","doesnt","doing","done","dont","down","downwards","due","during", "e","each","ed","edu","effect","eg","eight","eighty","either","else", "elsewhere","end","ending","enough","especially","et","et-al","etc","even", "ever","every","everybody","everyone","everything","everywhere","ex", "except","f","far","few","ff","fifth","first","five","fix","followed", "following","follows","for","former","formerly","forth","found","four", "from","further","furthermore","going","g","gave","get","gets","getting", "give","given","gives","giving","go","goes","gone","got","gotten","h", "had","happens","hardly","has","hasnt","have","havent","having","he", "hed","hence","her","here","hereafter","hereby","herein","heres", "hereupon","hers","herself","hes","hi","hid","him","himself","his", "hither","home","how","howbeit","however","hundred","i","id","ie", "if","ill","im","immediate","immediately","importance","important", "in","inc","indeed","index","information","instead","into","invention", "inward","is","isnt","it","itd","itll","its","itself","ive","j","just", "k","keep","keeps","kept","keys","kg","km","know","known","knows", "l","largely","last","lately","later","latter","latterly","least","less", "lest","let","lets","like","liked","likely","line","little","ll","look", "looking","looks","ltd","m","made","mainly","make","makes","many","may", "maybe","me","mean","means","meantime","meanwhile","merely","mg","might", "million","miss","ml","more","moreover","most","mostly","mr","mrs","much", "mug","must","my","myself","n","na","name","namely","nay","nd","near", "nearly","necessarily","necessary","need","needs","neither","never", "nevertheless","new","next","nine","ninety","no","nobody","non","none", "nonetheless","noone","nor","normally","nos","not","noted","nothing", "now","nowhere","o","obtain","obtained","obviously","of","off","often", "oh","ok","okay","old","omitted","on","once","one","ones","only","onto", "or","ord","other","others","otherwise","ought","our","ours","ourselves", "out","outside","over","overall","owing","own","p","page","pages","part", "particular","particularly","past","per","perhaps","placed","please", "plus","poorly","possible","possibly","potentially","pp","predominantly", "present","previously","primarily","probably","promptly","proud","provides", "put","q","que","quickly","quite","qv","r","ran","rather","rd","re", "readily","really","recent","recently","ref","refs","regarding","regardless", "regards","related","relatively","research","respectively","resulted", "resulting","results","right","run","s","said","same","saw","say","saying", "says","sec","section","see","seeing","seem","seemed","seeming","seems", "seen","self","selves","sent","seven","several","shall","she","shed","shell", "shes","should","shouldnt","show","showed","shown","showns","shows", "significant","significantly","similar","similarly","since","six", "slightly","so","some","somebody","somehow","someone","somethan","something", "sometime","sometimes","somewhat","somewhere","soon","sorry","specifically", "specified","specify","specifying","state","states","still","stop", "strongly","sub","substantially","successfully","such","sufficiently", "suggest","sup","sure","t","take","taken","taking","tell","tends","th", "than","thank","thanks","thanx","that","thatll","thats","thatve","the", "their","theirs","them","themselves","then","thence","there","thereafter", "thereby","thered","therefore","therein","therell","thereof","therere", "theres","thereto","thereupon","thereve","these","they","theyd","theyll", "theyre","theyve","think","this","those","thou","though","thoughh","thousand", "throug","through","throughout","thru","thus","til","tip","to","together", "too","took","toward","towards","tried","tries","truly","try","trying", "ts","twice","two","u","un","under","unfortunately","unless","unlike", "unlikely","until","unto","up","upon","ups","us","use","used","useful", "usefully","usefulness","uses","using","usually","v","value","various","ve", "very","via","viz","vol","vols","vs","w","want","wants","was","wasnt","way", "we","wed","welcome","well","went","were","werent","weve","what","whatever", "whatll","whats","when","whence","whenever","where","whereafter","whereas", "whereby","wherein","wheres","whereupon","wherever","whether","which", "while","whim","whither","who","whod","whoever","whole","wholl","whom", "whomever","whos","whose","why","widely","willing","wish","with","within", "without","wont","words","world","would","wouldnt","www","x","y","yes","yet", "you","youd","youll","your","youre","yours","yourself","yourselves","youve", "z","zero", "isn", "doesn","didn", "couldn", "mustn","shoudn","wasn","woudn", "i", "me", "my", "myself", "we", "our", "ours", "ourselves", "you", "your", "yours", "yourself", "yourselves", "he", "him", "his", "himself", "she", "her", "hers", "herself", "it", "its", "itself", "they", "them", "their", "theirs", "themselves", "what", "which", "who", "whom", "this", "that", "these", "those", "am", "is", "are", "was", "were", "be", "been", "being", "have", "has", "had", "having", "do", "does", "did", "doing", "a", "an", "the", "and", "but", "if", "or", "because", "as", "until", "while", "of", "at", "by", "for", "with", "about", "against", "between", "into", "through", "during", "before", "after", "above", "below", "to", "from", "up", "down", "in", "out", "on", "off", "over", "under", "again", "further", "then", "once", "here", "there", "when", "where", "why", "how", "all", "any", "both", "each", "few", "more", "most", "other", "some", "such", "no", "nor", "not", "only", "own", "same", "so", "than", "too", "very", "s", "t", "can", "will", "just", "don", "should", "now", "gonna", "n't", '-lrb-', '-rrb-', "'m", "'ll", "'re", "'s", "'ve", "&"] titlewords = [u'admiral', u'archbishop', u'alan', u'merrill', u'sarah', 'queen', u'king', u'sen', u'chancellor', u'prime minister', 'cardinal', u'bishop', u'father', u'hon', u'rev', u'reverend', 'pope', u'sir', u'doctor', u'professor', u'president', 'senator', u'congressman', u'congresswoman', u'mr', u'ms', 'mrs', u'miss', u'dr', u'bill', u'hillary', u'hillary rodham', 'saddam', u'osama', u'ayatollah', u'george', u'george w', 'mitt', u'malcolm', u'barack', u'ronald', u'john', u'john f', 'william', u'al', u'bob'] whpro = [u'who', u'what',u'why', u'where',u'when', u'how'] other = ['not'] #all_lists = [pronouns, articles, determiners, prepositions, connectors, modals] from corpkit.dictionaries.process_types import Wordlist closedclass = sorted(list(set(pronouns + articles + conjunctions + determiners + prepositions + connectors + modals + other))) outputnames = namedtuple('wordlists', ['pronouns', 'conjunctions', 'articles', 'determiners', 'prepositions', 'connectors', 'modals', 'closedclass', 'stopwords', 'titles', 'whpro']) eachlist = [pronouns, conjunctions, articles, determiners, prepositions, connectors, modals, closedclass, stopwords, titlewords, whpro] eachlist = [Wordlist(l, single=True) for l in eachlist] output = outputnames(*eachlist) return output wordlists = closed_class_wordlists() ================================================ FILE: corpkit/download/__init__.py ================================================ ================================================ FILE: corpkit/download/corenlp.py ================================================ def corenlp_downloader(custompath=False): """ Very simple CoreNLP downloader :param custompath: A path where you want to put CoreNLP :type custompath: ``str`` :Usage: python -m corpkit.download.corenlp """ import os from corpkit.build import download_large_file from corpkit.process import get_corenlp_path from corpkit.constants import CORENLP_URL as url cnlp_dir = os.path.join(os.path.expanduser("~"), 'corenlp') corenlppath, fpath = download_large_file(cnlp_dir, url, actually_download=True, custom_corenlp_dir=custompath) if __name__ == '__main__': import sys custompath = False if len(sys.argv) == 1 else sys.argv[-1] corenlp_downloader(custompath=custompath) ================================================ FILE: corpkit/editor.py ================================================ """ corpkit: edit Interrogation, Concordance and Interrodict objects """ from __future__ import print_function from corpkit.constants import STRINGTYPE, PYTHON_VERSION def editor(interrogation, operation=None, denominator=False, sort_by=False, keep_stats=False, keep_top=False, just_totals=False, threshold='medium', just_entries=False, skip_entries=False, span_entries=False, merge_entries=False, just_subcorpora=False, skip_subcorpora=False, span_subcorpora=False, merge_subcorpora=False, replace_names=False, replace_subcorpus_names=False, projection=False, remove_above_p=False, p=0.05, print_info=False, spelling=False, selfdrop=True, calc_all=True, keyword_measure='ll', **kwargs ): """ See corpkit.interrogation.Interrogation.edit() for docstring """ # grab arguments, in case we get dict input and have to iterate locs = locals() import corpkit import re import collections import pandas as pd import numpy as np from pandas import DataFrame, Series from time import localtime, strftime try: get_ipython().getoutput() except TypeError: have_ipython = True except NameError: have_ipython = False try: from IPython.display import display, clear_output except ImportError: pass # new ipython error except AttributeError: have_ipython = False pass # to use if we also need to worry about concordance lines return_conc = False from corpkit.interrogation import Interrodict, Interrogation, Concordance if interrogation.__class__ == Interrodict: locs.pop('interrogation', None) from collections import OrderedDict outdict = OrderedDict() for i, (k, v) in enumerate(interrogation.items()): # only print the first time around if i != 0: locs['print_info'] = False if isinstance(denominator, STRINGTYPE) and denominator.lower() == 'self': denominator = interrogation # if df2 is also a dict, get the relevant entry if isinstance(denominator, (dict, Interrodict)): #if sorted(set([i.lower() for i in list(dataframe1.keys())])) == \ # sorted(set([i.lower() for i in list(denominator.keys())])): # locs['denominator'] = denominator[k] # fix: this repeats itself for every key, when it doesn't need to # denominator_sum: if kwargs.get('denominator_sum'): locs['denominator'] = denominator.collapse(axis='key') if kwargs.get('denominator_totals'): locs['denominator'] = denominator[k].totals else: locs['denominator'] = denominator[k].results outdict[k] = v.results.edit(**locs) if print_info: thetime = strftime("%H:%M:%S", localtime()) print("\n%s: Finished! Output is a dictionary with keys:\n\n '%s'\n" % (thetime, "'\n '".join(sorted(outdict.keys())))) return Interrodict(outdict) elif isinstance(interrogation, (DataFrame, Series)): dataframe1 = interrogation elif isinstance(interrogation, Interrogation): #if interrogation.__dict__.get('concordance', None) is not None: # concordances = interrogation.concordance branch = kwargs.pop('branch', 'results') if branch.lower().startswith('r') : dataframe1 = interrogation.results elif branch.lower().startswith('t'): dataframe1 = interrogation.totals elif branch.lower().startswith('c'): dataframe1 = interrogation.concordance return_conc = True else: dataframe1 = interrogation.results elif isinstance(interrogation, Concordance) or \ all(x in list(dataframe1.columns) for x in [ 'l', 'm', 'r']): return_conc = True print('heree') dataframe1 = interrogation # hope for the best else: dataframe1 = interrogation the_time_started = strftime("%Y-%m-%d %H:%M:%S") pd.options.mode.chained_assignment = None try: from process import checkstack except ImportError: from corpkit.process import checkstack if checkstack('pythontex'): print_info=False def combiney(df, df2, operation='%', threshold='medium', prinf=True): """ Mash df and df2 together in appropriate way """ totals = False # delete under threshold if just_totals: if using_totals: if not single_totals: to_drop = list(df2[df2['Combined total'] < threshold].index) df = df.drop([e for e in to_drop if e in list(df.index)]) if prinf: to_show = [] [to_show.append(w) for w in to_drop[:5]] if len(to_drop) > 10: to_show.append('...') [to_show.append(w) for w in to_drop[-5:]] if len(to_drop) > 0: print('Removing %d entries below threshold:\n %s' % (len(to_drop), '\n '.join(to_show))) if len(to_drop) > 10: print('... and %d more ... \n' % (len(to_drop) - len(to_show) + 1)) else: print('') else: denom = df2 else: denom = list(df2) if single_totals: if operation == '%': totals = df.sum() * 100.0 / float(df.sum().sum()) df = df * 100.0 try: df = df.div(denom, axis=0) except ValueError: thetime = strftime("%H:%M:%S", localtime()) print('%s: cannot combine DataFrame 1 and 2: different shapes' % thetime) elif operation == '+': try: df = df.add(denom, axis=0) except ValueError: thetime = strftime("%H:%M:%S", localtime()) print('%s: cannot combine DataFrame 1 and 2: different shapes' % thetime) elif operation == '-': try: df = df.sub(denom, axis=0) except ValueError: thetime = strftime("%H:%M:%S", localtime()) print('%s: cannot combine DataFrame 1 and 2: different shapes' % thetime) elif operation == '*': totals = df.sum() * float(df.sum().sum()) try: df = df.mul(denom, axis=0) except ValueError: thetime = strftime("%H:%M:%S", localtime()) print('%s: cannot combine DataFrame 1 and 2: different shapes' % thetime) elif operation == '/': try: totals = df.sum() / float(df.sum().sum()) df = df.div(denom, axis=0) except ValueError: thetime = strftime("%H:%M:%S", localtime()) print('%s: cannot combine DataFrame 1 and 2: different shapes' % thetime) elif operation == 'a': for c in [c for c in list(df.columns) if int(c) > 1]: df[c] = df[c] * (1.0 / int(c)) df = df.sum(axis=1) / df2 elif operation.startswith('c'): import warnings with warnings.catch_warnings(): warnings.simplefilter("ignore") df = pandas.concat([df, df2], axis=1) return df, totals elif not single_totals: if not operation.startswith('a'): # generate totals if operation == '%': totals = df.sum() * 100.0 / float(df2.sum().sum()) if operation == '*': totals = df.sum() * float(df2.sum().sum()) if operation == '/': totals = df.sum() / float(df2.sum().sum()) if operation.startswith('c'): # add here the info that merging will not work # with identical colnames import warnings with warnings.catch_warnings(): warnings.simplefilter("ignore") d = pd.concat([df.T, df2.T]) # make index nums d = d.reset_index() # sum and remove duplicates d = d.groupby('index').sum() dx = d.reset_index('index') dx.index = list(dx['index']) df = dx.drop('index', axis=1).T def editf(datum): meth = {'%': datum.div, '*': datum.mul, '/': datum.div, '+': datum.add, '-': datum.sub} if datum.name in list(df2.columns): method = meth[operation] mathed = method(df2[datum.name], fill_value=0.0) if operation == '%': return mathed * 100.0 else: return mathed else: return datum * 0.0 df = df.apply(editf) else: for c in [c for c in list(df.columns) if int(c) > 1]: df[c] = df[c] * (1.0 / int(c)) df = df.sum(axis=1) / df2.T.sum() return df, totals def skip_keep_merge_span(df): """ Do all skipping, keeping, merging and spanning """ from corpkit.dictionaries.process_types import Wordlist if skip_entries: if isinstance(skip_entries, (list, Wordlist)): df = df.drop(list(skip_entries), axis=1, errors='ignore') else: df = df.loc[:,~df.columns.str.contains(skip_entries)] if just_entries: if isinstance(just_entries, (list, Wordlist)): je = [i for i in list(just_entries) if i in list(df.columns)] df = df[je] else: df = df.loc[:,df.columns.str.contains(just_entries)] if merge_entries: for newname, crit in merge_entries.items(): if isinstance(crit, (list, Wordlist)): crit = [i for i in list(crit) if i in list(df.columns)] cr = [i for i in list(crit) if i in list(df.columns)] summed = df[cr].sum(axis=1) df = df.drop(list(cr), axis=1, errors='ignore') else: summed = df.loc[:,df.columns.str.contains(crit)].sum(axis=1) df = df.loc[:,~df.columns.str.contains(crit)] df.insert(0, newname, summed, allow_duplicates=True) if span_entries: df = df.iloc[:,span_entries[0]:span_entries[1]] if skip_subcorpora: if isinstance(skip_subcorpora, (list, Wordlist)): df = df.drop(list(skip_subcorpora), axis=0, errors='ignore') else: df = df[~df.index.str.contains(skip_subcorpora)] if just_subcorpora: if isinstance(just_subcorpora, (list, Wordlist)): js = [i for i in list(just_subcorpora) if i in list(df.index)] df = df.loc[js] else: df = df[df.index.str.contains(just_subcorpora)] if merge_subcorpora: df = df.T for newname, crit in merge_subcorpora.items(): if isinstance(crit, (list, Wordlist)): crit = [i for i in list(crit) if i in list(df.columns)] summed = df[list(crit)].sum(axis=1) df = df.drop(list(crit), axis=1, errors='ignore') else: summed = df.loc[:,df.columns.str.contains(crit)].sum(axis=1) df = df.loc[:,~df.columns.str.contains(crit)] df.insert(0, newname, summed, allow_duplicates=True) df = df.T if span_subcorpora: df = df.iloc[span_subcorpora[0]:span_subcorpora[1],:] return df def parse_input(df, the_input): """turn whatever has been passed in into list of words that can be used as pandas indices---maybe a bad way to go about it""" parsed_input = False import re if the_input == 'all': the_input = r'.*' if isinstance(the_input, int): try: the_input = str(the_input) except: pass the_input = [the_input] elif isinstance(the_input, STRINGTYPE): regex = re.compile(the_input) parsed_input = [w for w in list(df) if re.search(regex, w)] return parsed_input from corpkit.dictionaries.process_types import Wordlist if isinstance(the_input, Wordlist) or the_input.__class__ == Wordlist: the_input = list(the_input) if isinstance(the_input, list): if isinstance(the_input[0], int): parsed_input = [word for index, word in enumerate(list(df)) if index in the_input] elif isinstance(the_input[0], STRINGTYPE): try: parsed_input = [word for word in the_input if word in df.columns] except AttributeError: # if series parsed_input = [word for word in the_input if word in df.index] return parsed_input def synonymise(df, pos='n'): """pass a df and a pos and convert df columns to most common synonyms""" from nltk.corpus import wordnet as wn #from dictionaries.taxonomies import taxonomies from collections import Counter fixed = [] for w in list(df.columns): try: syns = [] for syns in wn.synsets(w, pos=pos): for w in syns: synonyms.append(w) top_syn = Counter(syns).most_common(1)[0][0] fixed.append(top_syn) except: fixed.append(w) df.columns = fixed return df def convert_spell(df, convert_to='US', print_info=print_info): """turn dataframes into us/uk spelling""" from dictionaries.word_transforms import usa_convert if print_info: print('Converting spelling ... \n') if convert_to == 'UK': usa_convert = {v: k for k, v in list(usa_convert.items())} fixed = [] for val in list(df.columns): try: fixed.append(usa_convert[val]) except: fixed.append(val) df.columns = fixed return df def merge_duplicates(df, print_info=print_info): if print_info: print('Merging duplicate entries ... \n') # now we have to merge all duplicates for dup in df.columns.get_duplicates(): #num_dupes = len(list(df[dup].columns)) temp = df[dup].sum(axis=1) #df = df.drop([dup for d in range(num_dupes)], axis=1) df = df.drop(dup, axis=1) df[dup] = temp return df def name_replacer(df, replace_names, print_info=print_info): """replace entry names and merge""" import re # get input into list of tuples # if it's a string, we want to delete it if isinstance(replace_names, STRINGTYPE): replace_names = [(replace_names, '')] # this is for some malformed list if not isinstance(replace_names, dict): if isinstance(replace_names[0], STRINGTYPE): replace_names = [replace_names] # if dict, make into list of tupes if isinstance(replace_names, dict): replace_names = [(v, k) for k, v in replace_names.items()] for to_find, replacement in replace_names: if print_info: if replacement: print('Replacing "%s" with "%s" ...\n' % (to_find, replacement)) else: print('Deleting "%s" from entry names ...\n' % to_find) to_find = re.compile(to_find) if not replacement: replacement = '' df.columns = [re.sub(to_find, replacement, l) for l in list(df.columns)] df = merge_duplicates(df, print_info=False) return df def newname_getter(df, parsed_input, newname='combine', prinf=True, merging_subcorpora=False): """makes appropriate name for merged entries""" if merging_subcorpora: if newname is False: newname = 'combine' if isinstance(newname, int): the_newname = list(df.columns)[newname] elif isinstance(newname, STRINGTYPE): if newname == 'combine': if len(parsed_input) <= 3: the_newname = '/'.join(parsed_input) elif len(parsed_input) > 3: the_newname = '/'.join(parsed_input[:3]) + '...' else: the_newname = newname if not newname: # revise this code import operator sumdict = {} for item in parsed_input: summed = sum(list(df[item])) sumdict[item] = summed the_newname = max(iter(sumdict.items()), key=operator.itemgetter(1))[0] if not isinstance(the_newname, STRINGTYPE): the_newname = str(the_newname, errors='ignore') return the_newname def projector(df, list_of_tuples, prinf=True): """project abs values""" if isinstance(list_of_tuples, list): tdict = {} for a, b in list_of_tuples: tdict[a] = b list_of_tuples = tdict for subcorpus, projection_value in list(list_of_tuples.items()): if isinstance(subcorpus, int): subcorpus = str(subcorpus) df.ix[subcorpus] = df.ix[subcorpus] * projection_value if prinf: if isinstance(projection_value, float): print('Projection: %s * %s' % (subcorpus, projection_value)) if isinstance(projection_value, int): print('Projection: %s * %d' % (subcorpus, projection_value)) if prinf: print('') return df def lingres(ser, index): from scipy.stats import linregress from pandas import Series ix = ['slope', 'intercept', 'r', 'p', 'stderr'] return Series(linregress(index, ser.values), index=ix) def do_stats(df): """do linregress and add to df""" try: from scipy.stats import linregress except ImportError: thetime = strftime("%H:%M:%S", localtime()) print('%s: sort type not available in this version of corpkit.' % thetime) return False indices = list(df.index) first_year = list(df.index)[0] try: x = [int(y) - int(first_year) for y in indices] except ValueError: x = list(range(len(indices))) stats = df.apply(lingres, axis=0, index=x) df = df.append(stats) df = df.replace([np.inf, -np.inf], 0.0) return df def resort(df, sort_by = False, keep_stats = False): """ Sort results, potentially using scipy's linregress """ # translate options and make sure they are parseable stat_field = ['slope', 'intercept', 'r', 'p', 'stderr'] easy_sorts = ['total', 'infreq', 'name', 'most', 'least', 'reverse'] stat_sorts = ['increase', 'decrease', 'static', 'turbulent'] options = stat_field + easy_sorts + stat_sorts sort_by_convert = {'most': 'total', True: 'total', 'least': 'infreq'} sort_by = sort_by_convert.get(sort_by, sort_by) # probably broken :( if just_totals: if sort_by == 'name': return df.sort_index() else: return df.sort_values(by='Combined total', ascending=sort_by != 'total', axis=1) stats_done = False if keep_stats or sort_by in stat_field + stat_sorts: df = do_stats(df) stats_done = True if isinstance(df, bool): if df is False: return False if isinstance(df, Series): if stats_done: stats = df.ix[range(-5, 0)] df = df.drop(list(stats.index)) if sort_by == 'name': df = df.sort_index() elif sort_by == 'reverse': df = df[::-1] else: df = df.sort_values(ascending=sort_by != 'total') if stats_done: df = df.append(stats) return df if sort_by == 'name': # currently case sensitive df = df.reindex_axis(sorted(df.columns), axis=1) elif sort_by in ['total', 'infreq']: if df1_istotals: df = df.T df = df[list(df.sum().sort_values(ascending=sort_by != 'total').index)] elif sort_by == 'reverse': df = df.T[::-1].T # sort by slope etc., or search by subcorpus name if sort_by in stat_field or sort_by not in options: asc = kwargs.get('reverse', False) df = df.T.sort_values(by=sort_by, ascending=asc).T if sort_by in ['increase', 'decrease', 'static', 'turbulent']: slopes = df.ix['slope'] if sort_by == 'increase': df = df[slopes.argsort()[::-1]] elif sort_by == 'decrease': df = df[slopes.argsort()] elif sort_by == 'static': df = df[slopes.abs().argsort()] elif sort_by == 'turbulent': df = df[slopes.abs().argsort()[::-1]] if remove_above_p: df = df.T df = df[df['p'] <= p] df = df.T # remove stats field by default if not keep_stats: df = df.drop(stat_field, axis=0, errors='ignore') return df def set_threshold(big_list, threshold, prinf=True): if isinstance(threshold, STRINGTYPE): if threshold.startswith('l'): denominator = 10000 if threshold.startswith('m'): denominator = 5000 if threshold.startswith('h'): denominator = 2500 if isinstance(big_list, DataFrame): tot = big_list.sum().sum() if isinstance(big_list, Series): tot = big_list.sum() tshld = float(tot) / float(denominator) else: tshld = threshold if prinf: print('Threshold: %d\n' % tshld) return tshld # copy dataframe to be very safe df = dataframe1.copy() # make cols into strings try: df.columns = [str(c) for c in list(df.columns)] except: pass if operation is None: operation = 'None' if isinstance(interrogation, Concordance): return_conc = True # do concordance work if return_conc: if just_entries: if isinstance(just_entries, int): just_entries = [just_entries] if isinstance(just_entries, STRINGTYPE): df = df[df['m'].str.contains(just_entries)] if isinstance(just_entries, list): if all(isinstance(e, STRINGTYPE) for e in just_entries): mp = df['m'].map(lambda x: x in just_entries) df = df[mp] else: df = df.ix[just_entries] if skip_entries: if isinstance(skip_entries, int): skip_entries = [skip_entries] if isinstance(skip_entries, STRINGTYPE): df = df[~df['m'].str.contains(skip_entries)] if isinstance(skip_entries, list): if all(isinstance(e, STRINGTYPE) for e in skip_entries): mp = df['m'].map(lambda x: x not in skip_entries) df = df[mp] else: df = df.drop(skip_entries, axis=0) if just_subcorpora: if isinstance(just_subcorpora, int): just_subcorpora = [just_subcorpora] if isinstance(just_subcorpora, STRINGTYPE): df = df[df['c'].str.contains(just_subcorpora)] if isinstance(just_subcorpora, list): if all(isinstance(e, STRINGTYPE) for e in just_subcorpora): mp = df['c'].map(lambda x: x in just_subcorpora) df = df[mp] else: df = df.ix[just_subcorpora] if skip_subcorpora: if isinstance(skip_subcorpora, int): skip_subcorpora = [skip_subcorpora] if isinstance(skip_subcorpora, STRINGTYPE): df = df[~df['c'].str.contains(skip_subcorpora)] if isinstance(skip_subcorpora, list): if all(isinstance(e, STRINGTYPE) for e in skip_subcorpora): mp = df['c'].map(lambda x: x not in skip_subcorpora) df = df[mp] else: df = df.drop(skip_subcorpora, axis=0) return Concordance(df) if print_info: print('\n***Processing results***\n========================\n') df1_istotals = False if isinstance(df, Series): df1_istotals = True df = DataFrame(df) # if just a single result else: df = DataFrame(df) if operation.startswith('k'): if sort_by is False: if not df1_istotals: sort_by = 'turbulent' if df1_istotals: df = df.T # figure out if there's a second list # copy and remove totals if there is single_totals = True using_totals = False outputmode = False if denominator.__class__ == Interrogation: try: denominator = denominator.results except AttributeError: denominator = denominator.totals if denominator is not False and not isinstance(denominator, STRINGTYPE): df2 = denominator.copy() using_totals = True if isinstance(df2, DataFrame): if len(df2.columns) > 1: single_totals = False else: df2 = Series(df2.iloc[:,0]) elif isinstance(df2, Series): single_totals = True #if operation == 'k': #raise ValueError('Keywording requires a DataFrame for denominator. Use "self"?') else: if operation in ['k', 'a', '%', '/', '*', '-', '+']: denominator = 'self' if denominator == 'self': outputmode = True if operation.startswith('a') or operation.startswith('A'): if list(df.columns)[0] != '0' and list(df.columns)[0] != 0: df = df.T if using_totals: if not single_totals: df2 = df2.T if projection: # projection shouldn't do anything when working with '%', remember. df = projector(df, projection) if using_totals: df2 = projector(df2, projection) if spelling: df = convert_spell(df, convert_to=spelling) df = merge_duplicates(df, print_info=False) if not single_totals: df2 = convert_spell(df2, convert_to=spelling, print_info=False) df2 = merge_duplicates(df2, print_info=False) if not df1_istotals: sort_by = 'total' if replace_names: df = name_replacer(df, replace_names) df = merge_duplicates(df) if not single_totals: df2 = name_replacer(df2, replace_names, print_info=False) df2 = merge_duplicates(df2, print_info=False) if not sort_by: sort_by = 'total' if replace_subcorpus_names: df = name_replacer(df.T, replace_subcorpus_names) df = merge_duplicates(df).T df = df.sort_index() if not single_totals: if isinstance(df2, DataFrame): df2 = df2.T df2 = name_replacer(df2, replace_subcorpus_names, print_info=False) df2 = merge_duplicates(df2, print_info=False) if isinstance(df2, DataFrame): df2 = df2.T df2 = df2.sort_index() if not sort_by: sort_by = 'total' # remove old stats if they're there: statfields = ['slope', 'intercept', 'r', 'p', 'stderr'] try: df = df.drop(statfields, axis=0) except: pass if using_totals: try: df2 = df2.drop(statfields, axis=0) except: pass # remove totals and tkinter order for name, ax in zip(['Total'] * 2 + ['tkintertable-order'] * 2, [0, 1, 0, 1]): if name == 'Total' and df1_istotals: continue try: df = df.drop(name, axis=ax, errors='ignore') except: pass for name, ax in zip(['Total'] * 2 + ['tkintertable-order'] * 2, [0, 1, 0, 1]): if name == 'Total' and single_totals: continue try: df2 = df2.drop(name, axis=ax, errors='ignore') except: pass df = skip_keep_merge_span(df) try: df2 = skip_keep_merge_span(df2) except: pass # drop infinites and nans df = df.replace([np.inf, -np.inf], np.nan) df = df.fillna(0.0) if just_totals: df = DataFrame(df.sum(), columns=['Combined total']) if using_totals: if not single_totals: df2 = DataFrame(df2.sum(), columns=['Combined total']) else: df2 = df2.sum() tots = df.sum(axis=1) if using_totals or outputmode: if not operation.startswith('k'): tshld = 0 # set a threshold if just_totals if outputmode is True: df2 = df.T.sum() if not just_totals: df2.name = 'Total' else: df2.name = 'Combined total' using_totals = True single_totals = True if just_totals: if not single_totals: tshld = set_threshold(df2, threshold, prinf=print_info) df, tots = combiney(df, df2, operation=operation, threshold=tshld, prinf=print_info) # if doing keywording... if operation.startswith('k'): if isinstance(denominator, STRINGTYPE): if denominator == 'self': df2 = df.copy() else: df2 = denominator from corpkit.keys import keywords df = keywords(df, df2, selfdrop=selfdrop, threshold=threshold, print_info=print_info, editing=True, calc_all=calc_all, sort_by=sort_by, measure=keyword_measure, **kwargs) # drop infinites and nans df = df.replace([np.inf, -np.inf], np.nan) df = df.fillna(0.0) # resort data if sort_by or keep_stats: df = resort(df, keep_stats=keep_stats, sort_by=sort_by) if isinstance(df, bool): if df is False: return 'linregress' if keep_top: if not just_totals: df = df[list(df.columns)[:keep_top]] else: df = df.head(keep_top) if just_totals: # turn just_totals into series: df = Series(df['Combined total'], name='Combined total') if df1_istotals: if operation.startswith('k'): try: df = Series(df.ix[dataframe1.name]) df.name = '%s: keyness' % df.name except: df = df.iloc[0, :] df.name = 'keyness' % df.name # generate totals branch if not percentage results: # fix me if df1_istotals or operation.startswith('k'): if not just_totals: try: total = Series(df['Total'], name='Total') except: total = 'none' pass #total = df.copy() else: total = 'none' else: # might be wrong if using division or something... try: total = df.T.sum(axis=1) except: total = 'none' if not isinstance(tots, DataFrame) and not isinstance(tots, Series): total = df.sum(axis=1) else: total = tots if isinstance(df, DataFrame): if df.empty: datatype = 'object' else: datatype = df.iloc[0].dtype else: datatype = df.dtype locs['datatype'] = datatype # TURN INT COL NAMES INTO STR try: df.results.columns = [str(d) for d in list(df.results.columns)] except: pass def add_tkt_index(df): """add an order for tkintertable if using gui""" if isinstance(df, Series): df = df.T df = df.drop('tkintertable-order', errors='ignore', axis=0) df = df.drop('tkintertable-order', errors='ignore', axis=1) dat = [i for i in range(len(df.index))] df['tkintertable-order'] = Series(dat, index=list(df.index)) df = df.T return df # while tkintertable can't sort rows if checkstack('tkinter'): df = add_tkt_index(df) if kwargs.get('df1_always_df'): if isinstance(df, Series): df = DataFrame(df) # delete non-appearing conc lines lns = None if isinstance(getattr(interrogation, 'concordance', None), Concordance): try: col_crit = interrogation.concordance['m'].map(lambda x: x in list(df.columns)) ind_crit = interrogation.concordance['c'].map(lambda x: x in list(df.index)) lns = interrogation.concordance[col_crit] lns = lns.loc[ind_crit] lns = Concordance(lns) except ValueError: lns = None output = Interrogation(results=df, totals=total, query=locs, concordance=lns) if print_info: print('***Done!***\n========================\n') return output ================================================ FILE: corpkit/env.py ================================================ """ A corpkit interpreter, with natural language commands. todo: * documentation * handling of kwargs tuples etc * checking for bugs, tests * merge entries with name """ from __future__ import print_function help_text = "\nThis is a dedicated interpreter for corpkit, a tool for creating, searching\n" \ "and visualising corpora. It works through a combination of objects and commands:\n\n" \ "Objects:\n\n" \ " +---------------+-----------------------------------------------+ \n"\ " | Object | Contains | \n"\ " +===============+===============================================+ \n"\ " | `corpus` | Dataset selected for parsing or searching | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `results` | Search output | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `edited` | Results after sorting, editing or calculating | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `concordance` | Concordance lines from search | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `features` | General linguistic features of corpus | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `wordclasses` | Distribution of word classes in corpus | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `postags` | Distribution of POS tags in corpus | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `figure` | Plotted data | \n"\ " +---------------+-----------------------------------------------+ \n"\ " | `query` | Values used to perform search or edit | \n"\ " +---------------+-----------------------------------------------+ "\ "\n\nCommand examples:\n\n" \ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | Command | Purpose | Syntax | \n"\ " +=================+==============================================================+============================================================================================+ \n"\ " | `new` | Make a new project | `new project ` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `set` | Set current corpus | `set ` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `parse` | Parse corpus | `parse corpus with [options]*` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `search` | Search a corpus for linguistic feature, generate concordance | `search corpus for [feature matching pattern]* showing [feature]* with [options]*` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `edit` | Edit results or edited results | `edit result by [skipping subcorpora/entries matching pattern]* with [options]*` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `calculate` | Calculate relative frequencies, keyness, etc. | `calculate result/edited as operation of denominator` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `sort` | Sort results or concordance | `sort result/concordance by value` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `plot` | Visualise result or edited result | `plot result/edited as line chart with [options]*` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `show` | Show any object | `show object` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `annotate` | Add annotations to corpus based on search results | `annotate all with field as and value as m` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `unannotate` | Delete annotation fields from corpus | `unannotate field` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `sample` | Get a random sample of subcorpora or files from a corpus | `sample 5 subcorpora of corpus` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `call` | Name an object (i.e. make a variable) | `call object ''` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `export` | Export result, edited result or concordance to string/file | `export result to string/csv/latex/file ` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `save` | Save data to disk | `save object to ` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `load` | Load data from disk | `load object as result` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `store` | Store something in memory | `store object as ` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `fetch` | Fetch something from memory | `fetch as object` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `help` | Get help on an object or command | `help command/object` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `history` | See previously entered commands | `history` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `ipython` | Enter IPython with objects available | `ipython` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `py` | Execute Python code | `py 'print('hello world')'` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ " | `!` | Run a line of bash shell | `!ls -al data` | \n"\ " +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ \n"\ "\nMore information:\n\nYou can access more specific help by entering corpkit, then by doing 'help ', or by visiting\n" \ "http://corpkit.readthedocs.io/en/latest\n\n" \ "For help on viewing results, hit '?' when in the result viewing mode. For concordances, hit 'h'.\n\n(Hit 'q' to exit help).\n\n" from corpkit.constants import STRINGTYPE, PYTHON_VERSION, INPUTFUNC import os import traceback import pandas as pd try: import gnureadline as readline except ImportError: import readline import atexit import corpkit from corpkit import * from corpkit.constants import transshow, transobjs import warnings warnings.simplefilter(action="ignore", category=UserWarning) # pandas display setup, though this is rarely used when LESS # and tabview are available size = pd.util.terminal.get_terminal_size() pd.set_option('display.max_rows', 0) pd.set_option('display.max_columns', 0) pd.set_option('display.float_format', lambda x: '{:,.3f}'.format(x)) # allow ctrl-r, etc readline.parse_and_bind('set editing-mode vi') # command completion poss = ['testing', 'search', 'concordance'] from corpkit.completer import Completer try: import gnureadline as readline except ImportError: import readline as readline completer = Completer(poss) readline.set_completer(completer.complete) if 'libedit' in readline.__doc__: readline.parse_and_bind("bind ^I rl_complete") else: readline.parse_and_bind("tab: complete") # this code makes it possible to remember history from previous sessions history_path = os.path.expanduser("~/.pyhistory") def save_history(history_path=history_path): """ On exit, add previous commands to history file """ try: import gnureadline as readline except ImportError: import readline as readline try: readline.remove_history_item(readline.get_current_history_length() - 1) except ValueError: pass readline.write_history_file(history_path) if os.path.exists(history_path): try: readline.set_history_length(1000) readline.read_history_file(history_path) readline.set_history_length(1000) except IOError: pass # bind to exit atexit.register(save_history) # tab completion # ctrl r search #readline.parse_and_bind("bind ^R em-inc-search-prev") del os, atexit, save_history, history_path #del rlcompleter class Objects(object): """ In here are all of the major variables being used by the interpreter This is much nicer than using globals """ def __init__(self): # get dict of all possible wordlists from corpkit.dictionaries.roles import roles from corpkit.dictionaries.wordlists import wordlists from corpkit.dictionaries.process_types import processes from corpkit.dictionaries.verblist import allverbs from collections import defaultdict wl = wordlists._asdict() try: wl.update(roles.__dict__) except AttributeError: wl.update(roles._asdict()) wl.update(processes.__dict__) wl['anyverb'] = allverbs self._protected = ['result', 'previous', 'edited', 'corpus', 'concordance', 'query', 'features', 'postags', 'wordclasses', 'stored', 'figure', 'totals', 'wordlists', 'wordlist', 'matching', 'showing', 'excluding', 'not', 'as', 'with', 'and', 'by', 'm', 'l', 'r', 'conc', 'keeping', 'skipping', 'entries', 'subcorpora', 'merging', 'k', 'sampled', '_in_a_project', '_previous_type', '_old_concs', '_conc_colours', '_conc_kwargs', '_do_conc', '_interactive', '_decimal', '_protected'] # main variables the user might access self.result = None self.previous = None self.edited = None self.corpus = None self.concordance = None self.query = None self.features = None self.sampled = None self.postags = None self.wordclasses = None self.stored = {} self.figure = None self.totals = None self.wordlists = wl self.wordlist = None self.named = {} self.just = {} self.skip = {} self.symbolic = False self._docker = False self.max_cols = None self.max_rows = None self._comma = False # system toggles and references to older data self._in_a_project = None self._previous_type = None self._old_concs = [] self._conc_colours = defaultdict(dict) self._conc_kwargs = {'n': 999} # user settings (more to come?) self._do_conc = True self._interactive = True self._decimal = 3 self._annotation_unlocked = False def _get(self, name): """ Get an object, item from store or wordlist """ if name.startswith('wordlist') or name.startswith('stored'): ob, attr = name.split('.', 1) if '.' in name else name.split(':', 1) return ob, getattr(self, ob).get(attr) feats = ['features', 'postags', 'wordclasses'] if any(name.startswith(i) for i in feats): corpus = self.corpus attr = name.split('.', 1) if len(attr) == 1: return name, getattr(corpus, name) else: bit = attr[1].upper() if attr[0] == 'postags' else attr[1].title() data = getattr(corpus, attr[0])[bit] return 'series', data if name in self._protected: return name, getattr(self, name, None) else: return self.named.get(name, (None, None)) def interpreter(debug=False, fromscript=False, quiet=False, python_c_mode=False, profile=False, loadcurrent=False, docker=False): import os allig = '\n Welcome!\n' allig += " .-._ _ _ _ _ _ _ _ _\n " \ ".-''-.__.-'00 '-' ' ' ' ' ' ' ' '-.\n " \ "'.___ ' . .--_'-' '-' '-' _'-' '._\n " \ "V: V 'vv-' '_ '. .' _..' '.'.\n "\ " '=.____.=_.--' :_.__.__:_ '. : :\n "\ " (((____.-' '-. / : :\n "\ " (((-'\ .' /\n "\ " _____..' .'\n "\ " '-._____.-'\n" objs = Objects() if docker: objs._docker = docker # basic way to check that we're currently in a project, because i'm lazy def check_in_project(): import os proj_dirs = ['data', 'saved_interrogations', 'exported'] if all(x in os.listdir('.') for x in proj_dirs): return True cpkt_dirs = ['API-README.md', 'corpkit', 'data', 'rst_docs'] if all(x in os.listdir('.') for x in cpkt_dirs): return True return False def generate_outprint(): """ Text to appear when switching to IPython """ s = 'Switched to IPython ... defined variables:\n\n\t' s += 'corpus, results, concordance, edited ...\n\n\tType "quit" to return to corpkit environment' return s def read_script(fname): """ If a sript was passed to corpkit, get lines in it, minus comments """ from corpkit.constants import OPENER with OPENER(fname, 'r') as fo: data = fo.read() data = data.splitlines() data = [i for i in data if i.strip() and i.strip()[0] != '#'] # turn off concordancing if it's never used in the script if 'concordance' not in ' '.join(data): objs._do_conc = False return list(reversed(data)) def helper(tokens): """ Give user help if they enter a command alone """ func = get_command.get(tokens[0], False) if not func: print('Not recognised: %s' % tokens[0]) return print(getattr(func, '__doc__', 'Not written yet, sorry.')) def switch_to_ipython(args): from IPython import embed from IPython.terminal.embed import InteractiveShellEmbed s = generate_outprint() for k, v in objs.__dict__.items(): if not k.startswith('_'): locals()[k] = v for k, v in objs.named.items(): locals()[k] = v ret = InteractiveShellEmbed(header=s, babaii='babaii', #colors='Linux', exit_msg='Switching back to corpkit environment ...', local_ns=locals()) cc = ret() def switch_to_jupyter(args): comm = ["jupyter", "notebook"] import subprocess if args: import os nbfile = args[-1] if not nbfile.endswith('.ipynb'): nbfile = nbfile + '.ipynb' if os.path.isfile(nbfile): comm.append(nbfile) subprocess.call(comm) def switch_to_gui(args): import subprocess import os print('Loading graphical interface ... ') subprocess.call(["python", "-m", 'corpkit.gui', os.getcwd()]) def show_concordance(obj, command, args): import pydoc # update the showing parameters kwargs = process_kwargs(args) if kwargs: objs._conc_kwargs.update(kwargs) if obj is None: print("There's no concordance here right now, sorry.") return # retrieve the correct concordances, so we can colour them found_the_conc = next((i for i, c in enumerate(objs._old_concs) \ if c.equals(obj)), None) if found_the_conc is None: return # if colours have been saved for these lines, try to fill them in if objs._conc_colours.get(found_the_conc): try: lines_to_print = [] from colorama import Fore, Back, Style, init lines = obj.format(print_it=False, **objs._conc_kwargs).splitlines() # for each concordance line for line in lines: # get index as str num = line.strip().split(' ', 1)[0] # get dict of style and colour for line gotnums = objs._conc_colours[found_the_conc].get(num, {}) highstr = '' for sty, col in gotnums.items(): if col.upper() in ['DIM', 'NORMAL', 'BRIGHT', 'RESET_ALL']: thing_to_color = Style elif sty == 'Back': thing_to_color = Back else: thing_to_color = Fore highstr += getattr(thing_to_color, col.upper()) highstr += line lines_to_print.append(highstr) if objs._interactive: pydoc.pipepager('\n'.join(lines_to_print), cmd="less -X -R -S") else: print('\n'.join(lines_to_print)) except ImportError: formatted = obj.format(print_it=False, **objs._conc_kwargs) if objs._interactive: pydoc.pipepager(formatted, cmd="less -X -R -S") else: print(formatted) else: formatted = obj.format(print_it=False, **objs._conc_kwargs) if objs._interactive: pydoc.pipepager(formatted, cmd="less -X -R -S") else: print(formatted) def show_table(obj, objtype=False, start_pos=False): """ Print or tabview a Pandas object """ if objs._interactive: import tabview showfunc = tabview.view kwa = {'column_width': 10, 'align_right': True} else: showfunc = print kwa = {} if start_pos: kwa['start_pos'] = start_pos obj = getattr(obj, 'results', obj) if isinstance(obj, (pd.DataFrame, pd.Series)): df = obj.round(objs._decimal) if isinstance(obj, pd.DataFrame): df = df.iloc[:objs.max_rows,:objs.max_cols] else: df = df[:objs.max_rows] if objs._comma: if isinstance(obj, pd.DataFrame): df = df.applymap(lambda x: '{:,}'.format(x)) else: df = df.apply(lambda x: '{:,}'.format(x)) #if showfunc == tabview.view: # df = df.astype(str).apply(lambda x: x.str.rjust(len(x.name), ' ')) showfunc(df, **kwa) return # not sure what might be here elif obj: try: df = obj.round(objs._decimal) except: df = obj try: df = df[:objs.max_rows,:objs.max_cols] except: pass showfunc(df[:objs.max_rows,:objs.max_cols], **kwa) return #else: # if isinstance(objs._get(command)[1], (pd.DataFrame, pd.Series)): # showfunc(objs._get(command)[1].round(objs._decimal), **kwa) # return def single_command_print(command): """ If the user enters just a single token, show them that token This function also processes multiword tokens sometimes, which is inconsistent. """ helpable = ['calculate', 'plot', 'search', 'fetch', 'store', 'save', 'edit', 'export', 'sort', 'load', 'mark', 'del', 'annotate', 'unannotate', 'sample', 'call'] if isinstance(command, list) and len(command) == 1 and command[0] in helpable: helper(command) args = [] if isinstance(command, list): args = command[1:] command = command[0] if command in objs.named.keys(): objtype, obj = objs.named.get(command) if isinstance(obj, str): print('%s: %s' % (command, obj)) return elif objtype == 'eval': print('%s: ' % command, obj) else: objtype, obj = objs._get(command) if not objtype: objtype = command if objtype == 'ls': import os print('\n'.join(os.listdir('.'))) if objtype == 'clear': try: from blessings import Terminal terminal = Terminal() print(terminal.clear()) print(terminal.move(0,0)) except: print(chr(27) + "[2J") if objtype == 'history': import readline for i in range(readline.get_current_history_length()): print(readline.get_history_item(i + 1)) if objtype == 'help': import pydoc pydoc.pipepager(help_text, cmd='less -X -R -S') if objtype == 'corpus': if not hasattr(obj, 'name'): print('Corpus not set. use "set ".') return else: print(obj) elif objtype == 'python' or objtype == 'ipython': switch_to_ipython(args) elif objtype.startswith('jupyter') or objtype == 'notebook': switch_to_jupyter(args) elif objtype == 'gui': switch_to_gui(args) elif objtype in ['result', 'edited', 'totals', 'previous', 'features', 'postags', 'wordclasses', 'series']: show_table(obj, objtype) elif objtype == 'concordance': show_concordance(obj, objtype, args) elif objtype == 'wordlists': show_this([objtype]) elif objtype == 'wordlist': print(objs.wordlist) elif objtype.startswith('wordlist'): o, l = objtype.split('.', 1) if '.' in objtype else objtype.split(':', 1) print(getattr(objs.wordlists, l)) elif objtype == 'query': show_this([objtype]) else: pass def set_something(tokens): """ Set the active corpus, a corpus filter, subcorpus structure, or option: :Examples: `set junglebook-parsed` `set decimal as 3` `set just topic as freedom|democracy` `set max_rows as 1000` `set papers as corpora` """ if tokens and tokens[0].startswith('decimal'): objs._decimal = int(tokens[2]) print('Decimal places set to %d.' % objs._decimal) return if tokens and tokens[0] in ['max_cols', 'max_rows']: dim = 'rows' if tokens[0].endswith('rows') else 'columns' if tokens[-1] in ['off', 'all', 'false', 'False', 'None', 'none']: setattr(objs, tokens[0], None) print("Max %s turned off." % dim) return else: setattr(objs, tokens[0], int(tokens[-1])) print('Max %s set to %s.' % (dim, format(int(tokens[-1]), ','))) return # set subcorpora as attribute of corpus object ... is this ideal? if tokens and tokens[0].startswith('subcorp'): from corpkit.corpus import Corpus if tokens[-1] in ['false', 'none', 'normal', 'off', 'folder', 'folders', 'False', 'None']: tokens[-1] = False objs.symbolic = tokens[-1] #objs.corpus = Corpus(objs.corpus, subcorpora=tokens[-1], print_info=False) print('Set subcorpora to "%s".' % (tokens[-1])) return # setting skipping and just filters if tokens and tokens[0] in ['skip', 'just']: attr = tokens[0] # if the filter is already in the dict if isinstance(getattr(objs, tokens[0]), dict) and tokens[1] in getattr(objs, tokens[0]).keys(): oldd = getattr(objs, tokens[0]) # delete it if tokens[-1] in ['none', 'None', 'off', 'default']: oldd.pop(tokens[1], None) setattr(objs, tokens[0], oldd) # modify it else: oldd[tokens[1]] = parse_pattern(tokens[-1]) setattr(objs, tokens[0], oldd) # delete the entire filter dict elif tokens[-1] in ['none', 'None', 'off', 'default']: setattr(objs, attr, False) print("Reset %s filter." % attr) return # if not in dict, add it metfeat = tokens[1] crit = tokens[-1] if crit.startswith('tag'): setattr(objs, attr, {'tags': parse_pattern(crit)}) else: if isinstance(getattr(objs, attr, False), dict): d = getattr(objs, attr) d[metfeat] = parse_pattern(crit) setattr(objs, attr, d) else: setattr(objs, attr, {metfeat: parse_pattern(crit)}) print("Current %s filter: %s" % (attr, getattr(objs, attr))) return if not check_in_project(): print("Must be in project to set corpus.") return from corpkit.other import load if not tokens: # todo: pick first one if only one show_this(['corpora']) selected = INPUTFUNC('Pick a corpus by name or number: ') selected = selected.strip() if not selected: return elif selected.isdigit(): dirs = [x for x in os.listdir('data') \ if os.path.isdir(os.path.join('data', x))] set_something([dirs[int(selected)-1]]) return else: set_something([selected]) return path = tokens[0] loadsaved = len(tokens) > 1 and tokens[1].startswith('load') kwargs = process_kwargs(tokens, fixjust=True) if debug: print('KWARGS', kwargs) if os.path.exists(path) or os.path.exists(os.path.join('data', path)): from corpkit.corpus import Corpus, Corpora if tokens[-1] == 'corpora': objs.corpus = Corpora(path, load_saved=loadsaved, **kwargs) else: objs.corpus = Corpus(path, load_saved=loadsaved, **kwargs) else: dirs = [x for x in os.listdir('data') if os.path.isdir(os.path.join('data', x))] corpname = dirs[int(tokens[0])-1] set_something([corpname] + tokens[1:]) def get_something(tokens): """ Get a subcorpus or file of a corpus :Example: get file 1 from corpus """ # if the user wants to start at a sentence start_pos = False six = next((i for i, w in enumerate(tokens) if w.startswith('sent')), -1) + 1 if six: start_pos = int(tokens[six]) tokens = [t for i, t in enumerate(tokens) if i != six and i != six-1] target_corpus = 'corpus' if len(tokens) > 2: target_corpus = tokens[-1] corpp = objs._get(target_corpus)[1] getwhat = 'files' if tokens[0] == 'file' else 'subcorpora' dlist = getattr(corpp, getwhat) try: ix = int(tokens[1]) - 1 except: ix = tokens[1] ob = dlist[ix] if objs._interactive and hasattr(ob, 'document'): ndf = ob.document ndf.columns = ['Word', 'Lemma', 'POS', 'NER', 'Morphology', 'Governor', 'Function', 'Dependents', 'Co-reference'] ndf.index.names = ['Sentence', 'Token'] start_pos = next((i for i, l in enumerate(ndf.index.labels[0]) if l == start_pos), 0) show_table(ndf, objtype=False, start_pos=start_pos) objs.sampled = ob print('Sample created.') return def parse_search_related(search_related): """ parse the capitalised tokens in 'search corpus FOR GOVERNOR-LEMMA MATCHING XYZ AND LEMMA MATCHING .* showing ...' """ search = {} exclude = {} searchmode = 'all' cqlmode = False if search_related[0] != 'for': search_related.insert(0, 'for') for i, token in enumerate(search_related): if token in ['for', 'and', 'not', 'or']: if token == 'or': searchmode = 'any' if search_related[i+1] == 'not': continue if search_related[i+1] == 'features': search = 'features' continue if search_related[i+1] == 'postags': search = 'postags' continue if search_related[i+1] == 'wordclasses': search = 'wordclasses' continue k = search_related[i+1] if k == 'cql': cqlmode = True aquery = next((i for i in search_related[i+2:] \ if i not in ['matching']), False) if aquery: search = aquery break k = process_long_key(k) v = search_related[i+3].strip("'") v = parse_pattern(v) if token == 'not': exclude[k] = v else: search[k] = v return search, exclude, searchmode, cqlmode def process_long_key(srch): """ turn governor-lemma into 'gl', etc. """ from corpkit.constants import transshow, transobjs transobjs = {v.lower(): k.replace(' ', '-') for k, v in transobjs.items()} transshow = {v.lower(): k.replace(' ', '-') for k, v in transshow.items()} showplurals = {k + 's': v for k, v in transshow.items()} objsplurals = {k + 's': v for k, v in transobjs.items()} transshow['distance'] = 'r' transshow['ngram'] = 'n' transshow['distances'] = 'r' transshow['ngrams'] = 'n' transshow['wordclass'] = 'x' transshow['wordclasses'] = 'x' transshow['count'] = 'c' transshow.update(showplurals) transobjs.update(objsplurals) ngram = srch.startswith('n') colls = srch.startswith('b') if ngram or colls: newsrch = srch.split('-', 1)[-1] if newsrch == srch: srch = 'nw' if ngram else 'bw' else: srch = newsrch srch = srch.lower() if '-' not in srch: if srch in transobjs: string = transobjs.get(srch) + 'w' elif srch in transshow or srch.startswith('t'): if not srch.startswith('t'): string = 'm' + transshow.get(srch) else: string = transshow.get(srch, 't') else: string = srch else: obj, show = srch.split('-', 1) string = '%s%s' % (transobjs.get(obj, obj), transshow.get(show, show)) if ngram: return 'n' + string elif colls: return 'b' + string else: return string def parse_pattern(val): """ Parse the token after 'matching'---that is, the search criteria """ trans = {'true': True, 'false': False, 'on': True, 'off': False, 'none': None} # this means that if the query is a variable, the variable is returned # maybe this is not ideal behaviour. if val in objs.named.keys(): return objs.named[val] if any(val.startswith(x) for x in ['role', 'process', 'wordlist']) \ and any(x in [':', '.'] for x in val): lis, attrib = val.split('.', 1) if '.' in val else val.split(':', 1) customs = [] from corpkit.dictionaries import roles, processes, wordlists mapped = {'roles': roles, 'processes': processes} if lis.startswith('wordlist'): lst = objs.wordlists.get(attrib) else: lst = getattr(mapped.get(lis), attrib) if lst: return lst else: print('Wordlist "%s" unrecognised.' % attrib) if val.isdigit(): return int(val) elif val.startswith('[') and val.endswith(']'): val = val.lstrip('[').rstrip(']') if ', ' in val: return val.strip('"').strip("'").split(', ') elif ',' in val: return val.strip('"').strip("'").split(',') elif ' ' in val: return val.strip('"').strip("'").split() elif val.lower() in trans.keys(): return trans.get(val.lower()) # interpret columns elif all(i in ['i', 'c', 'f', 's', 'l', 'm', 'r'] for i in val.lower()) and len(val) <= 6: return [i for i in val.lower()] else: if val in dir(__builtins__) + ['any', 'all']: return val try: return eval(val) except (SyntaxError, NameError): return val def search_helper(text='search'): """ Interactive mode for search, exclude or show """ if text in ['search', 'exclude']: search_or_show = {} else: search_or_show = [] while True: out = INPUTFUNC('\n %s (words, lemma, pos, function ... ) > ' % text) out = out.lower() if not out: break if out.startswith('done'): break if out == 'cql': cql = INPUTFUNC('\n CQL query > ') return cql.strip() if text == 'show': out = out.replace(', ', ' ').replace(',', ' ').replace('/', ' ') return out.split(' ') #search_or_show.append(out) #continue val = INPUTFUNC('\n value (regex, wordlist) > ') if not val: continue if val.startswith('done'): break out = process_long_key(out) search_or_show[out] = parse_pattern(val) return search_or_show def process_kwargs(tokens, fixjust=False): """ Turn the last part of a command into a dict of kwargs """ if 'with' in tokens: start = tokens.index('with') with_related = tokens[start+1:] else: with_related = [] withs = {} skips = [] for i, token in enumerate(with_related): if i in skips or token == 'and': continue # this is used when making corpora with filters if fixjust: if token == 'skip': pat = parse_pattern(with_related[i+3]) withs['skip'] = {with_related[i+1]: pat} elif token == 'just': pat = parse_pattern(with_related[i+3]) withs['just'] = {with_related[i+1]: pat} skips.append(i+1) skips.append(i+2) skips.append(i+3) if token in ['skip', 'just']: continue if token == 'not': withs[with_related[i+1].lower()] = False skips.append(i+1) elif '=' not in token: if len(with_related) >= i+2 and with_related[i+1] == 'as': val = with_related[i+2] val = parse_pattern(val) withs[token.lower()] = val skips.append(i+1) skips.append(i+2) else: withs[token.lower()] = True elif '=' in token: k, v = token.lower().split('=', 1) v = parse_pattern(v) withs[k] = v return withs def parse_search_args(tokens): """ Put all search arguments together---search, exclude, show, and kwargs """ tokens = tokens[1:] # interactive mode if not tokens: search = search_helper(text='search') exclude = search_helper(text='exclude') show = search_helper(text='show') show = [process_long_key(i) for i in show] kwargs = {'search': search, 'show': show, 'exclude': exclude, 'cql': isinstance(search, str), 'conc': objs._do_conc} return kwargs search_related = [] for token in tokens: search_related.append(token) if token in [',', 'showing', 'with', 'excluding']: break if 'excluding' in tokens: start = tokens.index('excluding') ex_related = tokens[start+1:] end = ex_related.index('showing') if 'showing' in ex_related else False if end is False: end = ex_related.index('with') if 'with' in ex_related else False if end: ex_related = ex_related[:end] else: ex_related = [] if 'showing' in tokens: start = tokens.index('showing') show_related = tokens[start+1:] end = show_related.index('with') if 'with' in show_related else False if end: show_related = show_related[:end] else: show_related = [] if 'with' in tokens: start = tokens.index('with') with_related = tokens[start+1:] else: with_related = [] search, exclude, searchmode, cqlmode = parse_search_related(search_related) if not exclude and ex_related: exclude, _, _, _, _ = parse_search_related(ex_related) show = [] if show_related: for token in show_related: token = token.rstrip(',') if token == 'and': continue token = process_long_key(token) show.append(token) else: show = ['w'] withs = process_kwargs(tokens) kwargs = {'search': search, 'exclude': exclude, 'show': show, 'cql': cqlmode, 'conc': objs._do_conc, 'searchmode': searchmode} kwargs.update(withs) return kwargs def search_corpus(tokens): """ Search a corpus for lexicogrammatical features. You are limited only by your imagination. :Syntax: search corpus for [object matching pattern]* showing [things to show]* with [extra options]* The asterisk marked parts of the query can be recursive and negated :Examples: > search corpus for cql matching '[word="test"]' showing word and lemma > search corpus for governor-function matching roles:process with coref > search corpus for trees matching "/NN.?/ >># NP" > search corpus for words matching "^[abcde]" with preserve_case and case_sensitive """ corpp = objs._get(tokens[0])[1] if not corpp: print('Corpus not set. use "set ".') return kwargs = parse_search_args(tokens) kwargs['quiet'] = quiet if 'just_metadata' not in kwargs: kwargs['just_metadata'] = objs.just if objs.just else False if 'skip_metadata' not in kwargs: kwargs['skip_metadata'] = objs.skip if objs.skip else False if 'subcorpora' not in kwargs: kwargs['subcorpora'] = objs.symbolic if objs.symbolic else False if debug: print(kwargs) kwargs['show_conc_metadata'] = True if corpp.level == 's' and not kwargs.get('subcorpora', False) \ and not corpp.symbolic: kwargs['files_as_subcorpora'] = True #objs.corpus.just = objs.just #objs.corpus.skip = objs.skip #objs.corpus.symbolic = objs.symbolic sch = kwargs.get('search', False) if sch in ['features', 'postags', 'wordclasses']: objs.result = getattr(corpp, sch) try: objs.totals = getattr(corpp, sch).sum(axis=1) except: objs.totals = None #if objs._interactive: # show_this([sch]) else: objs.result = corpp.interrogate(**kwargs) objs.totals = objs.result.totals # this should be done for pos and wordclasses too print('') return objs.result def show_this(tokens): """ Show any object in a human-readable form """ if tokens[0].startswith('file'): get_something[tokens] return if tokens[0] == 'corpora': dirs = [x for x in os.listdir('data') if \ os.path.isdir(os.path.join('data', x))] dirs = ['\t%d: %s' % (i, x) for i, x in enumerate(dirs, start=1)] print ('\n'.join(dirs)) elif tokens[0].startswith('store'): for k, v in objs.stored.items(): print(k, v) elif tokens[0].startswith('filter'): print('Skip:', getattr(objs, 'skip', 'none')) print('Just:', getattr(objs, 'just', 'none')) elif tokens[0].startswith('subcorp'): print('Symbolic structure:', getattr(objs, 'symbolic', 'none')) elif tokens[0].startswith('wordlists'): if '.' in tokens[0] or ':' in tokens[0]: if ':' in tokens[0]: _, attr = tokens[0].split(':') else: _, attr = tokens[0].split('.') print(objs.wordlists.get(attr)) else: for k, v in sorted(objs.wordlists.items()): showv = str(v[:5]) if len(v) > 5: showv = showv.rstrip('] ') + ' ... ]' print('"%s": %s' % (k, showv)) elif tokens[0] == 'saved': ss = [i for i in os.listdir('saved_interrogations') \ if not i.startswith('.')] print ('\t' + '\n\t'.join(ss)) elif tokens[0] == 'query': for k, v in sorted(objs.query.items()): print('%s: %s' % (str(k), str(v))) elif tokens[0] == 'figure': if hasattr(objs, 'figure') and objs.figure: objs.figure.show() else: print('Nothing here yet.') elif tokens[0] in ['features', 'wordclasses', 'postags']: show_table(getattr(objs.corpus, tokens[0])) elif objs._get(tokens[0]): single_command_print(tokens) else: print("No information about: %s" % tokens[0]) def get_info(tokens): pass def edit_conc(conc, kwargs, varname=False): from corpkit.interrogation import Concordance for k, v in kwargs.items(): if k == 'just_subcorpora': objs.concordance = conc[conc['c'].str.contains(v)] elif k == 'skip_subcorpora': objs.concordance = conc[~conc['c'].str.contains(v)] elif k == 'just_entries': objs.concordance = conc[conc['m'].str.contains(v)] elif k == 'skip_entries': objs.concordance = conc[~conc['m'].str.contains(v)] objs.concordance = Concordance(objs.concordance) # should this really happen? if varname and varname in objs._protected.keys(): objs.named[varname] = objs.concordance return objs.concordance #if objs._interactive: # show_this(['concordance']) def edit_something(tokens): """ Edit an interrogation or concordance :Example: `edit result by skippings subcorpora matching [1,2,3] with keep_top as 5` """ thing_to_edit = get_thing_to_edit(tokens[0]) trans = {'skipping': 'skip', 'keeping': 'just', 'merging': 'merge', 'spanning': 'span'} recog = ['not', 'matching', 'result', 'entry', 'entries', 'results', 'subcorpus', 'subcorpora', 'edited'] # skip, keep, merge by_related = [] if 'by' in tokens: start = tokens.index('by') by_related = tokens[start+1:] if not by_related: inter = interactive_edit(tokens) kwargs = {} skips = [] for i, token in enumerate(by_related): if i in skips: continue if token in trans.keys(): k = trans.get(token) + '_' + by_related[i+1] v = next((x for x in by_related[i+1:] if x not in recog), False) if not v: print('v not found') return v = parse_pattern(v) if token == 'merging': newname = next(tokens[i+1] for i, t in enumerate(tokens) if t == 'as') v = {newname: v} kwargs[k] = v #for x in range(i, ind+1): # skips.append(x) # add bools etc morekwargs = process_kwargs(tokens) for k, v in morekwargs.items(): if k not in kwargs.keys(): kwargs[k] = v if debug: print(kwargs) from corpkit.interrogation import Concordance if isinstance(thing_to_edit, Concordance): edt = edit_conc(thing_to_edit, kwargs, varnam=tokens[0]) else: edt = thing_to_edit.edit(**kwargs) if isinstance(edt, Concordance): objs.concordance = edt else: objs.edited = edt if hasattr(objs.edited, 'totals'): objs.totals = objs.edited.totals return edt def run_command(tokens): """ Run command and send output to objs class """ command = get_command.get(tokens[0], unrecognised) out = command(tokens[1:]) import pydoc import tabview # store the previous thing as previous attr = objmap.get(command, False) if attr: objs.previous = getattr(objs, attr) objs._previous_type = attr if command == search_corpus: # can be dataframe in the case of features import pandas as pd from corpkit.interrogation import Interrogation, Concordance if not isinstance(objs.result, (Interrogation, Concordance, pd.DataFrame, pd.Series)): return objs.result = out objs.previous = out show_this(['result']) objs.query = getattr(out, 'query', None) if objs._do_conc and (hasattr(out, 'concordance') and out.concordance is not None): objs.concordance = out.concordance objs._old_concs.append(objs.concordance) else: objs.concordance = None # find out what is going on here objs.edited = False # either all or no showing should be done here elif command in [edit_something, sort_something, calculate_result, keep_conc, del_conc]: from corpkit.interrogation import Concordance if isinstance(out, Concordance): objs._old_concs[-1] = objs.concordance if objs._interactive: show_this(['concordance'] + tokens[1:]) else: if objs._interactive: show_this(['edited']) else: if debug: print('Done:', repr(out)) return out def add_colour_to_conc_df(conc): """ Exporting conc lines needs to preserve colouring """ colourdict = objs._conc_colours[len(objs._old_concs)-1] fores = [] backs = [] stys = [] for index in list(conc.index): line = colourdict.get(str(index)) if not line: fores.append('') backs.append('') stys.append('') else: fores.append(line.get('Fore', '')) backs.append(line.get('Back', '')) stys.append(line.get('Style', '')) if any(i != '' for i in fores): conc['Foreground'] = fores if any(i != '' for i in backs): conc['Background'] = backs if any(i != '' for i in stys): conc['Style'] = stys return conc def export_result(tokens): """ Send a result, edited result or concordance to file :Example: `export result as csv to out.csv` `export concordance as latex to concs.tex` """ import os obj = objs._get(tokens[0])[1] if tokens[0].startswith('conc'): obj = add_colour_to_conc_df(obj.copy()) if tokens[0] in ['result', 'edited']: obj = getattr(obj, 'results', obj) if len(tokens) == 1: print(obj.to_string()) return tokens = tokens[1:] if 'as' in tokens: formt = tokens[tokens.index('as') + 1][0] tokens = tokens[tokens.index('as') + 2:] else: formt = 'c' if tokens: buf = tokens[-1] else: buf = None if buf == formt: buf = None if os.pathsep not in buf: buf = os.path.join('exported', buf) if formt == 'c': obj.to_csv(buf, sep='\t') elif formt == 's': obj.to_string(buf) elif formt == 'l': obj.to_latex(buf) if buf: if os.path.isfile(buf): print('Saved to: %s' % buf) else: print('Problem exporting file.') def interactive_edit(tokens): print('Not done yet') pass def get_thing_to_edit(token): thing = objs._get(token)[1] if thing is None: thing = objs.result return thing def sort_something(tokens): """ Sort a result or concordance line """ thing_to_edit = get_thing_to_edit(tokens[0]) recog = ['by', 'with', 'from'] val = next((x for x in tokens[1:] if x not in recog), 'total') from corpkit.interrogation import Concordance if not isinstance(thing_to_edit, Concordance): sortedd = thing_to_edit.edit(sort_by=val) if sortedd == 'linregress': raise ValueError("scipy needs to be installed for linear regression sorting.") objs.edited = sortedd objs.totals = objs.edited.totals return objs.edited else: if val.startswith('i'): sorted_lines = thing_to_edit.sort_index() else: if val[0] in ['l', 'm', 'r']: l_or_r = thing_to_edit[val[0]] if len(val) == 1: val = val + '1' ind = int(val[1:]) val = val[0] if val == 'l': ind = -ind else: ind = ind - 1 import numpy as np # bad arg parsing here! if 'slashsplit' in tokens: splitter = '/' else: splitter = ' ' to_sort_on = l_or_r.str.split(splitter).tolist() if val == 'l': # todo: this is broken on l2,l3 etc to_sort_on = [i[ind].lower() if i and len(i) >= abs(ind) \ else np.nan for i in to_sort_on] else: to_sort_on = [i[ind].lower() if i and len(i) > abs(ind) \ else np.nan for i in to_sort_on] thing_to_edit['x'] = to_sort_on val = 'x' elif val in ['scheme', 'color', 'colour']: val = 'x' num_col = objs._conc_colours[len(objs._old_concs)-1] series = [] # todo: fix this! for i in range(len(thing_to_edit)): bit = num_col.get(str(i), 'zzzzz') if isinstance(bit, dict): bit = bit.get('Fore', bit.get('Back', 'zzzzz')) series.append(bit) thing_to_edit['x'] = series sorted_lines = thing_to_edit.sort_values(val, axis=0, na_position='last') if val == 'x': sorted_lines = sorted_lines.drop('x', axis=1) objs.concordance = Concordance(sorted_lines) # do not add new entry to old concs for sorting :) objs._old_concs[-1] = objs.concordance if objs._interactive: single_command_print('concordance') def plot_result(tokens): """ Visualise an interrogation using matplotlib """ import matplotlib.pyplot as plt kinds = ['line', 'heatmap', 'bar', 'barh', 'pie', 'area'] kind = next((x for x in tokens if x in kinds), 'line') kwargs = process_kwargs(tokens) kwargs['tex'] = kwargs.get('tex', False) title = kwargs.pop('title', False) objs.figure = objs._get(tokens[0])[1].visualise(title=title, kind=kind, **kwargs) objs.figure.show() return objs.figure def asciiplot_result(tokens): """ Visualise an interrogation with a simple ascii line chart """ obj, attr = tokens[0].split(':', 1) if ':' in tokens[0] else tokens[0].split('.', 1) to_plot = objs._get(obj)[1] # if it said 'asciiplot result.this on axis 1', turn it into # asciiplot result.this with axis as 1 if 'on' in tokens and not 'with' in tokens: tokens[tokens.index('on')] = 'with' if tokens[tokens.index('with')+1] == 'axis': if tokens[tokens.index('with')+2] in [0, 1]: tokens.insert(tokens.index('with')+2, 'as') kwargs = process_kwargs(tokens) to_plot.asciiplot(attr, **kwargs) def calculate_result(tokens): """ Get relative frequencies, combine results, do keywording :Syntax: calculate / as of :Examples: > calculate result as percentage of self > calculate edited as percentage of features.clauses > calculate result as percentage of stored.myname """ # todo: use real syntax for keyness if 'k' in tokens or 'keyness' in tokens: operation = 'k' else: operation = False dd = {'percentage': '%', 'key': 'k', 'keyness': 'k'} calcs = ['k', '%', '+', '/', '-', '*', 'percentage', 'keyness'] operation = next((i for i in tokens if any(i.startswith(x) for x in calcs)), operation) if not operation: if tokens[-1].startswith('conc'): res = objs.concordance.calculate() objs.result = res.results objs.totals = res.totals if objs._interactive: show_this(['result']) return else: print('Bad operation.') return objtype, denominator = objs._get(tokens[-1]) if tokens[-1] == 'self': denominator = 'self' operation = dd.get(operation, operation) the_obj = objs._get(tokens[0])[1] if not the_obj: the_obj = objs._get(tokens[-1])[1] objs.edited = the_obj.edit(operation, denominator) if hasattr(objs.edited, 'totals'): objs.totals = objs.edited.totals #print('\nedited:\n\n', objs.edited.results, '\n') return objs.edited def tokenise_corpus(tokens): """ Tokenise an unparsed corpus :Example: `parse corpus with speaker_segmentation and metadata and multiprocess as 2` """ typ, to_parse = objs._get(tokens[0]) if typ != 'corpus': print('Command not understood. Use "set " and "parse corpus"') if not to_parse: print('Corpus not set. use "set " on an unparsed corpus.') return if to_parse.datatype != 'plaintext': print('Corpus is not plain text.') return kwargs = process_kwargs(tokens) parsed = to_parse.tokenise(**kwargs) if parsed: setattr(objs, 'corpus', parsed) return def parse_corpus(tokens): """ Parse an unparsed corpus :Example: `parse corpus with speaker_segmentation and metadata and multiprocess as 2` """ typ, to_parse = objs._get(tokens[0]) if typ != 'corpus': print('Command not understood. Use "set " and "parse corpus"') if not to_parse: print('Corpus not set. use "set " on an unparsed corpus.') return if to_parse.datatype != 'plaintext': print('Corpus is not plain text.') return kwargs = process_kwargs(tokens) parsed = to_parse.parse(**kwargs) if parsed: setattr(objs, 'corpus', parsed) return def fetch_this(tokens, unbound=False): """ Get something from storage :Example: `fetch my_result as result` """ from corpkit.corpus import Corpus from corpkit.interrogation import Interrogation, Concordance from_wl = False to_fetch = objs.stored.get(tokens[0], False) if to_fetch is False: to_fetch = objs.wordlists.get(tokens[0], False) from_wl = True if to_fetch is False: print('Not in store or wordlists: %s' % tokens[0]) return if unbound: return to_fetch if from_wl: objs.wordlist = to_fetch showv = to_fetch[:5] if len(to_fetch) > 5: showv = str(showv).rstrip('] ') + ' ... ]' print('%s (%s) fetched as wordlist.' % (repr(tokens[0]), showv)) return if len(tokens) < 3: if isinstance(to_fetch, Corpus): weneed = 'corpus' elif isinstance(to_fetch, Interrogation): if hasattr(to_fetch, 'denominator'): weneed = 'edited' else: weneed = 'result' elif isinstance(to_fetch, Concordance): weneed = 'concordance' else: weneed = tokens[2] if weneed == 'corpus': objs.corpus = to_fetch elif weneed.startswith('conc'): objs.concordance = to_fetch elif weneed == 'result': objs.result = to_fetch elif weneed == 'edited': objs.edited = to_fetch print('%s fetched as %s.' % (repr(to_fetch), weneed)) def save_this(tokens, passedin=False): """ Save a result or concordance :Example: `save result as 'non_pronoun_actors'` """ if passedin: to_save = passedin else: to_save = objs._get(tokens[0])[1] if to_save == 'store' and not passedin: for k, v in objs.stored.items(): save_this(['as', k], passedin=v) if tokens[0] == 'figure' or hasattr(to_save, 'savefig'): tokens[-1] = os.path.join('images', tokens[-1]) to_save.savefig(tokens[-1]) else: to_save.save(tokens[-1]) def load_this(tokens): """ Load data from file """ from corpkit.other import load if tokens[-1] == 'result': objs.result = load(tokens[0]) if tokens[-1] == 'concordance': objs.concordance = load(tokens[0]) if tokens[-1] == 'edited': objs.edited = load(tokens[0]) if 'all' in tokens: from corpkit.other import load_all_results loaded = load_all_results() for k, v in loaded.items(): objs.stored[k] = v def interactive_listmaker(): done_words = [] text = 'Enter words separated by spaces, or one per line. (Leave the line blank to end)\n\n\t> ' while True: res = INPUTFUNC(text) text = '\t> ' if res: if ',' in res: words = [i.strip(', ') for i in res.split()] for w in words: done_words.append(w) elif ' ' in res.strip(): words = res.split() for w in words: done_words.append(w) else: done_words.append(res.strip()) else: return done_words def new_thing(tokens): """ Start a new project with a name of your choice, then move into it """ if tokens[0] == 'project': from corpkit.other import new_project new_project(tokens[-1]) os.chdir(tokens[-1]) if tokens[0] == 'wordlist': the_name = next((tokens[i+1] for i, t in enumerate(tokens) if t in ['called', 'named']), None) if not the_name: print('Syntax: new wordlist named .') return if objs.wordlists.get(the_name): print('"%s" already exists in wordlists.' % the_name) return filename = next((tokens[i+1] for i, t in enumerate(tokens) if t in ['from']), None) if filename: with open(filename, 'r') as fo: words = [i.strip() for i in fo.read().splitlines() if i] else: words = interactive_listmaker() if words: objs.wordlists[the_name] = words objs.wordlist = words print('Wordlist "%s" stored.' % the_name) def get_matching_indices(tokens): """ Find concordance indices matching some criteria in tokens This can be: - an int as index: "20" - a pseudo index: "5-10" - a column and regex: "l matching 'regex'" - a colour name - 'all' :returns: a `set` of matching indices """ # what's missing from this list? # hard coding in case user doesn't have colorama colours = ['red', 'yellow', 'magenta', 'lightmagenta_ex', 'black', 'white', 'lightcyan_ex', 'reset', 'green', 'lightyellow_ex', 'lightblack_ex', 'lightwhite_ex', 'blue', 'lightblue_ex', 'lightgreen_ex', 'cyan', 'lightred_ex'] cols = [] token = tokens[0] # for something like del red if token in colours: if tokens[-1].lower() == 'back': sty = 'Back' elif tokens[-1].lower() in ['dim', 'bright', 'normal', 'reset']: sty = 'Style' else: sty = 'Fore' colourdict = objs._conc_colours[len(objs._old_concs)-1] return set([k for k, v in colourdict.items() if v.get(sty) == token]) # annotate range of tokens if token == 'all': return [str(i) for i in list(objs.concordance.index)] elif '-' in token: first, last = token.split('-', 1) if not first: first = 0 if not last: last = len(objs.concordance.index) for n in range(int(first), int(last)+1): cols.append(str(n)) # get by index/indices elif token.isdigit(): cols = [i for i in tokens if i.isdigit()] else: # regex match only what's shown in the window window = objs._conc_kwargs.get('window', 35) if token in list(objs.concordance.columns) \ and token not in ['l', 'm', 'r']: token_bits = [token] else: token_bits = list(token) slic = slice(None, None) for bit in token_bits: if bit.lower() == 'm': slic = slice(None, None) elif bit.lower() == 'l': slic = slice(-window, None) elif bit.lower() == 'r': slic = slice(None, window) # get slice for left window mx = max(objs.concordance[bit.lower()].str.len()) \ if bit.lower() == 'l' else 0 # get the regex criteria if 'matching' in tokens: rgx = tokens[tokens.index('matching') + 1] else: rgx = tokens[1] rgx = parse_pattern(rgx) pol = not 'not' in tokens # get the window size of context, and reduce to just windows if isinstance(rgx, list): trues = objs.concordance[bit].str.rjust(mx).str[slic].isin(rgx) else: trues = objs.concordance[bit].str.rjust(mx).str[slic].str.contains(rgx) if pol: mtch = objs.concordance[trues] else: mtch = objs.concordance[~trues] matches = list(mtch.index) for ind in matches: cols.append(str(ind)) return set(cols) def parse_anno_with(tokens): """ Decide what the text is for an annotation """ if tokens[0] == 'tag': return tokens[-1] elif tokens[0] == 'field': tokens = tokens[1:] nx = next((i for i, w in enumerate(tokens) if w != 'as'), 0) return {tokens[nx]: tokens[-1]} def unannotate_corpus(tokens): """ Remove annotations from a corpus :Example: `unannotate character field` `unannotate friend tag` """ to_remove = tokens[0] from corpkit.annotate import annotator # right now, you can't delete just a value... if tokens[-1] == 'field': to_remove = {to_remove: r'.*'} if to_remove == 'all' and tokens[-1].startswith('tag'): to_remove = {'tags': r'.*'} #elif tokens[-1] == 'tag': annotator(df_or_corpus=objs.corpus, annotation=to_remove, dry_run=not objs._annotation_unlocked, deletemode=True) if not objs._annotation_unlocked: print("\nIf you really want to delete these annotations from the corpus, " \ "do `toggle annotation` and run the previous command again.\n") else: print('Deleted %s annotations.' % tokens[0]) def annotate_corpus(tokens): """ Add annotations to the corpus :Example: `annotate m matching 'ing$' with tag as 'mytag'` `annotate m matching 'ing$' with field as 'person' and value as 'daisy'` """ cols = get_matching_indices(tokens) from corpkit.interrogation import Concordance from corpkit.annotate import annotator df = objs.concordance.ix[[int(i) for i in list(cols)]] if 'with' in tokens: start = tokens.index('with') with_related = tokens[start+1:] else: with_related = [] annotation = parse_anno_with(with_related) annotator(df, annotation, dry_run=not objs._annotation_unlocked) if not objs._annotation_unlocked: print("\nWhen you're ready to actually add annotations to the files, " \ "do `toggle annotation` and run the previous command again.\n") else: print('Corpus annotated (%d additions).' % len(df.index)) def annotate_conc(tokens): """ Annotate concordance lines matching criteria with a colour or style :Example: `mark m matching 'ing$' red` """ from colorama import Fore, Back, Style, init init(autoreset=True) cols = get_matching_indices(tokens) color = tokens[-1] if color in ['dim', 'normal', 'bright']: sty = 'Style' elif 'back' in tokens or 'background' in tokens: sty = 'Back' else: sty = 'Fore' #if tokens[-2].lower() in ['back', 'dim', 'fore', 'normal', 'bright', 'background', 'foreground']: # sty = tokens[-2].title().replace('ground', '') for line in cols: if not int(line) in list(objs.concordance.index): continue # if there is already info for this line number, add present info if objs._conc_colours[len(objs._old_concs)-1].get(line): objs._conc_colours[len(objs._old_concs)-1][line][sty] = color else: objs._conc_colours[len(objs._old_concs)-1][line] = {} objs._conc_colours[len(objs._old_concs)-1][line][sty] = color single_command_print(['concordance'] + tokens) def add_corpus(tokens): """ Copy a folder to the ./data directory of a project :Example: `add '../../data'` """ import shutil import os the_path = os.path.expanduser(tokens[-1]) outf = os.path.join(os.getcwd(), 'data', os.path.basename(the_path)) # if we're using docker things get tricky if objs._docker: # not working yet import subprocess from docker import Client cli = Client() idx = str(subprocess.check_output(["cat", "/etc/hostname"])).strip('\n').strip() outf = ':'.join([idx, outf]) os.makedirs(outf) os.system("docker cp %s/ %s" % (the_path, outf)) #cli.copy(the_path, outf) print('%s added to %s.' % (tokens[-1], outf)) return shutil.copytree(the_path, outf) print('%s added to %s.' % (tokens[-1], outf)) def del_conc(tokens): """ Delete concordance lines matching criteria :Example: `del m matching 'ing$'` """ from corpkit.interrogation import Concordance cols = get_matching_indices(tokens) cols = [int(i) for i in cols] objs.concordance = Concordance(objs.concordance.drop(cols, axis=0)) return objs.concordance def keep_conc(tokens): """ Keep concordance lines matching criteria :Example: `keep m matching 'ing$'` """ from corpkit.interrogation import Concordance cols = get_matching_indices(tokens) cols = [int(i) for i in cols] objs.concordance = Concordance(objs.concordance.loc[cols]) return objs.concordance def store_this(tokens): """ Send a result into storage :Example: `store result as 'processes'` To view the contents of the store, do `show store`. """ to_store = objs._get(tokens[0])[1] #if not to_store: # print('Not storable:' % tokens[0]) # return if tokens[1] == 'as': name = tokens[2] else: count = 0 while str(count) in objs.stored.keys(): count += 1 name = str(count) if name in objs.stored.keys(): cont = INPUTFUNC('%s already in store. Replace it? (y/n) ') if cont.lower().startswith('n'): return objs.stored[name] = to_store print('Stored: %s' % name) def toggle_this(tokens): """ Toggle a specified option Currently available: - toggle conc (does concordancing when searching) - toggle interactive (shows results and concordances after running) - toggle annotation (allows the user to annotate the real corpus) - toggle comma (shows thousands comma in results) """ if tokens[0].startswith('conc'): objs._do_conc = not objs._do_conc s = 'on' if objs._do_conc else 'off' print('Concordancing turned %s.' % s) if tokens[0].startswith('interactive'): objs._interactive = not objs._interactive s = 'on' if objs._interactive else 'off' print('Auto showing of results and concordances turned %s.' % s) if tokens[0].startswith('anno'): objs._annotation_unlocked = not objs._annotation_unlocked s = 'on' if objs._annotation_unlocked else 'off' print('Annotation mode %s.' % s) if tokens[0].startswith('comma'): objs._comma = not objs._comma s = 'on' if objs._comma else 'off' print('Thousand separator in results turned %s.' % s) def remove_something(tokens): if len(tokens) == 1: objs.named.pop(tokens[0]) else: frm = getattr(objs, tokens[-1]) frm.pop(tokens[0]) print('Forgot %s.' % tokens[0]) def name_something(tokens): """ Basically, make a variable. In reality, it is a key-value pair in objs.named """ # get the object if it exists somewhere originally_was, thing = objs._get(tokens[0]) if thing is None or thing is False: thing = tokens[0] if thing == 'py': thing = eval(tokens[1]) originally_was = 'eval' tokens = tokens[1:] else: originally_was = 'string' #print('Nothing stored in %s to name.' % tokens[0]) #return # this should just be objects! if tokens[0] in objs._protected: originally_was = tokens[0] #elif tokens[0] in objs.named.keys(): # pass from corpkit.process import makesafe name = makesafe(tokens[-1]) if name in objs._protected + list(get_command.keys()): print('The name "%s" is protected, sorry.' % name) else: objs.named[name] = (originally_was, thing) print('%s named "%s".' % (tokens[0], name)) def sample_something(tokens): """ Make a sample from a corpus :Example: sample 2 subcorpora of corpus """ trans = {'s': 'subcorpora', 'f': 'files'} originally_was, thing = objs._get(tokens[-1]) if '.' in tokens[0]: n = float(tokens[0]) else: n = int(tokens[0]) level = tokens[1].lower()[0] samp = thing.sample(n, level) objs.sampled = samp #todo: proper printing names = [i.name for i in getattr(objs.sampled, trans[level])] form = ', '.join(names[:3]) if len(names) > 3: form += ' ...' print('Sample created: %d %s from %s --- %s' % (n, trans[level], thing.name, form)) #single_command_print('sample') def run_previous(tokens): import shlex output = list(reversed(objs.previous))[int(tokens[0]) - 1][0] tokens = [i.rstrip(',') for i in shlex.split(output)] return run_command(tokens) def ch_dir(tokens): """ Change directory :Example: `cd essays` """ import os os.chdir(tokens[0]) print(os.getcwd()) get_prompt() def ls_dir(tokens): """ List directory contents :Example: `ls data` """ import os nonhidden = [i for i in os.listdir(tokens[0]) if not i.startswith('.')] print('\n'.join(nonhidden)) get_command = {'set': set_something, 'get': get_something, 'show': show_this, 'search': search_corpus, 'info': get_info, 'parse': parse_corpus, 'export': export_result, 'redo': run_previous, 'mark': annotate_conc, 'annotate': annotate_corpus, 'unannotate': unannotate_corpus, 'del': del_conc, 'just': keep_conc, 'sort': sort_something, 'sample': sample_something, 'toggle': toggle_this, 'edit': edit_something, 'tokenise': tokenise_corpus, 'tokenize': tokenise_corpus, 'ls': ls_dir, 'cd': ch_dir, 'plot': plot_result, 'asciiplot': asciiplot_result, 'help': helper, 'store': store_this, 'new': new_thing, 'fetch': fetch_this, 'call': name_something, 'remove': remove_something, 'save': save_this, 'load': load_this, 'calculate': calculate_result, 'add': add_corpus} objmap = {search_corpus: 'result', edit_something: 'edited', calculate_result: 'edited', sort_something: 'edited', plot_result: 'figure', set_something: 'corpus', load_this: 'result'} def unrecognised(*args, **kwargs): print('unrecognised!') import shlex if debug: try: objs.corpus = Corpus('jb-parsed') except: pass def get_prompt(backslashed=False): """ Create the prompt, based on being in project etc. :param backslashed: is when there is a line continuation """ folder = os.path.basename(os.getcwd()) proj_dirs = ['data', 'saved_interrogations', 'exported'] objs._in_a_project = check_in_project() end = '*' if not objs._in_a_project else '' name = getattr(objs.corpus, 'name', 'no-corpus') txt = 'corpkit@%s%s:%s> ' % (folder, end, name) if not backslashed: return txt else: return '... '.rjust(len(txt)) def nest_on_semicolon(tokens): """ Take a tokenised command and make a nested list, which accounts for ';' breaks """ if ';' not in tokens: return [tokens] nested = [] while tokens: s_ix = next((i for i, x in enumerate(tokens) if x == ';'), len(tokens)) nested.append(tokens[:s_ix]) tokens = tokens[s_ix+1:] return nested if not fromscript and not python_c_mode: print(allig) if not check_in_project(): print("\nWARNING: You aren't in a project yet. "\ "Use 'new project named ' to make one and enter it.\n"\ "Alternatively, you can `cd` into an existing project now.\n") def do_bash(output): """ Run text as shell command """ import os os.system(output.lstrip('! ')) # backslashed allows line breaks with backslashes ala python. # it's a bit of a hack, but seems to work pretty well backslashed = '' if fromscript: commands = read_script(fromscript) objs._interactive = False if python_c_mode: objs._interactive = False if loadcurrent: load_this(['all']) # the main loop, with exception handling while True: try: if not fromscript and not python_c_mode and not profile: output = INPUTFUNC(get_prompt(backslashed)) elif fromscript: if not commands: break output = commands.pop() elif python_c_mode: if 'concordance' not in python_c_mode: objs._do_conc = False output = python_c_mode elif profile: output = 'quit' # terminate if output.lower() in ['exit', 'quit', 'exit()', 'quit()']: break # do nothing if not output: output = True continue # append line to previous backslashed line if backslashed: output = backslashed + output backslashed = '' # add to stack if backslashed or delete stack otherwise if output.strip().endswith("\\"): backslashed += output.rstrip('\\') continue else: backslashed = '' if output.startswith('!'): do_bash(output) continue # is this just a terrible idea? if output.startswith('py '): output = output[3:].strip().strip("'").strip('"') for k, v in objs.__dict__.items(): locals()[k] = v exec(output, globals(), locals()) for k, v in locals().items(): if hasattr(objs, k): setattr(objs, k, v) continue # tokenise command with quotations preserved tokens = shlex.split(output, comments=True) nested_tokens = nest_on_semicolon(tokens) for tokens in nested_tokens: if debug: print('command', tokens) # give info if it is an info command if len(tokens) == 1 or tokens[0] == 'jupyter': if tokens[0] == 'set': set_something([]) else: single_command_print(tokens) continue # otherwise, run the command and reset the stack out = run_command(tokens) backslashed = '' # terminate if c mode if python_c_mode: break # exception handling: interrupt, exit or raise error... except KeyboardInterrupt: print('\nEnter ctrl+d, "exit" or "quit" to quit\n') backslashed = '' if python_c_mode: import sys sys.exit(0) except EOFError: import sys #print('\n\nBye!\n') sys.exit(0) except SystemExit: raise except Exception: if python_c_mode: import sys print('Error in "%s":\n' % ' '.join(tokens), file=sys.stderr) raise traceback.print_exc() if __name__ == '__main__': import sys import pip import importlib import traceback import os def install(name, loc): """ If we don't have a module, download it """ try: importlib.import_module(name) except ImportError: pip.main(['install', loc]) tabview = ('tabview', 'git+https://github.com/interrogator/tabview@93644dd1f410de4e47466ea8083bb628b9ccc471#egg=tabview') colorama = ('colorama', 'colorama') if not any(arg.lower() == 'noinstall' for arg in sys.argv): install(*tabview) install(*colorama) if len(sys.argv) > 1 and os.path.isfile(sys.argv[-1]): fromscript = sys.argv[-1] else: fromscript = False docker = next((i for i in sys.argv if i.startswith('docker=')), False) if docker: docker = docker.split('=', 1)[-1] print(sys.argv) debug = sys.argv[-1] == 'debug' interpreter(debug=debug, fromscript=fromscript, docker=docker) ================================================ FILE: corpkit/gui.py ================================================ #!/usr/bin/env python """ # corpkit GUI # Daniel McDonald # This file conains the frontend side of the corpkit gui. # You can use py2app or pyinstaller on it to make a .app, # or just run it as a script. # Below is a string that is used to determine when minor # updates are available on github for automatic download: # DATE-REPLACE # Tabbed notebook template created by: # Patrick T. Cossette """ from __future__ import print_function import sys # is string used? import string import time import os # is threading used? import threading try: import tkMessageBox as messagebox import tkSimpleDialog as simpledialog import tkFileDialog as filedialog except ImportError: import tkinter.messagebox import tkinter.filedialog import tkinter.simpledialog try: import Tkinter as tkinter from Tkinter import * from ttk import Progressbar, Style from Tkinter import _setit except ImportError: import tkinter from tkinter import * from tkinter.ttk import Progressbar, Style from tkinter import _setit # todo: delete from the rest of code from corpkit.corpus import Corpus # determine path to gui resources: py_script = False from_py = False rd = sys.argv[0] if sys.platform == 'darwin': key = 'Mod1' fext = 'app' if '.app' in rd: rd = os.path.join(rd.split('.app', 1)[0] + '.app', 'Contents', 'MacOS') else: import corpkit rd = os.path.dirname(corpkit.__file__) from_py = True else: key = 'Control' fext = 'exe' if '.py' in rd: py_script = True rd = os.path.dirname(os.path.join(rd.split('.py', 1)[0])) ######################################################################## class SplashScreen(object): """ A simple splash screen to display before corpkit is loaded. """ def __init__(self, tkRoot, imageFilename, minSplashTime=0): import os # if there is some PIL issue, just don't show GUI # todo: this would also need to disable display of previous figures self._can_operate = True try: from PIL import Image from PIL import ImageTk except ImportError: self._can_operate = False return self._root = tkRoot fname = os.path.join(rd, imageFilename) if os.path.isfile(fname): self._image = ImageTk.PhotoImage(file=fname) self._splash = None self._minSplashTime = time.time() + minSplashTime else: self._image = False def __enter__(self): # Remove the app window from the display #self._root.withdraw( ) if not self._can_operate: return if not self._image: return # Calculate the geometry to center the splash image scrnWt = self._root.winfo_screenwidth() scrnHt = self._root.winfo_screenheight() imgWt = self._image.width() imgHt = self._image.height() imgXPos = (scrnWt / 2) - (imgWt / 2) imgYPos = (scrnHt / 2) - (imgHt / 2) # Create the splash screen self._splash = Toplevel() self._splash.overrideredirect(1) self._splash.geometry('+%d+%d' % (imgXPos, imgYPos)) background_label = Label(self._splash, image=self._image) background_label.grid(row=1, column=1, sticky=W) # this code shows the version number, but it's ugly. #import corpkit #oldstver = str(corpkit.__version__) #txt = 'Loading corpkit v%s ...' % oldstver #cnv = Canvas(self._splash, width=200, height=20) #cnv.create_text((100, 14), text=txt, font=("Helvetica", 14, "bold")) #cnv.grid(row=1, column=1, sticky='SW', padx=20, pady=20) self._splash.lift() self._splash.update( ) def __exit__(self, exc_type, exc_value, traceback ): # Make sure the minimum splash time has elapsed if not self._can_operate: return if not self._image: return timeNow = time.time() if timeNow < self._minSplashTime: time.sleep( self._minSplashTime - timeNow ) # Destroy the splash window self._splash.destroy( ) # Display the application window #self._root.deiconify( ) class RedirectText(object): """Send text to app from stdout, for the log and the status bar""" def __init__(self, text_ctrl, log_text, text_widget): """Constructor""" def dumfun(): """to satisfy ipython, sys, which look for a flush method""" pass self.output = text_ctrl self.log = log_text self.flush = dumfun self.fileno = dumfun self.text_widget = text_widget def write(self, string): """Add stdout and stderr to log and/or to console""" import re # don't show blank lines show_reg = re.compile(r'^\s*$') # delete lobal abs paths from traceback del_reg = re.compile(r'^/*(Users|usr).*/(site-packages|corpkit/corpkit/)') if 'Parsing file' not in string and 'Initialising parser' not in string \ and not 'Interrogating subcorpus' in string: if not re.match(show_reg, string): string = re.sub(del_reg, '', string) self.log.append(string.rstrip('\n')) self.text_widget.config(state='normal') self.text_widget.delete(1.0, 'end') self.text_widget.insert('end', string.rstrip('\n')) self.text_widget.config(state='disabled') if not re.match(show_reg, string): if not string.lstrip().startswith('#') and not string.lstrip().startswith('import'): string = re.sub(del_reg, '', string).rstrip('\n').rstrip() string = string.split('\n')[-1] self.output.set(string.lstrip().rstrip('\n').rstrip()) self.text_widget.config(state='normal') self.text_widget.delete(1.0, 'end') self.text_widget.insert('end', string.lstrip().rstrip('\n').rstrip()) self.text_widget.config(state='disabled') class Label2(Frame): """a label whose size can be specified in pixels""" def __init__(self, master, width=0, height=0, **kwargs): self.width = width self.height = height Frame.__init__(self, master, width=self.width, height=self.height) self.label_widget = Text(self, width=1, **kwargs) self.label_widget.pack(fill='both', expand=True) #self.label_widget.config(state=DISABLED) def pack(self, *args, **kwargs): Frame.pack(self, *args, **kwargs) self.pack_propagate(False) def grid(self, *args, **kwargs): Frame.grid(self, *args, **kwargs) self.grid_propagate(False) class HyperlinkManager: """Hyperlinking for About""" def __init__(self, text): self.text=text self.text.tag_config("hyper", foreground="blue", underline=1) self.text.tag_bind("hyper", "", self._enter) self.text.tag_bind("hyper", "", self._leave) self.text.tag_bind("hyper", "", self._click) self.reset() def reset(self): self.links = {} def add(self, action): # add an action to the manager. returns tags to use in # associated text widget tag = "hyper-%d" % len(self.links) self.links[tag] = action return "hyper", tag def _enter(self, event): self.text.config(cursor="hand2") def _leave(self, event): self.text.config(cursor="") def _click(self, event): for tag in self.text.tag_names(CURRENT): if tag[:6] == "hyper-": self.links[tag]() return class Notebook(Frame): """Notebook Widget""" def __init__(self, parent, activerelief=RAISED, inactiverelief=FLAT, xpad=4, ypad=6, activefg='black', inactivefg='black', debug=False, activefc=("Helvetica", 14, "bold"), inactivefc=("Helvetica", 14), **kw): """Construct a Notebook Widget Notebook(self, parent, activerelief = RAISED, inactiverelief = RIDGE, xpad = 4, ypad = 6, activefg = 'black', inactivefg = 'black', **kw) Valid resource names: background, bd, bg, borderwidth, class, colormap, container, cursor, height, highlightbackground, highlightcolor, highlightthickness, relief, takefocus, visual, width, activerelief, inactiverelief, xpad, ypad. xpad and ypad are values to be used as ipady and ipadx with the Label widgets that make up the tabs. activefg and inactivefg define what color the text on the tabs when they are selected, and when they are not """ self.activefg = activefg self.inactivefg = inactivefg self.activefc = activefc self.inactivefc = inactivefc self.deletedTabs = [] self.xpad = xpad self.ypad = ypad self.activerelief = activerelief self.inactiverelief = inactiverelief self.tabVars = {} self.tabs = 0 self.progvar = DoubleVar() self.progvar.set(0) self.style = Style() self.style.theme_use("default") self.style.configure("TProgressbar", thickness=15, foreground='#347DBE', background='#347DBE') self.kwargs = kw self.tabVars = {} self.tabs = 0 # the notebook, with its tabs, middle, status bars self.noteBookFrame = Frame(parent, bg='#c5c5c5') self.BFrame = Frame(self.noteBookFrame, bg='#c5c5c5') self.statusbar = Frame(self.noteBookFrame, bd=2, height=24, width=kw.get('width'), bg='#F4F4F4') self.noteBook = Frame(self.noteBookFrame, relief=RAISED, bd=2, **kw) self.noteBook.grid_propagate(0) # status bar text and log self.status_text=StringVar() self.log_stream = [] #self.progspace = Frame(self.statusbar, width=int(kw.get('width') * 0.4)) #self.progspace.grid(sticky=E) #self.statusbar.grid_columnconfigure(2, weight=5) self.text = Label2(self.statusbar, #textvariable=self.status_text, width=int(kw.get('width') * 0.65), height=24, font=("Courier New", 13)) self.progbar = Progressbar(self.statusbar, orient='horizontal', length=int(kw.get('width') * 0.35), mode='determinate', variable=self.progvar, style="TProgressbar") #self.statusbar.grid_columnconfigure(1, weight=2) self.statusbar.grid(row=2, column=0) #self.progbar.pack(anchor=E, fill='x') self.text.pack(side=LEFT) self.progbar.pack(side=RIGHT, expand=True) #self.statusbar.grid_propagate() # redirect stdout for log self.redir = RedirectText(self.status_text, self.log_stream, self.text.label_widget) if not debug: sys.stdout = self.redir sys.stderr = self.redir Frame.__init__(self) self.noteBookFrame.grid() self.BFrame.grid(row=0, column=0, columnspan=27, sticky=N) # ", column=13)" puts the tabs in the middle! self.noteBook.grid(row=1, column=0, columnspan=27) #self.progbarspace.grid(row=2, column=0, padx=(273, 0), sticky=E) def change_tab(self, IDNum): """Internal Function""" for i in (a for a in range(0, len(list(self.tabVars.keys())))): if not i in self.deletedTabs: if i != IDNum: self.tabVars[i][1].grid_remove() self.tabVars[i][0]['relief'] = self.inactiverelief self.tabVars[i][0]['fg'] = self.inactivefg self.tabVars[i][0]['font'] = self.inactivefc self.tabVars[i][0]['bg'] = '#c5c5c5' else: self.tabVars[i][1].grid() self.tabVars[IDNum][0]['relief'] = self.activerelief self.tabVars[i][0]['fg'] = self.activefg self.tabVars[i][0]['font'] = self.activefc self.tabVars[i][0]['bg'] = 'white' def add_tab(self, width=2, **kw): import tkinter """Creates a new tab, and returns its corresponding frame """ temp = self.tabs self.tabVars[self.tabs] = [Label(self.BFrame, relief = RIDGE, **kw)] self.tabVars[self.tabs][0].bind("", lambda Event:self.change_tab(temp)) self.tabVars[self.tabs][0].pack(side = LEFT, ipady=self.ypad, ipadx=self.xpad) self.tabVars[self.tabs].append(Frame(self.noteBook, **self.kwargs)) self.tabVars[self.tabs][1].grid(row=0, column=0) self.change_tab(0) self.tabs += 1 return self.tabVars[temp][1] def destroy_tab(self, tab): """Delete a tab from the notebook, as well as it's corresponding frame """ self.iteratedTabs = 0 for b in list(self.tabVars.values()): if b[1] == tab: b[0].destroy() self.tabs -= 1 self.deletedTabs.append(self.iteratedTabs) break self.iteratedTabs += 1 def focus_on(self, tab): """Locate the IDNum of the given tab and use change_tab to give it focus """ self.iteratedTabs = 0 for b in list(self.tabVars.values()): if b[1] == tab: self.change_tab(self.iteratedTabs) break self.iteratedTabs += 1 def corpkit_gui(noupdate=False, loadcurrent=False, debug=False): """ The actual code for the application :param noupdate: prevent auto update checking :type noupdate: bool :param loadcurrent: load this path as the project :type loadcurrent: str """ # make app root=Tk() #minimise it root.withdraw( ) # generate splash with SplashScreen(root, 'loading_image.png', 1.0): # set app size #root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight())) import warnings warnings.filterwarnings("ignore") import traceback import dateutil import sys import os import corpkit from corpkit.process import get_gui_resource_dir, get_fullpath_to_jars from tkintertable import TableCanvas, TableModel from nltk.draw.table import MultiListbox, Table from collections import OrderedDict from pandas import Series, DataFrame # stop warning when insecure download is performed # this somehow raised an attribute error for anrej, # so we'll allow it to pass ... import requests try: requests.packages.urllib3.disable_warnings() except AttributeError: pass import locale if sys.platform == 'win32': try: locale.setlocale(locale.LC_ALL, 'english-usa') except: pass else: locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') # unused in the gui, dummy imports for pyinstaller #import seaborn from hashlib import md5 import chardet import pyparsing # a try statement in case not bundling scipy, which # tends to bloat the .app try: from scipy.stats import linregress except: pass # compress some things for a small screen ... small_screen = root.winfo_screenheight() < 800 #small_screen = True ## add tregex and some other bits to path paths = ['', 'dictionaries', 'corpkit', 'nltk_data'] for p in paths: fullp = os.path.join(rd, p).rstrip('/') if not fullp in sys.path: sys.path.append(fullp) # add nltk data to path import nltk nltk_data_path = os.path.join(rd, 'nltk_data') if nltk_data_path not in nltk.data.path: nltk.data.path.append(os.path.join(rd, 'nltk_data')) # not sure if needed anymore: more path setting corpath = os.path.dirname(corpkit.__file__) baspat = os.path.dirname(os.path.dirname(corpkit.__file__)) dicpath = os.path.join(baspat, 'dictionaries') os.environ["PATH"] += os.pathsep + corpath + os.pathsep + dicpath sys.path.append(corpath) sys.path.append(dicpath) sys.path.append(baspat) root.title("corpkit") root.imagewatched = StringVar() #root.overrideredirect(True) #root.resizable(False,False) note_height = 600 if small_screen else 660 note_width = root.winfo_screenwidth() if note_width > note_height * 1.62 and not small_screen: note_width = note_height * 1.62 note_width = int(note_width) note = Notebook(root, width=note_width, height=note_height, activefg='#000000', inactivefg='#585555', debug=debug) #Create a Note book Instance note.grid() tab0 = note.add_tab(text="Build") tab1 = note.add_tab(text="Interrogate") tab2 = note.add_tab(text="Edit") tab3 = note.add_tab(text="Visualise") tab4 = note.add_tab(text="Concordance") note.text.update_idletasks() ################### ################### ################### ################### # VARIABLES # # VARIABLES # # VARIABLES # # VARIABLES # ################### ################### ################### ################### # in this section, some recurring, empty variables are defined # to do: compress most of the dicts into one # round up text so we can bind keys to them later all_text_widgets = [] # for the build tab (could be cleaned up) chosen_f = [] sentdict = {} boxes = [] buildbits = {} most_recent_projects = [] # some variables that will get used throughout the gui # a dict of the editor frame names and models editor_tables = {} currently_in_each_frame = {} # for conc sort toggle sort_direction = True subc_sel_vals = [] subc_sel_vals_build = [] # store every interrogation and conc in this session all_interrogations = OrderedDict() all_conc = OrderedDict() all_images = [] all_interrogations['None'] = 'None' # corpus path setter corpus_fullpath = StringVar() corpus_fullpath.set('') corenlppath = StringVar() corenlppath.set(os.path.join(os.path.expanduser("~"), 'corenlp')) # visualise # where to put the current figure and frame thefig = [] oldplotframe = [] # for visualise, this holds a list of subcorpora or entries, # so that the title will dynamically change at the right time single_entry_or_subcorpus = {} # conc # to do: more consistent use of globals! itemcoldict = {} current_conc = ['None'] global conc_saved conc_saved = False import itertools try: toggle = itertools.cycle([True, False]).__next__ except AttributeError: toggle = itertools.cycle([True, False]).next # manage pane: obsolete manage_box = {} # custom lists custom_special_dict = {} # just the ones on the hd saved_special_dict = {} # not currently using this sort feature---should use in conc though import itertools try: direct = itertools.cycle([0,1]).__next__ except AttributeError: direct = itertools.cycle([0,1]).next corpus_names_and_speakers = {} ################### ################### ################### ################### # DICTIONARIES # # DICTIONARIES # # DICTIONARIES # # DICTIONARIES # ################### ################### ################### ################### qd = {'Subjects': r'__ >># @NP', 'Processes': r'/VB.?/ >># ( VP >+(VP) (VP !> VP $ NP))', 'Modals': r'MD < __', 'Participants': r'/(NN|PRP|JJ).?/ >># (/(NP|ADJP)/ $ VP | > VP)', 'Entities': r'NP <# NNP', 'Any': 'any'} # concordance colours colourdict = {1: '#fbb4ae', 2: '#b3cde3', 3: '#ccebc5', 4: '#decbe4', 5: '#fed9a6', 6: '#ffffcc', 7: '#e5d8bd', 8: '#D9DDDB', 9: '#000000', 0: '#F4F4F4'} # translate search option for interrogator() transdict = { 'Get distance from root for regex match': 'a', 'Get tag and word of match': 'b', 'Count matches': 'c', 'Get role of match': 'f', 'Get "role:dependent", matching governor': 'd', 'Get ngrams from tokens': 'j', 'Get "role:governor", matching dependent': 'g', 'Get lemmata matching regex': 'l', 'Get tokens by role': 'm', 'Get ngrams from trees': 'n', 'Get part-of-speech tag': 'p', 'Regular expression search': 'r', 'Get tokens matching regex': 't', 'Get stats': 'v', 'Get words': 'w', 'Get tokens by regex': 'h', 'Get tokens matching list': 'e'} # translate sort_by for editor sort_trans = {'None': False, 'Total': 'total', 'Inverse total': 'infreq', 'Name': 'name', 'Increase': 'increase', 'Decrease': 'decrease', 'Static': 'static', 'Turbulent': 'turbulent', 'P value': 'p', 'Reverse': 'reverse'} # translate special queries for interrogator() spec_quer_translate = {'Participants': 'w', 'Any': 'any', 'Processes': 'w', 'Subjects': 'w', 'Entities': 'w'} # todo: newer method from corpkit.constants import transshow, transobjs, LETTERS from corpkit.process import make_name_to_query_dict exist = {'Trees': 't', 'Stats': 'v', 'CQL': 'cql'} convert_name_to_query = make_name_to_query_dict(exist) # these are example queries for each data type def_queries = {} for i in convert_name_to_query.keys(): if i.lower().endswith('function'): def_queries[i] = r'\b(amod|nn|advm|vmod|tmod)\b' elif i.lower().endswith('lemma'): def_queries[i] = r'\b(want|desire|need)\b' elif i.lower().endswith('word class'): def_queries[i] = r'^(ad)verb$' elif i.lower().endswith('index'): def_queries[i] = r'[012345]', elif i.lower().endswith('stats'): def_queries[i] = r'any', elif i.lower().endswith('cql'): def_queries[i] = r'[pos="RB" & word=".*ly$"]', elif i.lower().endswith('pos'): def_queries[i] = r'^[NJR]', elif i.lower().endswith('index'): def_queries[i] = r'[012345]', elif i.lower().endswith('distance from root'): def_queries[i] = r'[012345]', elif i.lower().endswith('trees'): def_queries[i] = r'JJ > (NP <<# /NN.?/)' else: def_queries[i] = r'\b(m.n|wom.n|child(ren)?)\b' ################### ################### ################### ################### # FUNCTIONS # # FUNCTIONS # # FUNCTIONS # # FUNCTIONS # ################### ################### ################### ################### # some functions used throughout the gui def focus_next_window(event): """tab to next widget""" event.widget.tk_focusNext().focus() try: event.widget.tk_focusNext().selection_range(0, END) except: pass return "break" def runner(button, command, conc=False): """ Runs the command of a button, disabling the button till it is done, whether it returns early or not """ try: if button == interrobut or button == interrobut_conc: command(conc) else: command() except Exception as err: import traceback print(traceback.format_exc()) note.progvar.set(0) button.config(state=NORMAL) def refresh_images(*args): """get list of images saved in images folder""" import os if os.path.isdir(image_fullpath.get()): image_list = sorted([f for f in os.listdir(image_fullpath.get()) if f.endswith('.png')]) for iname in image_list: if iname.replace('.png', '') not in all_images: all_images.append(iname.replace('.png', '')) else: for i in all_images: all_images.pop(i) #refresh() # if the dummy variable imagewatched is changed, refresh images # this connects to matplotlib's save button, if the modified # matplotlib is installed. a better way to do this would be good! root.imagewatched.trace("w", refresh_images) def timestring(input): """print with time prepended""" from time import localtime, strftime thetime = strftime("%H:%M:%S", localtime()) print('%s: %s' % (thetime, input.lstrip())) def conmap(cnfg, section): """helper for load settings""" dict1 = {} options = cnfg.options(section) # todo: this loops over too many times for option in options: #try: opt = cnfg.get(section, option) if opt == '0': opt = False elif opt == '1': opt = True elif opt.isdigit(): opt = int(opt) if isinstance(opt, str) and opt.lower() == 'none': opt = False if not opt: opt = 0 dict1[option] = opt return dict1 def convert_pandas_dict_to_ints(dict_obj): """try to turn pandas as_dict into ints, for tkintertable the huge try statement is to stop errors when there is a single corpus --- need to find source of problem earlier, though""" vals = [] try: for a, b in list(dict_obj.items()): # c = year, d = count for c, d in list(b.items()): vals.append(d) if all([float(x).is_integer() for x in vals if is_number(x)]): for a, b in list(dict_obj.items()): for c, d in list(b.items()): if is_number(d): b[c] = int(d) except TypeError: pass return dict_obj def update_spreadsheet(frame_to_update, df_to_show=None, model=False, height=140, width=False, indexwidth=70): """refresh a spreadsheet""" from collections import OrderedDict import pandas # colours for tkintertable kwarg = {'cellbackgr': '#F7F7FA', 'grid_color': '#c5c5c5', 'entrybackgr': '#F4F4F4', 'selectedcolor': 'white', 'rowselectedcolor': '#b3cde3', 'multipleselectioncolor': '#fbb4ae'} if width: kwarg['width'] = width if model and not df_to_show: df_to_show = make_df_from_model(model) #if need_make_totals: df_to_show = make_df_totals(df_to_show) if df_to_show is not None: # for abs freq, make total model = TableModel() df_to_show = pandas.DataFrame(df_to_show, dtype=object) #if need_make_totals(df_to_show): df_to_show = make_df_totals(df_to_show) # turn pandas into dict raw_data = df_to_show.to_dict() # convert to int if possible raw_data = convert_pandas_dict_to_ints(raw_data) table = TableCanvas(frame_to_update, model=model, showkeynamesinheader=True, height=height, rowheaderwidth=row_label_width.get(), cellwidth=cell_width.get(), **kwarg) table.createTableFrame() model = table.model model.importDict(raw_data) # move columns into correct positions for index, name in enumerate(list(df_to_show.index)): model.moveColumn(model.getColumnIndex(name), index) table.createTableFrame() # sort the rows if 'tkintertable-order' in list(df_to_show.index): table.sortTable(columnName = 'tkintertable-order') ind = model.columnNames.index('tkintertable-order') try: model.deleteColumn(ind) except: pass if 'Total' in list(df_to_show.index): table.sortTable(columnName='Total', reverse=True) elif len(df_to_show.index) == 1: table.sortTable(columnIndex=0, reverse=True) else: #nm = os.path.basename(corpus_fullpath.get().rstrip('/')) ind = len(df_to_show.columns) - 1 table.sortTable(columnIndex = ind, reverse = 1) #pass table.redrawTable() editor_tables[frame_to_update] = model currently_in_each_frame[frame_to_update] = df_to_show return if model: table = TableCanvas(frame_to_update, model=model, showkeynamesinheader=True, height=height, rowheaderwidth=row_label_width.get(), cellwidth=cell_width.get(), **kwarg) table.createTableFrame() try: table.sortTable(columnName = 'Total', reverse = direct()) except: direct() table.sortTable(reverse = direct()) table.createTableFrame() table.redrawTable() else: table = TableCanvas(frame_to_update, height=height, cellwidth=cell_width.get(), showkeynamesinheader=True, rowheaderwidth=row_label_width.get(), **kwarg) table.createTableFrame() # sorts by total freq, ok for now table.redrawTable() from corpkit.cql import remake_special def ignore(): """turn this on when buttons should do nothing""" return "break" def need_make_totals(df): """check if a df needs totals""" if len(list(df.index)) < 3: return False try: x = df.iloc[0,0] except: return False # if was_series, basically try: vals = [i for i in list(df.iloc[0,].values) if is_number(i)] except TypeError: return False if len(vals) == 0: return False if all([float(x).is_integer() for x in vals]): return True else: return False def make_df_totals(df): """make totals for a dataframe""" df = df.drop('Total', errors = 'ignore') # add new totals df.ix['Total'] = df.drop('tkintertable-order', errors = 'ignore').sum().astype(object) return df def make_df_from_model(model): """generate df from spreadsheet""" import pandas from io import StringIO recs = model.getAllCells() colnames = model.columnNames collabels = model.columnlabels row = [] csv_data = [] for c in colnames: row.append(collabels[c]) try: csv_data.append(','.join([str(s, errors = 'ignore') for s in row])) except TypeError: csv_data.append(','.join([str(s) for s in row])) #csv_data.append('\n') for row in list(recs.keys()): rowname = model.getRecName(row) try: csv_data.append(','.join([str(rowname, errors = 'ignore')] + [str(s, errors = 'ignore') for s in recs[row]])) except TypeError: csv_data.append(','.join([str(rowname)] + [str(s) for s in recs[row]])) #csv_data.append('\n') #writer.writerow(recs[row]) csv = '\n'.join(csv_data) uc = unicode(csv, errors='ignore') newdata = pandas.read_csv(StringIO(uc), index_col=0, header=0) newdata = pandas.DataFrame(newdata, dtype=object) newdata = newdata.T newdata = newdata.drop('Total', errors='ignore') newdata = add_tkt_index(newdata) if need_make_totals(newdata): newdata = make_df_totals(newdata) return newdata def color_saved(lb, savepath=False, colour1='#D9DDDB', colour2='white', ext='.p', lists=False): """make saved items in listbox have colour background lb: listbox to colour savepath: where to look for existing files colour1, colour2: what to colour foundd and not found ext: what to append to filenames when searching for them lists: if working with wordlists, things need to be done differently, more colours""" all_items = [lb.get(i) for i in range(len(lb.get(0, END)))] # define colours for permanent lists in wordlists if lists: colour3 = '#ffffcc' colour4 = '#fed9a6' for index, item in enumerate(all_items): # check if saved if not lists: # files or directories with current corpus in name or without newn = current_corpus.get() + '-' + urlify(item) + ext a = os.path.isfile(os.path.join(savepath, urlify(item) + ext)) b = os.path.isdir(os.path.join(savepath, urlify(item))) c = os.path.isfile(os.path.join(savepath, newn)) d = os.path.isdir(os.path.join(savepath, newn)) if any(x for x in [a, b, c, d]): issaved = True else: issaved = False # for lists, check if permanently stored else: issaved = False if item in list(saved_special_dict.keys()): issaved = True if current_corpus.get() + '-' + item in list(saved_special_dict.keys()): issaved = True if issaved: lb.itemconfig(index, {'bg':colour1}) else: lb.itemconfig(index, {'bg':colour2}) if lists: if item in list(predict.keys()): if item.endswith('_ROLE'): lb.itemconfig(index, {'bg':colour3}) else: lb.itemconfig(index, {'bg':colour4}) lb.selection_clear(0, END) def paste_into_textwidget(*args): """paste function for widgets ... doesn't seem to work as expected""" try: start = args[0].widget.index("sel.first") end = args[0].widget.index("sel.last") args[0].widget.delete(start, end) except TclError as e: # nothing was selected, so paste doesn't need # to delete anything pass # for some reason, this works with the error. try: args[0].widget.insert("insert", clipboard.rstrip('\n')) except NameError: pass def copy_from_textwidget(*args): """more commands for textwidgets""" #args[0].widget.clipboard_clear() text=args[0].widget.get("sel.first", "sel.last").rstrip('\n') args[0].widget.clipboard_append(text) def cut_from_textwidget(*args): """more commands for textwidgets""" text=args[0].widget.get("sel.first", "sel.last") args[0].widget.clipboard_append(text) args[0].widget.delete("sel.first", "sel.last") def select_all_text(*args): """more commands for textwidgets""" try: args[0].widget.selection_range(0, END) except: args[0].widget.tag_add("sel","1.0","end") def make_corpus_name_from_abs(pfp, cfp): if pfp in cfp: return cfp.replace(pfp.rstrip('/') + '/', '') else: return cfp def get_all_corpora(): import os all_corpora = [] for root, ds, fs in os.walk(corpora_fullpath.get()): for d in ds: path = os.path.join(root, d) relpath = path.replace(corpora_fullpath.get(), '', 1).lstrip('/') all_corpora.append(relpath) return sorted(all_corpora) def update_available_corpora(delete=False): """updates corpora in project, and returns a list of them""" import os fp = corpora_fullpath.get() all_corpora = get_all_corpora() for om in [available_corpora, available_corpora_build]: om.config(state=NORMAL) om['menu'].delete(0, 'end') if not delete: for corp in all_corpora: if not corp.endswith('parsed') and not corp.endswith('tokenised') and om == available_corpora: continue om['menu'].add_command(label=corp, command=_setit(current_corpus, corp)) return all_corpora def refresh(): """refreshes the list of dataframes in the editor and plotter panes""" import os # Reset name_of_o_ed_spread and delete all old options # get the latest only after first interrogation if len(list(all_interrogations.keys())) == 1: selected_to_edit.set(list(all_interrogations.keys())[-1]) dataframe1s['menu'].delete(0, 'end') dataframe2s['menu'].delete(0, 'end') every_interrogation['menu'].delete(0, 'end') #every_interro_listbox.delete(0, 'end') #every_image_listbox.delete(0, 'end') new_choices = [] for interro in list(all_interrogations.keys()): new_choices.append(interro) new_choices = tuple(new_choices) dataframe2s['menu'].add_command(label='Self', command=_setit(data2_pick, 'Self')) if project_fullpath.get() != '' and project_fullpath.get() != rd: dpath = os.path.join(project_fullpath.get(), 'dictionaries') if os.path.isdir(dpath): dicts = sorted([f.replace('.p', '') for f in os.listdir(dpath) if os.path.isfile(os.path.join(dpath, f)) and f.endswith('.p')]) for d in dicts: dataframe2s['menu'].add_command(label=d, command=_setit(data2_pick, d)) for choice in new_choices: dataframe1s['menu'].add_command(label=choice, command=_setit(selected_to_edit, choice)) dataframe2s['menu'].add_command(label=choice, command=_setit(data2_pick, choice)) every_interrogation['menu'].add_command(label=choice, command=_setit(data_to_plot, choice)) refresh_images() # refresh prev_conc_listbox.delete(0, 'end') for i in sorted(all_conc.keys()): prev_conc_listbox.insert(END, i) def add_tkt_index(df): """add order to df for tkintertable""" import pandas df = df.T df = df.drop('tkintertable-order', errors = 'ignore', axis=1) df['tkintertable-order'] = pandas.Series([index for index, data in enumerate(list(df.index))], index = list(df.index)) df = df.T return df def namer(name_box_text, type_of_data = 'interrogation'): """returns a name to store interrogation/editor result as""" if name_box_text.lower() == 'untitled' or name_box_text == '': c = 0 the_name = '%s-%s' % (type_of_data, str(c).zfill(2)) while any(x.startswith(the_name) for x in list(all_interrogations.keys())): c += 1 the_name = '%s-%s' % (type_of_data, str(c).zfill(2)) else: the_name = name_box_text return the_name def show_prev(): """show previous interrogation""" import pandas currentname = name_of_interro_spreadsheet.get() # get index of current index if not currentname: prev.configure(state=DISABLED) return ind = list(all_interrogations.keys()).index(currentname) # if it's higher than zero if ind > 0: if ind == 1: prev.configure(state=DISABLED) nex.configure(state=NORMAL) else: if ind + 1 < len(list(all_interrogations.keys())): nex.configure(state=NORMAL) prev.configure(state=NORMAL) newname = list(all_interrogations.keys())[ind - 1] newdata = all_interrogations[newname] name_of_interro_spreadsheet.set(newname) i_resultname.set('Interrogation results: %s' % str(name_of_interro_spreadsheet.get())) if isinstance(newdata, pandas.DataFrame): toshow = newdata toshowt = newdata.sum() elif hasattr(newdata, 'results') and newdata.results is not None: toshow = newdata.results if hasattr(newdata, 'totals') and newdata.results is not None: toshowt = pandas.DataFrame(newdata.totals, dtype=object) update_spreadsheet(interro_results, toshow, height=340) update_spreadsheet(interro_totals, toshowt, height=10) refresh() else: prev.configure(state=DISABLED) nex.configure(state=NORMAL) def show_next(): """show next interrogation""" import pandas currentname = name_of_interro_spreadsheet.get() if currentname: ind = list(all_interrogations.keys()).index(currentname) else: ind = 0 if ind > 0: prev.configure(state=NORMAL) if ind + 1 < len(list(all_interrogations.keys())): if ind + 2 == len(list(all_interrogations.keys())): nex.configure(state=DISABLED) prev.configure(state=NORMAL) else: nex.configure(state=NORMAL) newname = list(all_interrogations.keys())[ind + 1] newdata = all_interrogations[newname] name_of_interro_spreadsheet.set(newname) i_resultname.set('Interrogation results: %s' % str(name_of_interro_spreadsheet.get())) if isinstance(newdata, pandas.DataFrame): toshow = newdata toshowt = newdata.sum() elif hasattr(newdata, 'results') and newdata.results is not None: toshow = newdata.results if hasattr(newdata, 'totals') and newdata.results is not None: toshowt = newdata.totals update_spreadsheet(interro_results, toshow, height=340) totals_as_df = pandas.DataFrame(toshowt, dtype=object) update_spreadsheet(interro_totals, toshowt, height=10) refresh() else: nex.configure(state=DISABLED) prev.configure(state=NORMAL) def exchange_interro_branch(namedtupname, newdata, branch='results'): """replaces a namedtuple results/totals with newdata --- such a hack, should upgrade to recordtype""" namedtup = all_interrogations[namedtupname] the_branch = getattr(namedtup, branch) if branch == 'results': the_branch.drop(the_branch.index, inplace=True) the_branch.drop(the_branch.columns, axis=1, inplace=True) for i in list(newdata.columns): the_branch[i] = i for index, i in enumerate(list(newdata.index)): the_branch.loc[i] = newdata.ix[index] elif branch == 'totals': the_branch.drop(the_branch.index, inplace=True) for index, datum in zip(newdata.index, newdata.iloc[:,0].values): the_branch.set_value(index, datum) all_interrogations[namedtupname] = namedtup def update_interrogation(table_id, id, is_total=False): """takes any changes made to spreadsheet and saves to the interrogation id: 0 = interrogator 1 = old editor window 2 = new editor window""" model=editor_tables[table_id] newdata = make_df_from_model(model) if need_make_totals(newdata): newdata = make_df_totals(newdata) if id == 0: name_of_interrogation = name_of_interro_spreadsheet.get() if id == 1: name_of_interrogation = name_of_o_ed_spread.get() if id == 2: name_of_interrogation = name_of_n_ed_spread.get() if not is_total: exchange_interro_branch(name_of_interrogation, newdata, branch='results') else: exchange_interro_branch(name_of_interrogation, newdata, branch='totals') def update_all_interrogations(pane='interrogate'): import pandas """update all_interrogations within spreadsheet data need a very serious cleanup!""" # to do: only if they are there! if pane == 'interrogate': update_interrogation(interro_results, id=0) update_interrogation(interro_totals, id=0, is_total=True) if pane == 'edit': update_interrogation(o_editor_results, id=1) update_interrogation(o_editor_totals, id=1, is_total=True) # update new editor sheet if it's there if name_of_n_ed_spread.get() != '': update_interrogation(n_editor_results, id=2) update_interrogation(n_editor_totals, id=2, is_total=True) timestring('Updated interrogations with manual data.') if pane == 'interrogate': the_data = all_interrogations[name_of_interro_spreadsheet.get()] tot = pandas.DataFrame(the_data.totals, dtype=object) if the_data.results is not None: update_spreadsheet(interro_results, the_data.results, height=340) else: update_spreadsheet(interro_results, df_to_show=None, height=340) update_spreadsheet(interro_totals, tot, height=10) if pane == 'edit': the_data = all_interrogations[name_of_o_ed_spread.get()] there_is_new_data = False try: newdata = all_interrogations[name_of_n_ed_spread.get()] there_is_new_data = True except: pass if the_data.results is not None: update_spreadsheet(o_editor_results, the_data.results, height=140) update_spreadsheet(o_editor_totals, pandas.DataFrame(the_data.totals, dtype=object), height=10) if there_is_new_data: if newdata != 'None' and newdata != '': if the_data.results is not None: update_spreadsheet(n_editor_results, newdata.results, height=140) update_spreadsheet(n_editor_totals, pandas.DataFrame(newdata.totals, dtype=object), height=10) if name_of_o_ed_spread.get() == name_of_interro_spreadsheet.get(): the_data = all_interrogations[name_of_interro_spreadsheet.get()] tot = pandas.DataFrame(the_data.totals, dtype=object) if the_data.results is not None: update_spreadsheet(interro_results, the_data.results, height=340) update_spreadsheet(interro_totals, tot, height=10) timestring('Updated spreadsheet display in edit window.') from corpkit.process import is_number ################### ################### ################### ################### #PREFERENCES POPUP# #PREFERENCES POPUP# #PREFERENCES POPUP# #PREFERENCES POPUP# ################### ################### ################### ################### # make variables with default values do_auto_update = IntVar() do_auto_update.set(1) do_auto_update_this_session = IntVar() do_auto_update_this_session.set(1) #conc_when_int = IntVar() #conc_when_int.set(1) only_format_match = IntVar() only_format_match.set(0) files_as_subcorpora = IntVar() files_as_subcorpora.set(0) do_concordancing = IntVar() do_concordancing.set(1) show_conc_metadata = IntVar() show_conc_metadata.set(1) #noregex = IntVar() #noregex.set(0) parser_memory = StringVar() parser_memory.set(str(2000)) truncate_conc_after = IntVar() truncate_conc_after.set(9999) truncate_spreadsheet_after = IntVar() truncate_spreadsheet_after.set(9999) corenlppath = StringVar() corenlppath.set(os.path.join(os.path.expanduser("~"), 'corenlp')) row_label_width=IntVar() row_label_width.set(100) cell_width=IntVar() cell_width.set(50) p_val = DoubleVar() p_val.set(0.05) # a place for the toplevel entry info entryboxes = OrderedDict() # fill it with null data for i in range(10): tmp = StringVar() tmp.set('') entryboxes[i] = tmp def preferences_popup(): try: global toplevel toplevel.destroy() except: pass from tkinter import Toplevel pref_pop = Toplevel() #pref_pop.config(background = '#F4F4F4') pref_pop.geometry('+300+100') pref_pop.title("Preferences") #pref_pop.overrideredirect(1) pref_pop.wm_attributes('-topmost', 1) Label(pref_pop, text='').grid(row=0, column=0, pady=2) def quit_coding(*args): save_tool_prefs(printout=True) pref_pop.destroy() tmp = Checkbutton(pref_pop, text='Automatically check for updates', variable=do_auto_update, onvalue=1, offvalue=0) if do_auto_update.get() == 1: tmp.select() all_text_widgets.append(tmp) tmp.grid(row=0, column=0, sticky=W) Label(pref_pop, text='Truncate concordance lines').grid(row=1, column=0, sticky=W) tmp = Entry(pref_pop, textvariable=truncate_conc_after, width=7) all_text_widgets.append(tmp) tmp.grid(row=1, column=1, sticky=E) Label(pref_pop, text='Truncate spreadsheets').grid(row=2, column=0, sticky=W) tmp = Entry(pref_pop, textvariable=truncate_spreadsheet_after, width=7) all_text_widgets.append(tmp) tmp.grid(row=2, column=1, sticky=E) Label(pref_pop, text='CoreNLP memory allocation (MB)').grid(row=3, column=0, sticky=W) tmp = Entry(pref_pop, textvariable=parser_memory, width=7) all_text_widgets.append(tmp) tmp.grid(row=3, column=1, sticky=E) Label(pref_pop, text='Spreadsheet cell width').grid(row=4, column=0, sticky=W) tmp = Entry(pref_pop, textvariable=cell_width, width=7) all_text_widgets.append(tmp) tmp.grid(row=4, column=1, sticky=E) Label(pref_pop, text='Spreadsheet row header width').grid(row=5, column=0, sticky=W) tmp = Entry(pref_pop, textvariable=row_label_width, width=7) all_text_widgets.append(tmp) tmp.grid(row=5, column=1, sticky=E) Label(pref_pop, text='P value').grid(row=6, column=0, sticky=W) tmp = Entry(pref_pop, textvariable=p_val, width=7) all_text_widgets.append(tmp) tmp.grid(row=6, column=1, sticky=E) Label(pref_pop, text='CoreNLP path:', justify=LEFT).grid(row=7, column=0, sticky=W, rowspan = 1) Button(pref_pop, text='Change', command=set_corenlp_path, width =5).grid(row=7, column=1, sticky=E) Label(pref_pop, textvariable=corenlppath, justify=LEFT).grid(row=8, column=0, sticky=W) #set_corenlp_path tmp = Checkbutton(pref_pop, text='Treat files as subcorpora', variable=files_as_subcorpora, onvalue=1, offvalue=0) tmp.grid(row=10, column=0, pady=(0,0), sticky=W) #tmp = Checkbutton(pref_pop, text='Disable regex for plaintext', variable=noregex, onvalue=1, offvalue=0) #tmp.grid(row=9, column=1, pady=(0,0), sticky=W) tmp = Checkbutton(pref_pop, text='Do concordancing', variable=do_concordancing, onvalue=1, offvalue=0) tmp.grid(row=10, column=1, pady=(0,0), sticky=W) tmp = Checkbutton(pref_pop, text='Format concordance context', variable=only_format_match, onvalue=1, offvalue=0) tmp.grid(row=11, column=0, pady=(0,0), sticky=W) tmp = Checkbutton(pref_pop, text='Show concordance metadata', variable=show_conc_metadata, onvalue=1, offvalue=0) tmp.grid(row=11, column=1, pady=(0,0), sticky=W) stopbut = Button(pref_pop, text='Done', command=quit_coding) stopbut.grid(row=12, column=0, columnspan=2, pady=15) pref_pop.bind("", quit_coding) pref_pop.bind("", focus_next_window) ################### ################### ################### ################### # INTERROGATE TAB # # INTERROGATE TAB # # INTERROGATE TAB # # INTERROGATE TAB # ################### ################### ################### ################### # hopefully weighting the two columns, not sure if works interro_opt = Frame(tab1) interro_opt.grid(row=0, column=0) tab1.grid_columnconfigure(2, weight=5) def do_interrogation(conc=True): """the main function: calls interrogator()""" import pandas from corpkit.interrogator import interrogator from corpkit.interrogation import Interrogation, Interrodict doing_concondancing = True # no pressing while running #if not conc: interrobut.config(state=DISABLED) #else: interrobut_conc.config(state=DISABLED) recalc_but.config(state=DISABLED) # progbar to zero note.progvar.set(0) for i in list(itemcoldict.keys()): del itemcoldict[i] # spelling conversion? #conv = (spl.var).get() #if conv == 'Convert spelling' or conv == 'Off': # conv = False # lemmatag: do i need to add as button if trees? lemmatag = False query = qa.get(1.0, END).replace('\n', '') if not datatype_picked.get() == 'CQL': # allow list queries if query.startswith('[') and query.endswith(']') and ',' in query: query = query.lstrip('[').rstrip(']').replace("'", '').replace('"', '').replace(' ', '').split(',') #elif transdict[searchtype()] in ['e', 's']: #query = query.lstrip('[').rstrip(']').replace("'", '').replace('"', '').replace(' ', '').split(',') else: # convert special stuff query = remake_special(query, customs=custom_special_dict, case_sensitive=case_sensitive.get()) if query is False: return # make name for interrogation the_name = namer(nametext.get(), type_of_data='interrogation') cqlmode = IntVar() cqlmode.set(0) # get the main query so = datatype_picked.get() if so == 'CQL': cqlmode.set(1) selected_option = convert_name_to_query.get(so, so) if selected_option == '': timestring('You need to select a search type.') return queryd = {} for k, v in list(additional_criteria.items()): # this should already be done queryd[k] = v queryd[selected_option] = query # cql mode just takes a string if cqlmode.get(): queryd = query if selected_option == 'v': queryd = 'features' doing_concondancing = False else: doing_concondancing = True # to do: make this order customisable for the gui too poss_returns = [return_function, return_pos, return_lemma, return_token, \ return_gov, return_dep, return_tree, return_index, return_distance, \ return_count, return_gov_lemma, return_gov_pos, return_gov_func, \ return_dep_lemma, return_dep_pos, return_dep_func, \ return_ngm_lemma, return_ngm_pos, return_ngm_func, return_ngm] must_make = [return_ngm_lemma, return_ngm_pos, return_ngm_func, return_ngm] to_show = [prenext_pos.get() + i.get() if i in must_make and i.get() else i.get() for i in poss_returns] to_show = [i for i in to_show if i and 'Position' not in i] if not to_show and not selected_option == 'v': timestring('Interrogation must return something.') return if 'c' in to_show: doing_concondancing = False if not do_concordancing.get(): doing_concondancing = False #if noregex.get() == 1: # regex = False #else: # regex = True subcc = False just_subc = False met_field_ids = [by_met_listbox.get(i) for i in by_met_listbox.curselection()] met_val_ids = [speaker_listbox.get(i) for i in speaker_listbox.curselection()] if len(met_field_ids) == 1: met_field_ids = met_field_ids[0] if len(met_val_ids) == 1: met_val_ids = met_val_ids[0] if met_field_ids and not met_val_ids: if isinstance(met_field_ids, list): subcc = met_field_ids else: if met_field_ids == 'folders': subcc = False elif met_field_ids == 'files': files_as_subcorpora.set(1) elif met_field_ids == 'none': # todo: no sub mode? subcc = False else: subcc = met_field_ids elif not met_field_ids: subcc = False elif met_field_ids and met_val_ids: subcc = met_field_ids if 'ALL' in met_val_ids: pass else: just_subc = {met_field_ids: met_val_ids} # default interrogator args: root and note pass the gui itself for updating # progress bar and so on. interrogator_args = {'search': queryd, 'show': to_show, 'case_sensitive': bool(case_sensitive.get()), 'no_punct': bool(no_punct.get()), #'spelling': conv, 'root': root, 'note': note, 'df1_always_df': True, 'conc': doing_concondancing, 'only_format_match': not bool(only_format_match.get()), #'dep_type': depdict.get(kind_of_dep.get(), 'CC-processed'), 'nltk_data_path': nltk_data_path, #'regex': regex, 'coref': coref.get(), 'cql': cqlmode.get(), 'files_as_subcorpora': bool(files_as_subcorpora.get()), 'subcorpora': subcc, 'just_metadata': just_subc, 'show_conc_metadata': bool(show_conc_metadata.get()), 'use_interrodict': True} if debug: print(interrogator_args) excludes = {} for k, v in list(ex_additional_criteria.items()): if k != 'None': excludes[k.lower()[0]] = v if exclude_op.get() != 'None': q = remake_special(exclude_str.get(), return_list=True, customs=custom_special_dict, case_sensitive=case_sensitive.get()) if q: excludes[exclude_op.get().lower()[0]] = q if excludes: interrogator_args['exclude'] = excludes try: interrogator_args['searchmode'] = anyall.get() except: pass try: interrogator_args['excludemode'] = excludemode.get() except: pass # translate lemmatag tagdict = {'Noun': 'n', 'Adjective': 'a', 'Verb': 'v', 'Adverb': 'r', 'None': False, '': False, 'Off': False} #interrogator_args['lemmatag'] = tagdict[lemtag.get()] if corpus_fullpath.get() == '': timestring('You need to select a corpus.') return # stats preset is actually a search type #if special_queries.get() == 'Stats': # selected_option = 'v' # interrogator_args['query'] = 'any' # if ngramming, there are two extra options ngm = ngmsize.var.get() if ngm != 'Size': interrogator_args['gramsize'] = int(ngm) clc = collosize.var.get() if clc != 'Size': interrogator_args['window'] = int(clc) #if subc_pick.get() == "Subcorpus" or subc_pick.get().lower() == 'all' or \ # selected_corpus_has_no_subcorpora.get() == 1: corp_to_search = corpus_fullpath.get() #else: # corp_to_search = os.path.join(corpus_fullpath.get(), subc_pick.get()) # do interrogation, return if empty if debug: print('CORPUS:', corp_to_search) interrodata = interrogator(corp_to_search, **interrogator_args) if isinstance(interrodata, Interrogation): if hasattr(interrodata, 'results') and interrodata.results is not None: if interrodata.results.empty: timestring('No results found, sorry.') return # make sure we're redirecting stdout again if not debug: sys.stdout = note.redir # update spreadsheets if not isinstance(interrodata, (Interrogation, Interrodict)): update_spreadsheet(interro_results, df_to_show=None, height=340) update_spreadsheet(interro_totals, df_to_show=None, height=10) return # make non-dict results into dict, so we can iterate no matter # if there were multiple results or not interrogation_returned_dict = False from collections import OrderedDict if isinstance(interrodata, Interrogation): dict_of_results = OrderedDict({the_name: interrodata}) else: dict_of_results = interrodata interrogation_returned_dict = True # remove dummy entry from master all_interrogations.pop('None', None) # post-process each result and add to master list for nm, r in sorted(dict_of_results.items(), key=lambda x: x[0]): # drop over 9999 # type check probably redundant now if r.results is not None: large = [n for i, n in enumerate(list(r.results.columns)) if i > truncate_spreadsheet_after.get()] r.results.drop(large, axis=1, inplace=True) r.results.drop('Total', errors='ignore', inplace=True) r.results.drop('Total', errors='ignore', inplace=True, axis=1) # add interrogation to master list if interrogation_returned_dict: all_interrogations[the_name + '-' + nm] = r all_conc[the_name + '-' + nm] = r.concordance dict_of_results[the_name + '-' + nm] = dict_of_results.pop(nm) # make multi for conc... else: all_interrogations[nm] = r all_conc[nm] = r.concordance # show most recent (alphabetically last) interrogation spreadsheet recent_interrogation_name = list(dict_of_results.keys())[0] recent_interrogation_data = list(dict_of_results.values())[0] if queryd == {'v': 'any'}: conc = False if doing_concondancing: conc_to_show = recent_interrogation_data.concordance if conc_to_show is not None: numresults = len(conc_to_show.index) if numresults > truncate_conc_after.get() - 1: nums = str(numresults) if numresults == 9999: nums += '+' truncate = messagebox.askyesno("Long results list", "%s unique concordance results! Truncate to %s?" % (nums, str(truncate_conc_after.get()))) if truncate: conc_to_show = conc_to_show.head(truncate_conc_after.get()) add_conc_lines_to_window(conc_to_show, preserve_colour=False) else: timestring('No concordance results generated.') global conc_saved conc_saved = False name_of_interro_spreadsheet.set(recent_interrogation_name) i_resultname.set('Interrogation results: %s' % str(name_of_interro_spreadsheet.get())) # total in a way that tkintertable likes if isinstance(recent_interrogation_data.totals, int): recent_interrogation_data.totals = Series(recent_interrogation_data.totals) totals_as_df = pandas.DataFrame(recent_interrogation_data.totals, dtype=object) # update spreadsheets if recent_interrogation_data.results is not None: update_spreadsheet(interro_results, recent_interrogation_data.results, height=340) else: update_spreadsheet(interro_results, df_to_show=None, height=340) update_spreadsheet(interro_totals, totals_as_df, height=10) ind = list(all_interrogations.keys()).index(name_of_interro_spreadsheet.get()) if ind == 0: prev.configure(state=DISABLED) else: prev.configure(state=NORMAL) if ind + 1 == len(list(all_interrogations.keys())): nex.configure(state=DISABLED) else: nex.configure(state=NORMAL) refresh() if recent_interrogation_data.results is not None: subs = r.results.index else: subs = r.totals.index subc_listbox.delete(0, 'end') for e in list(subs): if e != 'tkintertable-order': subc_listbox.insert(END, e) #reset name nametext.set('untitled') if interrogation_returned_dict: timestring('Interrogation finished, with multiple results.') interrobut.config(state=NORMAL) interrobut_conc.config(state=NORMAL) recalc_but.config(state=NORMAL) class MyOptionMenu(OptionMenu): """Simple OptionMenu for things that don't change.""" def __init__(self, tab1, status, *options): self.var = StringVar(tab1) self.var.set(status) OptionMenu.__init__(self, tab1, self.var, *options) self.config(font=('calibri',(12)),width=20) self['menu'].config(font=('calibri',(10))) def corpus_callback(*args): """ On selecting a corpus, set everything appropriately. also, disable some kinds of search based on the name """ if not current_corpus.get(): return import os from os.path import join, isdir, isfile, exists corpus_fullpath.set(join(corpora_fullpath.get(), current_corpus.get())) fp = corpus_fullpath.get() from corpkit.corpus import Corpus corpus = Corpus(fp, print_info=False) dtype = corpus.datatype cols = [] if dtype == 'conll': datatype_picked.set('Word') try: cols = corpus.metadata['columns'] except KeyError: pass try: subdrs = sorted([d for d in os.listdir(corpus_fullpath.get()) if os.path.isdir(os.path.join(corpus_fullpath.get(),d))]) except FileNotFoundError: subdrs = [] if len(subdrs) == 0: charttype.set('bar') pick_a_datatype['menu'].delete(0, 'end') path_to_new_unparsed_corpus.set(fp) #add_corpus_button.set('Added: "%s"' % os.path.basename(fp)) # why is it setting itself? #current_corpus.set(os.path.basename(fp)) from corpkit.process import make_name_to_query_dict exist = {'CQL': 'cql'} if 'f' in cols: exist['Trees'] = 't' exist['Stats'] = 'v' # todo: only cql for tokenised convert_name_to_query = make_name_to_query_dict(exist, cols, dtype) # allow tokenising/parsing of plaintext if not fp.endswith('-parsed') and not fp.endswith('-tokenised'): parsebut.config(state=NORMAL) tokbut.config(state=NORMAL) parse_button_text.set('Parse: %s' % os.path.basename(fp)) tokenise_button_text.set('Tokenise: %s' % current_corpus.get()) # disable tokenising and parsing of non plaintxt else: parsebut.config(state=NORMAL) tokbut.config(state=NORMAL) parse_button_text.set('Parse corpus') tokenise_button_text.set('Tokenise corpus') parsebut.config(state=DISABLED) tokbut.config(state=DISABLED) # no corefs if not fp.endswith('-parsed') and not fp.endswith('tokenised'): #pick_dep_type.config(state=DISABLED) coref_but.config(state=DISABLED) #parsebut.config(state=NORMAL) #speakcheck_build.config(state=NORMAL) interrobut_conc.config(state=DISABLED) recalc_but.config(state=DISABLED) #sensplitbut.config(state=NORMAL) pick_a_datatype.configure(state=DISABLED) interrobut.configure(state=DISABLED) interrobut_conc.config(state=DISABLED) recalc_but.config(state=DISABLED) else: interrobut_conc.config(state=NORMAL) recalc_but.config(state=NORMAL) pick_a_datatype.configure(state=NORMAL) interrobut.configure(state=NORMAL) if datatype_picked.get() not in ['Trees']: coref_but.config(state=NORMAL) interrobut_conc.config(state=DISABLED) recalc_but.config(state=DISABLED) for i in sorted(convert_name_to_query): # todo: for now --- simplifying gui! if i.lower() == 'distance from root' or i.lower().startswith('head'): continue pick_a_datatype['menu'].add_command(label=i, command=_setit(datatype_picked, i)) #parsebut.config(state=DISABLED) #speakcheck_build.config(state=DISABLED) datatype_picked.set('Word') if not fp.endswith('-tokenised') and not fp.endswith('-parsed'): pick_a_datatype['menu'].add_command(label='Word', command=_setit(datatype_picked, 'Word')) else: datatype_picked.set('Word') add_subcorpora_to_build_box(fp) note.progvar.set(0) if current_corpus.get() in list(corpus_names_and_speakers.keys()): refresh_by_metadata() #speakcheck.config(state=NORMAL) else: pass #speakcheck.config(state=DISABLED) timestring('Set corpus directory: "%s"' % fp) editf.set('Edit file: ') parse_only = [ck4, ck5, ck6, ck7, ck9, ck10, ck11, ck12, ck13, ck14, ck15, ck16] non_parsed = [ck1, ck8] if 'l' in cols: non_parsed.append(ck2) if 'p' in cols: non_parsed.append(ck3) if not current_corpus.get().endswith('-parsed'): for but in parse_only: desel_and_turn_off(but) for but in non_parsed: turnon(but) else: for but in parse_only: turnon(but) for but in non_parsed: turnon(but) if datatype_picked.get() == 'Trees': ck4.config(state=NORMAL) else: ck4.config(state=DISABLED) refresh_by_metadata() Label(interro_opt, text='Corpus/subcorpora:').grid(row=0, column=0, sticky=W) current_corpus = StringVar() current_corpus.set('Corpus') available_corpora = OptionMenu(interro_opt, current_corpus, *tuple(('Select corpus'))) available_corpora.config(width=30, state=DISABLED, justify=CENTER) current_corpus.trace("w", corpus_callback) available_corpora.grid(row=0, column=0, columnspan=2, padx=(135,0)) available_corpora_build = OptionMenu(tab0, current_corpus, *tuple(('Select corpus'))) available_corpora_build.config(width=25, justify=CENTER, state=DISABLED) available_corpora_build.grid(row=4, column=0, sticky=W) ex_additional_criteria = {} ex_anyall = StringVar() ex_anyall.set('any') ex_objs = OrderedDict() # fill it with null data for i in range(20): tmp = StringVar() tmp.set('') ex_objs[i] = [None, None, None, tmp] ex_permref = [] exclude_str = StringVar() exclude_str.set('') Label(interro_opt, text='Exclude:').grid(row=8, column=0, sticky=W, pady=(0, 10)) exclude_op = StringVar() exclude_op.set('None') exclude = OptionMenu(interro_opt, exclude_op, *['None'] + sorted(convert_name_to_query.keys())) exclude.config(width=14) exclude.grid(row=8, column=0, sticky=W, padx=(60, 0), pady=(0, 10)) qr = Entry(interro_opt, textvariable=exclude_str, width=18, state=DISABLED) qr.grid(row=8, column=0, columnspan=2, sticky=E, padx=(0,40), pady=(0, 10)) all_text_widgets.append(qr) ex_plusbut = Button(interro_opt, text='+', \ command=lambda: add_criteria(ex_objs, ex_permref, ex_anyall, ex_additional_criteria, \ exclude_op, exclude_str, title = 'Exclude from interrogation'), \ state=DISABLED) ex_plusbut.grid(row=8, column=1, sticky=E, pady=(0, 10)) #blklst = StringVar() #Label(interro_opt, text='Blacklist:').grid(row=12, column=0, sticky=W) ##blklst.set(r'^n') #blklst.set(r'') #bkbx = Entry(interro_opt, textvariable=blklst, width=22) #bkbx.grid(row=12, column=0, columnspan=2, sticky=E) #all_text_widgets.append(bkbx) def populate_metavals(evt): """ Add the values for a metadata field to the subcorpus box """ from corpkit.process import get_corpus_metadata try: wx = evt.widget except: wx = evt speaker_listbox.configure(state=NORMAL) speaker_listbox.delete(0, END) indices = wx.curselection() if wx.get(indices[0]) != 'none': speaker_listbox.insert(END, 'ALL') for index in indices: value = wx.get(index) if value == 'files': from corpkit.corpus import Corpus corp = Corpus(current_corpus.get(), print_info=False) vals = [i.name for i in corp.all_files] elif value == 'folders': from corpkit.corpus import Corpus corp = Corpus(current_corpus.get(), print_info=False) vals = [i.name for i in corp.subcorpora] elif value == 'none': vals = [] else: meta = get_corpus_metadata(corpus_fullpath.get(), generate=True) vals = meta['fields'][value] #vals = get_speaker_names_from_parsed_corpus(corpus_fullpath.get(), value) for v in vals: speaker_listbox.insert(END, v) # lemma tags #lemtags = tuple(('Off', 'Noun', 'Verb', 'Adjective', 'Adverb')) #lemtag = StringVar(root) #lemtag.set('') #Label(interro_opt, text='Result word class:').grid(row=13, column=0, columnspan=2, sticky=E, padx=(0, 120)) #lmt = OptionMenu(interro_opt, lemtag, *lemtags) #lmt.config(state=NORMAL, width=10) #lmt.grid(row=13, column=1, sticky=E) #lemtag.trace("w", d_callback) def refresh_by_metadata(*args): """ Add metadata for a corpus from dotfile to listbox """ import os if os.path.isdir(corpus_fullpath.get()): from corpkit.process import get_corpus_metadata ns = get_corpus_metadata(corpus_fullpath.get(), generate=True) ns = list(ns.get('fields', {})) #ns = corpus_names_and_speakers[os.path.basename(corpus_fullpath.get())] else: return speaker_listbox.delete(0, 'end') # figure out which list we need to add to, and which we should del from lbs = [] delfrom = [] # todo: this should be, if new corpus, delfrom... if True: lbs.append(by_met_listbox) else: delfrom.append(by_met_listbox) # add names for lb in lbs: lb.configure(state=NORMAL) lb.delete(0, END) from corpkit.corpus import Corpus corp = Corpus(current_corpus.get(), print_info=False) if corp.level == 'c': lb.insert(END, 'folders') lb.insert(END, 'files') for idz in sorted(ns): lb.insert(END, idz) lb.insert(END, 'none') # or delete names for lb in delfrom: lb.configure(state=NORMAL) lb.delete(0, END) lb.configure(state=DISABLED) by_met_listbox.selection_set(0) populate_metavals(by_met_listbox) # by metadata by_meta_scrl = Frame(interro_opt) by_meta_scrl.grid(row=1, column=0, rowspan=2, sticky='w', padx=(5,0), pady=(5, 5)) # scrollbar for the listbox by_met_bar = Scrollbar(by_meta_scrl) by_met_bar.pack(side=RIGHT, fill=Y) # listbox itself slist_height = 2 if small_screen else 6 by_met_listbox = Listbox(by_meta_scrl, selectmode=EXTENDED, width=12, height=slist_height, relief=SUNKEN, bg='#F4F4F4', yscrollcommand=by_met_bar.set, exportselection=False) by_met_listbox.pack() by_met_bar.config(command=by_met_listbox.yview) xx = by_met_listbox.bind('<>', populate_metavals) # frame to hold metadata values listbox spk_scrl = Frame(interro_opt) spk_scrl.grid(row=1, column=0, rowspan=2, columnspan=2, sticky=E, pady=(5,5)) # scrollbar for the listbox spk_sbar = Scrollbar(spk_scrl) spk_sbar.pack(side=RIGHT, fill=Y) # listbox itself speaker_listbox = Listbox(spk_scrl, selectmode=EXTENDED, width=29, height=slist_height, relief=SUNKEN, bg='#F4F4F4', yscrollcommand=spk_sbar.set, exportselection=False) speaker_listbox.pack() speaker_listbox.configure(state=DISABLED) spk_sbar.config(command=speaker_listbox.yview) # dep type #dep_types = tuple(('Basic', 'Collapsed', 'CC-processed')) #kind_of_dep = StringVar(root) #kind_of_dep.set('CC-processed') #Label(interro_opt, text='Dependency type:').grid(row=16, column=0, sticky=W) #pick_dep_type = OptionMenu(interro_opt, kind_of_dep, *dep_types) #pick_dep_type.config(state=DISABLED) #pick_dep_type.grid(row=16, column=0, sticky=W, padx=(125,0)) #kind_of_dep.trace("w", d_callback) coref = IntVar(root) coref.set(False) coref_but = Checkbutton(interro_opt, text='Count coreferents', variable=coref, onvalue=True, offvalue=False) coref_but.grid(row=6, column=1, sticky=E, pady=(5,0)) coref_but.config(state=DISABLED) # query entrytext=StringVar() Label(interro_opt, text='Query:').grid(row=4, column=0, sticky='NW', pady=(5,0)) entrytext.set(r'\b(m.n|wom.n|child(ren)?)\b') qa_height = 2 if small_screen else 6 qa = Text(interro_opt, width=40, height=qa_height, borderwidth=0.5, font=("Courier New", 14), undo=True, relief=SUNKEN, wrap=WORD, highlightthickness=0) qa.insert(END, entrytext.get()) qa.grid(row=4, column=0, columnspan=2, sticky=E, pady=(5,5), padx=(0, 4)) all_text_widgets.append(qa) additional_criteria = {} anyall = StringVar() anyall.set('all') objs = OrderedDict() # fill it with null data for i in range(20): tmp = StringVar() tmp.set('') objs[i] = [None, None, None, tmp] permref = [] def add_criteria(objs, permref, anyalltoggle, output_dict, optvar, enttext, title = "Additional criteria"): """this is a popup for adding additional search criteria. it's also used for excludes""" if title == 'Additional criteria': enttext.set(qa.get(1.0, END).strip('\n').strip()) from tkinter import Toplevel try: more_criteria = permref[0] more_criteria.deiconify() return except: pass more_criteria = Toplevel() more_criteria.geometry('+500+100') more_criteria.title(title) more_criteria.wm_attributes('-topmost', 1) total = 0 n_items = [] def quit_q(total, *args): """exit popup, saving entries""" poss_keys = [] for index, (option, optvar, entbox, entstring) in enumerate(list(objs.values())[:total]): if index == 0: enttext.set(entstring.get()) optvar.set(optvar.get()) datatype_picked.set(optvar.get()) if optvar is not None: o = convert_name_to_query.get(optvar.get(), optvar.get()) q = entstring.get().strip() q = remake_special(q, customs=custom_special_dict, case_sensitive=case_sensitive.get(), return_list=True) output_dict[o] = q # may not work on mac ... if title == 'Additional criteria': if len(list(objs.values())[:total]) > 0: plusbut.config(bg='#F4F4F4') else: plusbut.config(bg='white') else: if len(list(objs.values())[:total]) > 0: ex_plusbut.config(bg='#F4F4F4') else: ex_plusbut.config(bg='white') more_criteria.withdraw() def remove_prev(): """delete last added criteria line""" if len([k for k, v in objs.items() if v[0] is not None]) < 2: pass else: ans = 0 for k, (a, b, c, d) in reversed(list(objs.items())): if a is not None: ans = k break if objs[ans][0] is not None: objs[ans][0].destroy() optvar = objs[ans][1].get() try: del output_dict[convert_name_to_query[optvar]] except: pass objs[ans][1] = StringVar() if objs[ans][2] is not None: objs[ans][2].destroy() objs[ans][3] = StringVar() objs.pop(ans, None) def clear_q(): """clear the popup""" for optmenu, optvar, entbox, entstring in list(objs.values()): if optmenu is not None: optvar.set('Word') entstring.set('') def new_item(total, optvar, enttext, init = False): """add line to popup""" for i in n_items: i.destroy() for i in n_items: n_items.remove(i) chosen = StringVar() poss = ['None'] + sorted(convert_name_to_query.keys()) poss = [k for k in poss if not 'distance' in k.lower() and not 'head ' in k.lower()] chosen.set('Word') opt = OptionMenu(more_criteria, chosen, *poss) opt.config(width=16) t = total + 1 opt.grid(row=total, column=0, sticky=W) text_str = StringVar() text_str.set('') text=Entry(more_criteria, textvariable=text_str, width=40, font=("Courier New", 13)) all_text_widgets.append(text) text.grid(row=total, column=1) objs[total] = [opt, chosen, text, text_str] minuser = Button(more_criteria, text='-', command=remove_prev) minuser.grid(row=total + 2, column=0, sticky=W, padx=(38,0)) plusser = Button(more_criteria, text='+', command=lambda : new_item(t, optvar, enttext)) plusser.grid(row=total + 2, column=0, sticky=W) stopbut = Button(more_criteria, text='Done', command=lambda : quit_q(t)) stopbut.grid(row=total + 2, column=1, sticky=E) clearbut = Button(more_criteria, text='Clear', command=clear_q) clearbut.grid(row=total + 2, column=1, sticky=E, padx=(0, 60)) r1 = Radiobutton(more_criteria, text='Match any', variable=anyalltoggle, value= 'any') r1.grid(row=total + 2, column=0, columnspan=2, sticky=E, padx=(0,150)) r2 = Radiobutton(more_criteria, text='Match all', variable=anyalltoggle, value= 'all') r2.grid(row=total + 2, column=0, columnspan=2, sticky=E, padx=(0,250)) n_items.append(plusser) n_items.append(stopbut) n_items.append(minuser) n_items.append(clearbut) n_items.append(r1) n_items.append(r2) if init: text_str.set(enttext.get()) chosen.set(optvar.get()) minuser.config(state=DISABLED) else: minuser.config(state=NORMAL) return t if objs: for optmenu, optvar, entbox, entstring in list(objs.values()): optmenu.grid() entbox.grid() # make the first button with defaults total = new_item(total, optvar, enttext, init = True) if more_criteria not in permref: permref.append(more_criteria) plusbut = Button(interro_opt, text='+', \ command=lambda: add_criteria(objs, permref, anyall, \ additional_criteria, datatype_picked, entrytext), \ state=NORMAL) plusbut.grid(row=4, column=0, columnspan=1, padx=(25,0), pady=(10,0), sticky='w') def entry_callback(*args): """when entry is changed, add it to the textbox""" qa.config(state=NORMAL) qa.delete(1.0, END) qa.insert(END, entrytext.get()) entrytext.trace("w", entry_callback) def onselect(evt): """when an option is selected, add the example query for ngrams, add the special ngram options""" w = evt.widget index = int(w.curselection()[0]) value = w.get(index) w.see(index) #datatype_chosen_option.set(value) #datatype_listbox.select_set(index) #datatype_listbox.see(index) if qa.get(1.0, END).strip('\n').strip() in list(def_queries.values()): if qa.get(1.0, END).strip('\n').strip() not in list(qd.values()): entrytext.set(def_queries[datatype_picked.get()]) #try: # ngmsize.destroy() #except: # pass #try: # split_contract.destroy() #except: # pass # boolean interrogation arguments need fixing, right now use 0 and 1 #lem = IntVar() #lbut = Checkbutton(interro_opt, text="Lemmatise", variable=lem, onvalue=True, offvalue=False) #lbut.grid(column=0, row=8, sticky=W) #phras = IntVar() #mwbut = Checkbutton(interro_opt, text="Multiword results", variable=phras, onvalue=True, offvalue=False) #mwbut.grid(column=1, row=8, sticky=E) #tit_fil = IntVar() #tfbut = Checkbutton(interro_opt, text="Filter titles", variable=tit_fil, onvalue=True, offvalue=False) #tfbut.grid(row=9, column=0, sticky=W) case_sensitive = IntVar() tmp = Checkbutton(interro_opt, text="Case sensitive", variable=case_sensitive, onvalue=True, offvalue=False) tmp.grid(row=6, column=0, sticky=W, padx=(140,0), pady=(5,0)) no_punct = IntVar() tmp = Checkbutton(interro_opt, text="Punctuation", variable=no_punct, onvalue=False, offvalue=True) tmp.deselect() tmp.grid(row=6, column=0, sticky=W, pady=(5,0)) global ngmsize Label(interro_opt, text='N-gram size:').grid(row=5, column=0, sticky=W, padx=(220,0), columnspan=2, pady=(5,0)) ngmsize = MyOptionMenu(interro_opt, 'Size','1', '2','3','4','5','6','7','8') ngmsize.configure(width=12) ngmsize.grid(row=5, column=1, sticky=E, pady=(5,0)) #ngmsize.config(state=DISABLED) global collosize Label(interro_opt, text='Collocation window:').grid(row=5, column=0, sticky=W, pady=(5,0)) collosize = MyOptionMenu(interro_opt, 'Size','1', '2','3','4','5','6','7','8') collosize.configure(width=8) collosize.grid(row=5, column=0, sticky=W, padx=(140,0), pady=(5,0)) #collosize.config(state=DISABLED) #global split_contract #split_contract = IntVar(root) #split_contract.set(False) #split_contract_but = Checkbutton(interro_opt, text='Split contractions', variable=split_contract, onvalue=True, offvalue=False) #split_contract_but.grid(row=7, column=1, sticky=E) #Label(interro_opt, text='Spelling:').grid(row=6, column=1, sticky=E, padx=(0, 75)) #spl = MyOptionMenu(interro_opt, 'Off','UK','US') #spl.configure(width=7) #spl.grid(row=6, column=1, sticky=E, padx=(2, 0)) def desel_and_turn_off(but): pass but.config(state=NORMAL) but.deselect() but.config(state=DISABLED) def turnon(but): but.config(state=NORMAL) def callback(*args): """if the drop down list for data type changes, fill options""" #datatype_listbox.delete(0, 'end') chosen = datatype_picked.get() #lst = option_dict[chosen] #for e in lst: # datatype_listbox.insert(END, e) notree = [i for i in sorted(convert_name_to_query.keys()) if i != 'Trees'] if chosen == 'Trees': for but in [ck5, ck6, ck7, ck9, ck10, ck11, ck12, ck13, ck14, ck15, ck16, \ ck17, ck18, ck19, ck20]: desel_and_turn_off(but) for but in [ck1, ck2, ck4, ck4, ck8]: turnon(but) ck1.select() #q.config(state=DISABLED) #qr.config(state=DISABLED) #exclude.config(state=DISABLED) #sec_match.config(state=DISABLED) plusbut.config(state=DISABLED) ex_plusbut.config(state=DISABLED) elif chosen in notree: if current_corpus.get().endswith('-parsed'): for but in [ck1, ck2, ck3, ck5, ck6, ck7, ck8, ck9, ck10, \ ck11, ck12, ck13, ck14, ck15, ck16, \ ck17, ck18, ck19, ck20, \ plusbut, ex_plusbut, exclude, qr]: turnon(but) desel_and_turn_off(ck4) if chosen == 'Stats': nametext.set('features') nametexter.config(state=DISABLED) else: nametexter.config(state=NORMAL) nametext.set('untitled') if chosen == 'Stats': for but in [ck2, ck3, ck4, ck5, ck6, ck7, ck8, ck9, ck10, \ ck11, ck12, ck13, ck14, ck15, ck16]: desel_and_turn_off(but) turnon(ck1) ck1.select() ngmshows = [return_ngm, return_ngm_lemma, return_ngm_func, return_ngm_pos] #ngmsize.config(state=NORMAL) #collosize.config(state=NORMAL) #if qa.get(1.0, END).strip('\n').strip() in def_queries.values() + special_examples.values(): clean_query = qa.get(1.0, END).strip('\n').strip() acc_for_tups = [i[0] if isinstance(i, tuple) else i for i in list(def_queries.values())] if (clean_query not in list(qd.values()) and clean_query in acc_for_tups) \ or not clean_query: try: # for the life of me i don't know why some are appearing as tuples found = def_queries.get(chosen, clean_query) if isinstance(found, tuple): found = found[0] entrytext.set(found) except: pass datatype_picked = StringVar(root) Label(interro_opt, text='Search: ').grid(row=3, column=0, sticky=W, pady=10) pick_a_datatype = OptionMenu(interro_opt, datatype_picked, *sorted(convert_name_to_query.keys())) pick_a_datatype.configure(width=30, justify=CENTER) datatype_picked.set('Word') pick_a_datatype.grid(row=3, column=0, columnspan=2, sticky=W, padx=(136,0)) datatype_picked.trace("w", callback) # trees, words, functions, governors, dependents, pos, lemma, count interro_return_frm = Frame(interro_opt) Label(interro_return_frm, text=' Return', font=("Courier New", 13, "bold")).grid(row=0, column=0, sticky=E) interro_return_frm.grid(row=7, column=0, columnspan=2, sticky=W, pady=10, padx=(10,0)) Label(interro_return_frm, text=' Token', font=("Courier New", 13)).grid(row=0, column=1, sticky=E) Label(interro_return_frm, text=' Lemma', font=("Courier New", 13)).grid(row=0, column=2, sticky=E) Label(interro_return_frm, text=' POS tag', font=("Courier New", 13)).grid(row=0, column=3, sticky=E) Label(interro_return_frm, text= 'Function', font=("Courier New", 13)).grid(row=0, column=4, sticky=E) Label(interro_return_frm, text=' Match', font=("Courier New", 13)).grid(row=1, column=0, sticky=E) Label(interro_return_frm, text=' Governor', font=("Courier New", 13)).grid(row=2, column=0, sticky=E) Label(interro_return_frm, text='Dependent', font=("Courier New", 13)).grid(row=3, column=0, sticky=E) prenext_pos = StringVar(root) prenext_pos.set('Position') pick_posi_o = ('-5', '-4', '-3', '-2', '-1', '+1', '+2', '+3', '+4', '+5') pick_posi_m = OptionMenu(interro_return_frm, prenext_pos, *pick_posi_o) pick_posi_m.config(width=8) pick_posi_m.grid(row=4, column=0, sticky=E) #Label(interro_return_frm, text= 'N-gram', font=("Courier New", 13)).grid(row=4, column=0, sticky=E) Label(interro_return_frm, text=' Other', font=("Courier New", 13)).grid(row=5, column=0, sticky=E) Label(interro_return_frm, text=' Count', font=("Courier New", 13)).grid(row=5, column=1, sticky=E) Label(interro_return_frm, text=' Index', font=("Courier New", 13)).grid(row=5, column=2, sticky=E) Label(interro_return_frm, text=' Distance', font=("Courier New", 13)).grid(row=5, column=3, sticky=E) Label(interro_return_frm, text=' Tree', font=("Courier New", 13)).grid(row=5, column=4, sticky=E) return_token = StringVar() return_token.set('') ck1 = Checkbutton(interro_return_frm, variable=return_token, onvalue='w', offvalue = '') ck1.select() ck1.grid(row=1, column=1, sticky=E) def return_token_callback(*args): if datatype_picked.get() == 'Trees': if return_token.get(): for but in [ck3, ck4, ck8]: but.config(state=NORMAL) but.deselect() return_token.trace("w", return_token_callback) return_lemma = StringVar() return_lemma.set('') ck2 = Checkbutton(interro_return_frm, anchor=E, variable=return_lemma, onvalue='l', offvalue = '') ck2.grid(row=1, column=2, sticky=E) def return_lemma_callback(*args): if datatype_picked.get() == 'Trees': if return_lemma.get(): for but in [ck3, ck4, ck8]: but.config(state=NORMAL) but.deselect() lmt.configure(state=NORMAL) else: lmt.configure(state=DISABLED) return_lemma.trace("w", return_lemma_callback) return_pos = StringVar() return_pos.set('') ck3 = Checkbutton(interro_return_frm, variable=return_pos, onvalue='p', offvalue = '') ck3.grid(row=1, column=3, sticky=E) def return_pos_callback(*args): if datatype_picked.get() == 'Trees': if return_pos.get(): for but in [ck1, ck2, ck4, ck8]: but.config(state=NORMAL) but.deselect() return_pos.trace("w", return_pos_callback) return_function = StringVar() return_function.set('') ck7 = Checkbutton(interro_return_frm, variable=return_function, onvalue='f', offvalue = '') ck7.grid(row=1, column=4, sticky=E) return_tree = StringVar() return_tree.set('') ck4 = Checkbutton(interro_return_frm, anchor=E, variable=return_tree, onvalue='t', offvalue = '') ck4.grid(row=6, column=4, sticky=E) def return_tree_callback(*args): if datatype_picked.get() == 'Trees': if return_tree.get(): for but in [ck1, ck2, ck3, ck8]: but.config(state=NORMAL) but.deselect() return_tree.trace("w", return_tree_callback) return_tree.trace("w", return_tree_callback) return_index = StringVar() return_index.set('') ck5 = Checkbutton(interro_return_frm, anchor=E, variable=return_index, onvalue='i', offvalue = '') ck5.grid(row=6, column=2, sticky=E) return_distance = StringVar() return_distance.set('') ck6 = Checkbutton(interro_return_frm, anchor=E, variable=return_distance, onvalue='a', offvalue = '') ck6.grid(row=6, column=3, sticky=E) return_count = StringVar() return_count.set('') ck8 = Checkbutton(interro_return_frm, variable=return_count, onvalue='c', offvalue = '') ck8.grid(row=6, column=1, sticky=E) def countmode(*args): ngmshows = [return_ngm, return_ngm_lemma, return_ngm_func, return_ngm_pos] ngmbuts = [ck17, ck18, ck19, ck20] if any(ngmshow.get() for ngmshow in ngmshows): return if datatype_picked.get() != 'Trees': buttons = [ck1, ck2, ck3, ck4, ck5, ck6, ck7, ck9, ck10, ck11, ck12, ck13, ck14, ck15, ck16, ck17, ck18, ck19, ck20] if return_count.get() == 'c': for b in buttons: desel_and_turn_off(b) ck8.config(state=NORMAL) else: for b in buttons: b.config(state=NORMAL) callback() else: if return_count.get(): for but in [ck1, ck2, ck3, ck4]: but.config(state=NORMAL) but.deselect() return_count.trace("w", countmode) return_gov = StringVar() return_gov.set('') ck9 = Checkbutton(interro_return_frm, variable=return_gov, onvalue='gw', offvalue = '') ck9.grid(row=2, column=1, sticky=E) return_gov_lemma = StringVar() return_gov_lemma.set('') ck10 = Checkbutton(interro_return_frm, variable=return_gov_lemma, onvalue='gl', offvalue = '') ck10.grid(row=2, column=2, sticky=E) return_gov_pos = StringVar() return_gov_pos.set('') ck11 = Checkbutton(interro_return_frm, variable=return_gov_pos, onvalue='gp', offvalue = '') ck11.grid(row=2, column=3, sticky=E) return_gov_func = StringVar() return_gov_func.set('') ck12 = Checkbutton(interro_return_frm, variable=return_gov_func, onvalue='gf', offvalue = '') ck12.grid(row=2, column=4, sticky=E) return_dep = StringVar() return_dep.set('') ck13 = Checkbutton(interro_return_frm, variable=return_dep, onvalue='dw', offvalue = '') ck13.grid(row=3, column=1, sticky=E) return_dep_lemma = StringVar() return_dep_lemma.set('') ck14 = Checkbutton(interro_return_frm, variable=return_dep_lemma, onvalue='dl', offvalue = '') ck14.grid(row=3, column=2, sticky=E) return_dep_pos = StringVar() return_dep_pos.set('') ck15 = Checkbutton(interro_return_frm, variable=return_dep_pos, onvalue='dp', offvalue = '') ck15.grid(row=3, column=3, sticky=E) return_dep_func = StringVar() return_dep_func.set('') ck16 = Checkbutton(interro_return_frm, variable=return_dep_func, onvalue='df', offvalue = '') ck16.grid(row=3, column=4, sticky=E) return_ngm = StringVar() return_ngm.set('') ck17 = Checkbutton(interro_return_frm, variable=return_ngm, onvalue='w', offvalue = '') ck17.grid(row=4, column=1, sticky=E) return_ngm_lemma = StringVar() return_ngm_lemma.set('') ck18 = Checkbutton(interro_return_frm, variable=return_ngm_lemma, onvalue='l', offvalue = '') ck18.grid(row=4, column=2, sticky=E) return_ngm_pos = StringVar() return_ngm_pos.set('') ck19 = Checkbutton(interro_return_frm, variable=return_ngm_pos, onvalue='p', offvalue = '') ck19.grid(row=4, column=3, sticky=E) return_ngm_func = StringVar() return_ngm_func.set('') ck20 = Checkbutton(interro_return_frm, variable=return_ngm_func, onvalue='f', offvalue = '', state=DISABLED) ck20.grid(row=4, column=4, sticky=E) def q_callback(*args): qa.configure(state=NORMAL) qr.configure(state=NORMAL) #queries = tuple(('Off', 'Any', 'Participants', 'Processes', 'Subjects', 'Stats')) #special_queries = StringVar(root) #special_queries.set('Off') #Label(interro_opt, text='Preset:').grid(row=7, column=0, sticky=W) #pick_a_query = OptionMenu(interro_opt, special_queries, *queries) #pick_a_query.config(width=11, state=DISABLED) #pick_a_query.grid(row=7, column=0, padx=(60, 0), columnspan=2, sticky=W) #special_queries.trace("w", q_callback) # Interrogation name nametext=StringVar() nametext.set('untitled') Label(interro_opt, text='Interrogation name:').grid(row=17, column=0, sticky=W) nametexter = Entry(interro_opt, textvariable=nametext, width=15) nametexter.grid(row=17, column=1, sticky=E) all_text_widgets.append(nametexter) def show_help(kind): kindict = {'h': 'http://interrogator.github.io/corpkit/doc_help.html', 'q': 'http://interrogator.github.io/corpkit/doc_interrogate.html#trees', 't': 'http://interrogator.github.io/corpkit/doc_troubleshooting.html'} import webbrowser webbrowser.open_new(kindict[kind]) # query help, interrogate button #Button(interro_opt, text='Query help', command=query_help).grid(row=14, column=0, sticky=W) interrobut = Button(interro_opt, text='Interrogate') interrobut.config(command=lambda: runner(interrobut, do_interrogation, conc=True), state=DISABLED) interrobut.grid(row=18, column=1, sticky=E) # name to show above spreadsheet 0 i_resultname = StringVar() def change_interro_spread(*args): if name_of_interro_spreadsheet.get(): #savdict.config(state=NORMAL) updbut.config(state=NORMAL) else: #savdict.config(state=DISABLED) updbut.config(state=DISABLED) name_of_interro_spreadsheet = StringVar() name_of_interro_spreadsheet.set('') name_of_interro_spreadsheet.trace("w", change_interro_spread) i_resultname.set('Interrogation results: %s' % str(name_of_interro_spreadsheet.get())) # make spreadsheet frames for interrogate pane wdth = int(note_width * 0.50) interro_right = Frame(tab1, width=wdth) interro_right.grid(row=0, column=1, sticky=N) interro_results = Frame(interro_right, height=40, width=wdth, borderwidth=2) interro_results.grid(column=0, row=0, padx=20, pady=(20,0), sticky='N', columnspan=4) interro_totals = Frame(interro_right, height=1, width=20, borderwidth=2) interro_totals.grid(column=0, row=1, padx=20, columnspan=4) llab = Label(interro_right, textvariable=i_resultname, font=("Helvetica", 13, "bold")) llab.grid(row=0, column=0, sticky='NW', padx=20, pady=0) llab.lift() # show nothing yet update_spreadsheet(interro_results, df_to_show=None, height=450, width=wdth) update_spreadsheet(interro_totals, df_to_show=None, height=10, width=wdth) #global prev four_interro_under = Frame(interro_right, width=wdth) four_interro_under.grid(row=3, column=0, sticky='ew', padx=(20,0)) prev = Button(four_interro_under, text='Previous', command=show_prev) prev.pack(side='left', expand=True) #global nex nex = Button(four_interro_under, text='Next', command=show_next) nex.pack(side='left', expand=True, padx=(0,50)) if len(list(all_interrogations.keys())) < 2: nex.configure(state=DISABLED) prev.configure(state=DISABLED) #savdict = Button(four_interro_under, text='Save as dictionary', command=save_as_dictionary) #savdict.config(state=DISABLED) #savdict.pack(side='right', expand=True) updbut = Button(four_interro_under, text='Update interrogation', command=lambda: update_all_interrogations(pane='interrogate')) updbut.pack(side='right', expand=True) updbut.config(state=DISABLED) ############## ############## ############## ############## ############## # EDITOR TAB # # EDITOR TAB # # EDITOR TAB # # EDITOR TAB # # EDITOR TAB # ############## ############## ############## ############## ############## editor_buttons = Frame(tab2) editor_buttons.grid(row=0, column=0, sticky='NW') def do_editing(): """ What happens when you press edit """ edbut.config(state=DISABLED) import os import pandas as pd from corpkit.editor import editor # translate operation into interrogator input operation_text=opp.get() if operation_text == 'None' or operation_text == 'Select an operation': operation_text=None else: operation_text=opp.get()[0] if opp.get() == u"\u00F7": operation_text='/' if opp.get() == u"\u00D7": operation_text='*' if opp.get() == '%-diff': operation_text='d' if opp.get() == 'rel. dist.': operation_text='a' # translate dataframe2 data2 = data2_pick.get() if data2 == 'None' or data2 == '': data2 = False elif data2 == 'Self': data2 = 'self' elif data2 in ['features', 'postags', 'wordclasses']: from corpkit.corpus import Corpus corp = Corpus(current_corpus.get(), print_info=False) data2 = getattr(corp, data2_pick.get()) #todo: populate results/totals with possibilities for features etc elif data2 is not False: if df2branch.get() == 'results': try: data2 = getattr(all_interrogations[data2], df2branch.get()) except AttributeError: timestring('Denominator has no results attribute.') return elif df2branch.get() == 'totals': try: data2 = getattr(all_interrogations[data2], df2branch.get()) except AttributeError: timestring('Denominator has no totals attribute.') return if transpose.get(): try: data2 = data2.T except: pass the_data = all_interrogations[name_of_o_ed_spread.get()] if df1branch.get() == 'results': if not hasattr(the_data, 'results'): timestring('Interrogation has no results attribute.') return elif df1branch.get() == 'totals': data1 = the_data.totals if (spl_editor.var).get() == 'Off' or (spl_editor.var).get() == 'Convert spelling': spel = False else: spel = (spl_editor.var).get() # editor kwargs editor_args = {'operation': operation_text, 'dataframe2': data2, 'spelling': spel, 'sort_by': sort_trans[sort_val.get()], 'df1_always_df': True, 'root': root, 'note': note, 'packdir': rd, 'p': p_val.get()} if do_sub.get() == 'Merge': editor_args['merge_subcorpora'] = subc_sel_vals elif do_sub.get() == 'Keep': editor_args['just_subcorpora'] = subc_sel_vals elif do_sub.get() == 'Span': editor_args['span_subcorpora'] = subc_sel_vals elif do_sub.get() == 'Skip': editor_args['skip_subcorpora'] = subc_sel_vals if toreplace_string.get() != '': if replacewith_string.get() == '': replacetup = toreplace_string.get() else: replacetup = (toreplace_string.get(), replacewith_string.get()) editor_args['replace_names'] = replacetup # special query: add to this list! #if special_queries.get() != 'Off': #query = spec_quer_translate[special_queries.get()] entry_do_with = entry_regex.get() # allow list queries if entry_do_with.startswith('[') and entry_do_with.endswith(']') and ',' in entry_do_with: entry_do_with = entry_do_with.lower().lstrip('[').rstrip(']').replace("'", '').replace('"', '').replace(' ', '').split(',') else: # convert special stuff re.compile(entry_do_with) entry_do_with = remake_special(entry_do_with, customs=custom_special_dict, case_sensitive=case_sensitive.get(), return_list=True) if entry_do_with is False: return if do_with_entries.get() == 'Merge': editor_args['merge_entries'] = entry_do_with nn = newname_var.get() if nn == '': editor_args['newname'] = False elif is_number(nn): editor_args['newname'] = int(nn) else: editor_args['newname'] = nn elif do_with_entries.get() == 'Keep': editor_args['just_entries'] = entry_do_with elif do_with_entries.get() == 'Skip': editor_args['skip_entries'] = entry_do_with if new_subc_name.get() != '': editor_args['new_subcorpus_name'] = new_subc_name.get() if newname_var.get() != '': editor_args['new_subcorpus_name'] = newname_var.get() if keep_stats_setting.get() == 1: editor_args['keep_stats'] = True if rem_abv_p_set.get() == 1: editor_args['remove_above_p'] = True if just_tot_setting.get() == 1: editor_args['just_totals'] = True if keeptopnum.get() != 'all': try: numtokeep = int(keeptopnum.get()) except ValueError: timestring('Keep top n results value must be number.') return editor_args['keep_top'] = numtokeep # do editing r = the_data.edit(branch=df1branch.get(), **editor_args) if transpose.get(): try: r.results = r.results.T except: pass try: r.totals = r.totals.T except: pass if isinstance(r, str): if r == 'linregress': return if not r: timestring('Editing caused an error.') return if len(list(r.results.columns)) == 0: timestring('Editing removed all results.') return # drop over 1000? # results should now always be dataframes, so this if is redundant if isinstance(r.results, pd.DataFrame): large = [n for i, n in enumerate(list(r.results.columns)) if i > 9999] r.results.drop(large, axis=1, inplace=True) timestring('Result editing completed successfully.') # name the edit the_name = namer(edit_nametext.get(), type_of_data = 'edited') # add edit to master dict all_interrogations[the_name] = r # update edited results speadsheet name name_of_n_ed_spread.set(list(all_interrogations.keys())[-1]) editoname.set('Edited results: %s' % str(name_of_n_ed_spread.get())) # add current subcorpora to editor menu for subcl in [subc_listbox]: #subcl.configure(state=NORMAL) subcl.delete(0, 'end') for e in list(r.results.index): if e != 'tkintertable-order': subcl.insert(END, e) #subcl.configure(state=DISABLED) # update edited spreadsheets most_recent = all_interrogations[list(all_interrogations.keys())[-1]] if most_recent.results is not None: update_spreadsheet(n_editor_results, most_recent.results, height=140) update_spreadsheet(n_editor_totals, pd.DataFrame(most_recent.totals, dtype=object), height=10) # finish up refresh() # reset some buttons that the user probably wants reset opp.set('None') data2_pick.set('Self') # restore button def df2_callback(*args): try: thisdata = all_interrogations[data2_pick.get()] except KeyError: return if thisdata.results is not None: df2box.config(state=NORMAL) else: df2box.config(state=NORMAL) df2branch.set('totals') df2box.config(state=DISABLED) def df_callback(*args): """show names and spreadsheets for what is selected as result to edit also, hide the edited results section""" if selected_to_edit.get() != 'None': edbut.config(state=NORMAL) name_of_o_ed_spread.set(selected_to_edit.get()) thisdata = all_interrogations[selected_to_edit.get()] resultname.set('Results to edit: %s' % str(name_of_o_ed_spread.get())) if thisdata.results is not None: update_spreadsheet(o_editor_results, thisdata.results, height=140) df1box.config(state=NORMAL) else: df1box.config(state=NORMAL) df1branch.set('totals') df1box.config(state=DISABLED) update_spreadsheet(o_editor_results, df_to_show=None, height=140) if thisdata.totals is not None: update_spreadsheet(o_editor_totals, thisdata.totals, height=10) #df1box.config(state=NORMAL) #else: #update_spreadsheet(o_editor_totals, df_to_show=None, height=10) #df1box.config(state=NORMAL) #df1branch.set('results') #df1box.config(state=DISABLED) else: edbut.config(state=DISABLED) name_of_n_ed_spread.set('') editoname.set('Edited results: %s' % str(name_of_n_ed_spread.get())) update_spreadsheet(n_editor_results, df_to_show=None, height=140) update_spreadsheet(n_editor_totals, df_to_show=None, height=10) for subcl in [subc_listbox]: subcl.configure(state=NORMAL) subcl.delete(0, 'end') if name_of_o_ed_spread.get() != '': if thisdata.results is not None: cols = list(thisdata.results.index) else: cols = list(thisdata.totals.index) for e in cols: if e != 'tkintertable-order': subcl.insert(END, e) do_sub.set('Off') do_with_entries.set('Off') # result to edit tup = tuple([i for i in list(all_interrogations.keys())]) selected_to_edit = StringVar(root) selected_to_edit.set('None') x = Label(editor_buttons, text='To edit', font=("Helvetica", 13, "bold")) x.grid(row=0, column=0, sticky=W) dataframe1s = OptionMenu(editor_buttons, selected_to_edit, *tup) dataframe1s.config(width=25) dataframe1s.grid(row=1, column=0, columnspan=2, sticky=W) selected_to_edit.trace("w", df_callback) # DF1 branch selection df1branch = StringVar() df1branch.set('results') df1box = OptionMenu(editor_buttons, df1branch, 'results', 'totals') df1box.config(width=11, state=DISABLED) df1box.grid(row=1, column=1, sticky=E) def op_callback(*args): if opp.get() != 'None': dataframe2s.config(state=NORMAL) df2box.config(state=NORMAL) if opp.get() == 'keywords' or opp.get() == '%-diff': df2branch.set('results') elif opp.get() == 'None': dataframe2s.config(state=DISABLED) df2box.config(state=DISABLED) # operation for editor opp = StringVar(root) opp.set('None') operations = ('None', '%', u"\u00D7", u"\u00F7", '-', '+', 'combine', 'keywords', '%-diff', 'rel. dist.') Label(editor_buttons, text='Operation and denominator', font=("Helvetica", 13, "bold")).grid(row=2, column=0, sticky=W, pady=(15,0)) ops = OptionMenu(editor_buttons, opp, *operations) ops.grid(row=3, column=0, sticky=W) opp.trace("w", op_callback) # DF2 option for editor tups = tuple(['Self'] + [i for i in list(all_interrogations.keys())]) data2_pick = StringVar(root) data2_pick.set('Self') #Label(tab2, text='Denominator:').grid(row=3, column=0, sticky=W) dataframe2s = OptionMenu(editor_buttons, data2_pick, *tups) dataframe2s.config(state=DISABLED, width=16) dataframe2s.grid(row=3, column=0, columnspan=2, sticky='NW', padx=(110,0)) data2_pick.trace("w", df2_callback) # DF2 branch selection df2branch = StringVar(root) df2branch.set('totals') df2box = OptionMenu(editor_buttons, df2branch, 'results', 'totals') df2box.config(state=DISABLED, width=11) df2box.grid(row=3, column=1, sticky=E) # sort by Label(editor_buttons, text='Sort results by', font=("Helvetica", 13, "bold")).grid(row=4, column=0, sticky=W, pady=(15,0)) sort_val = StringVar(root) sort_val.set('None') poss = ['None', 'Total', 'Inverse total', 'Name','Increase', 'Decrease', 'Static', 'Turbulent', 'P value', 'Reverse'] sorts = OptionMenu(editor_buttons, sort_val, *poss) sorts.config(width=11) sorts.grid(row=4, column=1, sticky=E, pady=(15,0)) # spelling again Label(editor_buttons, text='Spelling:').grid(row=5, column=0, sticky=W, pady=(15,0)) spl_editor = MyOptionMenu(editor_buttons, 'Off','UK','US') spl_editor.grid(row=5, column=1, sticky=E, pady=(15,0)) spl_editor.configure(width=10) # keep_top Label(editor_buttons, text='Keep top results:').grid(row=6, column=0, sticky=W) keeptopnum = StringVar() keeptopnum.set('all') keeptopbox = Entry(editor_buttons, textvariable=keeptopnum, width=5) keeptopbox.grid(column=1, row=6, sticky=E) all_text_widgets.append(keeptopbox) # currently broken: just totals button just_tot_setting = IntVar() just_tot_but = Checkbutton(editor_buttons, text="Just totals", variable=just_tot_setting, state=DISABLED) #just_tot_but.select() just_tot_but.grid(column=0, row=7, sticky=W) keep_stats_setting = IntVar() keep_stat_but = Checkbutton(editor_buttons, text="Keep stats", variable=keep_stats_setting) #keep_stat_but.select() keep_stat_but.grid(column=1, row=7, sticky=E) rem_abv_p_set = IntVar() rem_abv_p_but = Checkbutton(editor_buttons, text="Remove above p", variable=rem_abv_p_set) #rem_abv_p_but.select() rem_abv_p_but.grid(column=0, row=8, sticky=W) # transpose transpose = IntVar() trans_but = Checkbutton(editor_buttons, text="Transpose", variable=transpose, onvalue=True, offvalue=False) trans_but.grid(column=1, row=8, sticky=E) # entries + entry field for regex, off, skip, keep, merge Label(editor_buttons, text='Edit entries', font=("Helvetica", 13, "bold")).grid(row=9, column=0, sticky=W, pady=(15, 0)) # edit entries regex box entry_regex = StringVar() entry_regex.set(r'.*ing$') edit_box = Entry(editor_buttons, textvariable=entry_regex, width=23, state=DISABLED, font=("Courier New", 13)) edit_box.grid(row=10, column=1, sticky=E) all_text_widgets.append(edit_box) # merge entries newname Label(editor_buttons, text='Merge name:').grid(row=11, column=0, sticky=W) newname_var = StringVar() newname_var.set('') mergen = Entry(editor_buttons, textvariable=newname_var, width=23, state=DISABLED, font=("Courier New", 13)) mergen.grid(row=11, column=1, sticky=E) all_text_widgets.append(mergen) Label(editor_buttons, text='Replace in entry names:').grid(row=12, column=0, sticky=W) Label(editor_buttons, text='Replace with:').grid(row=12, column=1, sticky=W) toreplace_string = StringVar() toreplace_string.set('') replacewith_string = StringVar() replacewith_string.set('') toreplace = Entry(editor_buttons, textvariable=toreplace_string, font=("Courier New", 13)) toreplace.grid(row=13, column=0, sticky=W) all_text_widgets.append(toreplace) replacewith = Entry(editor_buttons, textvariable=replacewith_string, font=("Courier New", 13), width=23) replacewith.grid(row=13, column=1, sticky=E) all_text_widgets.append(replacewith) def do_w_callback(*args): """if not merging entries, diable input fields""" if do_with_entries.get() != 'Off': edit_box.configure(state=NORMAL) else: edit_box.configure(state=DISABLED) if do_with_entries.get() == 'Merge': mergen.configure(state=NORMAL) else: mergen.configure(state=DISABLED) # options for editing entries do_with_entries = StringVar(root) do_with_entries.set('Off') edit_ent_op = ('Off', 'Skip', 'Keep', 'Merge') ed_op = OptionMenu(editor_buttons, do_with_entries, *edit_ent_op) ed_op.grid(row=10, column=0, sticky=W) do_with_entries.trace("w", do_w_callback) def onselect_subc(evt): """get selected subcorpora: this probably doesn't need to be a callback, as they are only needed during do_edit""" for i in subc_sel_vals: subc_sel_vals.pop() wx = evt.widget indices = wx.curselection() for index in indices: value = wx.get(index) if value not in subc_sel_vals: subc_sel_vals.append(value) def do_s_callback(*args): """hide subcorpora edit options if off""" if do_sub.get() != 'Off': pass #subc_listbox.configure(state=NORMAL) else: pass #subc_listbox.configure(state=DISABLED) if do_sub.get() == 'Merge': merge.configure(state=NORMAL) else: merge.configure(state=DISABLED) # subcorpora + optionmenu off, skip, keep Label(editor_buttons, text='Edit subcorpora', font=("Helvetica", 13, "bold")).grid(row=14, column=0, sticky=W, pady=(15,0)) edit_sub_f = Frame(editor_buttons) edit_sub_f.grid(row=14, column=1, rowspan = 5, sticky=E, pady=(20,0)) edsub_scbr = Scrollbar(edit_sub_f) edsub_scbr.pack(side=RIGHT, fill=Y) subc_listbox = Listbox(edit_sub_f, selectmode = EXTENDED, height=5, relief=SUNKEN, bg='#F4F4F4', yscrollcommand=edsub_scbr.set, exportselection=False) subc_listbox.pack(fill=BOTH) edsub_scbr.config(command=subc_listbox.yview) xx = subc_listbox.bind('<>', onselect_subc) subc_listbox.select_set(0) # subcorpora edit options do_sub = StringVar(root) do_sub.set('Off') do_with_subc = OptionMenu(editor_buttons, do_sub, *('Off', 'Skip', 'Keep', 'Merge', 'Span')) do_with_subc.grid(row=15, column=0, sticky=W) do_sub.trace("w", do_s_callback) # subcorpora merge name Label(editor_buttons, text='Merge name:').grid(row=16, column=0, sticky='NW') new_subc_name = StringVar() new_subc_name.set('') merge = Entry(editor_buttons, textvariable=new_subc_name, state=DISABLED, font=("Courier New", 13)) merge.grid(row=17, column=0, sticky='SW', pady=(0, 10)) all_text_widgets.append(merge) # name the edit edit_nametext=StringVar() edit_nametext.set('untitled') Label(editor_buttons, text='Edit name', font=("Helvetica", 13, "bold")).grid(row=19, column=0, sticky=W) msn = Entry(editor_buttons, textvariable=edit_nametext, width=18) msn.grid(row=20, column=0, sticky=W) all_text_widgets.append(msn) # edit button edbut = Button(editor_buttons, text='Edit') edbut.config(command=lambda: runner(edbut, do_editing), state=DISABLED) edbut.grid(row=20, column=1, sticky=E) def editor_spreadsheet_showing_something(*args): """if there is anything in an editor window, allow spreadsheet edit button""" if name_of_o_ed_spread.get(): upd_ed_but.config(state=NORMAL) else: upd_ed_but.config(state=DISABLED) # show spreadsheets e_wdth = int(note_width * 0.55) editor_sheets = Frame(tab2) editor_sheets.grid(column=1, row=0, sticky='NE') resultname = StringVar() name_of_o_ed_spread = StringVar() name_of_o_ed_spread.set('') name_of_o_ed_spread.trace("w", editor_spreadsheet_showing_something) resultname.set('Results to edit: %s' % str(name_of_o_ed_spread.get())) o_editor_results = Frame(editor_sheets, height=28, width=20) o_editor_results.grid(column=1, row=1, rowspan=1, padx=(20, 0), sticky=N) Label(editor_sheets, textvariable=resultname, font=("Helvetica", 13, "bold")).grid(row=0, column=1, sticky='NW', padx=(20,0)) #Label(editor_sheets, text='Totals to edit:', #font=("Helvetica", 13, "bold")).grid(row=4, #column=1, sticky=W, pady=0) o_editor_totals = Frame(editor_sheets, height=1, width=20) o_editor_totals.grid(column=1, row=1, rowspan=1, padx=(20,0), sticky=N, pady=(220,0)) update_spreadsheet(o_editor_results, df_to_show=None, height=160, width=e_wdth) update_spreadsheet(o_editor_totals, df_to_show=None, height=10, width=e_wdth) editoname = StringVar() name_of_n_ed_spread = StringVar() name_of_n_ed_spread.set('') editoname.set('Edited results: %s' % str(name_of_n_ed_spread.get())) Label(editor_sheets, textvariable=editoname, font=("Helvetica", 13, "bold")).grid(row=1, column=1, sticky='NW', padx=(20,0), pady=(290,0)) n_editor_results = Frame(editor_sheets, height=28, width=20) n_editor_results.grid(column=1, row=1, rowspan=1, sticky=N, padx=(20,0), pady=(310,0)) #Label(editor_sheets, text='Edited totals:', #font=("Helvetica", 13, "bold")).grid(row=15, #column=1, sticky=W, padx=20, pady=0) n_editor_totals = Frame(editor_sheets, height=1, width=20) n_editor_totals.grid(column=1, row=1, rowspan=1, padx=(20,0), pady=(500,0)) update_spreadsheet(n_editor_results, df_to_show=None, height=160, width=e_wdth) update_spreadsheet(n_editor_totals, df_to_show=None, height=10, width=e_wdth) # add button to update upd_ed_but = Button(editor_sheets, text='Update interrogation(s)', command=lambda: update_all_interrogations(pane='edit')) if not small_screen: upd_ed_but.grid(row=1, column=1, sticky=E, padx=(0, 40), pady=(594, 0)) else: upd_ed_but.grid(row=0, column=1, sticky='NE', padx=(20,0)) upd_ed_but.config(state=DISABLED) ################# ################# ################# ################# # VISUALISE TAB # # VISUALISE TAB # # VISUALISE TAB # # VISUALISE TAB # ################# ################# ################# ################# plot_option_frame = Frame(tab3) plot_option_frame.grid(row=0, column=0, sticky='NW') def do_plotting(): """when you press plot""" plotbut.config(state=DISABLED) # junk for showing the plot in tkinter for i in oldplotframe: i.destroy() import matplotlib matplotlib.use('TkAgg') #from numpy import arange, sin, pi from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg # implement the default mpl key bindings from matplotlib.backend_bases import key_press_handler from matplotlib.figure import Figure from corpkit.plotter import plotter if data_to_plot.get() == 'None': timestring('No data selected to plot.') return if plotbranch.get() == 'results': if all_interrogations[data_to_plot.get()].results is None: timestring('No results branch to plot.') return what_to_plot = all_interrogations[data_to_plot.get()].results elif plotbranch.get() == 'totals': if all_interrogations[data_to_plot.get()].totals is None: timestring('No totals branch to plot.') return what_to_plot = all_interrogations[data_to_plot.get()].totals if single_entry.get() != 'All': what_to_plot = what_to_plot[single_entry.get()] if single_sbcp.get() != 'All': what_to_plot = what_to_plot.ix[single_sbcp.get()] if transpose_vis.get(): if plotbranch.get() != 'totals': what_to_plot = what_to_plot.T # determine num to plot def determine_num_to_plot(num): """translate num to num_to_plot""" try: num = int(num) except: if num.lower() == 'all': num = 'all' else: num = 7 number_to_plot.set('7') return num num = determine_num_to_plot(number_to_plot.get()) the_kind = charttype.get() if the_kind == 'Type of chart': the_kind = 'line' # plotter options d = {'num_to_plot': num, 'kind': the_kind, 'indices': False} if the_kind == 'heatmap': d['robust'] = True #the_style = #if the_style == 'matplotlib': #lgd = plt.legend(handles[: the_style = False d['style'] = plot_style.get() # explode option if explbox.get() != '' and charttype.get() == 'pie': if explbox.get().startswith('[') and explbox.get().endswith(']') and ',' in explbox.get(): explval = explbox.get().lstrip('[').rstrip(']').replace("'", '').replace('"', '').replace(' ', '').split(',') else: explval = explbox.get().strip() explval = remake_special(explval, customs=custom_special_dict, case_sensitive=case_sensitive.get()) d['explode'] = explval # this code is ridiculous d['tex'] = bool(texuse.get()) d['black_and_white'] = bool(bw.get()) d['reverse_legend'] = bool(rl.get()) d['subplots'] = bool(sbplt.get()) if bool(sbplt.get()): d['layout'] = (int(lay1.get()), int(lay2.get())) d['grid'] = bool(gridv.get()) d['stacked'] = bool(stackd.get()) d['partial_pie'] = bool(part_pie.get()) d['filled'] = bool(filledvar.get()) d['logx'] = bool(log_x.get()) d['logy'] = bool(log_y.get()) if x_axis_l.get() != '': d['x_label'] = x_axis_l.get() if x_axis_l.get() == 'None': d['x_label'] = False if y_axis_l.get() != '': d['y_label'] = y_axis_l.get() if y_axis_l.get() == 'None': d['y_label'] = False d['cumulative'] = bool(cumul.get()) d['colours'] = chart_cols.get() legend_loc = legloc.get() if legend_loc == 'none': d['legend'] = False else: d['legend_pos'] = legend_loc if showtot.get() == 'legend + plot': d['show_totals'] = 'both' else: d['show_totals'] = showtot.get() d['figsize'] = (int(figsiz1.get()), int(figsiz2.get())) if len(what_to_plot.index) == 1: what_to_plot = what_to_plot.ix[what_to_plot.index[0]] if debug: print('Plotter args:', what_to_plot, plotnametext.get(), d) f = plotter(what_to_plot, plotnametext.get(), **d) # latex error #except RuntimeError as e: # s = str(e) # print(s) # split_report = s.strip().split('Here is the full report generated by LaTeX:') # try: # if len(split_report) > 0 and split_report[1] != '': # timestring('LaTeX error: %s' % split_report[1]) # except: # timestring('LaTeX error: %s' % split_report) # else: # timestring('No TeX distribution found. Disabling TeX option.') # texuse.set(0) # tbut.config(state=DISABLED) # # return timestring('%s plotted.' % plotnametext.get()) del oldplotframe[:] def getScrollingCanvas(frame): """ Adds a new canvas with scroll bars to the argument frame NB: uses grid layout return: the newly created canvas """ frame.grid(column=1, row=0, rowspan = 1, padx=(15, 15), pady=(40, 0), columnspan=3, sticky='NW') #frame.rowconfigure(0, weight=9) #frame.columnconfigure(0, weight=9) fig_frame_height = 440 if small_screen else 500 canvas = Canvas(frame, width=980, height=fig_frame_height) xScrollbar = Scrollbar(frame, orient=HORIZONTAL) yScrollbar = Scrollbar(frame) xScrollbar.pack(side=BOTTOM,fill=X) yScrollbar.pack(side=RIGHT,fill=Y) canvas.config(xscrollcommand=xScrollbar.set) xScrollbar.config(command=canvas.xview) canvas.config(yscrollcommand=yScrollbar.set) yScrollbar.config(command=canvas.yview) canvas.pack(side=LEFT,expand=True,fill=BOTH) return canvas frame_for_fig = Frame(tab3) #frame_for_fig scrollC = getScrollingCanvas(frame_for_fig) mplCanvas = FigureCanvasTkAgg(f.gcf(), frame_for_fig) mplCanvas._tkcanvas.config(highlightthickness=0) canvas = mplCanvas.get_tk_widget() canvas.pack() if frame_for_fig not in boxes: boxes.append(frame_for_fig) scrollC.create_window(0, 0, window=canvas) scrollC.config(scrollregion=scrollC.bbox(ALL)) #hbar=Scrollbar(frame_for_fig,orient=HORIZONTAL) #hbar.pack(side=BOTTOM,fill=X) #hbar.config(command=canvas.get_tk_widget().xview) #vbar=Scrollbar(frame_for_fig,orient=VERTICAL) #vbar.pack(side=RIGHT,fill=Y) #vbar.config(command=canvas.get_tk_widget().yview) ##canvas.config(width=300,height=300) #canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) #canvas.pack(side=LEFT,expand=True,fill=BOTH) try: mplCanvas.show() except RuntimeError as e: s = str(e) print(s) split_report = s.strip().split('Here is the full report generated by LaTeX:') if len(split_report) > 0 and split_report[1] != '': timestring('LaTeX error: %s' % split_report[1]) else: timestring('No TeX distribution found. Disabling TeX option.') texuse.set(0) tbut.config(state=DISABLED) return oldplotframe.append(mplCanvas.get_tk_widget()) del thefig[:] toolbar_frame = Frame(tab3, borderwidth=0) toolbar_frame.grid(row=0, column=1, columnspan=3, sticky='NW', padx=(400,0), pady=(600,0)) toolbar_frame.lift() oldplotframe.append(toolbar_frame) toolbar = NavigationToolbar2TkAgg(mplCanvas,toolbar_frame) toolbar.update() thefig.append(f.gcf()) savedplot.set('Saved image: ') images = {'the_current_fig': -1} def move(direction='forward'): import os try: from PIL import Image from PIL import ImageTk except ImportError: timestring("You need PIL/Pillow installed to do this.") return for i in oldplotframe: i.destroy() del oldplotframe[:] # maybe sort by date added? image_list = [i for i in all_images] if len(image_list) == 0: timestring('No images found in images folder.') return # figure out where we're up to if images['the_current_fig'] != -1: ind = image_list.index(images['the_current_fig']) else: ind = -1 if direction == 'forward': newind = ind + 1 else: newind = ind - 1 if newind < 1: pbut.configure(state=DISABLED) else: pbut.configure(state=NORMAL) if newind + 1 == len(image_list): nbut.configure(state=DISABLED) else: nbut.configure(state=NORMAL) imf = image_list[newind] if not imf.endswith('.png'): imf = imf + '.png' image = Image.open(os.path.join(image_fullpath.get(), imf)) image_to_measure = ImageTk.PhotoImage(image) old_height=image_to_measure.height() old_width=image_to_measure.width() def determine_new_dimensions(height, width): maxh = 500 maxw = 1000 diff = float(height) / float(width) if diff > 1: # make height max newh = maxh # figure out level of magnification prop = maxh / float(height) neww = width * prop elif diff < 1: neww = maxw prop = maxw / float(width) newh = height * prop elif diff == 1: newh = maxh neww = maxw return (int(neww), int(newh)) # calculate new dimensions newdimensions = determine_new_dimensions(old_height, old_width) # determine left padding padxright = 20 if newdimensions[0] != 1000: padxleft = ((1000 - newdimensions[0]) / 2) + 40 else: padxleft = 40 padytop = (500 - newdimensions[1]) / 2 def makezero(n): if n < 0: return 0 else: return n padxright = makezero(padxright) padxleft = makezero(padxleft) padytop = makezero(padytop) image = image.resize(newdimensions) image = ImageTk.PhotoImage(image) frm = Frame(tab3, height=500, width=1000) frm.grid(column=1, row=0, rowspan = 1, padx=(padxleft, padxright), \ pady=padytop, columnspan=3) gallframe = Label(frm, image = image, justify=CENTER) gallframe.pack(anchor='center', fill=BOTH) oldplotframe.append(frm) images[image_list[newind]] = image images['the_current_fig'] = image_list[newind] savedplot.set('Saved image: %s' % os.path.splitext(image_list[newind])[0]) timestring('Viewing %s' % os.path.splitext(image_list[newind])[0]) savedplot = StringVar() savedplot.set('View saved images: ') tmp = Label(tab3, textvariable=savedplot, font=("Helvetica", 13, "bold")) padding = 555 if small_screen else 616 tmp.grid(row=0, column=1, padx=(40,0), pady=(padding-50,0), sticky=W) pbut = Button(tab3, text='Previous', command=lambda: move(direction='back')) pbut.grid(row=0, column=1, padx=(40,0), pady=(padding, 0), sticky=W) pbut.config(state=DISABLED) nbut = Button(tab3, text='Next', command=lambda: move(direction = 'forward')) nbut.grid(row=0, column=1, padx=(160,0), pady=(padding, 0), sticky=W) nbut.config(state=DISABLED) # not in use while using the toolbar instead... #def save_current_image(): # import os # # figre out filename # filename = namer(plotnametext.get(), type_of_data = 'image') + '.png' # import sys # defaultextension = '.png' if sys.platform == 'darwin' else '' # kwarg = {'defaultextension': defaultextension, # #'filetypes': [('all files', '.*'), # #('png file', '.png')], # 'initialfile': filename} # imagedir = image_fullpath.get() # if imagedir: # kwarg['initialdir'] = imagedir # fo = tkFileDialog.asksaveasfilename(**kwarg) # if fo is None: # asksaveasfile return `None` if dialog closed with "cancel". # return # thefig[0].savefig(os.path.join(image_fullpath.get(), fo)) # timestring('%s saved to %s.' % (fo, image_fullpath.get())) # title tab Label(plot_option_frame, text='Image title:').grid(row=0, column=0, sticky='W', pady=(10, 0)) plotnametext=StringVar() plotnametext.set('Untitled') image_title_entry = Entry(plot_option_frame, textvariable=plotnametext) image_title_entry.grid(row=0, column=1, pady=(10, 0)) all_text_widgets.append(image_title_entry) def plot_callback(*args): """enable/disable based on selected dataset for plotting""" if data_to_plot.get() == 'None': plotbut.config(state=DISABLED) else: plotbut.config(state=NORMAL) try: thisdata = all_interrogations[data_to_plot.get()] except KeyError: return single_entry.set('All') single_sbcp.set('All') subdrs = sorted(set([d for d in os.listdir(corpus_fullpath.get()) \ if os.path.isdir(os.path.join(corpus_fullpath.get(),d))])) single_sbcp_optmenu.config(state=NORMAL) single_sbcp_optmenu['menu'].delete(0, 'end') single_sbcp_optmenu['menu'].add_command(label='All', command=_setit(single_sbcp, 'All')) lst = [] if len(subdrs) > 0: for c in subdrs: lst.append(c) single_sbcp_optmenu['menu'].add_command(label=c, command=_setit(single_sbcp, c)) single_entry_or_subcorpus['subcorpora'] = lst else: single_sbcp_optmenu.config(state=NORMAL) single_sbcp_optmenu['menu'].delete(0, 'end') single_sbcp_optmenu['menu'].add_command(label='All', command=_setit(single_sbcp, 'All')) single_sbcp_optmenu.config(state=DISABLED) if thisdata.results is not None: plotbox.config(state=NORMAL) single_ent_optmenu.config(state=NORMAL) single_ent_optmenu['menu'].delete(0, 'end') single_ent_optmenu['menu'].add_command(label='All', command=_setit(single_entry, 'All')) lst = [] for corp in list(thisdata.results.columns)[:200]: lst.append(corp) single_ent_optmenu['menu'].add_command(label=corp, command=_setit(single_entry, corp)) single_entry_or_subcorpus['entries'] = lst else: single_ent_optmenu.config(state=NORMAL) single_ent_optmenu['menu'].delete(0, 'end') single_ent_optmenu['menu'].add_command(label='All', command=_setit(single_entry, 'All')) single_ent_optmenu.config(state=DISABLED) plotbox.config(state=NORMAL) plotbranch.set('totals') plotbox.config(state=DISABLED) Label(plot_option_frame, text='Data to plot:').grid(row=1, column=0, sticky=W) # select result to plot data_to_plot = StringVar(root) most_recent = all_interrogations[list(all_interrogations.keys())[-1]] data_to_plot.set(most_recent) every_interrogation = OptionMenu(plot_option_frame, data_to_plot, *tuple([i for i in list(all_interrogations.keys())])) every_interrogation.config(width=20) every_interrogation.grid(column=0, row=2, sticky=W, columnspan=2) data_to_plot.trace("w", plot_callback) Label(plot_option_frame, text='Entry:').grid(row=3, column=0, sticky=W) single_entry = StringVar(root) single_entry.set('All') #most_recent = all_interrogations[all_interrogations.keys()[-1]] #single_entry.set(most_recent) single_ent_optmenu = OptionMenu(plot_option_frame, single_entry, *tuple([''])) single_ent_optmenu.config(width=20, state=DISABLED) single_ent_optmenu.grid(column=1, row=3, sticky=E) def single_entry_plot_callback(*args): """turn off things if single entry selected""" if single_entry.get() != 'All': sbpl_but.config(state=NORMAL) sbplt.set(0) sbpl_but.config(state=DISABLED) num_to_plot_box.config(state=NORMAL) number_to_plot.set('1') num_to_plot_box.config(state=DISABLED) single_sbcp_optmenu.config(state=DISABLED) entries = single_entry_or_subcorpus['entries'] if plotnametext.get() == 'Untitled' or plotnametext.get() in entries: plotnametext.set(single_entry.get()) else: plotnametext.set('Untitled') sbpl_but.config(state=NORMAL) number_to_plot.set('7') num_to_plot_box.config(state=NORMAL) single_sbcp_optmenu.config(state=NORMAL) single_entry.trace("w", single_entry_plot_callback) Label(plot_option_frame, text='Subcorpus:').grid(row=4, column=0, sticky=W) single_sbcp = StringVar(root) single_sbcp.set('All') #most_recent = all_interrogations[all_interrogations.keys()[-1]] #single_sbcp.set(most_recent) single_sbcp_optmenu = OptionMenu(plot_option_frame, single_sbcp, *tuple([''])) single_sbcp_optmenu.config(width=20, state=DISABLED) single_sbcp_optmenu.grid(column=1, row=4, sticky=E) def single_sbcp_plot_callback(*args): """turn off things if single entry selected""" if single_sbcp.get() != 'All': sbpl_but.config(state=NORMAL) sbplt.set(0) sbpl_but.config(state=DISABLED) num_to_plot_box.config(state=NORMAL) #number_to_plot.set('1') #num_to_plot_box.config(state=DISABLED) single_ent_optmenu.config(state=DISABLED) charttype.set('bar') entries = single_entry_or_subcorpus['subcorpora'] if plotnametext.get() == 'Untitled' or plotnametext.get() in entries: plotnametext.set(single_sbcp.get()) else: plotnametext.set('Untitled') sbpl_but.config(state=NORMAL) #number_to_plot.set('7') num_to_plot_box.config(state=NORMAL) single_ent_optmenu.config(state=NORMAL) charttype.set('line') single_sbcp.trace("w", single_sbcp_plot_callback) # branch selection plotbranch = StringVar(root) plotbranch.set('results') plotbox = OptionMenu(plot_option_frame, plotbranch, 'results', 'totals') #plotbox.config(state=DISABLED) plotbox.grid(row=2, column=0, sticky=E, columnspan=2) def plotbranch_callback(*args): if plotbranch.get() == 'totals': single_sbcp_optmenu.config(state=DISABLED) single_ent_optmenu.config(state=DISABLED) sbpl_but.config(state=NORMAL) sbplt.set(0) sbpl_but.config(state=DISABLED) trans_but_vis.config(state=NORMAL) transpose_vis.set(0) trans_but_vis.config(state=DISABLED) else: single_sbcp_optmenu.config(state=NORMAL) single_ent_optmenu.config(state=NORMAL) sbpl_but.config(state=NORMAL) trans_but_vis.config(state=NORMAL) plotbranch.trace('w', plotbranch_callback) # num_to_plot Label(plot_option_frame, text='Results to show:').grid(row=5, column=0, sticky=W) number_to_plot = StringVar() number_to_plot.set('7') num_to_plot_box = Entry(plot_option_frame, textvariable=number_to_plot, width=3) num_to_plot_box.grid(row=5, column=1, sticky=E) all_text_widgets.append(num_to_plot_box) def pie_callback(*args): if charttype.get() == 'pie': explbox.config(state=NORMAL) ppie_but.config(state=NORMAL) else: explbox.config(state=DISABLED) ppie_but.config(state=DISABLED) if charttype.get().startswith('bar'): #stackbut.config(state=NORMAL) filledbut.config(state=NORMAL) else: #stackbut.config(state=DISABLED) filledbut.config(state=DISABLED) # can't do log y with area according to mpl if charttype.get() == 'area': logybut.deselect() logybut.config(state=DISABLED) filledbut.config(state=NORMAL) else: logybut.config(state=NORMAL) filledbut.config(state=DISABLED) # chart type Label(plot_option_frame, text='Kind of chart').grid(row=6, column=0, sticky=W) charttype = StringVar(root) charttype.set('line') kinds_of_chart = ('line', 'bar', 'barh', 'pie', 'area', 'heatmap') chart_kind = OptionMenu(plot_option_frame, charttype, *kinds_of_chart) chart_kind.config(width=10) chart_kind.grid(row=6, column=1, sticky=E) charttype.trace("w", pie_callback) # axes Label(plot_option_frame, text='x axis label:').grid(row=7, column=0, sticky=W) x_axis_l = StringVar() x_axis_l.set('') tmp = Entry(plot_option_frame, textvariable=x_axis_l, font=("Courier New", 14), width=18) tmp.grid(row=7, column=1, sticky=E) all_text_widgets.append(tmp) Label(plot_option_frame, text='y axis label:').grid(row=8, column=0, sticky=W) y_axis_l = StringVar() y_axis_l.set('') tmp = Entry(plot_option_frame, textvariable=y_axis_l, font=("Courier New", 14), width=18) tmp.grid(row=8, column=1, sticky=E) all_text_widgets.append(tmp) tmp = Label(plot_option_frame, text='Explode:') if not small_screen: tmp.grid(row=9, column=0, sticky=W) explval = StringVar() explval.set('') explbox = Entry(plot_option_frame, textvariable=explval, font=("Courier New", 14), width=18) if not small_screen: explbox.grid(row=9, column=1, sticky=E) all_text_widgets.append(explbox) explbox.config(state=DISABLED) # log options log_x = IntVar() Checkbutton(plot_option_frame, text="Log x axis", variable=log_x).grid(column=0, row=10, sticky=W) log_y = IntVar() logybut = Checkbutton(plot_option_frame, text="Log y axis", variable=log_y, width=13) logybut.grid(column=1, row=10, sticky=E) # transpose transpose_vis = IntVar() trans_but_vis = Checkbutton(plot_option_frame, text="Transpose", variable=transpose_vis, onvalue=True, offvalue=False, width=13) trans_but_vis.grid(column=1, row=11, sticky=E) cumul = IntVar() cumulbutton = Checkbutton(plot_option_frame, text="Cumulative", variable=cumul, onvalue=True, offvalue=False) cumulbutton.grid(column=0, row=11, sticky=W) bw = IntVar() Checkbutton(plot_option_frame, text="Black and white", variable=bw, onvalue=True, offvalue=False).grid(column=0, row=12, sticky=W) texuse = IntVar() tbut = Checkbutton(plot_option_frame, text="Use TeX", variable=texuse, onvalue=True, offvalue=False, width=13) tbut.grid(column=1, row=12, sticky=E) tbut.deselect() if not py_script: tbut.config(state=DISABLED) rl = IntVar() Checkbutton(plot_option_frame, text="Reverse legend", variable=rl, onvalue=True, offvalue=False).grid(column=0, row=13, sticky=W) sbplt = IntVar() sbpl_but = Checkbutton(plot_option_frame, text="Subplots", variable=sbplt, onvalue=True, offvalue=False, width=13) sbpl_but.grid(column=1, row=13, sticky=E) def sbplt_callback(*args): """if subplots are happening, allow layout""" if sbplt.get(): lay1menu.config(state=NORMAL) lay2menu.config(state=NORMAL) else: lay1menu.config(state=DISABLED) lay2menu.config(state=DISABLED) sbplt.trace("w", sbplt_callback) gridv = IntVar() gridbut = Checkbutton(plot_option_frame, text="Grid", variable=gridv, onvalue=True, offvalue=False) gridbut.select() gridbut.grid(column=0, row=14, sticky=W) stackd = IntVar() stackbut = Checkbutton(plot_option_frame, text="Stacked", variable=stackd, onvalue=True, offvalue=False, width=13) stackbut.grid(column=1, row=14, sticky=E) #stackbut.config(state=DISABLED) part_pie = IntVar() ppie_but = Checkbutton(plot_option_frame, text="Partial pie", variable=part_pie, onvalue=True, offvalue=False) if not small_screen: ppie_but.grid(column=0, row=15, sticky=W) ppie_but.config(state=DISABLED) filledvar = IntVar() filledbut = Checkbutton(plot_option_frame, text="Filled", variable=filledvar, onvalue=True, offvalue=False, width=13) if not small_screen: filledbut.grid(column=1, row=15, sticky=E) filledbut.config(state=DISABLED) # chart type Label(plot_option_frame, text='Colour scheme:').grid(row=16, column=0, sticky=W) chart_cols = StringVar(root) schemes = tuple(sorted(('Paired', 'Spectral', 'summer', 'Set1', 'Set2', 'Set3', 'Dark2', 'prism', 'RdPu', 'YlGnBu', 'RdYlBu', 'gist_stern', 'cool', 'coolwarm', 'gray', 'GnBu', 'gist_ncar', 'gist_rainbow', 'Wistia', 'CMRmap', 'bone', 'RdYlGn', 'spring', 'terrain', 'PuBu', 'spectral', 'rainbow', 'gist_yarg', 'BuGn', 'bwr', 'cubehelix', 'Greens', 'PRGn', 'gist_heat', 'hsv', 'Pastel2', 'Pastel1', 'jet', 'gist_earth', 'copper', 'OrRd', 'brg', 'gnuplot2', 'BuPu', 'Oranges', 'PiYG', 'YlGn', 'Accent', 'gist_gray', 'flag', 'BrBG', 'Reds', 'RdGy', 'PuRd', 'Blues', 'autumn', 'ocean', 'pink', 'binary', 'winter', 'gnuplot', 'hot', 'YlOrBr', 'seismic', 'Purples', 'RdBu', 'Greys', 'YlOrRd', 'PuOr', 'PuBuGn', 'nipy_spectral', 'afmhot', 'viridis', 'magma', 'plasma', 'inferno', 'diverge', 'default'))) ch_col = OptionMenu(plot_option_frame, chart_cols, *schemes) ch_col.config(width=17) ch_col.grid(row=16, column=1, sticky=E) chart_cols.set('viridis') # style from matplotlib import style try: stys = tuple(stys.available) except: stys = tuple(('ggplot', 'fivethirtyeight', 'bmh', 'matplotlib', \ 'mpl-white', 'classic', 'seaborn-talk')) plot_style = StringVar(root) plot_style.set('ggplot') Label(plot_option_frame, text='Plot style:').grid(row=17, column=0, sticky=W) pick_a_style = OptionMenu(plot_option_frame, plot_style, *stys) pick_a_style.config(width=17) pick_a_style.grid(row=17, column=1, sticky=E) def ps_callback(*args): if plot_style.get().startswith('seaborn'): chart_cols.set('Default') ch_col.config(state=DISABLED) else: ch_col.config(state=NORMAL) plot_style.trace("w", ps_callback) # legend pos Label(plot_option_frame, text='Legend position:').grid(row=18, column=0, sticky=W) legloc = StringVar(root) legloc.set('best') locs = tuple(('best', 'upper right', 'right', 'lower right', 'lower left', 'upper left', 'middle', 'none')) loc_options = OptionMenu(plot_option_frame, legloc, *locs) loc_options.config(width=17) loc_options.grid(row=18, column=1, sticky=E) # figure size Label(plot_option_frame, text='Figure size:').grid(row=19, column=0, sticky=W) figsiz1 = StringVar(root) figsiz1.set('10') figsizes = tuple(('2', '4', '6', '8', '10', '12', '14', '16', '18')) fig1 = OptionMenu(plot_option_frame, figsiz1, *figsizes) fig1.configure(width=6) fig1.grid(row=19, column=1, sticky=W, padx=(27, 0)) Label(plot_option_frame, text="x").grid(row=19, column=1, padx=(30, 0)) figsiz2 = StringVar(root) figsiz2.set('4') fig2 = OptionMenu(plot_option_frame, figsiz2, *figsizes) fig2.configure(width=6) fig2.grid(row=19, column=1, sticky=E) # subplots layout Label(plot_option_frame, text='Subplot layout:').grid(row=20, column=0, sticky=W) lay1 = StringVar(root) lay1.set('3') figsizes = tuple([str(i) for i in range(1, 20)]) lay1menu = OptionMenu(plot_option_frame, lay1, *figsizes) lay1menu.configure(width=6) lay1menu.grid(row=20, column=1, sticky=W, padx=(27, 0)) Label(plot_option_frame, text="x").grid(row=20, column=1, padx=(30, 0)) lay2 = StringVar(root) lay2.set('3') lay2menu = OptionMenu(plot_option_frame, lay2, *figsizes) lay2menu.configure(width=6) lay2menu.grid(row=20, column=1, sticky=E) lay1menu.config(state=DISABLED) lay2menu.config(state=DISABLED) # show_totals option Label(plot_option_frame, text='Show totals: ').grid(row=21, column=0, sticky=W) showtot = StringVar(root) showtot.set('Off') showtot_options = tuple(('Off', 'legend', 'plot', 'legend + plot')) show_tot_menu = OptionMenu(plot_option_frame, showtot, *showtot_options) show_tot_menu.grid(row=21, column=1, sticky=E) # plot button plotbut = Button(plot_option_frame, text='Plot') plotbut.grid(row=22, column=1, sticky=E) plotbut.config(command=lambda: runner(plotbut, do_plotting), state=DISABLED) ################### ################### ################### ################### # CONCORDANCE TAB # # CONCORDANCE TAB # # CONCORDANCE TAB # # CONCORDANCE TAB # ################### ################### ################### ################### def add_conc_lines_to_window(data, loading=False, preserve_colour=True): import pandas as pd import re #pd.set_option('display.height', 1000) #pd.set_option('display.width', 1000) pd.set_option('display.max_colwidth', 200) import corpkit from corpkit.interrogation import Concordance if isinstance(data, Concordance): current_conc[0] = data elif isinstance(data, pd.core.frame.DataFrame): data = Concordance(data) current_conc[0] = data else: current_conc[0] = data.concordance data = data.concordance if win.get() == 'Window': window = 70 else: window = int(win.get()) fnames = show_filenames.get() them = show_themes.get() spk = show_speaker.get() subc = show_subcorpora.get() ix = show_index.get() if not fnames: data = data.drop('f', axis=1, errors='ignore') if not them: data = data.drop('t', axis=1, errors='ignore') if not spk: data = data.drop('s', axis=1, errors='ignore') if not subc: data = data.drop('c', axis=1, errors='ignore') if not ix: data = data.drop('i', axis=1, errors='ignore') if them: data = data.drop('t', axis=1, errors='ignore') themelist = get_list_of_themes(data) if any(t != '' for t in themelist): data.insert(0, 't', themelist) # only do left align when long result ... # removed because it's no big deal if always left aligned, and this # copes when people search for 'root' or something. def resize_by_window_size(df, window): import os if 'f' in list(df.columns): df['f'] = df['f'].apply(os.path.basename) df['l'] = df['l'].str.slice(start=-window, stop=None) df['l'] = df['l'].str.rjust(window) df['r'] = df['r'].str.slice(start=0, stop=window) df['r'] = df['r'].str.ljust(window) df['m'] = df['m'].str.ljust(df['m'].str.len().max()) return df moddata = resize_by_window_size(data, window) lines = moddata.to_string(header=False, index=show_df_index.get()).splitlines() #lines = [re.sub('\s*\.\.\.\s*$', '', s) for s in lines] conclistbox.delete(0, END) for line in lines: conclistbox.insert(END, line) if preserve_colour: # itemcoldict has the NUMBER and COLOUR index_regex = re.compile(r'^([0-9]+)') # make dict for NUMBER:INDEX index_dict = {} lines = conclistbox.get(0, END) for index, line in enumerate(lines): index_dict[int(re.search(index_regex, conclistbox.get(index)).group(1))] = index todel = [] for item, colour in list(itemcoldict.items()): try: conclistbox.itemconfig(index_dict[item], {'bg':colour}) except KeyError: todel.append(item) for i in todel: del itemcoldict[i] if loading: timestring('Concordances loaded.') else: timestring('Concordancing done: %d results.' % len(lines)) def delete_conc_lines(*args): if type(current_conc[0]) == str: return items = conclistbox.curselection() #current_conc[0].results.drop(current_conc[0].results.iloc[1,].name) r = current_conc[0].drop([current_conc[0].iloc[int(n),].name for n in items]) add_conc_lines_to_window(r) if len(items) == 1: timestring('%d line removed.' % len(items)) if len(items) > 1: timestring('%d lines removed.' % len(items)) global conc_saved conc_saved = False def delete_reverse_conc_lines(*args): if type(current_conc[0]) == str: return items = [int(i) for i in conclistbox.curselection()] r = current_conc[0].iloc[items,] add_conc_lines_to_window(r) conclistbox.select_set(0, END) if len(conclistbox.get(0, END)) - len(items) == 1: timestring('%d line removed.' % ((len(conclistbox.get(0, END)) - len(items)))) if len(conclistbox.get(0, END)) - len(items) > 1: timestring('%d lines removed.' % ((len(conclistbox.get(0, END)) - len(items)))) global conc_saved conc_saved = False def conc_export(data='default'): """export conc lines to csv""" import os import pandas if type(current_conc[0]) == str: timestring('Nothing to export.') return if in_a_project.get() == 0: home = os.path.expanduser("~") docpath = os.path.join(home, 'Documents') else: docpath = project_fullpath.get() if data == 'default': thedata = current_conc[0] thedata = thedata.to_csv(header = False, sep = '\t') else: thedata = all_conc[data] thedata = thedata.to_csv(header = False, sep = '\t') if sys.platform == 'darwin': the_kwargs = {'message': 'Choose a name and place for your exported data.'} else: the_kwargs = {} savepath = filedialog.asksaveasfilename(title='Save file', initialdir=exported_fullpath.get(), defaultextension='.csv', initialfile='data.csv', **the_kwargs) if savepath == '': return with open(savepath, "w") as fo: fo.write(thedata) timestring('Concordance lines exported.') global conc_saved conc_saved = False def get_list_of_colours(df): flipped_colour={v: k for k, v in list(colourdict.items())} colours = [] for i in list(df.index): # if the item has been coloured if i in list(itemcoldict.keys()): itscolour=itemcoldict[i] colournumber = flipped_colour[itscolour] # append the number of the colour code, with some corrections if colournumber == 0: colournumber = 10 if colournumber == 9: colournumber = 99 colours.append(colournumber) else: colours.append(10) return colours def get_list_of_themes(df): flipped_colour={v: k for k, v in list(colourdict.items())} themes = [] for i in list(df.index): # if the item has been coloured if i in list(itemcoldict.keys()): itscolour=itemcoldict[i] colournumber = flipped_colour[itscolour] theme = entryboxes[list(entryboxes.keys())[colournumber]].get() # append the number of the colour code, with some corrections if theme is not False and theme != '': themes.append(theme) else: themes.append('') else: themes.append('') if all(i == '' for i in themes): timestring('Warning: no scheme defined.') return themes def conc_sort(*args): """various sorting for conc, by updating dataframe""" import re import pandas import itertools sort_way = True if isinstance(current_conc[0], str): return if prev_sortval[0] == sortval.get(): # if subcorpus is the same, etc, as well sort_way = toggle() df = current_conc[0] prev_sortval[0] = sortval.get() # sorting by first column is easy, so we don't need pandas if sortval.get() == 'M1': low = [l.lower() for l in df['m']] df['tosorton'] = low elif sortval.get() == 'File': low = [l.lower() for l in df['f']] df['tosorton'] = low elif sortval.get() == 'Colour': colist = get_list_of_colours(df) df['tosorton'] = colist elif sortval.get() == 'Scheme': themelist = get_list_of_themes(df) #df.insert(1, 't', themelist) df.insert(1, 'tosorton', themelist) elif sortval.get() == 'Index' or sortval.get() == 'Sort': df = df.sort(ascending=sort_way) elif sortval.get() == 'Subcorpus': sbs = [l.lower() for l in df['c']] df['tosorton'] = sbs elif sortval.get() == 'Random': import pandas import numpy as np df = df.reindex(np.random.permutation(df.index)) elif sortval.get() == 'Speaker': try: low = [l.lower() for l in df['s']] except: timestring('No speaker information to sort by.') return df['tosorton'] = low # if sorting by other columns, however, it gets tough. else: td = {} #if 'note' in kwargs.keys(): # td['note'] = kwargs['note'] # add_nltk_data_to_nltk_path(**td) # tokenise the right part of each line # get l or r column col = sortval.get()[0].lower() tokenised = [s.split() for s in list(df[col].values)] if col == 'm': repeats = 2 else: repeats = 6 for line in tokenised: for i in range(6 - len(line)): if col == 'l': line.insert(0, '') if col == 'r': line.append('') # get 1-5 and convert it num = int(sortval.get().lstrip('LMR')) if col == 'l': num = -num if col == 'r': num = num - 1 just_sortword = [] for l in tokenised: if col != 'm': just_sortword.append(l[num].lower()) else: # horrible if len(l) == 1: just_sortword.append(l[0].lower()) elif len(l) > 1: if num == 2: just_sortword.append(l[1].lower()) elif num == -2: just_sortword.append(l[-2].lower()) elif num == -1: just_sortword.append(l[-1].lower()) # append list to df df['tosorton'] = just_sortword if sortval.get() not in ['Index', 'Random', 'Sort']: df = df.sort(['tosorton'], ascending=sort_way) df = df.drop(['tosorton'], axis=1, errors='ignore') if show_filenames.get() == 0: add_conc_lines_to_window(df.drop('f', axis=1, errors='ignore')) else: add_conc_lines_to_window(df) timestring('%d concordance lines sorted.' % len(conclistbox.get(0, END))) global conc_saved conc_saved = False def do_inflection(pos='v'): global tb from corpkit.dictionaries.process_types import get_both_spellings, add_verb_inflections # get every word all_words = [w.strip().lower() for w in tb.get(1.0, END).split()] # try to get just selection cursel = False try: lst = [w.strip().lower() for w in tb.get(SEL_FIRST, SEL_LAST).split()] cursel = True except: lst = [w.strip().lower() for w in tb.get(1.0, END).split()] lst = get_both_spellings(lst) if pos == 'v': expanded = add_verb_inflections(lst) if pos == 'n': from corpkit.inflect import pluralize expanded = [] for w in lst: expanded.append(w) pl = pluralize(w) if pl != w: expanded.append(pl) if pos == 'a': from corpkit.inflect import grade expanded = [] for w in lst: expanded.append(w) comp = grade(w, suffix = "er") if comp != w: expanded.append(comp) supe = grade(w, suffix = "est") if supe != w: expanded.append(supe) if cursel: expanded = expanded + all_words lst = sorted(set(expanded)) # delete widget text, reinsrt all tb.delete(1.0, END) for w in lst: tb.insert(END, w + '\n') def make_dict_from_existing_wordlists(): from collections import namedtuple def convert(dictionary): return namedtuple('outputnames', list(dictionary.keys()))(**dictionary) all_preset_types = {} from corpkit.dictionaries.process_types import processes from corpkit.dictionaries.roles import roles from corpkit.dictionaries.wordlists import wordlists from corpkit.other import as_regex customs = convert(custom_special_dict) special_qs = [processes, roles, wordlists] for kind in special_qs: try: types = [k for k in list(kind.__dict__.keys())] except AttributeError: types = [k for k in list(kind._asdict().keys())] for t in types: if kind == roles: all_preset_types[t.upper() + '_ROLE'] = kind._asdict()[t] else: try: all_preset_types[t.upper()] = kind.__dict__[t] except AttributeError: all_preset_types[t.upper()] = kind._asdict()[t] return all_preset_types predict = make_dict_from_existing_wordlists() for k, v in list(predict.items()): custom_special_dict[k.upper()] = v def store_wordlist(): global tb lst = [w.strip().lower() for w in tb.get(1.0, END).split()] global schemename if schemename.get() == '': timestring('Wordlist needs a name.') return specname = ''.join([i for i in schemename.get().upper() if i.isalnum() or i == '_']) if specname in list(predict.keys()): timestring('Name "%s" already taken, sorry.' % specname) return else: if specname in list(custom_special_dict.keys()): should_continue = messagebox.askyesno("Overwrite list", "Overwrite existing list named '%s'?" % specname) if not should_continue: return custom_special_dict[specname] = lst global cust_spec cust_spec.delete(0, END) for k, v in sorted(custom_special_dict.items()): cust_spec.insert(END, k) color_saved(cust_spec, colour1 = '#ccebc5', colour2 = '#fbb4ae', lists = True) timestring('LIST:%s stored to custom wordlists.' % specname) parser_opts = StringVar() speakseg = IntVar() parse_with_metadata = IntVar() tokenise_pos = IntVar() tokenise_lem = IntVar() clicked_done = IntVar() clicked_done.set(0) def parser_options(kind): """ A popup with corenlp options, to display before parsing. this is a good candidate for 'preferences' """ from tkinter import Toplevel global poptions poptions = Toplevel() poptions.title('Parser options') from collections import OrderedDict popt = OrderedDict() if kind == 'parse': tups = [('Tokenise', 'tokenize'), ('Clean XML', 'cleanxml'), ('Sentence splitting', 'ssplit'), ('POS tagging', 'pos'), ('Lemmatisation', 'lemma'), ('Named entity recognition', 'ner'), ('Parse', 'parse'), ('Referent tracking', 'dcoref')] for k, v in tups: popt[k] = v butvar = {} butbut = {} orders = {'tokenize': 0, 'cleanxml': 1, 'ssplit': 2, 'pos': 3, 'lemma': 4, 'ner': 5, 'parse': 6, 'dcoref': 7} for index, (k, v) in enumerate(popt.items()): tmp = StringVar() but = Checkbutton(poptions, text=k, variable=tmp, onvalue=v, offvalue=False) but.grid(sticky=W) if k != 'Clean XML': but.select() else: but.deselect() butbut[index] = but butvar[index] = tmp if kind == 'tokenise': Checkbutton(poptions, text='POS tag', variable=tokenise_pos, onvalue=True, offvalue=False).grid(sticky=W) Checkbutton(poptions, text='Lemmatise', variable=tokenise_lem, onvalue=True, offvalue=False).grid(sticky=W) Checkbutton(poptions, text='Speaker segmentation', variable=speakseg, onvalue=True, offvalue=False).grid(sticky=W) Checkbutton(poptions, text='XML metadata', variable=parse_with_metadata, onvalue=True, offvalue=False).grid(sticky=W) def optionspicked(*args): vals = [i.get() for i in list(butvar.values()) if i.get() is not False and i.get() != 0 and i.get() != '0'] vals = sorted(vals, key=lambda x:orders[x]) the_opts = ','.join(vals) clicked_done.set(1) poptions.destroy() parser_opts.set(the_opts) def qut(): poptions.destroy() stopbut = Button(poptions, text='Cancel', command=qut) stopbut.grid(row=15, sticky='w', padx=5) stopbut = Button(poptions, text='Done', command=optionspicked) stopbut.grid(row=15, sticky='e', padx=5) ############## ############## ############## ############## ############## # WORDLISTS # # WORDLISTS # # WORDLISTS # # WORDLISTS # # WORDLISTS # ############## ############## ############## ############## ############## def custom_lists(): """a popup for defining custom wordlists""" from tkinter import Toplevel popup = Toplevel() popup.title('Custom wordlists') popup.wm_attributes('-topmost', 1) Label(popup, text='Create wordlist', font=("Helvetica", 13, "bold")).grid(column=0, row=0) global schemename schemename = StringVar() schemename.set('') scheme_name_field = Entry(popup, textvariable=schemename, justify=CENTER, width=21, font=("Courier New", 13)) #scheme_name_field.bind('', select_all_text) scheme_name_field.grid(column=0, row=5, sticky=W, padx=(7, 0)) global tb custom_words = Frame(popup, width=9, height=40) custom_words.grid(row=1, column=0, padx=5) cwscrbar = Scrollbar(custom_words) cwscrbar.pack(side=RIGHT, fill=Y) tb = Text(custom_words, yscrollcommand=cwscrbar.set, relief=SUNKEN, bg='#F4F4F4', width=20, height=26, font=("Courier New", 13)) cwscrbar.config(command=tb.yview) bind_textfuncts_to_widgets([tb, scheme_name_field]) tb.pack(side=LEFT, fill=BOTH) tmp = Button(popup, text='Get verb inflections', command=lambda: do_inflection(pos = 'v'), width=17) tmp.grid(row=2, column=0, sticky=W, padx=(7, 0)) tmp = Button(popup, text='Get noun inflections', command=lambda: do_inflection(pos = 'n'), width=17) tmp.grid(row=3, column=0, sticky=W, padx=(7, 0)) tmp = Button(popup, text='Get adjective forms', command=lambda: do_inflection(pos = 'a'), width=17) tmp.grid(row=4, column=0, sticky=W, padx=(7, 0)) #Button(text='Inflect as noun', command=lambda: do_inflection(pos = 'n')).grid() savebut = Button(popup, text='Store', command=store_wordlist, width=17) savebut.grid(row=6, column=0, sticky=W, padx=(7, 0)) Label(popup, text='Previous wordlists', font=("Helvetica", 13, "bold")).grid(column=1, row=0, padx=15) other_custom_queries = Frame(popup, width=9, height=30) other_custom_queries.grid(row=1, column=1, padx=15) pwlscrbar = Scrollbar(other_custom_queries) pwlscrbar.pack(side=RIGHT, fill=Y) global cust_spec cust_spec = Listbox(other_custom_queries, selectmode = EXTENDED, height=24, relief=SUNKEN, bg='#F4F4F4', yscrollcommand=pwlscrbar.set, exportselection=False, width=20, font=("Courier New", 13)) pwlscrbar.config(command=cust_spec.yview) cust_spec.pack() cust_spec.delete(0, END) def colour_the_custom_queries(*args): color_saved(cust_spec, colour1 = '#ccebc5', colour2 = '#fbb4ae', lists = True) cust_spec.bind('<>', colour_the_custom_queries) for k, v in sorted(custom_special_dict.items()): cust_spec.insert(END, k) colour_the_custom_queries() def remove_this_custom_query(): global cust_spec indexes = cust_spec.curselection() for index in indexes: name = cust_spec.get(index) del custom_special_dict[name] cust_spec.delete(0, END) for k, v in sorted(custom_special_dict.items()): cust_spec.insert(END, k) color_saved(cust_spec, colour1 = '#ccebc5', colour2 = '#fbb4ae', lists = True) if len(indexes) == 1: timestring('%s forgotten.' % name) else: timestring('%d lists forgotten.' % len(indexes)) def delete_this_custom_query(): global cust_spec indexes = cust_spec.curselection() for index in indexes: name = cust_spec.get(index) if name in list(predict.keys()): timestring("%s can't be permanently deleted." % name) return del custom_special_dict[name] try: del saved_special_dict[name] except: pass dump_custom_list_json() cust_spec.delete(0, END) for k, v in sorted(custom_special_dict.items()): cust_spec.insert(END, k) color_saved(cust_spec, colour1 = '#ccebc5', colour2 = '#fbb4ae', lists = True) if len(indexes) == 1: timestring('%s permanently deleted.' % name) else: timestring('%d lists permanently deleted.' % len(indexes)) def show_this_custom_query(*args): global cust_spec index = cust_spec.curselection() if len(index) > 1: timestring("Can only show one list at a time.") return name = cust_spec.get(index) tb.delete(1.0, END) for i in custom_special_dict[name]: tb.insert(END, i + '\n') schemename.set(name) cust_spec.bind('', show_this_custom_query) def merge_this_custom_query(*args): global cust_spec indexes = cust_spec.curselection() names = [cust_spec.get(i) for i in indexes] tb.delete(1.0, END) for name in names: for i in custom_special_dict[name]: tb.insert(END, i + '\n') schemename.set('Merged') def add_custom_query_to_json(): global cust_spec indexes = cust_spec.curselection() for index in indexes: name = cust_spec.get(index) saved_special_dict[name] = custom_special_dict[name] dump_custom_list_json() color_saved(cust_spec, colour1 = '#ccebc5', colour2 = '#fbb4ae', lists = True) if len(indexes) == 1: timestring('%s saved to file.' % name) else: timestring('%d lists saved to file.' % len(indexes)) Button(popup, text='View/edit', command=show_this_custom_query, width=17).grid(column=1, row=2, sticky=E, padx=(0, 7)) Button(popup, text='Merge', command=merge_this_custom_query, width=17).grid(column=1, row=3, sticky=E, padx=(0, 7)) svb = Button(popup, text='Save', command=add_custom_query_to_json, width=17) svb.grid(column=1, row=4, sticky=E, padx=(0, 7)) if in_a_project.get() == 0: svb.config(state=DISABLED) else: svb.config(state=NORMAL) Button(popup, text='Remove', command=remove_this_custom_query, width=17).grid(column=1, row=5, sticky=E, padx=(0, 7)) Button(popup, text='Delete', command=delete_this_custom_query, width=17).grid(column=1, row=6, sticky=E, padx=(0, 7)) def have_unsaved_list(): """finds out if there is an unsaved list""" global tb lst = [w.strip().lower() for w in tb.get(1.0, END).split()] if any(lst == l for l in list(custom_special_dict.values())): return False else: return True def quit_listing(*args): if have_unsaved_list(): should_continue = messagebox.askyesno("Unsaved data", "Unsaved list will be forgotten. Continue?") if not should_continue: return popup.destroy() stopbut = Button(popup, text='Done', command=quit_listing) stopbut.grid(column=0, columnspan=2, row=7, pady=7) ############## ############## ############## ############## ############## # COLSCHEMES # # COLSCHEMES # # COLSCHEMES # # COLSCHEMES # # COLSCHEMES # ############## ############## ############## ############## ############## # a place for the toplevel entry info entryboxes = OrderedDict() # fill it with null data for i in range(10): tmp = StringVar() tmp.set('') entryboxes[i] = tmp def codingschemer(): try: global toplevel toplevel.destroy() except: pass from tkinter import Toplevel toplevel = Toplevel() toplevel.geometry('+1089+85') toplevel.title("Coding scheme") toplevel.wm_attributes('-topmost', 1) Label(toplevel, text='').grid(row=0, column=0, pady=2) def quit_coding(*args): toplevel.destroy() #Label(toplevel, text=('When concordancing, you can colour code lines using 0-9 keys. '\ # 'If you name the colours here, you can export or save the concordance lines with '\ # 'names attached.'), font=('Helvetica', 13, 'italic'), wraplength = 250, justify=LEFT).grid(row=0, column=0, columnspan=2) stopbut = Button(toplevel, text='Done', command=quit_coding) stopbut.grid(row=12, column=0, columnspan=2, pady=15) for index, colour_index in enumerate(colourdict.keys()): Label(toplevel, text='Key: %d' % colour_index).grid(row=index + 1, column=0) fore = 'black' if colour_index == 9: fore = 'white' tmp = Entry(toplevel, textvariable=entryboxes[index], bg=colourdict[colour_index], fg = fore) all_text_widgets.append(tmp) if index == 0: tmp.focus_set() tmp.grid(row=index + 1, column=1, padx=10) toplevel.bind("", quit_coding) toplevel.bind("", focus_next_window) # conc box needs to be defined up here fsize = IntVar() fsize.set(12) conc_height = 510 if small_screen else 565 cfrm = Frame(tab4, height=conc_height, width=note_width - 10) cfrm.grid(column=0, row=0, sticky='nw') cscrollbar = Scrollbar(cfrm) cscrollbarx = Scrollbar(cfrm, orient=HORIZONTAL) cscrollbar.pack(side=RIGHT, fill=Y) cscrollbarx.pack(side=BOTTOM, fill=X) conclistbox = Listbox(cfrm, yscrollcommand=cscrollbar.set, relief=SUNKEN, bg='#F4F4F4', xscrollcommand=cscrollbarx.set, height=conc_height, width=note_width - 10, font=('Courier New', fsize.get()), selectmode = EXTENDED) conclistbox.pack(fill=BOTH) cscrollbar.config(command=conclistbox.yview) cscrollbarx.config(command=conclistbox.xview) cfrm.pack_propagate(False) def dec_concfont(*args): size = fsize.get() fsize.set(size - 1) conclistbox.configure(font=('Courier New', fsize.get())) def inc_concfont(*args): size = fsize.get() fsize.set(size + 1) conclistbox.configure(font=('Courier New', fsize.get())) def select_all_conclines(*args): conclistbox.select_set(0, END) def color_conc(colour=0, *args): import re """color a conc line""" index_regex = re.compile(r'^([0-9]+)') col = colourdict[colour] if type(current_conc[0]) == str: return items = conclistbox.curselection() for index in items: conclistbox.itemconfig(index, {'bg':col}) ind = int(re.search(index_regex, conclistbox.get(index)).group(1)) itemcoldict[ind] = col conclistbox.selection_clear(0, END) conclistbox.bind("", delete_conc_lines) conclistbox.bind("", delete_reverse_conc_lines) conclistbox.bind("", conc_sort) conclistbox.bind("<%s-minus>" % key, dec_concfont) conclistbox.bind("<%s-equal>" % key, inc_concfont) conclistbox.bind("<%s-a>" % key, select_all_conclines) conclistbox.bind("<%s-s>" % key, lambda x: concsave()) conclistbox.bind("<%s-e>" % key, lambda x: conc_export()) conclistbox.bind("<%s-t>" % key, lambda x: toggle_filenames()) conclistbox.bind("<%s-A>" % key, select_all_conclines) conclistbox.bind("<%s-S>" % key, lambda x: concsave()) conclistbox.bind("<%s-E>" % key, lambda x: conc_export()) conclistbox.bind("<%s-T>" % key, lambda x: toggle_filenames()) conclistbox.bind("0", lambda x: color_conc(colour=0)) conclistbox.bind("1", lambda x: color_conc(colour=1)) conclistbox.bind("2", lambda x: color_conc(colour=2)) conclistbox.bind("3", lambda x: color_conc(colour=3)) conclistbox.bind("4", lambda x: color_conc(colour=4)) conclistbox.bind("5", lambda x: color_conc(colour=5)) conclistbox.bind("6", lambda x: color_conc(colour=6)) conclistbox.bind("7", lambda x: color_conc(colour=7)) conclistbox.bind("8", lambda x: color_conc(colour=8)) conclistbox.bind("9", lambda x: color_conc(colour=9)) conclistbox.bind("0", lambda x: color_conc(colour=0)) # these were 'generate' and 'edit', but they look ugly right now. the spaces are nice though. #lab = StringVar() #lab.set('Concordancing: %s' % os.path.basename(corpus_fullpath.get())) #Label(tab4, textvariable=lab, font=("Helvetica", 13, "bold")).grid(row=1, column=0, padx=20, pady=10, columnspan=5, sticky=W) #Label(tab4, text=' ', font=("Helvetica", 13, "bold")).grid(row=1, column=9, columnspan=2) conc_right_button_frame = Frame(tab4) conc_right_button_frame.grid(row=1, column=0, padx=(10,0), sticky='N', pady=(5, 0)) # edit conc lines conc_left_buts = Frame(conc_right_button_frame) conc_left_buts.grid(row=1, column=0, columnspan=6, sticky='W') Button(conc_left_buts, text='Delete selected', command=lambda: delete_conc_lines(), ).grid(row=0, column=0, sticky=W) Button(conc_left_buts, text='Just selected', command=lambda: delete_reverse_conc_lines(), ).grid(row=0, column=1) #Button(conc_left_buts, text='Sort', command=lambda: conc_sort()).grid(row=0, column=4) def toggle_filenames(*args): if isinstance(current_conc[0], str): return data = current_conc[0] add_conc_lines_to_window(data) def make_df_matching_screen(): import re if type(current_conc[0]) == str: return df = current_conc[0] if show_filenames.get() == 0: df = df.drop('f', axis=1, errors = 'ignore') if show_themes.get() == 0: df = df.drop('t', axis=1, errors = 'ignore') ix_to_keep = [] lines = conclistbox.get(0, END) reg = re.compile(r'^\s*([0-9]+)') for l in lines: s = re.search(reg, l) ix_to_keep.append(int(s.group(1))) df = df.ix[ix_to_keep] df = df.reindex(ix_to_keep) return df def concsave(): name = simpledialog.askstring('Concordance name', 'Choose a name for your concordance lines:') if not name or name == '': return df = make_df_matching_screen() all_conc[name] = df global conc_saved conc_saved = True refresh() def merge_conclines(): toget = prev_conc_listbox.curselection() should_continue = True global conc_saved if not conc_saved: if type(current_conc[0]) != str and len(toget) > 1: should_continue = messagebox.askyesno("Unsaved data", "Unsaved concordance lines will be forgotten. Continue?") else: should_continue = True if not should_continue: return import pandas dfs = [] if toget != (): if len(toget) < 2: for item in toget: nm = prev_conc_listbox.get(item) dfs.append(all_conc[nm]) dfs.append(current_conc[0]) #timestring('Need multiple concordances to merge.' % name) #return for item in toget: nm = prev_conc_listbox.get(item) dfs.append(all_conc[nm]) else: timestring('Nothing selected to merge.' % name) return df = pandas.concat(dfs, ignore_index = True) should_drop = messagebox.askyesno("Remove duplicates", "Remove duplicate concordance lines?") if should_drop: df = df.drop_duplicates(subset = ['l', 'm', 'r']) add_conc_lines_to_window(df) def load_saved_conc(): should_continue = True global conc_saved if not conc_saved: if type(current_conc[0]) != str: should_continue = messagebox.askyesno("Unsaved data", "Unsaved concordance lines will be forgotten. Continue?") else: should_continue = True if should_continue: toget = prev_conc_listbox.curselection() if len(toget) > 1: timestring('Only one selection allowed for load.' % name) return if toget != (): nm = prev_conc_listbox.get(toget[0]) df = all_conc[nm] add_conc_lines_to_window(df, loading=True, preserve_colour=False) else: return fourbuts = Frame(conc_right_button_frame) fourbuts.grid(row=1, column=6, columnspan=1, sticky='E') Button(fourbuts, text='Store as', command=concsave).grid(row=0, column=0) Button(fourbuts, text='Remove', command= lambda: remove_one_or_more(window='conc', kind='concordance')).grid(row=0, column=1) Button(fourbuts, text='Merge', command=merge_conclines).grid(row=0, column=2) Button(fourbuts, text='Load', command=load_saved_conc).grid(row=0, column=3) showbuts = Frame(conc_right_button_frame) showbuts.grid(row=0, column=0, columnspan=6, sticky='w') show_filenames = IntVar() fnbut = Checkbutton(showbuts, text='Filenames', variable=show_filenames, command=toggle_filenames) fnbut.grid(row=0, column=4) #fnbut.select() show_filenames.trace('w', toggle_filenames) show_subcorpora = IntVar() sbcrp = Checkbutton(showbuts, text='Subcorpora', variable=show_subcorpora, command=toggle_filenames) sbcrp.grid(row=0, column=3) sbcrp.select() show_subcorpora.trace('w', toggle_filenames) show_themes = IntVar() themebut = Checkbutton(showbuts, text='Scheme', variable=show_themes, command=toggle_filenames) themebut.grid(row=0, column=1) #themebut.select() show_themes.trace('w', toggle_filenames) show_speaker = IntVar() showspkbut = Checkbutton(showbuts, text='Speakers', variable=show_speaker, command=toggle_filenames) showspkbut.grid(row=0, column=5) #showspkbut.select() show_speaker.trace('w', toggle_filenames) show_index = IntVar() show_s_w_ix = Checkbutton(showbuts, text='Index', variable=show_index, command=toggle_filenames) #show_s_w_ix.select() show_s_w_ix.grid(row=0, column=2) show_index.trace('w', toggle_filenames) show_df_index = IntVar() indbut = Checkbutton(showbuts, text='#', variable=show_df_index, command=toggle_filenames) indbut.grid(row=0, column=0) indbut.select() # disabling because turning index off can cause problems when sorting, etc indbut.config(state=DISABLED) show_df_index.trace('w', toggle_filenames) interrobut_conc = Button(showbuts, text='Re-run') interrobut_conc.config(command=lambda: runner(interrobut_conc, do_interrogation, conc = True), state=DISABLED) interrobut_conc.grid(row=0, column=6, padx=(5,0)) annotation = False txt_var = StringVar() txt_var_r = StringVar() def annotate_corpus(): """ Allow the user to annotate the corpus """ anno_trans = {'Middle': 'm', 'Scheme': 't', 'Index': 'index', 'Colour': 'q'} def allow_text(*args): """ If the user wants to add text as value, let him/her """ if anno_dec.get() == 'Custom': txt_box_r.config(state=NORMAL) else: txt_box_r.config(state=DISABLED) def go_action(*args): """ Do annotation """ from corpkit.corpus import Corpus corp = Corpus(current_corpus.get(), print_info=False) data = current_conc[0] chosen = anno_dec.get() # add colour and scheme to df if chosen == 'Scheme': themelist = get_list_of_themes(data) if any(t != '' for t in themelist): data.insert(0, 't', themelist) elif chosen == 'Colour': colourlist = get_list_of_colours(data) if any(t != '' for t in colourlist): data.insert(0, 'q', colourlist) if chosen == 'Tag': annotation = txt_box.get() elif chosen == 'Custom': field = txt_box.get() value = txt_box_r.get() annotation = {field: value} else: field = txt_box.get() value = anno_trans.get(chosen, chosen) annotation = {field: value} if debug: print('Annotation:', annotation) corp.annotate(data, annotation, dry_run=False) timestring('Annotation done.') refresh_by_metadata() anno_pop.destroy() from tkinter import Toplevel anno_pop = Toplevel() #anno_pop.geometry('+400+40') anno_pop.title("Annotate corpus") anno_pop.wm_attributes('-topmost', 1) #Label(anno_pop, text='Annotate with:').grid(row=1, column=0, sticky=W) anno_dec = StringVar() anno_dec.set('Middle') annotype = ('Index', 'Position', 'Speaker', 'Colour', 'Scheme', 'Middle', 'Custom', 'Tag') anno_lb = OptionMenu(anno_pop, anno_dec, *annotype) anno_lb.grid(row=2, column=1, sticky=E) Label(anno_pop, text='Field:').grid(row=1, column=0) Label(anno_pop, text='Value:').grid(row=1, column=1) txt_box = Entry(anno_pop, textvariable=txt_var, width=10) all_text_widgets.append(txt_box) txt_box.grid(row=2, column=0) txt_box_r = Entry(anno_pop, textvariable=txt_var_r, width=22) txt_box_r.config(state=DISABLED) all_text_widgets.append(txt_box_r) txt_box_r.grid(row=3, columnspan=2) anno_dec.trace("w", allow_text) do_anno = Button(anno_pop, text='Annotate', command=go_action) do_anno.grid(row=4, columnspan=2) def recalc(*args): import pandas as pd name = simpledialog.askstring('New name', 'Choose a name for the data:') if not name: return else: out = current_conc[0].calculate() all_interrogations[name] = out name_of_interro_spreadsheet.set(name) i_resultname.set('Interrogation results: %s' % str(name_of_interro_spreadsheet.get())) totals_as_df = pd.DataFrame(out.totals, dtype=object) if out.results is not None: update_spreadsheet(interro_results, out.results, height=340) subs = out.results.index else: update_spreadsheet(interro_results, df_to_show=None, height=340) subs = out.totals.index update_spreadsheet(interro_totals, totals_as_df, height=10) ind = list(all_interrogations.keys()).index(name_of_interro_spreadsheet.get()) if ind == 0: prev.configure(state=DISABLED) else: prev.configure(state=NORMAL) if ind + 1 == len(list(all_interrogations.keys())): nex.configure(state=DISABLED) else: nex.configure(state=NORMAL) refresh() subc_listbox.delete(0, 'end') for e in list(subs): if e != 'tkintertable-order': subc_listbox.insert(END, e) timestring('Calculation done. "%s" created.' % name) note.change_tab(1) recalc_but = Button(showbuts, text='Calculate', command=recalc) recalc_but.config(command=recalc, state=DISABLED) recalc_but.grid(row=0, column=7, padx=(5,0)) win = StringVar() win.set('Window') wind_size = OptionMenu(conc_left_buts, win, *tuple(('Window', '20', '30', '40', '50', '60', '70', '80', '90', '100'))) wind_size.config(width=10) wind_size.grid(row=0, column=5) win.trace("w", conc_sort) # possible sort sort_vals = ('Index', 'Subcorpus', 'File', 'Speaker', 'Colour', 'Scheme', 'Random', 'L5', 'L4', 'L3', 'L2', 'L1', 'M1', 'M2', 'M-2', 'M-1', 'R1', 'R2', 'R3', 'R4', 'R5') sortval = StringVar() sortval.set('Sort') prev_sortval = ['None'] srtkind = OptionMenu(conc_left_buts, sortval, *sort_vals) srtkind.config(width=10) srtkind.grid(row=0, column=3) sortval.trace("w", conc_sort) # export to csv Button(conc_left_buts, text='Export', command=lambda: conc_export()).grid(row=0, column=6) # annotate Button(conc_left_buts, text='Annotate', command=annotate_corpus).grid(row=0, column=7) store_label = Label(conc_right_button_frame, text='Stored concordances', font=("Helvetica", 13, "bold")) prev_conc = Frame(conc_right_button_frame) prev_conc.grid(row=0, column=7, rowspan=3, columnspan=2, sticky=E, padx=(10,0), pady=(4,0)) prevcbar = Scrollbar(prev_conc) prevcbar.pack(side=RIGHT, fill=Y) prev_conc_lb_size = 20 prev_conc_listbox = Listbox(prev_conc, selectmode=EXTENDED, width=prev_conc_lb_size, height=4, relief=SUNKEN, bg='#F4F4F4', yscrollcommand=prevcbar.set, exportselection=False) prev_conc_listbox.pack() cscrollbar.config(command=prev_conc_listbox.yview) root.update() # this laziness is dynamic calculation of how far apart the left and right # button sets should be in the conc pane. i don't want to go reframing # everything, so instead, we figure out the best distance by math # width of window - width of left buttons - with of prev conc and 'stored concordances' label (approx) padd = note_width - showbuts.winfo_width() - (prev_conc.winfo_width() * 2) # for now, just a guess! if padd < 0: padd = 250 store_label.grid(row=0, column=6, sticky=E, padx=(padd,0)) ############## ############## ############## ############## ############## # MANAGE TAB # # MANAGE TAB # # MANAGE TAB # # MANAGE 'TAB' # # MANAGE TAB # ############## ############## ############## ############## ############## def make_new_project(): import os from corpkit.other import new_project reset_everything() name = simpledialog.askstring('New project', 'Choose a name for your project:') if not name: return home = os.path.expanduser("~") docpath = os.path.join(home, 'Documents') if sys.platform == 'darwin': the_kwargs = {'message': 'Choose a directory in which to create your new project'} else: the_kwargs = {} fp = filedialog.askdirectory(title = 'New project location', initialdir = docpath, **the_kwargs) if not fp: return new_proj_basepath.set('New project: "%s"' % name) new_project(name = name, loc = fp, root=root) project_fullpath.set(os.path.join(fp, name)) os.chdir(project_fullpath.get()) image_fullpath.set(os.path.join(project_fullpath.get(), 'images')) savedinterro_fullpath.set(os.path.join(project_fullpath.get(), 'saved_interrogations')) conc_fullpath.set(os.path.join(project_fullpath.get(), 'saved_concordances')) corpora_fullpath.set(os.path.join(project_fullpath.get(), 'data')) exported_fullpath.set(os.path.join(project_fullpath.get(), 'exported')) log_fullpath.set(os.path.join(project_fullpath.get(), 'logs')) addbut.config(state=NORMAL) open_proj_basepath.set('Loaded: "%s"' % name) save_config() root.title("corpkit: %s" % os.path.basename(project_fullpath.get())) #load_project(path = os.path.join(fp, name)) timestring('Project "%s" created.' % name) note.focus_on(tab0) update_available_corpora() def get_saved_results(kind='interrogation', add_to=False): from corpkit.other import load_all_results if kind == 'interrogation': datad = savedinterro_fullpath.get() elif kind == 'concordance': datad = conc_fullpath.get() elif kind == 'image': datad = image_fullpath.get() if datad == '': timestring('No project loaded.') if kind == 'image': image_list = sorted([f for f in os.listdir(image_fullpath.get()) if f.endswith('.png')]) for iname in image_list: if iname.replace('.png', '') not in all_images: all_images.append(iname.replace('.png', '')) if len(image_list) > 0: nbut.config(state=NORMAL) else: if kind == 'interrogation': r = load_all_results(data_dir=datad, root=root, note=note) else: r = load_all_results(data_dir=datad, root=root, note=note) if r is not None: for name, loaded in list(r.items()): if kind == 'interrogation': if isinstance(loaded, dict): for subname, subloaded in list(loaded.items()): all_interrogations[name + '-' + subname] = subloaded else: all_interrogations[name] = loaded else: all_conc[name] = loaded if len(list(all_interrogations.keys())) > 0: nex.configure(state=NORMAL) refresh() def recentchange(*args): """if user clicks a recent project, open it""" if recent_project.get() != '': project_fullpath.set(recent_project.get()) load_project(path=project_fullpath.get()) def projchange(*args): """if user changes projects, add to recent list and save prefs""" if project_fullpath.get() != '' and 'Contents/MacOS' not in project_fullpath.get(): in_a_project.set(1) if project_fullpath.get() not in most_recent_projects: most_recent_projects.append(project_fullpath.get()) save_tool_prefs(printout=False) #update_available_corpora() else: in_a_project.set(0) # corpus path setter savedinterro_fullpath = StringVar() savedinterro_fullpath.set('') data_basepath = StringVar() data_basepath.set('Select data directory') in_a_project = IntVar() in_a_project.set(0) project_fullpath = StringVar() project_fullpath.set(rd) project_fullpath.trace("w", projchange) recent_project = StringVar() recent_project.set('') recent_project.trace("w", recentchange) conc_fullpath = StringVar() conc_fullpath.set('') exported_fullpath = StringVar() exported_fullpath.set('') log_fullpath = StringVar() import os home = os.path.expanduser("~") try: os.makedirs(os.path.join(home, 'corpkit-logs')) except: pass log_fullpath.set(os.path.join(home, 'corpkit-logs')) image_fullpath = StringVar() image_fullpath.set('') image_basepath = StringVar() image_basepath.set('Select image directory') corpora_fullpath = StringVar() corpora_fullpath.set('') def imagedir_modified(*args): import matplotlib matplotlib.rcParams['savefig.directory'] = image_fullpath.get() image_fullpath.trace("w", imagedir_modified) def data_getdir(): import os fp = filedialog.askdirectory(title = 'Open data directory') if not fp: return savedinterro_fullpath.set(fp) data_basepath.set('Saved data: "%s"' % os.path.basename(fp)) #sel_corpus_button.set('Selected corpus: "%s"' % os.path.basename(newc)) #fs = sorted([d for d in os.listdir(fp) if os.path.isfile(os.path.join(fp, d))]) timestring('Set data directory: %s' % os.path.basename(fp)) def image_getdir(nodialog = False): import os fp = filedialog.askdirectory() if not fp: return image_fullpath.set(fp) image_basepath.set('Images: "%s"' % os.path.basename(fp)) timestring('Set image directory: %s' % os.path.basename(fp)) def save_one_or_more(kind = 'interrogation'): sel_vals = manage_listbox_vals if len(sel_vals) == 0: timestring('Nothing selected to save.') return from corpkit.other import save import os saved = 0 existing = 0 # for each filename selected for i in sel_vals: safename = urlify(i) + '.p' # make sure not already there if safename not in os.listdir(savedinterro_fullpath.get()): if kind == 'interrogation': savedata = all_interrogations[i] savedata.query.pop('root', None) savedata.query.pop('note', None) save(savedata, safename, savedir = savedinterro_fullpath.get()) else: savedata = all_conc[i] try: savedata.query.pop('root', None) savedata.query.pop('note', None) except: pass save(savedata, safename, savedir = conc_fullpath.get()) saved += 1 else: existing += 1 timestring('%s already exists in %s.' % (urlify(i), os.path.basename(savedinterro_fullpath.get()))) if saved == 1 and existing == 0: timestring('%s saved.' % sel_vals[0]) else: if existing == 0: timestring('%d %ss saved.' % (len(sel_vals), kind)) else: timestring('%d %ss saved, %d already existed' % (saved, kind, existing)) refresh() manage_callback() def remove_one_or_more(window=False, kind ='interrogation'): sel_vals = manage_listbox_vals if window is not False: toget = prev_conc_listbox.curselection() sel_vals = [prev_conc_listbox.get(toget)] if len(sel_vals) == 0: timestring('No interrogations selected.') return for i in sel_vals: try: if kind == 'interrogation': del all_interrogations[i] else: del all_conc[i] except: pass if len(sel_vals) == 1: timestring('%s removed.' % sel_vals[0]) else: timestring('%d interrogations removed.' % len(sel_vals)) if kind == 'image': refresh_images() refresh() manage_callback() def del_one_or_more(kind = 'interrogation'): sel_vals = manage_listbox_vals ext = '.p' if kind == 'interrogation': p = savedinterro_fullpath.get() elif kind == 'image': p = image_fullpath.get() ext = '.png' else: p = conc_fullpath.get() if len(sel_vals) == 0: timestring('No interrogations selected.') return import os result = messagebox.askquestion("Are You Sure?", "Permanently delete the following files:\n\n %s" % '\n '.join(sel_vals), icon='warning') if result == 'yes': for i in sel_vals: if kind == 'interrogation': del all_interrogations[i] os.remove(os.path.join(p, i + ext)) elif kind == 'concordance': del all_conc[i] os.remove(os.path.join(p, i + ext)) else: all_images.remove(i) os.remove(os.path.join(p, i + ext)) if len(sel_vals) == 1: timestring('%s deleted.' % sel_vals[0]) else: timestring('%d %ss deleted.' % (kind, len(sel_vals))) refresh() manage_callback() def urlify(s): "Turn title into filename" import re #s = s.lower() s = re.sub(r"[^\w\s-]", '', s) s = re.sub(r"\s+", '-', s) s = re.sub(r"-(textbf|emph|textsc|textit)", '-', s) return s def rename_one_or_more(kind = 'interrogation'): ext = '.p' sel_vals = manage_listbox_vals if kind == 'interrogation': p = savedinterro_fullpath.get() elif kind == 'image': p = image_fullpath.get() ext = '.png' else: p = conc_fullpath.get() if len(sel_vals) == 0: timestring('No items selected.') return import os permanently = True if permanently: perm_text='permanently ' else: perm_text='' for i in sel_vals: answer = simpledialog.askstring('Rename', 'Choose a new name for "%s":' % i, initialvalue = i) if answer is None or answer == '': return else: if kind == 'interrogation': all_interrogations[answer] = all_interrogations.pop(i) elif kind == 'image': ind = all_images.index(i) all_images.remove(i) all_images.insert(ind, answer) else: all_conc[answer] = all_conc.pop(i) if permanently: oldf = os.path.join(p, i + ext) if os.path.isfile(oldf): newf = os.path.join(p, urlify(answer) + ext) os.rename(oldf, newf) if kind == 'interrogation': if name_of_interro_spreadsheet.get() == i: name_of_interro_spreadsheet.set(answer) i_resultname.set('Interrogation results: %s' % str(answer)) #update_spreadsheet(interro_results, all_interrogations[answer].results) if name_of_o_ed_spread.get() == i: name_of_o_ed_spread.set(answer) #update_spreadsheet(o_editor_results, all_interrogations[answer].results) if name_of_n_ed_spread.get() == i: name_of_n_ed_spread.set(answer) #update_spreadsheet(n_editor_results, all_interrogations[answer].results) if kind == 'image': refresh_images() if len(sel_vals) == 1: timestring('%s %srenamed as %s.' % (sel_vals[0], perm_text, answer)) else: timestring('%d items %srenamed.' % (len(sel_vals), perm_text)) refresh() manage_callback() def export_interrogation(kind = 'interrogation'): sel_vals = manage_listbox_vals """save dataframes and options to file""" import os import pandas fp = False for i in sel_vals: answer = simpledialog.askstring('Export data', 'Choose a save name for "%s":' % i, initialvalue = i) if answer is None or answer == '': return if kind != 'interrogation': conc_export(data = i) else: data = all_interrogations[i] keys = list(data.__dict__.keys()) if in_a_project.get() == 0: if sys.platform == 'darwin': the_kwargs = {'message': 'Choose save directory for exported interrogation'} else: the_kwargs = {} fp = filedialog.askdirectory(title = 'Choose save directory', **the_kwargs) if fp == '': return else: fp = project_fullpath.get() os.makedirs(os.path.join(exported_fullpath.get(), answer)) for k in keys: if k == 'results': if data.results is not None: tkdrop = data.results.drop('tkintertable-order', errors = 'ignore') tkdrop.to_csv(os.path.join(exported_fullpath.get(), answer, 'results.csv'), sep ='\t', encoding = 'utf-8') if k == 'totals': if data.totals is not None: tkdrop = data.totals.drop('tkintertable-order', errors = 'ignore') tkdrop.to_csv(os.path.join(exported_fullpath.get(), answer, 'totals.csv'), sep ='\t', encoding = 'utf-8') if k == 'query': if getattr(data, 'query', None): pandas.DataFrame(list(data.query.values()), index = list(data.query.keys())).to_csv(os.path.join(exported_fullpath.get(), answer, 'query.csv'), sep ='\t', encoding = 'utf-8') #if k == 'table': # if 'table' in list(data.__dict__.keys()) and data.table: # pandas.DataFrame(list(data.query.values()), index = list(data.query.keys())).to_csv(os.path.join(exported_fullpath.get(), answer, 'table.csv'), sep ='\t', encoding = 'utf-8') if fp: timestring('Results exported to %s' % (os.path.join(os.path.basename(exported_fullpath.get()), answer))) def reset_everything(): # result names i_resultname.set('Interrogation results:') resultname.set('Results to edit:') editoname.set('Edited results:') savedplot.set('View saved images: ') open_proj_basepath.set('Open project') corpus_fullpath.set('') current_corpus.set('') corpora_fullpath.set('') project_fullpath.set(rd) #special_queries.set('Off') # spreadsheets update_spreadsheet(interro_results, df_to_show=None, height=340) update_spreadsheet(interro_totals, df_to_show=None, height=10) update_spreadsheet(o_editor_results, df_to_show=None, height=140) update_spreadsheet(o_editor_totals, df_to_show=None, height=10) update_spreadsheet(n_editor_results, df_to_show=None, height=140) update_spreadsheet(n_editor_totals, df_to_show=None, height=10) # interrogations for e in list(all_interrogations.keys()): del all_interrogations[e] # another way: all_interrogations.clear() # subcorpora listbox subc_listbox.delete(0, END) subc_listbox_build.delete(0, END) # concordance conclistbox.delete(0, END) # every interrogation #every_interro_listbox.delete(0, END) # every conc #ev_conc_listbox.delete(0, END) prev_conc_listbox.delete(0, END) # images #every_image_listbox.delete(0, END) every_interrogation['menu'].delete(0, 'end') #pick_subcorpora['menu'].delete(0, 'end') # speaker listboxes speaker_listbox.delete(0, 'end') #speaker_listbox_conc.delete(0, 'end') # keys for e in list(all_conc.keys()): del all_conc[e] for e in all_images: all_images.remove(e) #update_available_corpora(delete = True) refresh() def convert_speakdict_to_string(dictionary): """turn speaker info dict into a string for configparser""" if not dictionary: return 'none' out = [] for k, v in list(dictionary.items()): out.append('%s:%s' % (k, ','.join([i.replace(',', '').replace(':', '').replace(';', '') for i in v]))) if not out: return 'none' else: return ';'.join(out) def parse_speakdict(string): """turn configparser's speaker info back into a dict""" if string is 'none' or not string: return {} redict = {} corps = string.split(';') for c in corps: try: name, vals = c.split(':') except ValueError: continue vs = vals.split(',') redict[name] = vs return redict def load_custom_list_json(): import json f = os.path.join(project_fullpath.get(), 'custom_wordlists.txt') if os.path.isfile(f): data = json.loads(open(f).read()) for k, v in data.items(): if k not in list(custom_special_dict.keys()): custom_special_dict[k] = v if k not in list(saved_special_dict.keys()): saved_special_dict[k] = v def dump_custom_list_json(): import json f = os.path.join(project_fullpath.get(), 'custom_wordlists.txt') with open(f, 'w') as fo: fo.write(json.dumps(saved_special_dict)) def load_config(): """use configparser to get project settings""" import os try: import configparser except ImportError: import ConfigParser as configparser Config = configparser.ConfigParser() f = os.path.join(project_fullpath.get(), 'settings.ini') Config.read(f) # errors here plot_style.set(conmap(Config, "Visualise")['plot style']) texuse.set(conmap(Config, "Visualise")['use tex']) x_axis_l.set(conmap(Config, "Visualise")['x axis title']) chart_cols.set(conmap(Config, "Visualise")['colour scheme']) rel_corpuspath = conmap(Config, "Interrogate")['corpus path'] try: files_as_subcorpora.set(conmap(Config, "Interrogate")['treat files as subcorpora']) except KeyError: files_as_subcorpora.set(False) if rel_corpuspath: current_corpus.get(relcorpuspath) #corpus_fullpath.set(corpa) spk = conmap(Config, "Interrogate")['speakers'] corpora_speakers = parse_speakdict(spk) for i, v in list(corpora_speakers.items()): corpus_names_and_speakers[i] = v fsize.set(conmap(Config, "Concordance")['font size']) # window setting causes conc_sort to run, causing problems. #win.set(conmap(Config, "Concordance")['window']) #kind_of_dep.set(conmap(Config, 'Interrogate')['dependency type']) #conc_kind_of_dep.set(conmap(Config, "Concordance")['dependency type']) cods = conmap(Config, "Concordance")['coding scheme'] if cods is None: for _, val in list(entryboxes.items()): val.set('') else: codsep = cods.split(',') for (box, val), cod in zip(list(entryboxes.items()), codsep): val.set(cod) if corpus_fullpath.get(): subdrs = [d for d in os.listdir(corpus_fullpath.get()) if os.path.isdir(os.path.join(corpus_fullpath.get(),d))] else: subdrs = [] if len(subdrs) == 0: charttype.set('bar') refresh() def load_project(path=False): import os if path is False: if sys.platform == 'darwin': the_kwargs = {'message': 'Choose project directory'} else: the_kwargs = {} fp = filedialog.askdirectory(title='Open project', **the_kwargs) else: fp = os.path.abspath(path) if not fp or fp == '': return reset_everything() image_fullpath.set(os.path.join(fp, 'images')) savedinterro_fullpath.set(os.path.join(fp, 'saved_interrogations')) conc_fullpath.set(os.path.join(fp, 'saved_concordances')) exported_fullpath.set(os.path.join(fp, 'exported')) corpora_fullpath.set(os.path.join(fp, 'data')) log_fullpath.set(os.path.join(fp, 'logs')) if not os.path.isdir(savedinterro_fullpath.get()): timestring('Selected folder does not contain corpkit project.') return project_fullpath.set(fp) f = os.path.join(project_fullpath.get(), 'settings.ini') if os.path.isfile(f): load_config() os.chdir(fp) list_of_corpora = update_available_corpora() addbut.config(state=NORMAL) get_saved_results(kind='interrogation') get_saved_results(kind='concordance') get_saved_results(kind='image') open_proj_basepath.set('Loaded: "%s"' % os.path.basename(fp)) # reset tool: root.title("corpkit: %s" % os.path.basename(fp)) # check for parsed corpora if not current_corpus.get(): parsed_corp = [d for d in list_of_corpora if d.endswith('-parsed')] # select first = False if len(parsed_corp) > 0: first = parsed_corp[0] if first: corpus_fullpath.set(os.path.abspath(first)) name = make_corpus_name_from_abs(project_fullpath.get(), first) current_corpus.set(name) else: corpus_fullpath.set('') # no corpora, so go to build... note.focus_on(tab0) if corpus_fullpath.get() != '': try: subdrs = sorted([d for d in os.listdir(corpus_fullpath.get()) if os.path.isdir(os.path.join(corpus_fullpath.get(),d))]) except FileNotFoundError: subdrs = [] else: subdrs = [] #lab.set('Concordancing: %s' % corpus_name) #pick_subcorpora['menu'].delete(0, 'end') #if len(subdrs) > 0: # pick_subcorpora['menu'].add_command(label='all', command=_setit(subc_pick, 'all')) # pick_subcorpora.config(state=NORMAL) # for choice in subdrs: # pick_subcorpora['menu'].add_command(label=choice, command=_setit(subc_pick, choice)) #else: # pick_subcorpora.config(state=NORMAL) # pick_subcorpora['menu'].add_command(label='None', command=_setit(subc_pick, 'None')) # pick_subcorpora.config(state=DISABLED) timestring('Project "%s" opened.' % os.path.basename(fp)) note.progvar.set(0) #if corpus_name in list(corpus_names_and_speakers.keys()): refresh_by_metadata() #speakcheck.config(state=NORMAL) #else: # pass #speakcheck.config(state=DISABLED) load_custom_list_json() def view_query(kind=False): if len(manage_listbox_vals) == 0: return if len(manage_listbox_vals) > 1: timestring('Can only view one interrogation at a time.') return global frame_to_the_right frame_to_the_right = Frame(manage_pop) frame_to_the_right.grid(column=2, row=0, rowspan = 6) Label(frame_to_the_right, text='Query information', font=("Helvetica", 13, "bold")).grid(sticky=W, row=0, column=0, padx=(10,0)) mlb = Table(frame_to_the_right, ['Option', 'Value'], column_weights=[1, 1], height=70, width=30) mlb.grid(sticky=N, column=0, row=1) for i in mlb._mlb.listboxes: i.config(height=29) mlb.columnconfig('Option', background='#afa') mlb.columnconfig('Value', background='#efe') q_dict = dict(all_interrogations[manage_listbox_vals[0]].query) mlb.clear() #show_query_vals.delete(0, 'end') flipped_trans = {v: k for k, v in list(transdict.items())} for d in ['dataframe1', 'dataframe2']: q_dict.pop(d, None) for k, v in sorted(q_dict.items()): try: if isinstance(v, (int, float)) and v == 0: v = '0' if v is None: v == 'None' if not v: v = 'False' if v is True: v = 'True' # could be bad with threshold etc if v == 1: v = 'True' except: pass mlb.append([k, v]) if q_dict.get('query'): qubox = Text(frame_to_the_right, font=("Courier New", 14), relief=SUNKEN, wrap=WORD, width=40, height=5, undo=True) qubox.grid(column=0, row=2, rowspan = 1, padx=(10,0)) qubox.delete(1.0, END) qubox.insert(END, q_dict['query']) manage_box['qubox'] = qubox bind_textfuncts_to_widgets([qubox]) else: try: manage_box['qubox'].destroy() except: pass manage_listbox_vals = [] def onselect_manage(evt): # remove old vals for i in manage_listbox_vals: manage_listbox_vals.pop() wx = evt.widget indices = wx.curselection() for index in indices: value = wx.get(index) if value not in manage_listbox_vals: manage_listbox_vals.append(value) new_proj_basepath = StringVar() new_proj_basepath.set('New project') open_proj_basepath = StringVar() open_proj_basepath.set('Open project') the_current_kind = StringVar() def manage_popup(): from tkinter import Toplevel global manage_pop manage_pop = Toplevel() manage_pop.geometry('+400+40') manage_pop.title("Manage data: %s" % os.path.basename(project_fullpath.get())) manage_pop.wm_attributes('-topmost', 1) manage_what = StringVar() manage_what.set('Manage: ') #Label(manage_pop, textvariable=manage_what).grid(row=0, column=0, sticky='W', padx=(5, 0)) manag_frame = Frame(manage_pop, height=30) manag_frame.grid(column=0, row=1, rowspan = 1, columnspan=2, sticky='NW', padx=10) manage_scroll = Scrollbar(manag_frame) manage_scroll.pack(side=RIGHT, fill=Y) manage_listbox = Listbox(manag_frame, selectmode = SINGLE, height=30, width=30, relief=SUNKEN, bg='#F4F4F4', yscrollcommand=manage_scroll.set, exportselection=False) manage_listbox.pack(fill=BOTH) manage_listbox.select_set(0) manage_scroll.config(command=manage_listbox.yview) xx = manage_listbox.bind('<>', onselect_manage) # default: w option manage_listbox.select_set(0) the_current_kind.set('interrogation') #gtsv = StringVar() #gtsv.set('Get saved') #getbut = Button(manage_pop, textvariable=gtsv, command=lambda: get_saved_results(), width=22) #getbut.grid(row=2, column=0, columnspan=2) manage_type = StringVar() manage_type.set('Interrogations') #Label(manage_pop, text='Save selected: ').grid(sticky=E, row=6, column=1) savebut = Button(manage_pop, text='Save', command=lambda: save_one_or_more(kind = the_current_kind.get())) savebut.grid(padx=15, sticky=W, column=0, row=3) viewbut = Button(manage_pop, text='View', command=lambda: view_query(kind = the_current_kind.get())) viewbut.grid(padx=15, sticky=W, column=0, row=4) renamebut = Button(manage_pop, text='Rename', command=lambda: rename_one_or_more(kind = the_current_kind.get())) renamebut.grid(padx=15, sticky=W, column=0, row=5) #Checkbutton(manage_pop, text="Permanently", variable=perm, onvalue=True, offvalue=False).grid(column=1, row=16, padx=15, sticky=W) exportbut = Button(manage_pop, text='Export', command=lambda: export_interrogation(kind = the_current_kind.get())) exportbut.grid(padx=15, sticky=E, column=1, row=3) #Label(manage_pop, text='Remove selected: '()).grid(padx=15, sticky=W, row=4, column=0) removebut = Button(manage_pop, text='Remove', command= lambda: remove_one_or_more(kind = the_current_kind.get())) removebut.grid(padx=15, sticky=E, column=1, row=4) #Label(manage_pop, text='Delete selected: '()).grid(padx=15, sticky=E, row=5, column=1) deletebut = Button(manage_pop, text='Delete', command=lambda: del_one_or_more(kind = the_current_kind.get())) deletebut.grid(padx=15, sticky=E, column=1, row=5) to_manage = OptionMenu(manage_pop, manage_type, *tuple(('Interrogations', 'Concordances', 'Images'))) to_manage.config(width=32, justify=CENTER) to_manage.grid(row=0, column=0, columnspan=2) def managed(*args): #vals = [i.get() for i in butvar.values() if i.get() is not False and i.get() != 0 and i.get() != '0'] #vals = sorted(vals, key=lambda x:orders[x]) #the_opts = ','.join(vals)] manage_pop.destroy() try: del manage_callback except: pass global manage_callback def manage_callback(*args): import os """show correct listbox, enable disable buttons below""" # set text #manage_what.set('Manage %s' % manage_type.get().lower()) #gtsv.set('Get saved %s' % manage_type.get().lower()) # set correct action for buttons the_current_kind.set(manage_type.get().lower().rstrip('s')) #get_saved_results(kind = the_current_kind.get()) # enable all buttons #getbut.config(state=NORMAL) #try: savebut.config(state=NORMAL) viewbut.config(state=NORMAL) renamebut.config(state=NORMAL) exportbut.config(state=NORMAL) removebut.config(state=NORMAL) deletebut.config(state=NORMAL) manage_listbox.delete(0, 'end') if the_current_kind.get() == 'interrogation': the_path = savedinterro_fullpath.get() the_ext = '.p' list_of_entries = list(all_interrogations.keys()) elif the_current_kind.get() == 'concordance': the_path = conc_fullpath.get() the_ext = '.p' list_of_entries = list(all_conc.keys()) viewbut.config(state=DISABLED) try: frame_to_the_right.destroy() except: pass elif the_current_kind.get() == 'image': the_path = image_fullpath.get() the_ext = '.png' refresh_images() list_of_entries = all_images viewbut.config(state=DISABLED) savebut.config(state=DISABLED) exportbut.config(state=DISABLED) removebut.config(state=DISABLED) try: frame_to_the_right.destroy() except: pass for datum in list_of_entries: manage_listbox.insert(END, datum) color_saved(manage_listbox, the_path, '#ccebc5', '#fbb4ae', ext = the_ext) manage_type.trace("w", manage_callback) manage_type.set('Interrogations') ############## ############## ############## ############## ############## # BUILD TAB # # BUILD TAB # # BUILD TAB # # BUILD TAB # # BUILD TAB # ############## ############## ############## ############## ############## from corpkit.build import download_large_file, get_corpus_filepaths, \ check_jdk, parse_corpus, move_parsed_files, corenlp_exists def create_tokenised_text(): from corpkit.corpus import Corpus note.progvar.set(0) parser_options('tokenise') root.wait_window(poptions) if not clicked_done.get(): return #tokbut.config(state=DISABLED) #tokbut = Button(tab0, textvariable=tokenise_button_text, command=ignore, width=33) #tokbut.grid(row=6, column=0, sticky=W) unparsed_corpus_path = corpus_fullpath.get() #filelist, _ = get_corpus_filepaths(project_fullpath.get(), unparsed_corpus_path) corp = Corpus(unparsed_corpus_path, print_info=False) parsed = corp.tokenise(postag=tokenise_pos, lemmatise=tokenise_lem, root=root, stdout=sys.stdout, note=note, nltk_data_path=nltk_data_path, speaker_segmentation=speakseg.get(), metadata=parse_with_metadata.get()) #corpus_fullpath.set(outdir) outdir = parsed.path current_corpus.set(parsed.name) subdrs = [d for d in os.listdir(corpus_fullpath.get()) if os.path.isdir(os.path.join(corpus_fullpath.get(),d))] if len(subdrs) == 0: charttype.set('bar') #basepath.set(os.path.basename(outdir)) #if len([f for f in os.listdir(outdir) if f.endswith('.p')]) > 0: timestring('Corpus parsed and ready to interrogate: "%s"' % os.path.basename(outdir)) #else: #timestring('Error: no files created in "%s"' % os.path.basename(outdir)) update_available_corpora() def create_parsed_corpus(): import os import re import corpkit from corpkit.corpus import Corpus from corpkit.process import get_corenlp_path parser_options('parse') root.wait_window(poptions) if not clicked_done.get(): return unparsed_corpus_path = corpus_fullpath.get() unparsed = Corpus(unparsed_corpus_path, print_info=False) note.progvar.set(0) unparsed_corpus_path = corpus_fullpath.get() corenlppath.set(get_corenlp_path(corenlppath.get())) if not corenlppath.get() or corenlppath.get() == 'None': downstall_nlp = messagebox.askyesno("CoreNLP not found.", "CoreNLP parser not found. Download/install it?") if not downstall_nlp: timestring('Cannot parse data without Stanford CoreNLP.') return jdk = check_jdk() if jdk is False: downstall_jdk = messagebox.askyesno("Java JDK", "You need Java JDK 1.8 to use CoreNLP.\n\nHit 'yes' to open web browser at download link. Once installed, corpkit should resume automatically") if downstall_jdk: import webbrowser webbrowser.open_new('http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html') import time timestring('Waiting for Java JDK 1.8 installation to complete.') while jdk is False: jdk = check_jdk() timestring('Waiting for Java JDK 1.8 installation to complete.') time.sleep(5) else: timestring('Cannot parse data without Java JDK 1.8.') return parsed = unparsed.parse(speaker_segmentation=speakseg.get(), proj_path=project_fullpath.get(), copula_head=True, multiprocess=False, corenlppath=corenlppath.get(), operations=parser_opts.get(), root=root, stdout=sys.stdout, note=note, memory_mb=parser_memory.get(), metadata=parse_with_metadata.get()) if not parsed: print('Error during parsing.') sys.stdout = note.redir current_corpus.set(parsed.name) subdrs = [d for d in os.listdir(corpus_fullpath.get()) if \ os.path.isdir(os.path.join(corpus_fullpath.get(), d))] if len(subdrs) == 0: charttype.set('bar') update_available_corpora() timestring('Corpus parsed and ready to interrogate: "%s"' % parsed.name) parse_button_text=StringVar() parse_button_text.set('Create parsed corpus') tokenise_button_text=StringVar() tokenise_button_text.set('Create tokenised corpus') path_to_new_unparsed_corpus = StringVar() path_to_new_unparsed_corpus.set('') add_corpus = StringVar() add_corpus.set('') add_corpus_button = StringVar() add_corpus_button.set('Add corpus%s' % add_corpus.get()) selected_corpus_has_no_subcorpora = IntVar() selected_corpus_has_no_subcorpora.set(0) def add_subcorpora_to_build_box(path_to_corpus): if not path_to_corpus: return import os subc_listbox_build.configure(state=NORMAL) subc_listbox_build.delete(0, 'end') sub_corpora = [d for d in os.listdir(path_to_corpus) if os.path.isdir(os.path.join(path_to_corpus, d))] if len(sub_corpora) == 0: selected_corpus_has_no_subcorpora.set(1) subc_listbox_build.bind('<>', onselect_subc_build) subc_listbox_build.insert(END, 'No subcorpora found.') subc_listbox_build.configure(state=DISABLED) else: selected_corpus_has_no_subcorpora.set(0) for e in sub_corpora: subc_listbox_build.insert(END, e) onselect_subc_build() def select_corpus(): """selects corpus for viewing/parsing ---not used anymore""" from os.path import join as pjoin from os.path import basename as bn #parse_button_text.set('Parse: "%s"' % bn(unparsed_corpus_path)) tokenise_button_text.set('Tokenise: "%s"' % bn(unparsed_corpus_path)) path_to_new_unparsed_corpus.set(unparsed_corpus_path) #add_corpus_button.set('Added: %s' % bn(unparsed_corpus_path)) where_to_put_corpus = pjoin(project_fullpath.get(), 'data') sel_corpus.set(unparsed_corpus_path) #sel_corpus_button.set('Selected: "%s"' % bn(unparsed_corpus_path)) parse_button_text.set('Parse: "%s"' % bn(unparsed_corpus_path)) add_subcorpora_to_build_box(unparsed_corpus_path) timestring('Selected corpus: "%s"' % bn(unparsed_corpus_path)) def getcorpus(): """copy unparsed texts to project folder""" import shutil import os from corpkit.process import saferead home = os.path.expanduser("~") docpath = os.path.join(home, 'Documents') if sys.platform == 'darwin': the_kwargs = {'message': 'Select your corpus of unparsed text files.'} else: the_kwargs = {} fp = filedialog.askdirectory(title = 'Path to unparsed corpus', initialdir = docpath, **the_kwargs) where_to_put_corpus = os.path.join(project_fullpath.get(), 'data') newc = os.path.join(where_to_put_corpus, os.path.basename(fp)) try: shutil.copytree(fp, newc) timestring('Corpus copied to project folder.') except OSError: if os.path.basename(fp) == '': return timestring('"%s" already exists in project.' % os.path.basename(fp)) return from corpkit.build import folderise, can_folderise if can_folderise(newc): do_folderise = messagebox.askyesno("No subcorpora found", "Your corpus contains multiple files, but no subfolders. " \ "Would you like to treat each file as a subcorpus?") if do_folderise: folderise(newc) timestring('Turned files into subcorpora.') # encode and rename files for (rootdir, d, fs) in os.walk(newc): for f in fs: fpath = os.path.join(rootdir, f) data, enc = saferead(fpath) from corpkit.constants import OPENER, PYTHON_VERSION with OPENER(fpath, "w") as f: if PYTHON_VERSION == 2: f.write(data.encode('utf-8', errors='ignore')) else: f.write(data) # rename file #dname = '-' + os.path.basename(rootdir) #newname = fpath.replace('.txt', dname + '.txt') #shutil.move(fpath, newname) path_to_new_unparsed_corpus.set(newc) add_corpus_button.set('Added: "%s"' % os.path.basename(fp)) current_corpus.set(os.path.basename(fp)) #sel_corpus.set(newc) #sel_corpus_button.set('Selected corpus: "%s"' % os.path.basename(newc)) timestring('Corpus copied to project folder.') parse_button_text.set('Parse: %s' % os.path.basename(newc)) tokenise_button_text.set('Tokenise: "%s"' % os.path.basename(newc)) add_subcorpora_to_build_box(newc) update_available_corpora() timestring('Selected corpus for viewing/parsing: "%s"' % os.path.basename(newc)) Label(tab0, text='Project', font=("Helvetica", 13, "bold")).grid(sticky=W, row=0, column=0) #Label(tab0, text='New project', font=("Helvetica", 13, "bold")).grid(sticky=W, row=0, column=0) Button(tab0, textvariable=new_proj_basepath, command=make_new_project, width=24).grid(row=1, column=0, sticky=W) #Label(tab0, text='Open project: ').grid(row=2, column=0, sticky=W) Button(tab0, textvariable=open_proj_basepath, command=load_project, width=24).grid(row=2, column=0, sticky=W) #Label(tab0, text='Add corpus to project: ').grid(row=4, column=0, sticky=W) addbut = Button(tab0, textvariable=add_corpus_button, width=24, state=DISABLED) addbut.grid(row=3, column=0, sticky=W) addbut.config(command=lambda: runner(addbut, getcorpus)) #Label(tab0, text='Corpus to parse: ').grid(row=6, column=0, sticky=W) #Button(tab0, textvariable=sel_corpus_button, command=select_corpus, width=24).grid(row=4, column=0, sticky=W) #Label(tab0, text='Parse: ').grid(row=8, column=0, sticky=W) #speakcheck_build = Checkbutton(tab0, text="Speaker segmentation", variable=speakseg, state=DISABLED) #speakcheck_build.grid(column=0, row=5, sticky=W) parsebut = Button(tab0, textvariable=parse_button_text, width=24, state=DISABLED) parsebut.grid(row=5, column=0, sticky=W) parsebut.config(command=lambda: runner(parsebut, create_parsed_corpus)) #Label(tab0, text='Parse: ').grid(row=8, column=0, sticky=W) tokbut = Button(tab0, textvariable=tokenise_button_text, width=24, state=DISABLED) tokbut.grid(row=6, column=0, sticky=W) tokbut.config(command=lambda: runner(tokbut, create_tokenised_text)) def onselect_subc_build(evt = False): """get selected subcorpus, delete editor, show files in subcorpus""" import os if evt: # should only be one for i in subc_sel_vals_build: subc_sel_vals_build.pop() wx = evt.widget indices = wx.curselection() for index in indices: value = wx.get(index) if value not in subc_sel_vals_build: subc_sel_vals_build.append(value) # return for false click if len(subc_sel_vals_build) == 0 and selected_corpus_has_no_subcorpora.get() == 0: return # destroy editor and canvas if possible for ob in list(buildbits.values()): try: ob.destroy() except: pass f_view.configure(state=NORMAL) f_view.delete(0, 'end') newp = path_to_new_unparsed_corpus.get() if selected_corpus_has_no_subcorpora.get() == 0: newsub = os.path.join(newp, subc_sel_vals_build[0]) else: newsub = newp fs = [f for f in os.listdir(newsub) if f.endswith('.txt') \ or f.endswith('.xml') \ or f.endswith('.conll') \ or f.endswith('.conllu')] for e in fs: f_view.insert(END, e) if selected_corpus_has_no_subcorpora.get() == 0: f_in_s.set('Files in subcorpus: %s' % subc_sel_vals_build[0]) else: f_in_s.set('Files in corpus: %s' % os.path.basename(path_to_new_unparsed_corpus.get())) # a listbox of subcorpora Label(tab0, text='Subcorpora', font=("Helvetica", 13, "bold")).grid(row=7, column=0, sticky=W) height = 21 if small_screen else 24 build_sub_f = Frame(tab0, width=24, height=height) build_sub_f.grid(row=8, column=0, sticky=W, rowspan = 2, padx=(8,0)) build_sub_sb = Scrollbar(build_sub_f) build_sub_sb.pack(side=RIGHT, fill=Y) subc_listbox_build = Listbox(build_sub_f, selectmode = SINGLE, height=height, state=DISABLED, relief=SUNKEN, bg='#F4F4F4', yscrollcommand=build_sub_sb.set, exportselection=False, width=24) subc_listbox_build.pack(fill=BOTH) xxy = subc_listbox_build.bind('<>', onselect_subc_build) subc_listbox_build.select_set(0) build_sub_sb.config(command=subc_listbox_build.yview) def show_a_tree(evt): """get selected file and show in file view""" import os from nltk import Tree from nltk.tree import ParentedTree from nltk.draw.util import CanvasFrame from nltk.draw import TreeWidget sbox = buildbits['sentsbox'] sent = sentdict[int(sbox.curselection()[0])] t = ParentedTree.fromstring(sent) # make a frame attached to tab0 #cf = CanvasFrame(tab0, width=200, height=200) cf = Canvas(tab0, width=800, height=400, bd=5) buildbits['treecanvas'] = cf cf.grid(row=5, column=2, rowspan = 11, padx=(0,0)) if cf not in boxes: boxes.append(cf) # draw the tree and send to the frame's canvas tc = TreeWidget(cf, t, draggable=1, node_font=('helvetica', -10, 'bold'), leaf_font=('helvetica', -10, 'italic'), roof_fill='white', roof_color='black', leaf_color='green4', node_color='blue2') tc.bind_click_trees(tc.toggle_collapsed) def select_all_editor(*args): """not currently using, but might be good for select all""" editor = buildbits['editor'] editor.tag_add(SEL, "1.0", END) editor.mark_set(INSERT, "1.0") editor.see(INSERT) return 'break' def onselect_f(evt): """get selected file and show in file view""" for box in boxes: try: box.destroy() except: pass import os # should only be one for i in chosen_f: chosen_f.pop() wx = evt.widget indices = wx.curselection() for index in indices: value = wx.get(index) if value not in chosen_f: chosen_f.append(value) if len(chosen_f) == 0: return if chosen_f[0].endswith('.txt'): newp = path_to_new_unparsed_corpus.get() if selected_corpus_has_no_subcorpora.get() == 0: fp = os.path.join(newp, subc_sel_vals_build[0], chosen_f[0]) else: fp = os.path.join(newp, chosen_f[0]) if not os.path.isfile(fp): fp = os.path.join(newp, os.path.basename(corpus_fullpath.get()), chosen_f[0]) from corpkit.constants import OPENER with OPENER(fp, 'r', encoding='utf-8') as fo: text = fo.read() # needs a scrollbar editor = Text(tab0, height=32) bind_textfuncts_to_widgets([editor]) buildbits['editor'] = editor editor.grid(row=1, column=2, rowspan=9, pady=(10,0), padx=(20, 0)) if editor not in boxes: boxes.append(editor) all_text_widgets.append(editor) editor.bind("<%s-s>" % key, savebuttonaction) editor.bind("<%s-S>" % key, savebuttonaction) editor.config(borderwidth=0, font="{Lucida Sans Typewriter} 12", #foreground="green", #background="black", #insertbackground="white", # cursor #selectforeground="green", # selection #selectbackground="#008000", wrap=WORD, # use word wrapping width=64, undo=True, # Tk 8.4 ) editor.delete(1.0, END) editor.insert(END, text) editor.mark_set(INSERT, 1.0) editf.set('Edit file: %s' % chosen_f[0]) viewedit = Label(tab0, textvariable=editf, font=("Helvetica", 13, "bold")) viewedit.grid(row=0, column=2, sticky=W, padx=(20, 0)) if viewedit not in boxes: boxes.append(viewedit) filename.set(chosen_f[0]) fullpath_to_file.set(fp) but = Button(tab0, text='Save changes', command=savebuttonaction) but.grid(row=9, column=2, sticky='SE') buildbits['but'] = but if but not in boxes: boxes.append(but) elif chosen_f[0].endswith('.conll') or chosen_f[0].endswith('.conllu'): import re parsematch = re.compile(r'^# parse=(.*)') newp = path_to_new_unparsed_corpus.get() if selected_corpus_has_no_subcorpora.get() == 0: fp = os.path.join(newp, subc_sel_vals_build[0], chosen_f[0]) else: fp = os.path.join(newp, chosen_f[0]) if not os.path.isfile(fp): fp = os.path.join(newp, os.path.basename(corpus_fullpath.get()), chosen_f[0]) from corpkit.constants import OPENER with OPENER(fp, 'r', encoding='utf-8') as fo: text = fo.read() lines = text.splitlines() editf.set('View trees: %s' % chosen_f[0]) vieweditxml = Label(tab0, textvariable=editf, font=("Helvetica", 13, "bold")) vieweditxml.grid(row=0, column=2, sticky=W, padx=(20,0)) buildbits['vieweditxml'] = vieweditxml if vieweditxml not in boxes: boxes.append(vieweditxml) trees = [] def flatten_treestring(tree): replaces = {'$ ': '$', '`` ': '``', ' ,': ',', ' .': '.', "'' ": "''", " n't": "n't", " 're": "'re", " 'm": "'m", " 's": "'s", " 'd": "'d", " 'll": "'ll", ' ': ' '} import re tree = re.sub(r'\(.*? ', '', tree).replace(')', '') for k, v in replaces.items(): tree = tree.replace(k, v) return tree for l in lines: searched = re.search(parsematch, l) if searched: bracktree = searched.group(1) flat = flatten_treestring(bracktree) trees.append([bracktree, flat]) sentsbox = Listbox(tab0, selectmode=SINGLE, width=120, font=("Courier New", 11)) if sentsbox not in boxes: boxes.append(sentsbox) buildbits['sentsbox'] = sentsbox sentsbox.grid(row=1, column=2, rowspan=4, padx=(20,0)) sentsbox.delete(0, END) for i in list(sentdict.keys()): del sentdict[i] for i, (t, f) in enumerate(trees): cutshort = f[:80] + '...' sentsbox.insert(END, '%d: %s' % (i + 1, f)) sentdict[i] = t xxyyz = sentsbox.bind('<>', show_a_tree) f_in_s = StringVar() f_in_s.set('Files in subcorpus ') # a listbox of files Label(tab0, textvariable=f_in_s, font=("Helvetica", 13, "bold")).grid(row=0, column=1, sticky='NW', padx=(30, 0)) height = 31 if small_screen else 36 build_f_box = Frame(tab0, height=height) build_f_box.grid(row=1, column=1, rowspan = 9, padx=(20, 0), pady=(10, 0)) build_f_sb = Scrollbar(build_f_box) build_f_sb.pack(side=RIGHT, fill=Y) f_view = Listbox(build_f_box, selectmode = EXTENDED, height=height, state=DISABLED, relief=SUNKEN, bg='#F4F4F4', exportselection=False, yscrollcommand=build_f_sb.set) f_view.pack(fill=BOTH) xxyy = f_view.bind('<>', onselect_f) f_view.select_set(0) build_f_sb.config(command=f_view.yview) editf = StringVar() editf.set('Edit file: ') def savebuttonaction(*args): from corpkit.constants import OPENER, PYTHON_VERSION editor = buildbits['editor'] text = editor.get(1.0, END) with OPENER(fullpath_to_file.get(), "w") as fo: if PYTHON_VERSION == 2: fo.write(text.rstrip().encode("utf-8")) fo.write("\n") else: fo.write(text.rstrip() + '\n') timestring('%s saved.' % filename.get()) filename = StringVar() filename.set('') fullpath_to_file = StringVar() fullpath_to_file.set('') ############ ############ ############ ############ ############ # MENU BAR # # MENU BAR # # MENU BAR # # MENU BAR # # MENU BAR # ############ ############ ############ ############ ############ realquit = IntVar() realquit.set(0) def clear_all(): import os import sys python = sys.executable os.execl(python, python, * sys.argv) def get_tool_pref_file(): """get the location of the tool preferences files""" return os.path.join(rd, 'tool_settings.ini') def save_tool_prefs(printout=True): """save any preferences to tool preferences""" try: import configparser except: import ConfigParser as configparser import os Config = configparser.ConfigParser() settingsfile = get_tool_pref_file() if settingsfile is None: timestring('No settings file found.') return # parsing for ints is causing errors? Config.add_section('Projects') Config.set('Projects','most recent', ';'.join(most_recent_projects[-5:]).lstrip(';')) Config.add_section('CoreNLP') Config.set('CoreNLP','Parser path', corenlppath.get()) Config.set('CoreNLP','Memory allocation', str(parser_memory.get())) Config.add_section('Appearance') Config.set('Appearance','Spreadsheet row header width', str(row_label_width.get())) Config.set('Appearance','Spreadsheet cell width', str(cell_width.get())) Config.add_section('Other') Config.set('Other','Truncate concordance lines', str(truncate_conc_after.get())) Config.set('Other','Truncate spreadsheets', str(truncate_spreadsheet_after.get())) Config.set('Other','Automatic update check', str(do_auto_update.get())) Config.set('Other','do concordancing', str(do_concordancing.get())) Config.set('Other','Only format middle concordance column', str(only_format_match.get())) Config.set('Other','p value', str(p_val.get())) cfgfile = open(settingsfile ,'w') Config.write(cfgfile) #cell_width.get() #row_label_width.get() #truncate_conc_after.get() #truncate_spreadsheet_after.get() #do_auto_update.get() if printout: timestring('Tool preferences saved.') def load_tool_prefs(): """load preferences""" import os try: import configparser except: import ConfigParser as configparser settingsfile = get_tool_pref_file() if settingsfile is None: timestring('No settings file found.') return if not os.path.isfile(settingsfile): timestring('No settings file found at %s' % settingsfile) return def tryer(config, var, section, name): """attempt to load a value, fail gracefully if not there""" try: if config.has_option(section, name): bit = conmap(config, section).get(name, False) if name in ['memory allocation', 'truncate spreadsheets', 'truncate concordance lines', 'p value']: bit = int(bit) else: bit = bool(bit) var.set(bit) except: pass Config = configparser.ConfigParser() Config.read(settingsfile) tryer(Config, parser_memory, "CoreNLP", "memory allocation") #tryer(Config, row_label_width, "Appearance", 'spreadsheet row header width') #tryer(Config, cell_width, "Appearance", 'spreadsheet cell width') tryer(Config, do_auto_update, "Other", 'automatic update check') #tryer(Config, conc_when_int, "Other", 'concordance when interrogating') tryer(Config, only_format_match, "Other", 'only format middle concordance column') tryer(Config, do_concordancing, "Other", 'do concordancing') #tryer(Config, noregex, "Other", 'disable regular expressions for plaintext search') tryer(Config, truncate_conc_after, "Other", 'truncate concordance lines') tryer(Config, truncate_spreadsheet_after, "Other", 'truncate spreadsheets') tryer(Config, p_val, "Other", 'p value') try: parspath = conmap(Config, "CoreNLP")['parser path'] except: parspath = 'default' try: mostrec = conmap(Config, "Projects")['most recent'].lstrip(';').split(';') for i in mostrec: most_recent_projects.append(i) except: pass if parspath == 'default' or parspath == '': corenlppath.set(os.path.join(os.path.expanduser("~"), 'corenlp')) else: corenlppath.set(parspath) timestring('Tool preferences loaded.') def save_config(): try: import configparser except: import ConfigParser as configparser import os if any(v != '' for v in list(entryboxes.values())): codscheme = ','.join([i.get().replace(',', '') for i in list(entryboxes.values())]) else: codscheme = None Config = configparser.ConfigParser() cfgfile = open(os.path.join(project_fullpath.get(), 'settings.ini') ,'w') Config.add_section('Build') Config.add_section('Interrogate') relcorpuspath = corpus_fullpath.get().replace(project_fullpath.get(), '').lstrip('/') Config.set('Interrogate','Corpus path', relcorpuspath) Config.set('Interrogate','Speakers', convert_speakdict_to_string(corpus_names_and_speakers)) #Config.set('Interrogate','dependency type', kind_of_dep.get()) Config.set('Interrogate','Treat files as subcorpora', str(files_as_subcorpora.get())) Config.add_section('Edit') Config.add_section('Visualise') Config.set('Visualise','Plot style', plot_style.get()) Config.set('Visualise','Use TeX', str(texuse.get())) Config.set('Visualise','x axis title', x_axis_l.get()) Config.set('Visualise','Colour scheme', chart_cols.get()) Config.add_section('Concordance') Config.set('Concordance','font size', str(fsize.get())) #Config.set('Concordance','dependency type', conc_kind_of_dep.get()) Config.set('Concordance','coding scheme', codscheme) if win.get() == 'Window': window = 70 else: window = int(win.get()) Config.set('Concordance','window', str(window)) Config.add_section('Manage') Config.set('Manage','Project path',project_fullpath.get()) Config.write(cfgfile) timestring('Project settings saved to settings.ini.') def quitfunc(): if in_a_project.get() == 1: save_ask = messagebox.askyesno("Save settings", "Save settings before quitting?") if save_ask: save_config() save_tool_prefs() realquit.set(1) root.quit() root.protocol("WM_DELETE_WINDOW", quitfunc) def restart(newpath=False): """restarts corpkit .py or gui, designed for version updates""" import sys import os import subprocess import inspect timestring('Restarting ... ') # get path to current script if newpath is False: newpath = inspect.getfile(inspect.currentframe()) if sys.platform == "win32": if newpath.endswith('.py'): timestring('Not yet supported, sorry.') return os.startfile(newpath) else: opener = "open" if sys.platform == "darwin" else "xdg-open" if newpath.endswith('.py'): opener = 'python' if 'daniel/Work/corpkit' in newpath: opener = '/Users/daniel/virtenvs/ssled/bin/python' cmd = [opener, newpath] else: if sys.platform == "darwin": cmd = [opener, '-n', newpath] else: cmd = [opener, newpath] #os.system('%s %s' % (opener, newpath)) #subprocess.Popen(cmd) from time import sleep sleep(1) #reload(inspect.getfile(inspect.currentframe())) subprocess.Popen(cmd) try: the_splash.__exit__() except: pass root.quit() sys.exit() def untar(fname, extractto): """untar a file""" import tarfile tar = tarfile.open(fname) tar.extractall(extractto) tar.close() def update_corpkit(stver): """get new corpkit, delete this one, open it up""" import sys import os import inspect import corpkit from corpkit.build import download_large_file # get path to this script corpath = rd #corpath = inspect.getfile(inspect.currentframe()) # check we're using executable version, because .py users can # use github to update extens = '.%s' % fext if extens not in corpath and sys.platform != 'darwin': timestring("Get it from GitHub: https://www.github.com/interrogator/corpkit") return # split on .app or .exe, then re-add .app apppath = corpath.split(extens , 1)[0] + extens appdir = os.path.dirname(apppath) # get new version and the abs path of the download dir and the tar file url = 'https://raw.githubusercontent.com/interrogator/corpkit-app/master/corpkit-%s.tar.gz' % stver path_to_app_parent = sys.argv[0] if sys.platform == 'darwin': if '.app' in path_to_app_parent: path_to_app_parent = os.path.dirname(path_to_app_parent.split('.app', 1)[0]) else: # WINDOWS SUPPORT pass if '.py' in path_to_app_parent: py_script = True path_to_app_parent = os.path.dirname(os.path.join(path_to_app_parent.split('.py', 1)[0])) downloaded_dir, corpkittarfile = download_large_file(path_to_app_parent, \ url, root=root, note=note, actually_download = True) timestring('Extracting update ...') # why not extract to actual dir? untar(corpkittarfile, downloaded_dir) timestring('Applying update ...') # delete the tar #os.remove(corpkittarfile) # get whatever the new app is called newappfname = [f for f in os.listdir(downloaded_dir) if f.endswith(fext)][0] absnewapp = os.path.join(downloaded_dir, newappfname) # get the executable in the path restart_now = messagebox.askyesno("Update and restart", "Restart now?\n\nThis will delete the current version of corpkit.") import shutil if restart_now: # remove this very app, but not script, just in case if '.py' not in apppath: if sys.platform == 'darwin': shutil.rmtree(apppath) # if windows, it's not a dir else: os.remove(apppath) # move new version if sys.platform == 'darwin': shutil.copytree(absnewapp, os.path.join(appdir, newappfname)) # if windows, it's not a dir else: shutil.copy(absnewapp, os.path.join(appdir, newappfname)) # delete donwnloaded file and dir shutil.rmtree(downloaded_dir) restart(os.path.join(appdir, newappfname)) # shitty way to do this. what is the standard way of downloading and not installing? else: if sys.platform == 'darwin': try: shutil.copytree(absnewapp, os.path.join(appdir, newappfname)) except OSError: shutil.copytree(absnewapp, os.path.join(appdir, newappfname + '-new')) else: try: shutil.copy(absnewapp, os.path.join(appdir, newappfname)) except OSError: shutil.copy(absnewapp, os.path.join(appdir, newappfname + '-new')) timestring('New version in %s' % os.path.join(appdir, newappfname + '-new')) return def make_float_from_version(ver): """take a version string and turn it into a comparable float""" ver = str(ver) ndots_to_delete = ver.count('.') - 1 return float(ver[::-1].replace('.', '', ndots_to_delete)[::-1]) def modification_date(filename): """get datetime of file modification""" import os import datetime t = os.path.getmtime(filename) return datetime.datetime.fromtimestamp(t) def check_updates(showfalse=True, lateprint=False, auto=False): """check for updates, minor and major.""" import os import re import datetime from dateutil.parser import parse import sys import shutil if noupdate: return # weird hacky way to not repeat request if do_auto_update.get() == 0 and auto is True: return if do_auto_update_this_session.get() is False and auto is True: return # cancel auto if manual if auto is False: do_auto_update_this_session.set(0) # get version as float try: oldstver = open(os.path.join(rd, 'VERSION.txt'), 'r').read().strip() except: import corpkit oldstver = str(corpkit.__version__) ver = make_float_from_version(oldstver) # check for major update try: response = requests.get('https://www.github.com/interrogator/corpkit-app', verify=False) html = response.text except: if showfalse: messagebox.showinfo( "No connection to remote server", "Could not connect to remote server.") return reg = re.compile('title=.corpkit-([0-9\.]+)\.tar\.gz') # get version number as string stver = str(re.search(reg, html).group(1)) vnum = make_float_from_version(stver) # check for major update #if 2 == 2: if vnum > ver: timestring('Update found: corpkit %s' % stver) download_update = messagebox.askyesno("Update available", "Update available: corpkit %s\n\n Download now?" % stver) if download_update: update_corpkit(stver) return else: timestring('Update found: corpkit %s. Not downloaded.' % stver) return # check for minor update else: import sys timereg = re.compile(r'# (.*)<.updated>') #if '.py' in sys.argv[0] and sys.platform == 'darwin': #oldd = open(os.path.join(rd, 'gui.py'), 'r').read() #elif '.app' in sys.argv[0]: oldd = open(os.path.join(rd, 'gui.py'), 'r').read() dateline = next(l for l in oldd.split('\n') if l.startswith('# ')) dat = re.search(timereg, dateline).group(1) try: olddate = parse(dat) except: olddate = modification_date(sys.argv[0]) try: script_response = requests.get('https://raw.githubusercontent.com/interrogator/corpkit-app/master/gui.py', verify=False) newscript = script_response.text dateline = next(l for l in newscript.split('\n') if l.startswith('# ')) except: if showfalse: messagebox.showinfo( "No connection to remote server", "Could not connect to remote server.") return # parse the date part try: dat = re.search(timereg, dateline).group(1) newdate = parse(dat) except: if showfalse: messagebox.showinfo( "Error checking for update.", "Error checking for update.") return # testing code #if 2 == 2: if newdate > olddate: timestring('Minor update found: corpkit %s' % stver) download_update = messagebox.askyesno("Minor update available", "Minor update available: corpkit %s\n\n Download and apply now?" % stver) if download_update: url = 'https://raw.githubusercontent.com/interrogator/corpkit-app/master/corpkit-%s' % oldstver # update script if not sys.argv[0].endswith('gui.py'): script_url = 'https://raw.githubusercontent.com/interrogator/corpkit-app/master/gui.py' response = requests.get(script_url, verify=False) with open(os.path.join(rd, 'gui.py'), "w") as fo: fo.write(response.text) else: timestring("Can't replace developer copy, sorry.") return dir_containing_ex, execut = download_large_file(project_fullpath.get(), url = url, root=root, note=note) # make sure we can execute the new script import os os.chmod(execut, 0o777) if not sys.argv[0].endswith('gui.py'): os.remove(os.path.join(rd, 'corpkit-%s' % oldstver)) shutil.move(execut, os.path.join(rd, 'corpkit-%s' % oldstver)) shutil.rmtree(dir_containing_ex) else: timestring("Can't replace developer copy, sorry.") return #import inspect #sys.argv[0] #extens = '.%s' % fext #if extens not in corpath and sys.platform != 'darwin': # timestring("Get it from GitHub: https://www.github.com/interrogator/corpkit") # return ## split on .app or .exe, then re-add .app #apppath = corpath.split(extens , 1)[0] + extens restart(sys.argv[0].split('.app', 1)[0] + '.app') return else: timestring('Minor update found: corpkit %s, %s. Not downloaded.' % (stver, dat.replace('T', ', '))) return if showfalse: messagebox.showinfo( "Up to date!", "corpkit (version %s) up to date!" % oldstver) timestring('corpkit (version %s) up to date.' % oldstver) return def start_update_check(): if noupdate: return try: check_updates(showfalse=False, lateprint=True, auto=True) except: filemenu.entryconfig("Check for updates", state="disabled") def unmax(): """stop it being always on top""" root.attributes('-topmost', False) root.after(1000, unmax) if not '.py' in sys.argv[0]: root.after(10000, start_update_check) def set_corenlp_path(): if sys.platform == 'darwin': the_kwargs = {'message': 'Select folder containing the CoreNLP parser.'} else: the_kwargs = {} fp = filedialog.askdirectory(title='CoreNLP path', initialdir=os.path.expanduser("~"), **the_kwargs) if fp and fp != '': corenlppath.set(fp) if not get_fullpath_to_jars(corenlppath): recog = messagebox.showwarning(title='CoreNLP not found', message="CoreNLP not found in %s." % fp ) timestring("CoreNLP not found in %s." % fp ) else: save_tool_prefs() def config_menu(*args): import os fp = corpora_fullpath.get() recentmenu.delete(0, END) if len(most_recent_projects) == 0: filemenu.entryconfig("Open recent project", state="disabled") if len(most_recent_projects) == 1 and most_recent_projects[0] == '': filemenu.entryconfig("Open recent project", state="disabled") else: filemenu.entryconfig("Open recent project", state="normal") for c in list(set(most_recent_projects[::-1][:5])): if c: lab = os.path.join(os.path.basename(os.path.dirname(c)), os.path.basename(c)) recentmenu.add_radiobutton(label=lab, variable=recent_project, value = c) if os.path.isdir(fp): all_corpora = get_all_corpora() if len(all_corpora) > 0: filemenu.entryconfig("Select corpus", state="normal") selectmenu.delete(0, END) for c in all_corpora: selectmenu.add_radiobutton(label=c, variable=current_corpus, value = c) else: filemenu.entryconfig("Select corpus", state="disabled") else: filemenu.entryconfig("Select corpus", state="disabled") #filemenu.entryconfig("Manage project", state="disabled") if in_a_project.get() == 0: filemenu.entryconfig("Save project settings", state="disabled") filemenu.entryconfig("Load project settings", state="disabled") filemenu.entryconfig("Manage project", state="disabled") #filemenu.entryconfig("Set CoreNLP path", state="disabled") else: filemenu.entryconfig("Save project settings", state="normal") filemenu.entryconfig("Load project settings", state="normal") filemenu.entryconfig("Manage project", state="normal") #filemenu.entryconfig("Set CoreNLP path", state="normal") menubar = Menu(root) selectmenu = Menu(root) recentmenu = Menu(root) if sys.platform == 'darwin': filemenu = Menu(menubar, tearoff=0, name='apple', postcommand=config_menu) else: filemenu = Menu(menubar, tearoff=0, postcommand=config_menu) filemenu.add_command(label="New project", command=make_new_project) filemenu.add_command(label="Open project", command=load_project) filemenu.add_cascade(label="Open recent project", menu=recentmenu) filemenu.add_cascade(label="Select corpus", menu=selectmenu) filemenu.add_separator() filemenu.add_command(label="Save project settings", command=save_config) filemenu.add_command(label="Load project settings", command=load_config) filemenu.add_separator() filemenu.add_command(label="Save tool preferences", command=save_tool_prefs) filemenu.add_separator() filemenu.add_command(label="Manage project", command=manage_popup) filemenu.add_separator() #filemenu.add_command(label="Coding scheme print", command=print_entryboxes) # broken on deployed version ... path to self stuff #filemenu.add_separator() filemenu.add_command(label="Check for updates", command=check_updates) #filemenu.entryconfig("Check for updates", state="disabled") #filemenu.add_separator() #filemenu.add_command(label="Restart tool", command=restart) filemenu.add_separator() #filemenu.add_command(label="Exit", command=quitfunc) menubar.add_cascade(label="File", menu=filemenu) if sys.platform == 'darwin': windowmenu = Menu(menubar, name='window') menubar.add_cascade(menu=windowmenu, label='Window') else: sysmenu = Menu(menubar, name='system') menubar.add_cascade(menu=sysmenu) def schemesshow(*args): """only edit schemes once in project""" import os if project_fullpath.get() == '': schemenu.entryconfig("Wordlists", state="disabled") schemenu.entryconfig("Coding scheme", state="disabled") else: schemenu.entryconfig("Wordlists", state="normal") schemenu.entryconfig("Coding scheme", state="normal") schemenu = Menu(menubar, tearoff=0, postcommand=schemesshow) menubar.add_cascade(label="Schemes", menu=schemenu) schemenu.add_command(label="Coding scheme", command=codingschemer) schemenu.add_command(label="Wordlists", command=custom_lists) # prefrences section if sys.platform == 'darwin': root.createcommand('tk::mac::ShowPreferences', preferences_popup) def about_box(): """About message with current corpkit version""" import os try: oldstver = str(open(os.path.join(rd, 'VERSION.txt'), 'r').read().strip()) except: import corpkit oldstver = str(corpkit.__version__) messagebox.showinfo('About', 'corpkit %s\n\ninterrogator.github.io/corpkit\ngithub.com/interrogator/corpkit\npypi.python.org/pypi/corpkit\n\n' \ 'Creator: Daniel McDonald\nmcdonaldd@unimelb.edu.au' % oldstver) def show_log(): """save log text as txt file and open it""" import os the_input = '\n'.join([x for x in note.log_stream]) #the_input = note.text.get("1.0",END) c = 0 logpath = os.path.join(log_fullpath.get(), 'log-%s.txt' % str(c).zfill(2)) while os.path.isfile(logpath): logpath = os.path.join(log_fullpath.get(), 'log-%s.txt' % str(c).zfill(2)) c += 1 with open(logpath, "w") as fo: fo.write(the_input) prnt = os.path.join('logs', os.path.basename(logpath)) timestring('Log saved to "%s".' % prnt) import sys if sys.platform == "win32": os.startfile(logpath) else: opener = "open" if sys.platform == "darwin" else "xdg-open" import subprocess subprocess.call(['open', logpath]) def bind_textfuncts_to_widgets(lst): """add basic cut copy paste to text entry widgets""" for i in lst: i.bind("<%s-a>" % key, select_all_text) i.bind("<%s-A>" % key, select_all_text) i.bind("<%s-v>" % key, paste_into_textwidget) i.bind("<%s-V>" % key, paste_into_textwidget) i.bind("<%s-x>" % key, cut_from_textwidget) i.bind("<%s-X>" % key, cut_from_textwidget) i.bind("<%s-c>" % key, copy_from_textwidget) i.bind("<%s-C>" % key, copy_from_textwidget) try: i.config(undo = True) except: pass # load preferences load_tool_prefs() helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label="Help", command=lambda: show_help('h')) helpmenu.add_command(label="Query writing", command=lambda: show_help('q')) helpmenu.add_command(label="Troubleshooting", command=lambda: show_help('t')) helpmenu.add_command(label="Save log", command=show_log) #helpmenu.add_command(label="Set CoreNLP path", command=set_corenlp_path) helpmenu.add_separator() helpmenu.add_command(label="About", command=about_box) menubar.add_cascade(label="Help", menu=helpmenu) if sys.platform == 'darwin': import corpkit import subprocess ver = corpkit.__version__ corpath = os.path.dirname(corpkit.__file__) if not corpath.startswith('/Library/Python') and not 'corpkit/corpkit/corpkit' in corpath: try: subprocess.call('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "corpkit-%s" to true' ''' % ver, shell = True) except: pass root.config(menu=menubar) note.focus_on(tab1) if loadcurrent: load_project(loadcurrent) root.deiconify() root.lift() try: root._splash.__exit__() except: pass root.wm_state('normal') #root.resizable(TRUE,TRUE) # overwrite quitting behaviour, prompt to save settings root.createcommand('exit', quitfunc) root.mainloop() if __name__ == "__main__": # the traceback is mostly for debugging pyinstaller errors import sys import traceback import os lc = sys.argv[-1] if os.path.isdir(sys.argv[-1]) else False #if lc and sys.argv[-1] == '.': # lc = os.path.basename(os.getcwd()) # os.chdir('..') debugmode = 'debug' in list(sys.argv) def install(name, loc): """if we don't have a module, download it""" try: import importlib importlib.import_module(name) except ImportError: import pip pip.main(['install', loc]) tkintertablecode = ('tkintertable', 'git+https://github.com/interrogator/tkintertable.git') pilcode = ('PIL', 'http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz') if not any(arg.lower() == 'noinstall' for arg in sys.argv): install(*tkintertablecode) from corpkit.constants import PYTHON_VERSION if PYTHON_VERSION == 2: install(*pilcode) try: if lc: corpkit_gui(loadcurrent=lc, debug=debugmode) else: corpkit_gui(debug=debugmode) except: exc_type, exc_value, exc_traceback=sys.exc_info() print("*** print_tb:") print(traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)) print("*** print_exception:") print(traceback.print_exception(exc_type, exc_value, exc_traceback, limit=2, file=sys.stdout)) print("*** print_exc:") print(traceback.print_exc()) print("*** format_exc, first and last line:") formatted_lines = traceback.format_exc() print(formatted_lines) print("*** format_exception:") print('\n'.join(traceback.format_exception(exc_type, exc_value, exc_traceback))) print("*** extract_tb:") print('\n'.join([str(i) for i in traceback.extract_tb(exc_traceback)])) print("*** format_tb:") print(traceback.format_tb(exc_traceback)) print("*** tb_lineno:", exc_traceback.tb_lineno) ================================================ FILE: corpkit/inflect.py ================================================ #### PATTERN | EN | INFLECT ######################################################################## # -*- coding: utf-8 -*- # Copyright (c) 2010 University of Antwerp, Belgium # Author: Tom De Smedt # License: BSD (see LICENSE.txt for details). #################################################################################################### # Regular expressions-based rules for English word inflection: # - pluralization and singularization of nouns and adjectives, # - conjugation of verbs, # - comparative and superlative of adjectives. # Accuracy (measured on CELEX English morphology word forms): # 95% for pluralize() # 96% for singularize() # 95% for Verbs.find_lemma() (for regular verbs) # 96% for Verbs.find_lexeme() (for regular verbs) ################################################################################# # Modified from original to work as standalone for adjective and noun inflection. ################################################################################# import os import sys import re try: MODULE = os.path.dirname(os.path.realpath(__file__)) except: MODULE = "" sys.path.insert(0, os.path.join(MODULE, "..", "..", "..", "..")) #from pattern.text import Verbs as _Verbs #from pattern.text import ( # INFINITIVE, PRESENT, PAST, FUTURE, # FIRST, SECOND, THIRD, # SINGULAR, PLURAL, SG, PL, # PROGRESSIVE, # PARTICIPLE #) sys.path.pop(0) VERB, NOUN, ADJECTIVE, ADVERB = "VB", "NN", "JJ", "RB" VOWELS = "aeiouy" re_vowel = re.compile(r"a|e|i|o|u|y", re.I) is_vowel = lambda ch: ch in VOWELS #### ARTICLE ####################################################################################### # Based on the Ruby Linguistics module by Michael Granger: # http://www.deveiate.org/projects/Linguistics/wiki/English RE_ARTICLE = [(re.compile(x[0]), x[1]) for x in ( ("euler|hour(?!i)|heir|honest|hono", "an"), # exceptions: an hour, an honor # Abbreviations: # strings of capitals starting with a vowel-sound consonant followed by another consonant, # which are not likely to be real words. (r"(?!FJO|[HLMNS]Y.|RY[EO]|SQU|(F[LR]?|[HL]|MN?|N|RH?|S[CHKLMNPTVW]?|X(YL)?)[AEIOU])[FHLMNRSX][A-Z]", "an"), (r"^[aefhilmnorsx][.-]" , "an"), (r"^[a-z][.-]" , "a" ), (r"^[^aeiouy]" , "a" ), # consonants: a bear (r"^e[uw]" , "a" ), # -eu like "you": a european (r"^onc?e" , "a" ), # -o like "wa" : a one-liner (r"uni([^nmd]|mo)" , "a" ), # -u like "you": a university (r"^u[bcfhjkqrst][aeiou]", "a" ), # -u like "you": a uterus (r"^[aeiou]" , "an"), # vowels: an owl (r"y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt)", "an"), # y like "i": an yclept, a year (r"" , "a" ) # guess "a" )] def definite_article(word): return "the" def indefinite_article(word): """ Returns the indefinite article for a given word. For example: indefinite_article("university") => "a" university. """ word = word.split(" ")[0] for rule, article in RE_ARTICLE: if rule.search(word) is not None: return article DEFINITE, INDEFINITE = \ "definite", "indefinite" def article(word, function=INDEFINITE): """ Returns the indefinite (a or an) or definite (the) article for the given word. """ return function == DEFINITE and definite_article(word) or indefinite_article(word) _article = article def referenced(word, article=INDEFINITE): """ Returns a string with the article + the word. """ return "%s %s" % (_article(word, article), word) #print referenced("hour") #print referenced("FBI") #print referenced("bear") #print referenced("one-liner") #print referenced("european") #print referenced("university") #print referenced("uterus") #print referenced("owl") #print referenced("yclept") #print referenced("year") #### PLURALIZE ##################################################################################### # Based on "An Algorithmic Approach to English Pluralization" by Damian Conway: # http://www.csse.monash.edu.au/~damian/papers/HTML/Plurals.html # Prepositions are used in forms like "mother-in-law" and "man at arms". plural_prepositions = set(( "about" , "before" , "during", "of" , "till" , "above" , "behind" , "except", "off" , "to" , "across" , "below" , "for" , "on" , "under", "after" , "beneath", "from" , "onto" , "until", "among" , "beside" , "in" , "out" , "unto" , "around" , "besides", "into" , "over" , "upon" , "at" , "between", "near" , "since", "with" , "athwart", "betwixt", "beyond", "but", "by")) # Inflection rules that are either: # - general, # - apply to a certain category of words, # - apply to a certain category of words only in classical mode, # - apply only in classical mode. # Each rule is a (suffix, inflection, category, classic)-tuple. plural_rules = [ # 0) Indefinite articles and demonstratives. (( r"^a$|^an$", "some" , None, False), ( r"^this$", "these" , None, False), ( r"^that$", "those" , None, False), ( r"^any$", "all" , None, False) ), # 1) Possessive adjectives. (( r"^my$", "our" , None, False), ( r"^your$", "your" , None, False), ( r"^thy$", "your" , None, False), (r"^her$|^his$", "their" , None, False), ( r"^its$", "their" , None, False), ( r"^their$", "their" , None, False) ), # 2) Possessive pronouns. (( r"^mine$", "ours" , None, False), ( r"^yours$", "yours" , None, False), ( r"^thine$", "yours" , None, False), (r"^her$|^his$", "theirs" , None, False), ( r"^its$", "theirs" , None, False), ( r"^their$", "theirs" , None, False) ), # 3) Personal pronouns. (( r"^I$", "we" , None, False), ( r"^me$", "us" , None, False), ( r"^myself$", "ourselves" , None, False), ( r"^you$", "you" , None, False), (r"^thou$|^thee$", "ye" , None, False), ( r"^yourself$", "yourself" , None, False), ( r"^thyself$", "yourself" , None, False), ( r"^she$|^he$", "they" , None, False), (r"^it$|^they$", "they" , None, False), (r"^her$|^him$", "them" , None, False), (r"^it$|^them$", "them" , None, False), ( r"^herself$", "themselves" , None, False), ( r"^himself$", "themselves" , None, False), ( r"^itself$", "themselves" , None, False), ( r"^themself$", "themselves" , None, False), ( r"^oneself$", "oneselves" , None, False) ), # 4) Words that do not inflect. (( r"$", "" , "uninflected", False), ( r"$", "" , "uncountable", False), ( r"s$", "s" , "s-singular" , False), ( r"fish$", "fish" , None, False), (r"([- ])bass$", "\\1bass" , None, False), ( r"ois$", "ois" , None, False), ( r"sheep$", "sheep" , None, False), ( r"deer$", "deer" , None, False), ( r"pox$", "pox" , None, False), (r"([A-Z].*)ese$", "\\1ese" , None, False), ( r"itis$", "itis" , None, False), (r"(fruct|gluc|galact|lact|ket|malt|rib|sacchar|cellul)ose$", "\\1ose", None, False) ), # 5) Irregular plural forms (e.g., mongoose, oxen). (( r"atlas$", "atlantes" , None, True ), ( r"atlas$", "atlases" , None, False), ( r"beef$", "beeves" , None, True ), ( r"brother$", "brethren" , None, True ), ( r"child$", "children" , None, False), ( r"corpus$", "corpora" , None, True ), ( r"corpus$", "corpuses" , None, False), ( r"^cow$", "kine" , None, True ), ( r"ephemeris$", "ephemerides", None, False), ( r"ganglion$", "ganglia" , None, True ), ( r"genie$", "genii" , None, True ), ( r"genus$", "genera" , None, False), ( r"graffito$", "graffiti" , None, False), ( r"loaf$", "loaves" , None, False), ( r"money$", "monies" , None, True ), ( r"mongoose$", "mongooses" , None, False), ( r"mythos$", "mythoi" , None, False), ( r"octopus$", "octopodes" , None, True ), ( r"opus$", "opera" , None, True ), ( r"opus$", "opuses" , None, False), ( r"^ox$", "oxen" , None, False), ( r"penis$", "penes" , None, True ), ( r"penis$", "penises" , None, False), ( r"soliloquy$", "soliloquies", None, False), ( r"testis$", "testes" , None, False), ( r"trilby$", "trilbys" , None, False), ( r"turf$", "turves" , None, True ), ( r"numen$", "numena" , None, False), ( r"occiput$", "occipita" , None, True ) ), # 6) Irregular inflections for common suffixes (e.g., synopses, mice, men). (( r"man$", "men" , None, False), ( r"person$", "people" , None, False), (r"([lm])ouse$", "\\1ice" , None, False), ( r"tooth$", "teeth" , None, False), ( r"goose$", "geese" , None, False), ( r"foot$", "feet" , None, False), ( r"zoon$", "zoa" , None, False), ( r"([csx])is$", "\\1es" , None, False) ), # 7) Fully assimilated classical inflections # (e.g., vertebrae, codices). (( r"ex$", "ices" , "ex-ices" , False), ( r"ex$", "ices" , "ex-ices*", True ), # * = classical mode ( r"um$", "a" , "um-a" , False), ( r"um$", "a" , "um-a*", True ), ( r"on$", "a" , "on-a" , False), ( r"a$", "ae" , "a-ae" , False), ( r"a$", "ae" , "a-ae*", True ) ), # 8) Classical variants of modern inflections # (e.g., stigmata, soprani). (( r"trix$", "trices" , None, True), ( r"eau$", "eaux" , None, True), ( r"ieu$", "ieu" , None, True), ( r"([iay])nx$", "\\1nges" , None, True), ( r"en$", "ina" , "en-ina*", True), ( r"a$", "ata" , "a-ata*", True), ( r"is$", "ides" , "is-ides*", True), ( r"us$", "i" , "us-i*", True), ( r"us$", "us " , "us-us*", True), ( r"o$", "i" , "o-i*", True), ( r"$", "i" , "-i*", True), ( r"$", "im" , "-im*", True) ), # 9) -ch, -sh and -ss take -es in the plural # (e.g., churches, classes). (( r"([cs])h$", "\\1hes" , None, False), ( r"ss$", "sses" , None, False), ( r"x$", "xes" , None, False) ), # 10) -f or -fe sometimes take -ves in the plural # (e.g, lives, wolves). (( r"([aeo]l)f$", "\\1ves" , None, False), ( r"([^d]ea)f$", "\\1ves" , None, False), ( r"arf$", "arves" , None, False), (r"([nlw]i)fe$", "\\1ves" , None, False), ), # 11) -y takes -ys if preceded by a vowel, -ies otherwise # (e.g., storeys, Marys, stories). ((r"([aeiou])y$", "\\1ys" , None, False), (r"([A-Z].*)y$", "\\1ys" , None, False), ( r"y$", "ies" , None, False) ), # 12) -o sometimes takes -os, -oes otherwise. # -o is preceded by a vowel takes -os # (e.g., lassos, potatoes, bamboos). (( r"o$", "os", "o-os", False), (r"([aeiou])o$", "\\1os" , None, False), ( r"o$", "oes" , None, False) ), # 13) Miltary stuff # (e.g., Major Generals). (( r"l$", "ls", "general-generals", False), ), # 14) Assume that the plural takes -s # (cats, programmes, ...). (( r"$", "s" , None, False),) ] # For performance, compile the regular expressions once: plural_rules = [[(re.compile(r[0]), r[1], r[2], r[3]) for r in grp] for grp in plural_rules] # Suffix categories. plural_categories = { "uninflected": [ "bison" , "debris" , "headquarters" , "news" , "swine" , "bream" , "diabetes" , "herpes" , "pincers" , "trout" , "breeches" , "djinn" , "high-jinks" , "pliers" , "tuna" , "britches" , "eland" , "homework" , "proceedings", "whiting" , "carp" , "elk" , "innings" , "rabies" , "wildebeest" "chassis" , "flounder" , "jackanapes" , "salmon" , "clippers" , "gallows" , "mackerel" , "scissors" , "cod" , "graffiti" , "measles" , "series" , "contretemps", "mews" , "shears" , "corps" , "mumps" , "species" ], "uncountable": [ "advice" , "fruit" , "ketchup" , "meat" , "sand" , "bread" , "furniture" , "knowledge" , "mustard" , "software" , "butter" , "garbage" , "love" , "news" , "understanding", "cheese" , "gravel" , "luggage" , "progress" , "water" "electricity", "happiness" , "mathematics" , "research" , "equipment" , "information", "mayonnaise" , "rice" ], "s-singular": [ "acropolis" , "caddis" , "dais" , "glottis" , "pathos" , "aegis" , "cannabis" , "digitalis" , "ibis" , "pelvis" , "alias" , "canvas" , "epidermis" , "lens" , "polis" , "asbestos" , "chaos" , "ethos" , "mantis" , "rhinoceros" , "bathos" , "cosmos" , "gas" , "marquis" , "sassafras" , "bias" , "glottis" , "metropolis" , "trellis" ], "ex-ices": [ "codex" , "murex" , "silex" ], "ex-ices*": [ "apex" , "index" , "pontifex" , "vertex" , "cortex" , "latex" , "simplex" , "vortex" ], "um-a": [ "agendum" , "candelabrum", "desideratum" , "extremum" , "stratum" , "bacterium" , "datum" , "erratum" , "ovum" ], "um-a*": [ "aquarium" , "emporium" , "maximum" , "optimum" , "stadium" , "compendium" , "enconium" , "medium" , "phylum" , "trapezium" , "consortium" , "gymnasium" , "memorandum" , "quantum" , "ultimatum" , "cranium" , "honorarium" , "millenium" , "rostrum" , "vacuum" , "curriculum" , "interregnum", "minimum" , "spectrum" , "velum" , "dictum" , "lustrum" , "momentum" , "speculum" ], "on-a": [ "aphelion" , "hyperbaton" , "perihelion" , "asyndeton" , "noumenon" , "phenomenon" , "criterion" , "organon" , "prolegomenon" ], "a-ae": [ "alga" , "alumna" , "vertebra" ], "a-ae*": [ "abscissa" , "aurora" , "hyperbola" , "nebula" , "amoeba" , "formula" , "lacuna" , "nova" , "antenna" , "hydra" , "medusa" , "parabola" ], "en-ina*": [ "foramen" , "lumen" , "stamen" ], "a-ata*": [ "anathema" , "dogma" , "gumma" , "miasma" , "stigma" , "bema" , "drama" , "lemma" , "schema" , "stoma" , "carcinoma" , "edema" , "lymphoma" , "oedema" , "trauma" , "charisma" , "enema" , "magma" , "sarcoma" , "diploma" , "enigma" , "melisma" , "soma" , ], "is-ides*": [ "clitoris" , "iris" ], "us-i*": [ "focus" , "nimbus" , "succubus" , "fungus" , "nucleolus" , "torus" , "genius" , "radius" , "umbilicus" , "incubus" , "stylus" , "uterus" ], "us-us*": [ "apparatus" , "hiatus" , "plexus" , "status" "cantus" , "impetus" , "prospectus" , "coitus" , "nexus" , "sinus" , ], "o-i*": [ "alto" , "canto" , "crescendo" , "soprano" , "basso" , "contralto" , "solo" , "tempo" ], "-i*": [ "afreet" , "afrit" , "efreet" ], "-im*": [ "cherub" , "goy" , "seraph" ], "o-os": [ "albino" , "dynamo" , "guano" , "lumbago" , "photo" , "archipelago", "embryo" , "inferno" , "magneto" , "pro" , "armadillo" , "fiasco" , "jumbo" , "manifesto" , "quarto" , "commando" , "generalissimo", "medico" , "rhino" , "ditto" , "ghetto" , "lingo" , "octavo" , "stylo" ], "general-generals": [ "Adjutant" , "Brigadier" , "Lieutenant" , "Major" , "Quartermaster", "adjutant" , "brigadier" , "lieutenant" , "major" , "quartermaster" ] } def pluralize(word, pos=NOUN, custom={}, classical=True): """ Returns the plural of a given word, e.g., child => children. Handles nouns and adjectives, using classical inflection by default (i.e., where "matrix" pluralizes to "matrices" and not "matrixes"). The custom dictionary is for user-defined replacements. """ if word in custom: return custom[word] # Recurse genitives. # Remove the apostrophe and any trailing -s, # form the plural of the resultant noun, and then append an apostrophe (dog's => dogs'). if word.endswith(("'", "'s")): w = word.rstrip("'s") w = pluralize(w, pos, custom, classical) if w.endswith("s"): return w + "'" else: return w + "'s" # Recurse compound words # (e.g., Postmasters General, mothers-in-law, Roman deities). w = word.replace("-", " ").split(" ") if len(w) > 1: if w[1] == "general" or \ w[1] == "General" and \ w[0] not in plural_categories["general-generals"]: return word.replace(w[0], pluralize(w[0], pos, custom, classical)) elif w[1] in plural_prepositions: return word.replace(w[0], pluralize(w[0], pos, custom, classical)) else: return word.replace(w[-1], pluralize(w[-1], pos, custom, classical)) # Only a very few number of adjectives inflect. n = list(range(len(plural_rules))) if pos.startswith(ADJECTIVE): n = [0, 1] # Apply pluralization rules. for i in n: for suffix, inflection, category, classic in plural_rules[i]: # A general rule, or a classic rule in classical mode. if category is None: if not classic or (classic and classical): if suffix.search(word) is not None: return suffix.sub(inflection, word) # A rule pertaining to a specific category of words. if category is not None: if word in plural_categories[category] and (not classic or (classic and classical)): if suffix.search(word) is not None: return suffix.sub(inflection, word) return word #print pluralize("part-of-speech") #print pluralize("child") #print pluralize("dog's") #print pluralize("wolf") #print pluralize("bear") #print pluralize("kitchen knife") #print pluralize("octopus", classical=True) #print pluralize("matrix", classical=True) #print pluralize("matrix", classical=False) #print pluralize("my", pos=ADJECTIVE) #### SINGULARIZE ################################################################################### # Adapted from Bermi Ferrer's Inflector for Python: # http://www.bermi.org/inflector/ # Copyright (c) 2006 Bermi Ferrer Martinez # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software to deal in this software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of this software, and to permit # persons to whom this software is furnished to do so, subject to the following # condition: # # THIS 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 THIS SOFTWARE OR THE USE OR OTHER DEALINGS IN # THIS SOFTWARE. singular_rules = [ (r'(?i)(.)ae$' , '\\1a' ), (r'(?i)(.)itis$' , '\\1itis' ), (r'(?i)(.)eaux$' , '\\1eau' ), (r'(?i)(quiz)zes$' , '\\1' ), (r'(?i)(matr)ices$' , '\\1ix' ), (r'(?i)(ap|vert|ind)ices$', '\\1ex' ), (r'(?i)^(ox)en' , '\\1' ), (r'(?i)(alias|status)es$' , '\\1' ), (r'(?i)([octop|vir])i$' , '\\1us' ), (r'(?i)(cris|ax|test)es$' , '\\1is' ), (r'(?i)(shoe)s$' , '\\1' ), (r'(?i)(o)es$' , '\\1' ), (r'(?i)(bus)es$' , '\\1' ), (r'(?i)([m|l])ice$' , '\\1ouse' ), (r'(?i)(x|ch|ss|sh)es$' , '\\1' ), (r'(?i)(m)ovies$' , '\\1ovie' ), (r'(?i)(.)ombies$' , '\\1ombie'), (r'(?i)(s)eries$' , '\\1eries'), (r'(?i)([^aeiouy]|qu)ies$', '\\1y' ), # -f, -fe sometimes take -ves in the plural # (e.g., lives, wolves). (r"([aeo]l)ves$" , "\\1f" ), (r"([^d]ea)ves$" , "\\1f" ), (r"arves$" , "arf" ), (r"erves$" , "erve" ), (r"([nlw]i)ves$" , "\\1fe" ), (r'(?i)([lr])ves$' , '\\1f' ), (r"([aeo])ves$" , "\\1ve" ), (r'(?i)(sive)s$' , '\\1' ), (r'(?i)(tive)s$' , '\\1' ), (r'(?i)(hive)s$' , '\\1' ), (r'(?i)([^f])ves$' , '\\1fe' ), # -ses suffixes. (r'(?i)(^analy)ses$' , '\\1sis' ), (r'(?i)((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', '\\1\\2sis'), (r'(?i)(.)opses$' , '\\1opsis'), (r'(?i)(.)yses$' , '\\1ysis' ), (r'(?i)(h|d|r|o|n|b|cl|p)oses$', '\\1ose'), (r'(?i)(fruct|gluc|galact|lact|ket|malt|rib|sacchar|cellul)ose$', '\\1ose'), (r'(?i)(.)oses$' , '\\1osis' ), # -a (r'(?i)([ti])a$' , '\\1um' ), (r'(?i)(n)ews$' , '\\1ews' ), (r'(?i)s$' , '' ), ] # For performance, compile the regular expressions only once: singular_rules = [(re.compile(r[0]), r[1]) for r in singular_rules] singular_uninflected = set(( "bison" , "debris" , "headquarters", "pincers" , "trout" , "bream" , "diabetes" , "herpes" , "pliers" , "tuna" , "breeches" , "djinn" , "high-jinks" , "proceedings", "whiting" , "britches" , "eland" , "homework" , "rabies" , "wildebeest" "carp" , "elk" , "innings" , "salmon" , "chassis" , "flounder" , "jackanapes" , "scissors" , "christmas" , "gallows" , "mackerel" , "series" , "clippers" , "georgia" , "measles" , "shears" , "cod" , "graffiti" , "mews" , "species" , "contretemps", "mumps" , "swine" , "corps" , "news" , "swiss" , )) singular_uncountable = set(( "advice" , "equipment", "happiness" , "luggage" , "news" , "software" , "bread" , "fruit" , "information" , "mathematics", "progress" , "understanding", "butter" , "furniture", "ketchup" , "mayonnaise" , "research" , "water" "cheese" , "garbage" , "knowledge" , "meat" , "rice" , "electricity", "gravel" , "love" , "mustard" , "sand" , )) singular_ie = set(( "alergie" , "cutie" , "hoagie" , "newbie" , "softie" , "veggie" , "auntie" , "doggie" , "hottie" , "nightie" , "sortie" , "weenie" , "beanie" , "eyrie" , "indie" , "oldie" , "stoolie" , "yuppie" , "birdie" , "freebie" , "junkie" , "^pie" , "sweetie" , "zombie" "bogie" , "goonie" , "laddie" , "pixie" , "techie" , "bombie" , "groupie" , "laramie" , "quickie" , "^tie" , "collie" , "hankie" , "lingerie" , "reverie" , "toughie" , "cookie" , "hippie" , "meanie" , "rookie" , "valkyrie" , )) singular_irregular = { "atlantes": "atlas", "atlases": "atlas", "axes": "axe", "beeves": "beef", "brethren": "brother", "children": "child", "children": "child", "corpora": "corpus", "corpuses": "corpus", "ephemerides": "ephemeris", "feet": "foot", "ganglia": "ganglion", "geese": "goose", "genera": "genus", "genii": "genie", "graffiti": "graffito", "helves": "helve", "kine": "cow", "leaves": "leaf", "loaves": "loaf", "men": "man", "mongooses": "mongoose", "monies": "money", "moves": "move", "mythoi": "mythos", "numena": "numen", "occipita": "occiput", "octopodes": "octopus", "opera": "opus", "opuses": "opus", "our": "my", "oxen": "ox", "penes": "penis", "penises": "penis", "people": "person", "sexes": "sex", "soliloquies": "soliloquy", "teeth": "tooth", "testes": "testis", "trilbys": "trilby", "turves": "turf", "zoa": "zoon", } def singularize(word, pos=NOUN, custom={}): """ Returns the singular of a given word. """ if word in custom: return custom[word] # Recurse compound words (e.g. mothers-in-law). if "-" in word: w = word.split("-") if len(w) > 1 and w[1] in plural_prepositions: return singularize(w[0], pos, custom)+"-"+"-".join(w[1:]) # dogs' => dog's if word.endswith("'"): return singularize(word[:-1]) + "'s" w = word.lower() for x in singular_uninflected: if x.endswith(w): return word for x in singular_uncountable: if x.endswith(w): return word for x in singular_ie: if w.endswith(x+"s"): return w for x in singular_irregular: if w.endswith(x): return re.sub('(?i)'+x+'$', singular_irregular[x], word) for suffix, inflection in singular_rules: m = suffix.search(word) g = m and m.groups() or [] if m: for k in range(len(g)): if g[k] is None: inflection = inflection.replace('\\' + str(k + 1), '') return suffix.sub(inflection, word) return word #### COMPARATIVE & SUPERLATIVE ##################################################################### VOWELS = "aeiouy" grade_irregular = { "bad": ( "worse", "worst"), "far": ("further", "farthest"), "good": ( "better", "best"), "hind": ( "hinder", "hindmost"), "ill": ( "worse", "worst"), "less": ( "lesser", "least"), "little": ( "less", "least"), "many": ( "more", "most"), "much": ( "more", "most"), "well": ( "better", "best") } grade_uninflected = ["giant", "glib", "hurt", "known", "madly"] COMPARATIVE = "er" SUPERLATIVE = "est" def _count_syllables(word): """ Returns the estimated number of syllables in the word by counting vowel-groups. """ n = 0 p = False # True if the previous character was a vowel. for ch in word.endswith("e") and word[:-1] or word: v = ch in VOWELS n += int(v and not p) p = v return n def grade(adjective, suffix=COMPARATIVE): """ Returns the comparative or superlative form of the given adjective. """ n = _count_syllables(adjective) if adjective in grade_irregular: # A number of adjectives inflect irregularly. return grade_irregular[adjective][suffix != COMPARATIVE] elif adjective in grade_uninflected: # A number of adjectives don't inflect at all. return "%s %s" % (suffix == COMPARATIVE and "more" or "most", adjective) elif n <= 2 and adjective.endswith("e"): # With one syllable and ending with an e: larger, wiser. suffix = suffix.lstrip("e") elif n == 1 and len(adjective) >= 3 \ and adjective[-1] not in VOWELS and adjective[-2] in VOWELS and adjective[-3] not in VOWELS: # With one syllable ending with consonant-vowel-consonant: bigger, thinner. if not adjective.endswith(("w")): # Exceptions: lower, newer. suffix = adjective[-1] + suffix elif n == 1: # With one syllable ending with more consonants or vowels: briefer. pass elif n == 2 and adjective.endswith("y"): # With two syllables ending with a y: funnier, hairier. adjective = adjective[:-1] + "i" elif n == 2 and adjective[-2:] in ("er", "le", "ow"): # With two syllables and specific suffixes: gentler, narrower. pass else: # With three or more syllables: more generous, more important. return "%s %s" % (suffix==COMPARATIVE and "more" or "most", adjective) return adjective + suffix def comparative(adjective): return grade(adjective, COMPARATIVE) def superlative(adjective): return grade(adjective, SUPERLATIVE) #### ATTRIBUTIVE & PREDICATIVE ##################################################################### def attributive(adjective): return adjective def predicative(adjective): return adjective ================================================ FILE: corpkit/interpreter_tests.cki ================================================ # this code is written in corpkit interpreter language. # it is used to test that the interpreter works properly set test-speak-parsed search corpus for words matching '^[abcd]' showing pos and lemma search corpus for governor-function matching 'root' showing lemma with preserve_case search corpus for words matching any showing lemma edit result by keeping entries matching wordlists.anyverb export edited as csv to res.csv export concordance as csv to conc.csv save result as anylemma ================================================ FILE: corpkit/interrogation.py ================================================ """ corpkit: `Int`errogation and Interrogation-like classes """ from __future__ import print_function from collections import OrderedDict import pandas as pd from corpkit.process import classname class Interrogation(object): """ Stores results of a corpus interrogation, before or after editing. The main attribute, :py:attr:`~corpkit.interrogation.Interrogation.results`, is a Pandas object, which can be edited or plotted. """ def __init__(self, results=None, totals=None, query=None, concordance=None): """Initialise the class""" self.results = results """pandas `DataFrame` containing counts for each subcorpus""" self.totals = totals """pandas `Series` containing summed results""" self.query = query """`dict` containing values that generated the result""" self.concordance = concordance """pandas `DataFrame` containing concordance lines, if concordance lines were requested.""" def __str__(self): if self.query.get('corpus'): prst = getattr(self.query['corpus'], 'name', self.query['corpus']) else: try: prst = self.query['interrogation'].query['corpus'].name except: prst = 'edited' st = 'Corpus interrogation: %s\n\n' % (prst) return st def __repr__(self): try: return "<%s instance: %d total>" % (classname(self), self.totals.sum()) except AttributeError: return "<%s instance: %d total>" % (classname(self), self.totals) def edit(self, *args, **kwargs): """ Manipulate results of interrogations. There are a few overall kinds of edit, most of which can be combined into a single function call. It's useful to keep in mind that many are basic wrappers around `pandas` operations---if you're comfortable with `pandas` syntax, it may be faster at times to use its syntax instead. :Basic mathematical operations: First, you can do basic maths on results, optionally passing in some data to serve as the denominator. Very commonly, you'll want to get relative frequencies: :Example: >>> data = corpus.interrogate({W: r'^t'}) >>> rel = data.edit('%', SELF) >>> rel.results .. to that the then ... toilet tolerant tolerate ton 01 18.50 14.65 14.44 6.20 ... 0.00 0.00 0.11 0.00 02 24.10 14.34 13.73 8.80 ... 0.00 0.00 0.00 0.00 03 17.31 18.01 9.97 7.62 ... 0.00 0.00 0.00 0.00 For the operation, there are a number of possible values, each of which is to be passed in as a `str`: `+`, `-`, `/`, `*`, `%`: self explanatory `k`: calculate keywords `a`: get distance metric `SELF` is a very useful shorthand denominator. When used, all editing is performed on the data. The totals are then extracted from the edited data, and used as denominator. If this is not the desired behaviour, however, a more specific `interrogation.results` or `interrogation.totals` attribute can be used. In the example above, `SELF` (or `'self'`) is equivalent to: :Example: >>> rel = data.edit('%', data.totals) :Keeping and skipping data: There are four keyword arguments that can be used to keep or skip rows or columns in the data: * `just_entries` * `just_subcorpora` * `skip_entries` * `skip_subcorpora` Each can accept different input types: * `str`: treated as regular expression to match * `list`: * of integers: indices to match * of strings: entries/subcorpora to match :Example: >>> data.edit(just_entries=r'^fr', ... skip_entries=['free','freedom'], ... skip_subcorpora=r'[0-9]') :Merging data: There are also keyword arguments for merging entries and subcorpora: * `merge_entries` * `merge_subcorpora` These take a `dict`, with the new name as key and the criteria as value. The criteria can be a str (regex) or wordlist. :Example: >>> from dictionaries.wordlists import wordlists >>> mer = {'Articles': ['the', 'an', 'a'], 'Modals': wordlists.modals} >>> data.edit(merge_entries=mer) :Sorting: The `sort_by` keyword argument takes a `str`, which represents the way the result columns should be ordered. * `increase`: highest to lowest slope value * `decrease`: lowest to highest slope value * `turbulent`: most change in y axis values * `static`: least change in y axis values * `total/most`: largest number first * `infreq/least`: smallest number first * `name`: alphabetically :Example: >>> data.edit(sort_by='increase') :Editing text: Column labels, corresponding to individual interrogation results, can also be edited with `replace_names`. :param replace_names: Edit result names, then merge duplicate entries :type replace_names: `str`/`list of tuples`/`dict` If `replace_names` is a string, it is treated as a regex to delete from each name. If `replace_names` is a dict, the value is the regex, and the key is the replacement text. Using a list of tuples in the form `(find, replacement)` allows duplicate substitution values. :Example: >>> data.edit(replace_names={r'object': r'[di]obj'}) :param replace_subcorpus_names: Edit subcorpus names, then merge duplicates. The same as `replace_names`, but on the other axis. :type replace_subcorpus_names: `str`/`list of tuples`/`dict` :Other options: There are many other miscellaneous options. :param keep_stats: Keep/drop stats values from dataframe after sorting :type keep_stats: `bool` :param keep_top: After sorting, remove all but the top *keep_top* results :type keep_top: `int` :param just_totals: Sum each column and work with sums :type just_totals: `bool` :param threshold: When using results list as dataframe 2, drop values occurring fewer than n times. If not keywording, you can use: `'high'`: `denominator total / 2500` `'medium'`: `denominator total / 5000` `'low'`: `denominator total / 10000` If keywording, there are smaller default thresholds :type threshold: `int`/`bool` :param span_subcorpora: If subcorpora are numerically named, span all from *int* to *int2*, inclusive :type span_subcorpora: `tuple` -- `(int, int2)` :param projection: multiply results in subcorpus by n :type projection: tuple -- `(subcorpus_name, n)` :param remove_above_p: Delete any result over `p` :type remove_above_p: `bool` :param p: set the p value :type p: `float` :param revert_year: When doing linear regression on years, turn annual subcorpora into 1, 2 ... :type revert_year: `bool` :param print_info: Print stuff to console showing what's being edited :type print_info: `bool` :param spelling: Convert/normalise spelling: :type spelling: `str` -- `'US'`/`'UK'` :Keywording options: If the operation is `k`, you're calculating keywords. In this case, some other keyword arguments have an effect: :param keyword_measure: what measure to use to calculate keywords: `ll`: log-likelihood `pd': percentage difference type keyword_measure: `str` :param selfdrop: When keywording, try to remove target corpus from reference corpus :type selfdrop: `bool` :param calc_all: When keywording, calculate words that appear in either corpus :type calc_all: `bool` :returns: :class:`corpkit.interrogation.Interrogation` """ from corpkit.editor import editor return editor(self, *args, **kwargs) def sort(self, way, **kwargs): from corpkit.editor import editor return editor(self, sort_by=way, **kwargs) def visualise(self, title='', x_label=None, y_label=None, style='ggplot', figsize=(8, 4), save=False, legend_pos='best', reverse_legend='guess', num_to_plot=7, tex='try', colours='Accent', cumulative=False, pie_legend=True, rot=False, partial_pie=False, show_totals=False, transparent=False, output_format='png', interactive=False, black_and_white=False, show_p_val=False, indices=False, transpose=False, **kwargs ): """Visualise corpus interrogations using `matplotlib`. :Example: >>> data.visualise('An example plot', kind='bar', save=True) :param title: A title for the plot :type title: `str` :param x_label: A label for the x axis :type x_label: `str` :param y_label: A label for the y axis :type y_label: `str` :param kind: The kind of chart to make :type kind: `str` (`'line'`/`'bar'`/`'barh'`/`'pie'`/`'area'`/`'heatmap'`) :param style: Visual theme of plot :type style: `str` ('ggplot'/'bmh'/'fivethirtyeight'/'seaborn-talk'/etc) :param figsize: Size of plot :type figsize: `tuple` -- `(int, int)` :param save: If `bool`, save with *title* as name; if `str`, use `str` as name :type save: `bool`/`str` :param legend_pos: Where to place legend :type legend_pos: `str` ('upper right'/'outside right'/etc) :param reverse_legend: Reverse the order of the legend :type reverse_legend: `bool` :param num_to_plot: How many columns to plot :type num_to_plot: `int`/'all' :param tex: Use TeX to draw plot text :type tex: `bool` :param colours: Colourmap for lines/bars/slices :type colours: `str` :param cumulative: Plot values cumulatively :type cumulative: `bool` :param pie_legend: Show a legend for pie chart :type pie_legend: `bool` :param partial_pie: Allow plotting of pie slices only :type partial_pie: `bool` :param show_totals: Print sums in plot where possible :type show_totals: `str` -- 'legend'/'plot'/'both' :param transparent: Transparent .png background :type transparent: `bool` :param output_format: File format for saved image :type output_format: `str` -- 'png'/'pdf' :param black_and_white: Create black and white line styles :type black_and_white: `bool` :param show_p_val: Attempt to print p values in legend if contained in df :type show_p_val: `bool` :param indices: To use when plotting "distance from root" :type indices: `bool` :param stacked: When making bar chart, stack bars on top of one another :type stacked: `str` :param filled: For area and bar charts, make every column sum to 100 :type filled: `str` :param legend: Show a legend :type legend: `bool` :param rot: Rotate x axis ticks by *rot* degrees :type rot: `int` :param subplots: Plot each column separately :type subplots: `bool` :param layout: Grid shape to use when *subplots* is True :type layout: `tuple` -- `(int, int)` :param interactive: Experimental interactive options :type interactive: `list` -- `[1, 2, 3]` :returns: matplotlib figure """ from corpkit.plotter import plotter branch = kwargs.pop('branch', 'results') if branch.lower().startswith('r'): to_plot = self.results elif branch.lower().startswith('t'): to_plot = self.totals return plotter(to_plot, title=title, x_label=x_label, y_label=y_label, style=style, figsize=figsize, save=save, legend_pos=legend_pos, reverse_legend=reverse_legend, num_to_plot=num_to_plot, tex=tex, rot=rot, colours=colours, cumulative=cumulative, pie_legend=pie_legend, partial_pie=partial_pie, show_totals=show_totals, transparent=transparent, output_format=output_format, interactive=interactive, black_and_white=black_and_white, show_p_val=show_p_val, indices=indices, transpose=transpose, **kwargs ) def multiplot(self, leftdict={}, rightdict={}, **kwargs): from corpkit.plotter import multiplotter return multiplotter(self, leftdict=leftdict, rightdict=rightdict, **kwargs) def language_model(self, name, *args, **kwargs): """ Make a language model from an Interrogation. This is usually done directly on a :class:`corpkit.corpus.Corpus` object with the :func:`~corpkit.corpus.Corpus.make_language_model` method. """ from corpkit.model import _make_model_from_interro multi = self.multiindex() order = len(self.query['show']) return _make_model_from_interro(multi, name, order=order, *args, **kwargs) def save(self, savename, savedir='saved_interrogations', **kwargs): """ Save an interrogation as pickle to ``savedir``. :Example: >>> o = corpus.interrogate(W, 'any') ### create ./saved_interrogations/savename.p >>> o.save('savename') :param savename: A name for the saved file :type savename: `str` :param savedir: Relative path to directory in which to save file :type savedir: `str` :param print_info: Show/hide stdout :type print_info: `bool` :returns: None """ from corpkit.other import save save(self, savename, savedir=savedir, **kwargs) def quickview(self, n=25): """view top n results as painlessly as possible. :Example: >>> data.quickview(n=5) 0: to (n=2227) 1: that (n=2026) 2: the (n=1302) 3: then (n=857) 4: think (n=676) :param n: Show top *n* results :type n: `int` :returns: `None` """ from corpkit.other import quickview quickview(self, n=n) def tabview(self, **kwargs): import tabview tabview.view(self.results, **kwargs) def asciiplot(self, row_or_col_name, axis=0, colours=True, num_to_plot=100, line_length=120, min_graph_length=50, separator_length=4, multivalue=False, human_readable='si', graphsymbol='*', float_format='{:,.2f}', **kwargs): """ A very quick ascii chart for result """ from ascii_graph import Pyasciigraph from ascii_graph.colors import Gre, Yel, Red, Blu from ascii_graph.colordata import vcolor from ascii_graph.colordata import hcolor import pydoc graph = Pyasciigraph( line_length=line_length, min_graph_length=min_graph_length, separator_length=separator_length, multivalue=multivalue, human_readable=human_readable, graphsymbol=graphsymbol ) if axis == 0: dat = self.results.T[row_or_col_name] else: dat = self.results[row_or_col_name] data = list(zip(dat.index, dat.values))[:num_to_plot] if colours: pattern = [Gre, Yel, Red] data = vcolor(data, pattern) out = [] for line in graph.graph(label=None, data=data, float_format=float_format): out.append(line) pydoc.pipepager('\n'.join(out), cmd='less -X -R -S') def rel(self, denominator='self', **kwargs): return self.edit('%', denominator, **kwargs) def keyness(self, measure='ll', denominator='self', **kwargs): return self.edit('k', denominator, **kwargs) def multiindex(self, indexnames=None): """Create a `pandas.MultiIndex` object from slash-separated results. :Example: >>> data = corpus.interrogate({W: 'st$'}, show=[L, F]) >>> data.results .. just/advmod almost/advmod last/amod 01 79 12 6 02 105 6 7 03 86 10 1 >>> data.multiindex().results Lemma just almost last first most Function advmod advmod amod amod advmod 0 79 12 6 2 3 1 105 6 7 1 3 2 86 10 1 3 0 :param indexnames: provide custom names for the new index, or leave blank to guess. :type indexnames: `list` of strings :returns: :class:`corpkit.interrogation.Interrogation`, with `pandas.MultiIndex` as :py:attr:`~corpkit.interrogation.Interrogation.results` attribute """ from corpkit.other import make_multi return make_multi(self, indexnames=indexnames) def topwords(self, datatype='n', n=10, df=False, sort=True, precision=2): """Show top n results in each corpus alongside absolute or relative frequencies. :param datatype: show abs/rel frequencies, or keyness :type datatype: `str` (n/k/%) :param n: number of result to show :type n: `int` :param df: return a DataFrame :type df: `bool` :param sort: Sort results, or show as is :type sort: `bool` :param precision: float precision to show :type precision: `int` :Example: >>> data.topwords(n=5) 1987 % 1988 % 1989 % 1990 % health 25.70 health 15.25 health 19.64 credit 9.22 security 6.48 cancer 10.85 security 7.91 health 8.31 cancer 6.19 heart 6.31 cancer 6.55 downside 5.46 flight 4.45 breast 4.29 credit 4.08 inflation 3.37 safety 3.49 security 3.94 safety 3.26 cancer 3.12 :returns: None """ from corpkit.other import topwords if df: return topwords(self, datatype=datatype, n=n, df=True, sort=sort, precision=precision) else: topwords(self, datatype=datatype, n=n, sort=sort, precision=precision) def perplexity(self): """ Pythonification of the formal definition of perplexity. input: a sequence of chances (any iterable will do) output: perplexity value. from https://github.com/zeffii/NLP_class_notes """ def _perplex(chances): import math chances = [i for i in chances if i] N = len(chances) product = 1 for chance in chances: product *= chance return math.pow(product, -1/N) return self.results.apply(_perplex, axis=1) def entropy(self): """ entropy(pos.edit(merge_entries=mergetags, sort_by='total').results.T """ from scipy.stats import entropy import pandas as pd escores = entropy(self.rel().results.T) ser = pd.Series(escores, index=self.results.index) ser.name = 'Entropy' return ser def shannon(self): from corpkit.stats import shannon return shannon(self) class Concordance(pd.core.frame.DataFrame): """ A class for concordance lines, with methods for saving, formatting and editing. """ def __init__(self, data): super(Concordance, self).__init__(data) self.concordance = data def format(self, kind='string', n=100, window=35, print_it=True, columns='all', metadata=True, **kwargs): """ Print concordance lines nicely, to string, LaTeX or CSV :param kind: output format: `string`/`latex`/`csv` :type kind: `str` :param n: Print first `n` lines only :type n: `int`/`'all'` :param window: how many characters to show to left and right :type window: `int` :param columns: which columns to show :type columns: `list` :Example: >>> lines = corpus.concordance({T: r'/NN.?/ >># NP'}, show=L) ### show 25 characters either side, 4 lines, just text columns >>> lines.format(window=25, n=4, columns=[L,M,R]) 0 we 're in tucson , then up north to flagst 1 e 're in tucson , then up north to flagstaff , then we we 2 tucson , then up north to flagstaff , then we went through th 3 through the grand canyon area and then phoenix and i sp :returns: None """ from corpkit.other import concprinter if print_it: print(concprinter(self, kind=kind, n=n, window=window, columns=columns, return_it=True, metadata=metadata, **kwargs)) else: return concprinter(self, kind=kind, n=n, window=window, columns=columns, return_it=True, metadata=metadata, **kwargs) def calculate(self): """Make new Interrogation object from (modified) concordance lines""" from corpkit.process import interrogation_from_conclines return interrogation_from_conclines(self) def shuffle(self, inplace=False): """Shuffle concordance lines :param inplace: Modify current object, or create a new one :type inplace: `bool` :Example: >>> lines[:4].shuffle() 3 01 1-01.txt.conll through the grand canyon area and then phoenix and i sp 1 01 1-01.txt.conll e 're in tucson , then up north to flagstaff , then we we 0 01 1-01.txt.conll we 're in tucson , then up north to flagst 2 01 1-01.txt.conll tucson , then up north to flagstaff , then we went through th """ import random index = list(self.index) random.shuffle(index) shuffled = self.ix[index] shuffled.reset_index() if inplace: self = shuffled else: return shuffled def edit(self, *args, **kwargs): """ Delete or keep rows by subcorpus or by middle column text. >>> skipped = conc.edit(skip_entries=r'to_?match') """ from corpkit.editor import editor return editor(self, *args, **kwargs) def __str__(self): return self.format(print_it=False) def __repr__(self): return self.format(print_it=False) def less(self, **kwargs): import pydoc pydoc.pipepager(self.format(print_it=False, **kwargs), cmd='less -X -R -S') class Interrodict(OrderedDict): """ A class for interrogations that do not fit in a single-indexed DataFrame. Individual interrogations can be looked up via dict keys, indexes or attributes: :Example: >>> out_data['WSJ'].results >>> out_data.WSJ.results >>> out_data[3].results Methods for saving, editing, etc. are similar to :class:`corpkit.corpus.Interrogation`. Additional methods are available for collapsing into single (multi-indexed) DataFrames. This class is now deprecated, in favour of a multiindexed DataFrame. """ def __init__(self, data): from corpkit.process import makesafe if isinstance(data, list): data = OrderedDict(data) # attribute access for k, v in data.items(): setattr(self, makesafe(k), v) self.query = None super(Interrodict, self).__init__(data) def __getitem__(self, key): """allow slicing, indexing""" from corpkit.process import makesafe # allow slicing if isinstance(key, slice): n = OrderedDict() for ii in range(*key.indices(len(self))): n[self.keys()[ii]] = self[ii] return Interrodict(n) # allow integer index elif isinstance(key, int): return next(v for i, (k, v) in enumerate(self.items()) if i == key) #return self.subcorpora.__getitem__(makesafe(self.subcorpora[key])) # dict key access else: try: return OrderedDict.__getitem__(self, key) except: from corpkit.process import is_number if is_number(key): return self.__getattribute__('c' + key) def __setitem__(self, key, value): from corpkit.process import makesafe setattr(self, makesafe(key), value) super(Interrodict, self).__setitem__(key, value) def __repr__(self): return "<%s instance: %d items>" % (classname(self), len(self)) def __str__(self): return "<%s instance: %d items>" % (classname(self), len(self)) def edit(self, *args, **kwargs): """Edit each value with :func:`~corpkit.interrogation.Interrogation.edit`. See :func:`~corpkit.interrogation.Interrogation.edit` for possible arguments. :returns: A :class:`corpkit.interrogation.Interrodict` """ from corpkit.editor import editor return editor(self, *args, **kwargs) def multiindex(self, indexnames=False): """Create a `pandas.MultiIndex` version of results. :Example: >>> d = corpora.interrogate({F: 'compound', GL: '^risk'}, show=L) >>> d.keys() ['CHT', 'WAP', 'WSJ'] >>> d['CHT'].results .... health cancer security credit flight safety heart 1987 87 25 28 13 7 6 4 1988 72 24 20 15 7 4 9 1989 137 61 23 10 5 5 6 >>> d.multiindex().results ... health cancer credit security downside Corpus Subcorpus CHT 1987 87 25 13 28 20 1988 72 24 15 20 12 1989 137 61 10 23 10 WAP 1987 83 44 8 44 10 1988 83 27 13 40 6 1989 95 77 18 25 12 WSJ 1987 52 27 33 4 21 1988 39 11 37 9 22 1989 55 47 43 9 24 :returns: A :class:`corpkit.interrogation.Interrogation` """ import pandas as pd import numpy as np from itertools import product from corpkit.interrogation import Interrodict, Interrogation query = self.query def trav(dct, parents={}, level=0, colset=set(), results=list(), conc_results=list(), myparname=[]): """ Traverse the Interrodict and flatten it out """ from collections import defaultdict columns = False if hasattr(dct, 'items'): parents[level] = list(dct.keys()) level += 1 for k, v in list(dct.items()): pars = myparname + [k] # the below is only for python3 #pars = [*myparname, k] trav(v, parents=parents, level=level, results=results, myparname=pars) else: if parents.get(level): parents[level] |= set(dct.results.index) else: parents[level] = set(dct.results.index) if not dct.results.empty: if dct.concordance is not None: conc_results.append(dct.concordance) for n, ser in dct.results.iterrows(): ser.name = tuple(myparname + [ser.name]) #ser.name = (*myparname, ser.name) results.append(ser) for c in list(dct.results.columns): colset.add(c) level += 1 return results, conc_results data, conc = trav(self) index = [i.name for i in data] if conc: conc = pd.concat(conc) else: conc = None # todo: better default for speakers? if isinstance(self.query, dict) and self.query.get('subcorpora'): nms = {'names': self.query['subcorpora']} elif indexnames: nms = {'names': indexnames} else: nms = {} ix = pd.MultiIndex.from_tuples(index, **nms) df = pd.DataFrame(data, index=ix) df = df.fillna(0).astype(int) df = df[df.sum().sort_values(ascending=False).index] totals = df.sum(axis=1) return Interrogation(results=df, totals=totals, query=query, concordance=conc) def save(self, savename, savedir='saved_interrogations', **kwargs): """ Save an interrogation as pickle to `savedir`. :param savename: A name for the saved file :type savename: `str` :param savedir: Relative path to directory in which to save file :type savedir: `str` :param print_info: Show/hide stdout :type print_info: `bool` :Example: >>> o = corpus.interrogate(W, 'any') ### create ``saved_interrogations/savename.p`` >>> o.save('savename') :returns: None """ from corpkit.other import save save(self, savename, savedir=savedir, **kwargs) def collapse(self, axis='y'): """ Collapse Interrodict on an axis or along interrogation name. :param axis: collapse along x, y or name axis :type axis: `str`: x/y/n :Example: .. code-block:: python >>> d = corpora.interrogate({F: 'compound', GL: r'^risk'}, show=L) >>> d.keys() ['CHT', 'WAP', 'WSJ'] >>> d['CHT'].results .... health cancer security credit flight safety heart 1987 87 25 28 13 7 6 4 1988 72 24 20 15 7 4 9 1989 137 61 23 10 5 5 6 >>> d.collapse().results ... health cancer credit security CHT 3174 1156 566 697 WAP 2799 933 582 1127 WSJ 1812 680 2009 537 >>> d.collapse(axis='x').results ... 1987 1988 1989 CHT 384 328 464 WAP 389 355 435 WSJ 428 410 473 >>> d.collapse(axis='key').results ... health cancer credit security 1987 282 127 65 93 1988 277 100 70 107 1989 379 253 83 91 :returns: A :class:`corpkit.interrogation.Interrogation` """ # join on keys ... probably shouldn't transpose like this though! if axis.lower()[0] not in ['x', 'y']: df = self.values()[0].results others = [i.results.T for i in list(self.values())[1:]] try: df = df.T.join(others).T except ValueError: for i in self.values()[1:]: df = df.add(i.results, fill_value=0) df = df.fillna(0) else: out = [] for corpus_name, interro in self.items(): if axis.lower().startswith('y'): ax = 0 elif axis.lower().startswith('x'): ax = 1 data = interro.results.sum(axis=ax) data.name = corpus_name out.append(data) # concatenate and transpose df = pd.concat(out, axis=1).T # turn NaN to 0, sort df = df.fillna(0) #make interrogation object from df if not axis.lower().startswith('x'): df = df.edit(sort_by='total', print_info=False) else: df = df.edit(print_info=False) # make sure everything is int, not float for col in list(df.results.columns): df.results[col] = df.results[col].astype(int) return df def topwords(self, datatype='n', n=10, df=False, sort=True, precision=2): """Show top n results in each corpus alongside absolute or relative frequencies. :param datatype: show abs/rel frequencies, or keyness :type datatype: `str` (n/k/%) :param n: number of result to show :type n: `int` :param df: return a DataFrame :type df: `bool` :param sort: Sort results, or show as is :type sort: `bool` :param precision: float precision to show :type precision: `int` :Example: >>> data.topwords(n=5) TBT % UST % WAP % WSJ % health 25.70 health 15.25 health 19.64 credit 9.22 security 6.48 cancer 10.85 security 7.91 health 8.31 cancer 6.19 heart 6.31 cancer 6.55 downside 5.46 flight 4.45 breast 4.29 credit 4.08 inflation 3.37 safety 3.49 security 3.94 safety 3.26 cancer 3.12 :returns: None """ from corpkit.other import topwords if df: return topwords(self, datatype=datatype, n=n, df=True, sort=sort, precision=precision) else: topwords(self, datatype=datatype, n=n, sort=sort, precision=precision) def visualise(self, shape='auto', truncate=8, **kwargs): """ Attempt to visualise Interrodict by using subplots :param shape: Layout for the subplots (e.g. `(2, 2)`) :type shape: tuple :param truncate: Only process the first `n` items in the class:`corpkit.interrogation.Interrodict` :type truncate: `int` :param kwargs: specifications to pass to :func:`~corpkit.plotter.plotter` :type kwargs: keyword arguments """ import matplotlib.pyplot as plt if shape == 'auto': shape = (int(len(self) / 2), 2) if truncate: self = self[:truncate] f, axes = plt.subplots(*shape) for (name, interro), ax in zip(self.items(), axes.flatten()): if kwargs.get('name_format'): name = name_format.format(name) interro.visualise(name, ax=ax, **kwargs) return plt def copy(self): from corpkit.interrogation import Interrodict copied = {} for k, v in self.items(): copied[k] = v return Interrodict(copied) def flip(self, truncate=30, transpose=True, repeat=False, *args, **kwargs): """ Change the dimensions of :class:`corpkit.interrogation.Interrodict`, making column names into keys. :param truncate: Get first `n` columns :type truncate: `int`/`'all'` :param transpose: Flip rows and columns: :type transpose: `bool` :param repeat: Flip twice, to move columns into key position :type repeat: `bool` :param kwargs: Arguments to pass to the :func:`~corpkit.interrogation.Interrogation.edit` method :returns: :class:`corpkit.interrogation.Interrodict` """ import pandas as pd from corpkit.interrogation import Interrodict # copy interrodict copied = self.copy() # first, flip x axis and keys words = list(copied.collapse().results.columns) if truncate != 'all': words = words[:truncate] data = {} for word in words: wordata = [] for k, v in copied.items(): try: point = v.results[word] except KeyError: ser = [0] * len(v.results.index) point = pd.Series(ser, index=v.results.index) point.name = k wordata.append(point) df = pd.concat(wordata, axis=1) if transpose: df = df.T df = df.edit(*args, **kwargs) # divide each newspaper separately data[word] = df idi = Interrodict(data) if repeat: return idi.flip(truncate=truncate, transpose=False, repeat=False) else: return idi def get_totals(self): """ Helper function to concatenate all totals """ lst = [] # for each interrogation name and data for k, v in self.items(): # get the totals tot = v.totals # name the totals with the corpus name tot.name = k # add to a list lst.append(tot) # turn the list into a dataframe return pd.concat(lst, axis=1) ================================================ FILE: corpkit/interrogator.py ================================================ """ corpkit: Interrogate a parsed corpus """ from __future__ import print_function from corpkit.constants import STRINGTYPE, PYTHON_VERSION, INPUTFUNC def interrogator(corpus, search='w', query='any', show='w', exclude=False, excludemode='any', searchmode='all', case_sensitive=False, save=False, subcorpora=False, just_metadata=False, skip_metadata=False, preserve_case=False, lemmatag=False, files_as_subcorpora=False, only_unique=False, only_format_match=True, multiprocess=False, spelling=False, regex_nonword_filter=r'[A-Za-z0-9]', gramsize=1, conc=False, maxconc=9999, window=None, no_closed=False, no_punct=True, discard=False, **kwargs): """ Interrogate corpus, corpora, subcorpus and file objects. See corpkit.interrogation.interrogate() for docstring """ conc = kwargs.get('do_concordancing', conc) quiet = kwargs.get('quiet', False) coref = kwargs.pop('coref', False) show_conc_metadata = kwargs.pop('show_conc_metadata', False) fsi_index = kwargs.pop('fsi_index', True) dep_type = kwargs.pop('dep_type', 'collapsed-ccprocessed-dependencies') nosubmode = subcorpora is None #todo: temporary #if getattr(corpus, '_dlist', False): # subcorpora = 'file' # store kwargs and locs locs = locals().copy() locs.update(kwargs) locs.pop('kwargs', None) import codecs import signal import os from time import localtime, strftime from collections import Counter import pandas as pd from pandas import DataFrame, Series from corpkit.interrogation import Interrogation, Interrodict from corpkit.corpus import Datalist, Corpora, Corpus, File, Subcorpus from corpkit.process import (tregex_engine, get_deps, unsplitter, sanitise_dict, animator, filtermaker, fix_search, pat_format, auto_usecols, format_tregex, make_conc_lines_from_whole_mid) from corpkit.other import as_regex from corpkit.dictionaries.process_types import Wordlist from corpkit.build import check_jdk from corpkit.conll import pipeline from corpkit.process import delete_files_and_subcorpora have_java = check_jdk() # remake corpus without bad files and folders corpus, skip_metadata, just_metadata = delete_files_and_subcorpora(corpus, skip_metadata, just_metadata) # so you can do corpus.interrogate('features/postags/wordclasses/lexicon') if search == 'features': search = 'v' query = 'any' if search in ['postags', 'wordclasses']: query = 'any' preserve_case = True show = 'p' if search == 'postags' else 'x' # use tregex if simple because it's faster # but use dependencies otherwise search = 't' if not subcorpora and not just_metadata and not skip_metadata and have_java else {'w': 'any'} if search == 'lexicon': search = 't' if not subcorpora and not just_metadata and not skip_metadata and have_java else {'w': 'any'} query = 'any' show = ['w'] if not kwargs.get('cql') and isinstance(search, STRINGTYPE) and len(search) > 3: raise ValueError('search argument not recognised.') import re if regex_nonword_filter: is_a_word = re.compile(regex_nonword_filter) else: is_a_word = re.compile(r'.*') from traitlets import TraitError # convert cql-style queries---pop for the sake of multiprocessing cql = kwargs.pop('cql', None) if cql: from corpkit.cql import to_corpkit search, exclude = to_corpkit(search) def signal_handler(signal, _): """ Allow pausing and restarting whn not in GUI """ if root: return import signal import sys from time import localtime, strftime signal.signal(signal.SIGINT, original_sigint) thetime = strftime("%H:%M:%S", localtime()) INPUTFUNC('\n\n%s: Paused. Press any key to resume, or ctrl+c to quit.\n' % thetime) time = strftime("%H:%M:%S", localtime()) print('%s: Interrogation resumed.\n' % time) signal.signal(signal.SIGINT, signal_handler) def add_adj_for_ngram(show, gramsize): """ If there's a gramsize of more than 1, remake show for ngramming """ if gramsize == 1: return show out = [] for i in show: out.append(i) for i in range(1, gramsize): for bit in show: out.append('+%d%s' % (i, bit)) return out def fix_show_bit(show_bit): """ Take a single search/show_bit type, return match """ ends = ['w', 'l', 'i', 'n', 'f', 'p', 'x', 's', 'a', 'e', 'c'] starts = ['d', 'g', 'm', 'b', 'h', '+', '-', 'r', 'c'] show_bit = show_bit.lstrip('n') show_bit = show_bit.lstrip('b') show_bit = list(show_bit) if show_bit[-1] not in ends: show_bit.append('w') if show_bit[0] not in starts: show_bit.insert(0, 'm') return ''.join(show_bit) def fix_show(show, gramsize): """ Lowercase anything in show and turn into list """ if isinstance(show, list): show = [i.lower() for i in show] elif isinstance(show, STRINGTYPE): show = show.lower() show = [show] show = [fix_show_bit(i) for i in show] return add_adj_for_ngram(show, gramsize) def is_multiquery(corpus, search, query, outname): """ Determine if multiprocessing is needed/possibe, and do some retyping if need be as well """ is_mul = False from collections import OrderedDict from corpkit.dictionaries.process_types import Wordlist if isinstance(query, Wordlist): query = list(query) if subcorpora and multiprocess: is_mul = 'subcorpora' if isinstance(subcorpora, (list, tuple)): is_mul = 'subcorpora' if isinstance(query, (dict, OrderedDict)): is_mul = 'namedqueriessingle' if isinstance(search, dict): if all(isinstance(i, dict) for i in list(search.values())): is_mul = 'namedqueriesmultiple' return is_mul, corpus, search, query def ispunct(s): import string return all(c in string.punctuation for c in s) def uniquify(conc_lines): """get unique concordance lines""" from collections import OrderedDict unique_lines = [] checking = [] for index, (_, speakr, start, middle, end) in enumerate(conc_lines): joined = ' '.join([speakr, start, 'MIDDLEHERE:', middle, ':MIDDLEHERE', end]) if joined not in checking: unique_lines.append(conc_lines[index]) checking.append(joined) return unique_lines def compiler(pattern): """ Compile regex or fail gracefully """ if hasattr(pattern, 'pattern'): return pattern import re try: if case_sensitive: comped = re.compile(pattern) else: comped = re.compile(pattern, re.IGNORECASE) return comped except: import traceback import sys from time import localtime, strftime exc_type, exc_value, exc_traceback = sys.exc_info() lst = traceback.format_exception(exc_type, exc_value, exc_traceback) error_message = lst[-1] thetime = strftime("%H:%M:%S", localtime()) print('%s: Query %s' % (thetime, error_message)) if root: return 'Bad query' else: raise ValueError('%s: Query %s' % (thetime, error_message)) def determine_search_func(show): """Figure out what search function we're using""" simple_tregex_mode = False statsmode = False tree_to_text = False search_trees = False simp_crit = all(not i for i in [kwargs.get('tgrep'), files_as_subcorpora, subcorpora, just_metadata, skip_metadata]) if search.get('t') and simp_crit: if have_java: simple_tregex_mode = True else: search_trees = 'tgrep' optiontext = 'Searching parse trees' elif datatype == 'conll': if any(i.endswith('t') for i in search.keys()): if have_java and not kwargs.get('tgrep'): search_trees = 'tregex' else: search_trees = 'tgrep' optiontext = 'Searching parse trees' elif any(i.endswith('v') for i in search.keys()): # either of these searchers now seems to work #seacher = get_stats_conll statsmode = True optiontext = 'General statistics' elif any(i.endswith('r') for i in search.keys()): optiontext = 'Distance from root' else: optiontext = 'Querying CONLL data' return optiontext, simple_tregex_mode, statsmode, tree_to_text, search_trees def get_tregex_values(show): """If using Tregex, set appropriate values - Check for valid query - Make 'any' query - Make list query """ translated_option = 't' if isinstance(search['t'], Wordlist): search['t'] = list(search['t']) q = tregex_engine(corpus=False, query=search.get('t'), options=['-t'], check_query=True, root=root, preserve_case=preserve_case ) # so many of these bad fixing loops! nshow = [] for i in show: if i == 'm': nshow.append('w') else: nshow.append(i.lstrip('m')) show = nshow if q is False: if root: return 'Bad query', None else: return 'Bad query', None if isinstance(search['t'], list): regex = as_regex(search['t'], boundaries='line', case_sensitive=case_sensitive) else: regex = '' # listquery, anyquery, translated_option treg_dict = {'p': [r'__ < (/%s/ !< __)' % regex, r'__ < (/.?[A-Za-z0-9].?/ !< __)', 'u'], 'pl': [r'__ < (/%s/ !< __)' % regex, r'__ < (/.?[A-Za-z0-9].?/ !< __)', 'u'], 'x': [r'__ < (/%s/ !< __)' % regex, r'__ < (/.?[A-Za-z0-9].?/ !< __)', 'u'], 't': [r'__ < (/%s/ !< __)' % regex, r'__ < (/.?[A-Za-z0-9].?/ !< __)', 'o'], 'w': [r'/%s/ !< __' % regex, r'/.?[A-Za-z0-9].?/ !< __', 't'], 'c': [r'/%s/ !< __' % regex, r'/.?[A-Za-z0-9].?/ !< __', 'C'], 'l': [r'/%s/ !< __' % regex, r'/.?[A-Za-z0-9].?/ !< __', 't'], 'u': [r'/%s/ !< __' % regex, r'/.?[A-Za-z0-9].?/ !< __', 'v'] } newshow = [] listq, anyq, translated_option = treg_dict.get(show[0][-1].lower()) newshow.append(translated_option) for item in show[1:]: _, _, noption = treg_dict.get(item.lower()) newshow.append(noption) if isinstance(search['t'], list): search['t'] = listq elif search['t'] == 'any': search['t'] = anyq return search['t'], newshow def correct_spelling(a_string): """correct spelling within a string""" if not spelling: return a_string from corpkit.dictionaries.word_transforms import usa_convert if spelling.lower() == 'uk': usa_convert = {v: k for k, v in list(usa_convert.items())} bits = a_string.split('/') for index, i in enumerate(bits): converted = usa_convert.get(i.lower(), i) if i.islower() or preserve_case is False: converted = converted.lower() elif i.isupper() and preserve_case: converted = converted.upper() elif i.istitle() and preserve_case: converted = converted.title() bits[index] = converted r = '/'.join(bits) return r def make_search_iterable(corpus): """determine how to structure the corpus for interrogation""" # skip file definitions if they are not needed if getattr(corpus, '_dlist', False): return {(i.name, i.path): [i] for i in list(corpus.files)} #return {('Sample', 'Sample'): list(corpus.files)} if simple_tregex_mode: if corpus.level in ['s', 'f', 'd']: return {(corpus.name, corpus.path): False} else: return {(os.path.basename(i), os.path.join(corpus.path, i)): False for i in os.listdir(corpus.path) if os.path.isdir(os.path.join(corpus.path, i))} if isinstance(corpus, Datalist): to_iterate_over = {} # it could be files or subcorpus objects if corpus[0].level in ['s', 'd']: if files_as_subcorpora: for subc in corpus: for f in subc.files: to_iterate_over[(f.name, f.path)] = [f] else: for subc in corpus: to_iterate_over[(subc.name, subc.path)] = subc.files elif corpus[0].level == 'f': for f in corpus: to_iterate_over[(f.name, f.path)] = [f] elif corpus.singlefile: to_iterate_over = {(corpus.name, corpus.path): [corpus]} elif not hasattr(corpus, 'subcorpora') or not corpus.subcorpora: # just files in a directory if files_as_subcorpora: to_iterate_over = {} for f in corpus.files: to_iterate_over[(f.name, f.path)] = [f] else: to_iterate_over = {(corpus.name, corpus.path): corpus.files} else: to_iterate_over = {} if files_as_subcorpora: # don't know if possible: has subcorpora but also .files if hasattr(corpus, 'files') and corpus.files is not None: for f in corpus.files: to_iterate_over[(f.name, f.path)] = [f] # has subcorpora with files in those elif hasattr(corpus, 'files') and corpus.files is None: for subc in corpus.subcorpora: for f in subc.files: to_iterate_over[(f.name, f.path)] = [f] else: if corpus[0].level == 's': for subcorpus in corpus: to_iterate_over[(subcorpus.name, subcorpus.path)] = subcorpus.files elif corpus[0].level == 'f': for f in corpus: to_iterate_over[(f.name, f.path)] = [f] else: for subcorpus in corpus.subcorpora: to_iterate_over[(subcorpus.name, subcorpus.path)] = subcorpus.files return to_iterate_over def welcome_printer(return_it=False): """Print welcome message""" if no_conc: message = 'Interrogating' else: message = 'Interrogating and concordancing' if only_conc: message = 'Concordancing' if kwargs.get('printstatus', True): thetime = strftime("%H:%M:%S", localtime()) from corpkit.process import dictformat sformat = dictformat(search) welcome = ('\n%s: %s %s ...\n %s\n ' \ 'Query: %s\n %s corpus ... \n' % \ (thetime, message, cname, optiontext, sformat, message)) if return_it: return welcome else: print(welcome) def goodbye_printer(return_it=False, only_conc=False): """Say goodbye before exiting""" if not kwargs.get('printstatus', True): return thetime = strftime("%H:%M:%S", localtime()) if only_conc: finalstring = '\n\n%s: Concordancing finished! %s results.' % (thetime, format(len(conc_df), ',')) else: finalstring = '\n\n%s: Interrogation finished!' % thetime if countmode: finalstring += ' %s matches.' % format(tot, ',') else: finalstring += ' %s unique results, %s total occurrences.' % (format(numentries, ','), format(total_total, ',')) if return_it: return finalstring else: print(finalstring) def get_conc_colnames(corpus, fsi_index=False, simple_tregex_mode=False): fields = [] base = 'c f s l m r' if simple_tregex_mode: base = base.replace('f ', '') if fsi_index and not simple_tregex_mode: base = 'i ' + base if PYTHON_VERSION == 2: base = base.encode('utf-8').split() else: base = base.split() if show_conc_metadata: from corpkit.build import get_all_metadata_fields meta = get_all_metadata_fields(corpus.path) if isinstance(show_conc_metadata, list): meta = [i for i in meta if i in show_conc_metadata] #elif show_conc_metadata is True: # pass for i in sorted(meta): if i in ['speaker', 'sent_id', 'parse']: continue if PYTHON_VERSION == 2: base.append(i.encode('utf-8')) else: base.append(i) return base def make_conc_obj_from_conclines(conc_results, fsi_index=False): """ Turn conclines into DataFrame """ from corpkit.interrogation import Concordance #fsi_place = 2 if fsi_index else 0 all_conc_lines = [] for sc_name, resu in sorted(conc_results.items()): if only_unique: unique_results = uniquify(resu) else: unique_results = resu #make into series for lin in unique_results: #spkr = str(spkr, errors = 'ignore') #if not subcorpora: # lin[fsi_place] = lin[fsi_place] #lin.insert(fsi_place, sc_name) if len(lin) < len(conc_col_names): diff = len(conc_col_names) - len(lin) lin.extend(['none'] * diff) all_conc_lines.append(Series(lin, index=conc_col_names)) try: conc_df = pd.concat(all_conc_lines, axis=1).T except ValueError: return if all(x == '' for x in list(conc_df['s'].values)) or \ all(x == 'none' for x in list(conc_df['s'].values)): conc_df.drop('s', axis=1, inplace=True) locs['corpus'] = corpus.name if maxconc: conc_df = Concordance(conc_df[:maxconc]) else: conc_df = Concordance(conc_df) try: conc_df.query = locs except AttributeError: pass return conc_df def lowercase_result(res): """ Take any result and do spelling/lowercasing if need be todo: remove lowercase and change name """ if not res or statsmode: return res # this is likely broken, but spelling in interrogate is deprecated anyway if spelling: res = [correct_spelling(r) for r in res] return res def postprocess_concline(line, fsi_index=False, conc=False): # todo: are these right? if not conc: return line subc, star, en = 0, 2, 5 if fsi_index: subc, star, en = 2, 4, 7 if not preserve_case: line[star:en] = [str(x).lower() for x in line[star:en]] if spelling: line[star:en] = [correct_spelling(str(b)) for b in line[star:en]] return line def make_progress_bar(): """generate a progress bar""" if simple_tregex_mode: total_files = len(list(to_iterate_over.keys())) else: total_files = sum(len(x) for x in list(to_iterate_over.values())) par_args = {'printstatus': kwargs.get('printstatus', True), 'root': root, 'note': note, 'quiet': quiet, 'length': total_files, 'startnum': kwargs.get('startnum'), 'denom': kwargs.get('denominator', 1)} term = None if kwargs.get('paralleling', None) is not None: from blessings import Terminal term = Terminal() par_args['terminal'] = term par_args['linenum'] = kwargs.get('paralleling') if in_notebook: par_args['welcome_message'] = welcome_message outn = kwargs.get('outname', '') if outn: outn = getattr(outn, 'name', outn) outn = outn + ': ' tstr = '%s%d/%d' % (outn, current_iter, total_files) p = animator(None, None, init=True, tot_string=tstr, **par_args) tstr = '%s%d/%d' % (outn, current_iter + 1, total_files) animator(p, current_iter, tstr, **par_args) return p, outn, total_files, par_args # find out if using gui root = kwargs.get('root') note = kwargs.get('note') language_model = kwargs.get('language_model') # set up pause method original_sigint = signal.getsignal(signal.SIGINT) if kwargs.get('paralleling', None) is None: if not root: original_sigint = signal.getsignal(signal.SIGINT) signal.signal(signal.SIGINT, signal_handler) # find out about concordancing only_conc = False no_conc = False if conc is False: no_conc = True if isinstance(conc, str) and conc.lower() == 'only': only_conc = True no_conc = False numconc = 0 # wipe non essential class attributes to not bloat query attrib if isinstance(corpus, Corpus): import copy corpus = copy.copy(corpus) for k, v in corpus.__dict__.items(): if isinstance(v, (Interrogation, Interrodict)): corpus.__dict__.pop(k, None) # convert path to corpus object if not isinstance(corpus, (Corpus, Corpora, Subcorpus, File, Datalist)): if not multiprocess and not kwargs.get('outname'): corpus = Corpus(corpus, print_info=False) # figure out how the user has entered the query and show, and normalise from corpkit.process import searchfixer search = searchfixer(search, query) show = fix_show(show, gramsize) locs['show'] = show # instantiate lemmatiser if need be lem_instance = False if any(i.endswith('l') for i in show) and isinstance(search, dict) and search.get('t'): from nltk.stem.wordnet import WordNetLemmatizer lem_instance = WordNetLemmatizer() # do multiprocessing if need be im, corpus, search, query, = is_multiquery(corpus, search, query, kwargs.get('outname', False)) # figure out if we can multiprocess the corpus if hasattr(corpus, '__iter__') and im: corpus = Corpus(corpus, print_info=False) if hasattr(corpus, '__iter__') and not im: im = 'datalist' if isinstance(corpus, Corpora): im = 'multiplecorpora' # split corpus if the user wants multiprocessing but no other iterable if not im and multiprocess: im = 'datalist' if getattr(corpus, 'subcorpora', False): corpus = corpus[:] else: corpus = corpus.files search = fix_search(search, case_sensitive=case_sensitive, root=root) exclude = fix_search(exclude, case_sensitive=case_sensitive, root=root) # if it's already been through pmultiquery, don't do it again locs['search'] = search locs['exclude'] = exclude locs['query'] = query locs['corpus'] = corpus locs['multiprocess'] = multiprocess locs['print_info'] = kwargs.get('printstatus', True) locs['multiple'] = im locs['subcorpora'] = subcorpora locs['nosubmode'] = nosubmode # send to multiprocess function if im: signal.signal(signal.SIGINT, original_sigint) from corpkit.multiprocess import pmultiquery return pmultiquery(**locs) # get corpus metadata cname = corpus.name if isinstance(save, STRINGTYPE): savename = corpus.name + '-' + save if save is True: raise ValueError('save must be str, not bool.') datatype = getattr(corpus, 'datatype', 'conll') singlefile = getattr(corpus, 'singlefile', False) level = getattr(corpus, 'level', 'c') # store all results in here from collections import defaultdict results = defaultdict(Counter) count_results = defaultdict(list) conc_results = defaultdict(list) # check if just counting, turn off conc if so countmode = 'c' in show or 'mc' in show if countmode: no_conc = True only_conc = False # where we are at in interrogation current_iter = 0 # multiprocessing progress bar denom = kwargs.get('denominator', 1) startnum = kwargs.get('startnum', 0) # Determine the search function to be used # optiontext, simple_tregex_mode, statsmode, tree_to_text, search_trees = determine_search_func(show) # no conc for statsmode if statsmode: no_conc = True only_conc = False conc = False # Set some Tregex-related values translated_option = False if search.get('t'): query, translated_option = get_tregex_values(show) if query == 'Bad query' and translated_option is None: if root: return 'Bad query' else: return # more tregex options if tree_to_text: treg_q = r'ROOT << __' op = ['-o', '-t', '-w', '-f'] elif simple_tregex_mode: treg_q = search['t'] op = ['-%s' % i for i in translated_option] + ['-o', '-f'] # make iterable object for corpus interrogation to_iterate_over = make_search_iterable(corpus) try: nam = get_ipython().__class__.__name__ if nam == 'ZMQInteractiveShell': in_notebook = True else: in_notebook = False except TraitError: in_notebook = False except ImportError: in_notebook = False # caused in newest ipython except AttributeError: in_notebook = False except NameError: in_notebook = False lemtag = False if search.get('t'): from corpkit.process import gettag lemtag = gettag(search.get('t'), lemmatag) usecols = auto_usecols(search, exclude, show, kwargs.pop('usecols', None), coref=coref) # print welcome message welcome_message = welcome_printer(return_it=in_notebook) # create a progress bar p, outn, total_files, par_args = make_progress_bar() if conc: conc_col_names = get_conc_colnames(corpus, fsi_index=fsi_index, simple_tregex_mode=False) # Iterate over data, doing interrogations for (subcorpus_name, subcorpus_path), files in sorted(to_iterate_over.items()): if nosubmode: subcorpus_name = 'Total' # results for subcorpus go here #conc_results[subcorpus_name] = [] #count_results[subcorpus_name] = [] #results[subcorpus_name] = Counter() # get either everything (tree_to_text) or the search['t'] query if tree_to_text or simple_tregex_mode: result = tregex_engine(query=treg_q, options=op, corpus=subcorpus_path, root=root, preserve_case=preserve_case) # format search results with slashes etc if not countmode and not tree_to_text: result = format_tregex(result, show, translated_option=translated_option, exclude=exclude, excludemode=excludemode, lemtag=lemtag, lem_instance=lem_instance, countmode=countmode, speaker_data=False) # if concordancing, do the query again with 'whole' sent and fname if not no_conc: ops = ['-w'] + op #ops = [i for i in ops if i != '-n'] whole_result = tregex_engine(query=search['t'], options=ops, corpus=subcorpus_path, root=root, preserve_case=preserve_case ) # format match too depending on option if not only_format_match: wholeresult = format_tregex(whole_result, show, translated_option=translated_option, exclude=exclude, excludemode=excludemode, lemtag=lemtag, lem_instance=lem_instance, countmode=countmode, speaker_data=False, whole=True) # make conc lines from conc results conc_result = make_conc_lines_from_whole_mid(whole_result, result, show=show) for lin in conc_result: if maxconc is False or numconc < maxconc: conc_results[subcorpus_name].append(lin) numconc += 1 # add matches to ongoing counts if countmode: count_results[subcorpus_name] += [result] else: if result: results[subcorpus_name] += Counter([i[-1] for i in result]) else: results[subcorpus_name] += Counter() # update progress bar current_iter += 1 tstr = '%s%d/%d' % (outn, current_iter + 1, total_files) animator(p, current_iter, tstr, **par_args) continue # todo: move this kwargs.pop('by_metadata', None) # conll querying goes by file, not subcorpus for f in files: slow_treg_speaker_guess = kwargs.get('outname', '') if kwargs.get('multispeaker') else '' filepath, corefs = f.path, coref res, conc_res = pipeline(filepath, search=search, show=show, dep_type=dep_type, exclude=exclude, excludemode=excludemode, searchmode=searchmode, case_sensitive=case_sensitive, conc=conc, only_format_match=only_format_match, speaker=slow_treg_speaker_guess, gramsize=gramsize, no_punct=no_punct, no_closed=no_closed, window=window, filename=f.path, coref=corefs, countmode=countmode, maxconc=(maxconc, numconc), is_a_word=is_a_word, by_metadata=subcorpora, show_conc_metadata=show_conc_metadata, just_metadata=just_metadata, skip_metadata=skip_metadata, fsi_index=fsi_index, category=subcorpus_name, translated_option=translated_option, statsmode=statsmode, preserve_case=preserve_case, usecols=usecols, search_trees=search_trees, lem_instance=lem_instance, lemtag=lemtag, **kwargs) if res is None and conc_res is None: current_iter += 1 tstr = '%s%d/%d' % (outn, current_iter + 1, total_files) animator(p, current_iter, tstr, **par_args) continue # deal with symbolic structures---that is, rather than adding # results by subcorpora, add them by metadata value # todo: sorting? if subcorpora: for (k, v), concl in zip(res.items(), conc_res.values()): v = lowercase_result(v) results[k] += Counter(v) for line in concl: if maxconc is False or numconc < maxconc: line = postprocess_concline(line, fsi_index=fsi_index, conc=conc) conc_results[k].append(line) numconc += 1 current_iter += 1 tstr = '%s%d/%d' % (outn, current_iter + 1, total_files) animator(p, current_iter, tstr, **par_args) continue # garbage collection needed? sents = None corefs = None if res == 'Bad query': return 'Bad query' if countmode: count_results[subcorpus_name] += [res] else: # add filename and do lowercasing for conc if not no_conc: for line in conc_res: line = postprocess_concline(line, fsi_index=fsi_index, conc=conc) if maxconc is False or numconc < maxconc: conc_results[subcorpus_name].append(line) numconc += 1 # do lowercasing and spelling if not only_conc: res = lowercase_result(res) # discard removes low results, helping with # curse of dimensionality countres = Counter(res) if isinstance(discard, float): countres.most_common() nkeep = len(counter) - len(counter) * discard countres = Counter({k: v for i, (k, v) in enumerate(countres.most_common()) if i <= nkeep}) elif isinstance(discard, int): countres = Counter({k: v for k, v in countres.most_common() if v >= discard}) results[subcorpus_name] += countres #else: #results[subcorpus_name] += res # update progress bar current_iter += 1 tstr = '%s%d/%d' % (outn, current_iter + 1, total_files) animator(p, current_iter, tstr, **par_args) # Get concordances into DataFrame, return if just conc if not no_conc: # fail on this line with typeerror if no results? conc_df = make_conc_obj_from_conclines(conc_results, fsi_index=fsi_index) if only_conc and conc_df is None: return elif only_conc: locs = sanitise_dict(locs) try: conc_df.query = locs except AttributeError: return conc_df if save and not kwargs.get('outname'): if conc_df is not None: conc_df.save(savename) goodbye_printer(only_conc=True) if not root: signal.signal(signal.SIGINT, original_sigint) return conc_df else: conc_df = None # Get interrogation into DataFrame if countmode: df = Series({k: sum(v) for k, v in sorted(count_results.items())}) tot = df.sum() else: the_big_dict = {} unique_results = set(item for sublist in list(results.values()) for item in sublist) sortres = sorted(results.items(), key=lambda x: x[0]) for word in unique_results: the_big_dict[word] = [subcorp_result[word] for _, subcorp_result in sortres] # turn master dict into dataframe, sorted df = DataFrame(the_big_dict, index=sorted(results.keys())) # for ngrams, remove hapaxes #if show_ngram or show_collocates: # if not language_model: # df = df[[i for i in list(df.columns) if df[i].sum() > 1]] numentries = len(df.columns) tot = df.sum(axis=1) total_total = df.sum().sum() # turn df into series if all conditions met conds = [countmode, files_as_subcorpora, subcorpora, kwargs.get('df1_always_df', False)] anyxs = [level == 's', singlefile, nosubmode] if all(not x for x in conds) and any(x for x in anyxs): df = Series(df.ix[0]) df.sort_values(ascending=False, inplace=True) tot = df.sum() numentries = len(df.index) total_total = tot # turn data into DF for GUI if need be if isinstance(df, Series) and kwargs.get('df1_always_df', False): total_total = df.sum() df = DataFrame(df) tot = Series(total_total, index=['Total']) # if we're doing files as subcorpora, we can remove the extension etc if isinstance(df, DataFrame) and files_as_subcorpora: df.index = df.index.str.replace(r'(?:-[0-9][0-9][0-9]|)\.txt\.conll.*', '') df = df.groupby(level=0,sort=True).sum() if conc_df is not None and conc_df is not False: # removed 'f' from here for now for col in ['c']: for pat in ['.txt', '.conll', '.conllu']: conc_df[col] = conc_df[col].str.replace(pat, '') conc_df[col] = conc_df[col].str.replace(r'-[0-9][0-9][0-9]$', '') #df.index = df.index.str.replace('w', 'this') # make interrogation object locs['corpus'] = corpus.path locs = sanitise_dict(locs) if nosubmode and isinstance(df, pd.DataFrame): df = df.sum() interro = Interrogation(results=df, totals=tot, query=locs, concordance=conc_df) # save it if save and not kwargs.get('outname'): print('\n') interro.save(savename) goodbye = goodbye_printer(return_it=in_notebook) if in_notebook: try: p.children[2].value = goodbye.replace('\n', '') except AttributeError: pass if not root: signal.signal(signal.SIGINT, original_sigint) return interro ================================================ FILE: corpkit/keys.py ================================================ """corpkit: simple keyworder""" from __future__ import print_function from corpkit.constants import STRINGTYPE, PYTHON_VERSION def keywords(target_corpus, reference_corpus='bnc.p', threshold=False, selfdrop=True, calc_all=True, measure='ll', sort_by=False, print_info=False, **kwargs): """Feed this function some target_corpus and get its keywords""" from pandas import DataFrame, Series from collections import Counter from corpkit.interrogation import Interrogation def data_to_dict(target_corpus): """turn Series/DataFrame into Counter""" if isinstance(target_corpus, Interrogation): if hasattr(target_corpus, 'results'): target_corpus = target_corpus.results else: target_corpus = target_corpus.totals if isinstance(target_corpus, Series): return Counter(target_corpus.to_dict()) elif isinstance(target_corpus, DataFrame): return Counter(target_corpus.sum().to_dict()) else: return Counter(target_corpus) def log_likelihood_measure(word_in_ref, word_in_target, ref_sum, target_sum): """calc log likelihood keyness""" import math neg = (word_in_target / float(target_sum)) < (word_in_ref / float(ref_sum)) E1 = float(ref_sum)*((float(word_in_ref)+float(word_in_target)) / \ (float(ref_sum)+float(target_sum))) E2 = float(target_sum)*((float(word_in_ref)+float(word_in_target)) / \ (float(ref_sum)+float(target_sum))) if word_in_ref == 0: logaE1 = 0 else: logaE1 = math.log(word_in_ref/E1) if word_in_target == 0: logaE2 = 0 else: logaE2 = math.log(word_in_target/E2) score = float(2* ((word_in_ref*logaE1)+(word_in_target*logaE2))) if neg: score = -score return score def perc_diff_measure(word_in_ref, word_in_target, ref_sum, target_sum): """calculate using perc diff measure""" norm_target = float(word_in_target) / target_sum norm_ref = float(word_in_ref) / ref_sum # Gabrielatos and Marchi (2012) do it this way! if norm_ref == 0: norm_ref = 0.00000000000000000000000001 return ((norm_target - norm_ref) * 100.0) / norm_ref def set_threshold(threshold): """define a threshold""" if threshold is False: return 0 if threshold is True: threshold = 'm' if isinstance(threshold, STRINGTYPE): if threshold.startswith('l'): denominator = 800 if threshold.startswith('m'): denominator = 400 if threshold.startswith('h'): denominator = 100 totwords = sum(loaded_ref_corpus.values()) return float(totwords) / float(denominator) else: return threshold def calc_keywords(target_corpus, reference_corpus): """ get keywords in target corpus compared to reference corpus this should probably become some kind of row-wise df.apply method """ # get total num words in ref corpus key_scores = {} ref_sum = sum(reference_corpus.values()) if isinstance(target_corpus, dict): target_sum = sum(target_corpus.values()) if isinstance(target_corpus, Series): target_sum = target_corpus.sum() # get words to calculate if calc_all: wordlist = list(set(list(target_corpus.keys()) + list(reference_corpus.keys()))) else: wordlist = list(target_corpus.keys()) wordlist = [(word, reference_corpus[word]) for word in wordlist] for w, s in wordlist: if s < threshold: global skipped skipped += 1 continue word_in_ref = reference_corpus.get(w, 0) word_in_target = target_corpus.get(w, 0) if kwargs.get('only_words_in_both_corpora'): if word_in_ref == 0: continue score = measure_func(word_in_ref, word_in_target, ref_sum, target_sum) key_scores[w] = score return key_scores # load string ref corp if isinstance(reference_corpus, STRINGTYPE): from corpkit.other import load ldr = kwargs.get('loaddir', 'dictionaries') reference_corpus = load(reference_corpus, loaddir=ldr) # if a corpus interrogation, assume we want results if isinstance(target_corpus, Interrogation): reference_corpus = reference_corpus.results # turn data into dict loaded_ref_corpus = data_to_dict(reference_corpus) df = target_corpus index_names = list(df.index) results = {} threshold = set_threshold(threshold) global skipped skipped = 0 # figure out which measure we're using if measure == 'll': measure_func = log_likelihood_measure elif measure == 'pd': measure_func = perc_diff_measure else: raise NotImplementedError("Only 'll' and 'pd' measures defined so far.") for subcorpus in index_names: if selfdrop: ref_calc = loaded_ref_corpus - Counter(reference_corpus.ix[subcorpus].to_dict()) else: ref_calc = loaded_ref_corpus results[subcorpus] = calc_keywords(df.ix[subcorpus], ref_calc) if print_info: print('Skipped %d entries under threshold (%d)\n' % (skipped, threshold)) df = DataFrame(results).T df.sort_index() if not sort_by: df = df[list(df.sum().sort_values(ascending=False).index)] return df ================================================ FILE: corpkit/layouts.py ================================================ """ This file contains a dictionary of matplotlib subplot layouts They are used during multiplotting. Sooner or later they should be accessible with something other than integer keys, as this is hard to comprehend... """ layouts = {1: [(1, 2, 1), (1, 2, 2)], 2: [(1, 2, 1), (1, 3, 2), (1, 3, 3)], 3: [(1, 2, 1), (3, 2, 2), (3, 2, 4), (3, 2, 6)], 3.5: [(2, 1, 1), (2, 3, 4), (2, 3, 5), (2, 3, 6)], 4: [(1, 2, 1), (2, 4, 3), (2, 4, 4), (2, 4, 7), (2, 4, 8)], 5: [(3, 3, (1, 5)), (3, 3, 3), (3, 3, 6), (3, 3, 7), (3, 3, 8), (3, 3, 9)], 6: [(1, 2, 1), (3, 4, 3), (3, 4, 4), (3, 4, 7), (3, 4, 8), (3, 4, 11), (3, 4, 12)], 6.5: [(4, 2, (6, 8)), (4, 2, 1), (4, 2, 2), (4, 2, 3), (4, 2, 4), (4, 2, 5), (4, 2, 7)], 9: [(1, 5, (1, 2)), (3, 5, 3), (3, 5, 4), (3, 5, 5), (3, 5, 8), (3, 5, 9), (3, 5, 10), (3, 5, 13), (3, 5, 14), (3, 5, 15)], 9.5: [(1, 6, (1, 3)), (3, 6, 4), (3, 6, 5), (3, 6, 6), (3, 6, 10), (3, 6, 11), (3, 6, 12), (3, 6, 16), (3, 6, 17), (3, 6, 18)], 12: [(4, 1, 1), (4, 4, 5), (4, 4, 6), (4, 4, 7), (4, 4, 8), (4, 4, 9), (4, 4, 10), (4, 4, 11), (4, 4, 12), (4, 4, 13), (4, 4, 14), (4, 4, 15), (4, 4, 16)], 12.5: [(4, 4, (1, 6)), (4, 4, 3), (4, 4, 4), (4, 4, 7), (4, 4, 8), (4, 4, 9), (4, 4, 10), (4, 4, 11), (4, 4, 12), (4, 4, 13), (4, 4, 14), (4, 4, 15), (4, 4, 16)], 14: [(6, 3, (1, 5)), (6, 3, 3), (6, 3, 6), (6, 3, 7), (6, 3, 8), (6, 3, 9), (6, 3, 10), (6, 3, 11), (6, 3, 12), (6, 3, 13), (6, 3, 14), (6, 3, 15), (6, 3, 16), (6, 3, 17), (6, 3, 18)] } ================================================ FILE: corpkit/lazyprop.py ================================================ # this file duplicates lazyprop many times because i can't work out how to # automatically add the right docstring... def lazyprop(fn): """Lazy loading class attributes, with hard-coded docstrings for now...""" attr_name = '_lazy_' + fn.__name__ if fn.__name__ == 'subcorpora': @property def _lazyprop(self): """A list-like object containing a corpus' subcorpora. :Example: >>> corpus.subcorpora """ if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) elif fn.__name__ == 'files': @property def _lazyprop(self): """A list-like object containing the files in a folder. :Example: >>> corpus.subcorpora[0].files """ if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) elif fn.__name__ == 'features': @property def _lazyprop(self): """ Generate and show basic stats from the corpus, including number of sentences, clauses, process types, etc. :Example: >>> corpus.features .. Characters Tokens Words Closed class words Open class words Clauses 01 26873 8513 7308 4809 3704 2212 02 25844 7933 6920 4313 3620 2270 03 18376 5683 4877 3067 2616 1640 04 20066 6354 5366 3587 2767 1775 """ if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) elif fn.__name__ == 'document': @property def _lazyprop(self): """Return a DataFrame representation of a parsed file""" if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) elif fn.__name__ == 'relational': @property def _lazyprop(self): """List of relational processes""" if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) elif fn.__name__ == 'verbal': @property def _lazyprop(self): """List of verbal processes""" if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) elif fn.__name__ == 'mental': @property def _lazyprop(self): """List of mental processes""" if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) else: @property def _lazyprop(self): """Lazy-loaded data. """ if not hasattr(self, attr_name): setattr(self, attr_name, fn(self)) return getattr(self, attr_name) return _lazyprop ================================================ FILE: corpkit/make.py ================================================ from __future__ import print_function from corpkit.constants import INPUTFUNC, PYTHON_VERSION def make_corpus(unparsed_corpus_path, project_path=None, parse=True, tokenise=False, postag=False, lemmatise=False, corenlppath=False, nltk_data_path=False, operations=False, speaker_segmentation=False, root=False, multiprocess=False, split_texts=400, outname=False, metadata=False, restart=False, coref=True, lang='en', **kwargs): """ Create a parsed version of unparsed_corpus using CoreNLP or NLTK's tokeniser :param unparsed_corpus_path: path to corpus containing text files, or subdirs containing text files :type unparsed_corpus_path: str :param project_path: path to corpkit project :type project_path: str :param parse: Do parsing? :type parse: bool :param tokenise: Do tokenising? :type tokenise: bool :param corenlppath: folder containing corenlp jar files :type corenlppath: str :param nltk_data_path: path to tokeniser if tokenising :type nltk_data_path: str :param operations: which kinds of annotations to do :type operations: str :param speaker_segmentation: add speaker name to parser output if your corpus is script-like: :type speaker_segmentation: bool :returns: list of paths to created corpora """ import sys import os from os.path import join, isfile, isdir, basename, splitext, exists import shutil import codecs from corpkit.build import folderise, can_folderise from corpkit.process import saferead, make_dotfile from corpkit.build import (get_corpus_filepaths, check_jdk, rename_all_files, make_no_id_corpus, parse_corpus, move_parsed_files) from corpkit.constants import REPEAT_PARSE_ATTEMPTS, OPENER, PYTHON_VERSION if parse is True and tokenise is True: raise ValueError('Select either parse or tokenise, not both.') if project_path is None: project_path = os.getcwd() fileparse = isfile(unparsed_corpus_path) if fileparse: copier = shutil.copyfile else: copier = shutil.copytree # raise error if no tokeniser #if tokenise: # if outname: # newpath = os.path.join(os.path.dirname(unparsed_corpus_path), outname) # else: # newpath = unparsed_corpus_path + '-tokenised' # if isdir(newpath): # shutil.rmtree(newpath) # import nltk # if nltk_data_path: # if nltk_data_path not in nltk.data.path: # nltk.data.path.append(nltk_data_path) # try: # from nltk import word_tokenize as tokenise # except: # print('\nTokeniser not found. Pass in its path as keyword arg "nltk_data_path = ".\n') # raise if sys.platform == "darwin": if not check_jdk(): print("Get the latest Java from http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html") cop_head = kwargs.get('copula_head', True) note = kwargs.get('note', False) stdout = kwargs.get('stdout', False) # make absolute path to corpus unparsed_corpus_path = os.path.abspath(unparsed_corpus_path) # move it into project if fileparse: datapath = project_path else: datapath = join(project_path, 'data') if isdir(datapath): newp = join(datapath, basename(unparsed_corpus_path)) else: os.makedirs(datapath) if fileparse: noext = splitext(unparsed_corpus_path)[0] newp = join(datapath, basename(noext)) else: newp = join(datapath, basename(unparsed_corpus_path)) if exists(newp): pass else: copier(unparsed_corpus_path, newp) unparsed_corpus_path = newp # ask to folderise? check_do_folderise = False do_folderise = kwargs.get('folderise', None) if can_folderise(unparsed_corpus_path): import __main__ as main if do_folderise is None and not hasattr(main, '__file__'): check_do_folderise = INPUTFUNC("Your corpus has multiple files, but no subcorpora. "\ "Would you like each file to be treated as a subcorpus? (y/n) ") check_do_folderise = check_do_folderise.lower().startswith('y') if check_do_folderise or do_folderise: folderise(unparsed_corpus_path) # this is bad! if join('data', 'data') in unparsed_corpus_path: unparsed_corpus_path = unparsed_corpus_path.replace(join('data', 'data'), 'data') def chunks(l, n): for i in range(0, len(l), n): yield l[i:i+n] if (parse or tokenise) and coref: # this loop shortens files containing more than 500 lines, # for corenlp memory's sake. maybe user needs a warning or # something in case s/he is doing coref? # try block because it isn't necessarily essential that this works. # just delete generated files if it fails part way split_f_names = [] try: for rootx, dirs, fs in os.walk(unparsed_corpus_path): for f in fs: # skip hidden files if f.startswith('.'): continue fp = join(rootx, f) data, enc = saferead(fp) data = data.splitlines() if len(data) > split_texts: chk = chunks(data, split_texts) for index, c in enumerate(chk): newname = fp.replace('.txt', '-%s.txt' % str(index + 1).zfill(3)) split_f_names.append(newname) data = '\n'.join(c) + '\n' # does this work? with OPENER(newname, 'w') as fo: if PYTHON_VERSION == 2: data = data.encode('utf-8', errors='ignore') fo.write(data) os.remove(fp) else: pass except (KeyboardInterrupt, SystemExit): raise except: for f in split_f_names: os.remove(f) pass if outname: newpath = os.path.join(os.path.dirname(unparsed_corpus_path), outname) else: newpath = unparsed_corpus_path + '-parsed' if restart: restart = newpath if speaker_segmentation or metadata: if isdir(newpath) and not root: import __main__ as main if not restart and not hasattr(main, '__file__'): ans = INPUTFUNC('\n Path exists: %s. Do you want to overwrite? (y/n)\n' %newpath) if ans.lower().strip()[0] == 'y': shutil.rmtree(newpath) else: return elif isdir(newpath) and root: raise OSError('Path exists: %s' % newpath) if speaker_segmentation: print('Processing speaker IDs ...') make_no_id_corpus(unparsed_corpus_path, unparsed_corpus_path + '-stripped', metadata_mode=metadata, speaker_segmentation=speaker_segmentation) to_parse = unparsed_corpus_path + '-stripped' else: to_parse = unparsed_corpus_path if not fileparse: print('Making list of files ... ') # now we enter a while loop while not all files are parsed #todo: these file lists are not necessary when not parsing if outname: newparsed = os.path.join(project_path, 'data', outname) else: basecp = os.path.basename(to_parse) newparsed = os.path.join(project_path, 'data', '%s-parsed' % basecp) newparsed = newparsed.replace('-stripped-', '-') while REPEAT_PARSE_ATTEMPTS: if not parse: break if not fileparse: pp = os.path.dirname(unparsed_corpus_path) # if restart mode, the filepaths won't include those already parsed... filelist, fs = get_corpus_filepaths(projpath=pp, corpuspath=to_parse, restart=restart, out_ext=kwargs.get('output_format')) else: filelist = unparsed_corpus_path.replace('.txt', '-filelist.txt') with open(filelist, 'w') as fo: fo.write(unparsed_corpus_path + '\n') # split up filelists if multiprocess is not False: if multiprocess is True: import multiprocessing multiprocess = multiprocessing.cpu_count() from joblib import Parallel, delayed # split old file into n parts if os.path.isfile(filelist): data, enc = saferead(filelist) fs = [i for i in data.splitlines() if i] else: fs = [] # if there's nothing here, we're done if not fs: # double dutch REPEAT_PARSE_ATTEMPTS = 0 break if len(fs) <= multiprocess: multiprocess = len(fs) # make generator with list of lists divl = int(len(fs) / multiprocess) filelists = [] if not divl: filelists.append(filelist) else: fgen = chunks(fs, divl) # for each list, make new file from corpkit.constants import OPENER for index, flist in enumerate(fgen): as_str = '\n'.join(flist) + '\n' new_fpath = filelist.replace('.txt', '-%s.txt' % str(index).zfill(4)) filelists.append(new_fpath) with OPENER(new_fpath, 'w', encoding='utf-8') as fo: try: fo.write(as_str.encode('utf-8')) except TypeError: fo.write(as_str) try: os.remove(filelist) except: pass ds = [] for listpath in filelists: d = {'proj_path': project_path, 'corpuspath': to_parse, 'filelist': listpath, 'corenlppath': corenlppath, 'nltk_data_path': nltk_data_path, 'operations': operations, 'copula_head': cop_head, 'multiprocessing': True, 'root': root, 'note': note, 'stdout': stdout, 'outname': outname, 'coref': coref, 'output_format': kwargs.get('output_format', 'xml') } ds.append(d) res = Parallel(n_jobs=multiprocess)(delayed(parse_corpus)(**x) for x in ds) if len(res) > 0: newparsed = res[0] else: return if all(r is False for r in res): return for i in filelists: try: os.remove(i) except: pass else: newparsed = parse_corpus(proj_path=project_path, corpuspath=to_parse, filelist=filelist, corenlppath=corenlppath, nltk_data_path=nltk_data_path, operations=operations, copula_head=cop_head, root=root, note=note, stdout=stdout, fileparse=fileparse, outname=outname, output_format=kwargs.get('output_format', 'conll')) if not restart: REPEAT_PARSE_ATTEMPTS = 0 else: REPEAT_PARSE_ATTEMPTS -= 1 print('Repeating parsing due to missing files. '\ '%d iterations remaining.' % REPEAT_PARSE_ATTEMPTS) if parse and not newparsed: return if parse and all(not x for x in newparsed): print('Error after parsing.') return if parse and fileparse: # cleanup mistakes :) if isfile(splitext(unparsed_corpus_path)[0]): os.remove(splitext(unparsed_corpus_path)[0]) if isfile(unparsed_corpus_path.replace('.txt', '-filelist.txt')): os.remove(unparsed_corpus_path.replace('.txt', '-filelist.txt')) return unparsed_corpus_path + '.conll' if parse: move_parsed_files(project_path, to_parse, newparsed, ext=kwargs.get('output_format', 'conll'), restart=restart) from corpkit.conll import convert_json_to_conll coref = False if operations is False: coref = True elif 'coref' in operations or 'dcoref' in operations: coref = True convert_json_to_conll(newparsed, speaker_segmentation=speaker_segmentation, coref=coref, metadata=metadata) try: os.remove(filelist) except: pass if not parse and tokenise: #todo: outname newparsed = to_parse.replace('-stripped', '-tokenised') from corpkit.tokenise import plaintext_to_conll newparsed = plaintext_to_conll(to_parse, postag=postag, lemmatise=lemmatise, lang=lang, metadata=metadata, nltk_data_path=nltk_data_path, speaker_segmentation=speaker_segmentation, outpath=newparsed) if outname: if not os.path.isdir(outname): outname = os.path.join('data', os.path.basename(outdir)) import shutil shutil.copytree(newparsed, outname) newparsed = outname if newparsed is False: return else: make_dotfile(newparsed) return newparsed rename_all_files(newparsed) print('Generating corpus metadata...') make_dotfile(newparsed) print('Done!\n') return newparsed ================================================ FILE: corpkit/model.py ================================================ from __future__ import division from __future__ import print_function import math import os from nltk import ngrams, sent_tokenize, word_tokenize from corpkit.constants import PYTHON_VERSION, STRINGTYPE class LanguageModel(object): def __init__(self, order, alpha, data): """ :param data: a pandas series with multiindex """ self.order = order self.alpha = alpha if order > 1: self.backoff = LanguageModel(order - 1, alpha, data) self.lexicon = None else: self.backoff = None self.n = 0 from collections import Counter self.counts = Counter() lexicon = set() # below, we make a counter object from the series # it should be fine for simpler show values, but # has some theoretical issues when the model is of # mixed type, such as L, GL, GF, because the backoff # involves getting just the first ORDER words ... for index, count in data.iteritems(): #gramm = index.split('/') # order == 1 still gives us a tuple for now! cut_index = index[:order] self.counts[cut_index] += count if order == 1: lexicon.add(cut_index) self.n += 1 self.v = len(lexicon) def _logprob(self, ngram): return math.log(self._prob(ngram)) def _prob(self, ngram): if self.backoff is not None: freq = self.counts[ngram] backoff_freq = self.backoff.counts[ngram[1:]] if freq == 0: return self.alpha * self.backoff._prob(ngram[1:]) else: return freq / backoff_freq else: # laplace smoothing to handle unknown unigrams return (self.counts[ngram] + 1) / (self.n + self.v) class MultiModel(dict): def __init__(self, data, order, name='', **kwargs): import os from corpkit.other import load if isinstance(data, STRINGTYPE): name = data if not name.endswith('.p'): name = name + '.p' self.name = name self.order = order self.kwargs = kwargs if os.path.isfile(self.name): data = load(self.name, loaddir='models') else: pth = os.path.join('models', self.name) if os.path.isfile(pth): data = load(self.name, loaddir='models') super(MultiModel, self).__init__(data) def score(self, data, **kwargs): """ Score text against a model """ # get data into a list of ngram tuples from collections import Counter, OrderedDict import pandas as pd from corpkit.corpus import Subcorpus, File # get subcorpus if isinstance(data, Subcorpus): counts = self[data.name].counts elif isinstance(data, STRINGTYPE) and data in self.keys(): counts = self[data].counts #get file elif isinstance(data, File) or (isinstance(data, STRINGTYPE) and \ os.path.isfile(data)): counts = self._turn_file_obj_into_counts(data) # get text #elif isinstance(data, STRINGTYPE) and not \ # os.path.exists(data): # dat = [] # #sents = sent_tokenize(data) # #for sent in sents: # # dat.append('-spl-it-'.join(word_tokenize(sent))) # counted_sents = Counter(dat) # counts = LanguageModel(self.order, kwargs.get('alpha', 0.4), counted_sents).counts tempscores = {} for name, model in self.items(): tempscores[name] = self._score_counts_against_model(counts, model) ser = pd.Series(tempscores) ser = ser.sort_values(ascending=False) ser['Corpus'] = ser.pop('Corpus') return ser def _score_counts_against_model(self, counts, model): grams = [] for k, v in counts.items(): for _ in range(v): grams.append(k) slogprob = 0 for gram in grams: lb = model._logprob(gram) slogprob += lb return slogprob / len(counts) def _turn_file_obj_into_counts(self, data, *args, **kwargs): if data.datatype != 'parse': data = data.parse(**kwargs) kwgs = self.kwargs # add kwargs res = data.interrogate(**kwgs) model = _make_model_from_interro(res, self.name, order=self.order, nosave=True, singlemod=True, *args, **kwargs) return model.counts def score_subcorpora(self): import pandas as pd data = [] for subname in self.keys(): ser = pd.Series(self.score(subname)) ser.name = subname data.append(ser) df = pd.concat(data, axis=1) return df[sorted(df.columns)] def _make_model_from_interro(self, name, order, **kwargs): import os from pandas import DataFrame, Series from corpkit.other import load nosave = kwargs.get('nosave') singlemod = kwargs.get('singlemod') if not nosave: if not name.endswith('.p'): name = name + '.p' pth = os.path.join('models', name) if os.path.isfile(pth): return load(name, loaddir='models') scores = {} if not hasattr(self, 'results'): raise ValueError('Need results attribute to make language model.') # determine what we iterate over if not singlemod: to_iter_over = [(nm, self.results.ix[nm][self.results.ix[nm] > 0]) \ for nm in list(self.results.index)] else: if isinstance(self.results, Series): to_iter_over = [(name, self.results)] else: to_iter_over = [(name, self.results.sum())] try: tot = self.results.sum()[self.results.sum() > 0] to_iter_over.append(('Corpus', tot)) except: pass for subname, subc in list(to_iter_over): # get name for file model = _train(subc, subname, name, order=order, **kwargs) scores[subname] = model if singlemod: return scores.values()[0] mm = MultiModel(scores, order=order, name=name, **kwargs) if not os.path.isfile(os.path.join('models', name)): from corpkit.other import save save(scores, name, savedir='models') print('Done!\n') return mm #scores[subc.name] = score_text_with_model(trained) #return sorted(scores.items(), key=lambda x: x[1], reverse=True) def _train(data, name, corpusname, order=3, **kwargs): alpha = kwargs.get('alpha', 0.4) print('Making model: %s ... ' % name.replace('.p', '')) lm = LanguageModel(order, alpha, data) return lm ================================================ FILE: corpkit/multiprocess.py ================================================ """corpkit: multiprocessing of interrogations""" from __future__ import print_function def pmultiquery(corpus, search, show='words', query='any', sort_by='total', save=False, multiprocess='default', root=False, note=False, print_info=True, subcorpora=False, **kwargs ): """ - Parallel process multiple queries or corpora. - This function is used by corpkit.interrogator.interrogator() - for multiprocessing. - There's no reason to call this function yourself. """ import os from pandas import DataFrame, Series import pandas as pd import collections from collections import namedtuple, OrderedDict from time import strftime, localtime import corpkit from corpkit.interrogator import interrogator from corpkit.interrogation import Interrogation, Interrodict from corpkit.process import canpickle try: from joblib import Parallel, delayed except ImportError: pass import multiprocessing locs = locals() for k, v in kwargs.items(): locs[k] = v in_notebook = locs.get('in_notebook') def best_num_parallel(num_cores, num_queries): """decide how many parallel processes to run the idea, more or less, is to balance the load when possible""" import corpkit if num_queries <= num_cores: return num_queries if num_queries > num_cores: if (num_queries / num_cores) == num_cores: return int(num_cores) if num_queries % num_cores == 0: try: return max([int(num_queries / n) for n in range(2, num_cores) \ if int(num_queries / n) <= num_cores]) except ValueError: return num_cores else: import math if (float(math.sqrt(num_queries))).is_integer(): square_root = math.sqrt(num_queries) if square_root <= num_queries / num_cores: return int(square_root) return num_cores num_cores = multiprocessing.cpu_count() # what is our iterable? ... multiple = kwargs.get('multiple', False) mult_corp_are_subs = False if hasattr(corpus, '__iter__'): if all(getattr(x, 'level', False) == 's' for x in corpus): mult_corp_are_subs = True non_first_sub = None if subcorpora: non_first_sub = subcorpora[1:] if isinstance(subcorpora, list) else None subval = subcorpora if not non_first_sub else subcorpora[0] #print(subcorpora, non_first_sub, subval) if subcorpora is True: import re subcorpora = re.compile(r'.*') else: # strange travis error happened here subcorpora = corpus.metadata['fields'][subval] if len(subcorpora) == 0: print('No %s metadata found.' % str(subval)) return mapcores = {'datalist': [corpus, 'corpus'], 'multiplecorpora': [corpus, 'corpus'], 'namedqueriessingle': [query, 'query'], 'namedqueriesmultiple': [search, 'search'], 'subcorpora': [subcorpora, 'subcorpora']} # a is a dummy, just to produce default one toiter, itsname = mapcores.get(multiple, [False, False]) if isinstance(toiter, dict): toiter = toiter.items() denom = len(toiter) num_cores = best_num_parallel(num_cores, denom) # todo: code below makes no sense vals = ['eachspeaker', 'multiplespeaker', 'namedqueriesmultiple'] if multiple == 'multiplecorpora' and any(x is True for x in vals): from corpkit.corpus import Corpus, Corpora if isinstance(corpus, Corpora): multiprocess = False else: corpus = Corpus(corpus) if isinstance(multiprocess, int): num_cores = multiprocess if multiprocess is False: num_cores = 1 # make sure saves are right type if save is True: raise ValueError('save must be string when multiprocessing.') # make a list of dicts to pass to interrogator, # with the iterable unique in every one locs['printstatus'] = False locs['multiprocess'] = False locs['df1_always_df'] = False locs['files_as_subcorpora'] = False locs['corpus'] = corpus if multiple == 'multiplespeaker': locs['multispeaker'] = True if isinstance(non_first_sub, list) and len(non_first_sub) == 1: non_first_sub = non_first_sub[0] # make the default query locs = {k: v for k, v in locs.items() if canpickle(v)} # make a new dict for every iteration ds = [dict(**locs) for i in range(denom)] for index, (d, bit) in enumerate(zip(ds, toiter)): d['paralleling'] = index if multiple in ['namedqueriessingle', 'namedqueriesmultiple']: d[itsname] = bit[1] d['outname'] = bit[0] elif multiple in ['multiplecorpora', 'datalist']: d['outname'] = bit.name.replace('-parsed', '') d[itsname] = bit elif multiple in ['subcorpora']: d[itsname] = bit jmd = {subval: bit} # put this earlier j2 = kwargs.get('just_metadata', False) if not j2: j2 = {} jmd.update(j2) d['just_metadata'] = jmd d['outname'] = bit d['by_metadata'] = False d['subcorpora'] = non_first_sub if non_first_sub: d['print_info'] = False # message printer should be a function... if kwargs.get('conc') is False: message = 'Interrogating' elif kwargs.get('conc') is True: message = 'Interrogating and concordancing' elif kwargs.get('conc').lower() == 'only': message = 'Concordancing' time = strftime("%H:%M:%S", localtime()) from corpkit.process import dictformat if print_info: # proper printing for plurals # in truth this needs to be revised, it's horrible. sformat = dictformat(search, query) if num_cores == 1: add_es = '' else: add_es = 'es' if multiple in ['multiplecorpora', 'datalist']: corplist = "\n ".join([i.name for i in list(corpus)[:20]]) if len(corpus) > 20: corplist += '\n ... and %d more ...\n' % (len(corpus) - 20) print(("\n%s: Beginning %d corpus interrogations (in %d parallel process%s):\n %s" \ "\n Query: %s\n %s corpus ... \n" % (time, len(corpus), num_cores, add_es, corplist, sformat, message))) elif multiple == 'namedqueriessingle': print(("\n%s: Beginning %d corpus interrogations (in %d parallel process%s): %s" \ "\n Queries: %s\n %s corpus ... \n" % (time, len(query), num_cores, add_es, corpus.name, sformat, message) )) elif multiple == 'namedqueriesmultiple': print(("\n%s: Beginning %d corpus interrogations (in %d parallel process%s): %s" \ "\n Queries: %s\n %s corpus ... \n" % (time, len(list(search.keys())), num_cores, add_es, corpus.name, sformat, message))) elif multiple in ['eachspeaker', 'multiplespeaker']: print(("\n%s: Beginning %d parallel corpus interrogation%s: %s" \ "\n Query: %s\n %s corpus ... \n" % (time, num_cores, add_es.lstrip('e'), corpus.name, sformat, message) )) elif multiple in ['subcorpora']: print(("\n%s: Beginning %d parallel corpus interrogation%s: %s" \ "\n Query: %s\n %s corpus ... \n" % (time, num_cores, add_es.lstrip('e'), corpus.name, sformat, message) )) # run in parallel, get either a list of tuples (non-c option) # or a dataframe (c option) #import sys #reload(sys) #stdout=sys.stdout failed = False terminal = False used_joblib = False #ds = ds[::-1] #todo: the number of blank lines to print can be way wrong if not root and print_info: from blessings import Terminal terminal = Terminal() print('\n' * (len(ds) - 2)) for dobj in ds: linenum = dobj['paralleling'] # this try handles nosetest problems in sublime text try: with terminal.location(0, terminal.height - (linenum + 1)): # this is a really bad idea. thetime = strftime("%H:%M:%S", localtime()) num_spaces = 26 - len(dobj['outname']) print('%s: QUEUED: %s' % (thetime, dobj['outname'])) except: pass if not root and multiprocess: try: res = Parallel(n_jobs=num_cores)(delayed(interrogator)(**x) for x in ds) used_joblib = True except: failed = True print('Multiprocessing failed.') raise if not res: failed = True else: res = [] for index, d in enumerate(ds): d['startnum'] = (100 / denom) * index res.append(interrogator(**d)) try: res = sorted([i for i in res if i]) except: pass # remove unpicklable bits from query from types import ModuleType, FunctionType, BuiltinMethodType, BuiltinFunctionType badtypes = (ModuleType, FunctionType, BuiltinFunctionType, BuiltinMethodType) qlocs = {k: v for k, v in locs.items() if not isinstance(v, badtypes)} if hasattr(qlocs.get('corpus', False), 'name'): qlocs['corpus'] = qlocs['corpus'].path else: qlocs['corpus'] = list([i.path for i in qlocs.get('corpus', [])]) # return just a concordance from corpkit.interrogation import Concordance if kwargs.get('conc') == 'only': concs = pd.concat([x for x in res]) thetime = strftime("%H:%M:%S", localtime()) concs = concs.reset_index(drop=True) if kwargs.get('maxconc'): concs = concs[:kwargs.get('maxconc')] lines = Concordance(concs) if save: lines.save(save, print_info=print_info) if print_info: print('\n\n%s: Finished! %d results.\n\n' % (thetime, format(len(concs.index), ','))) return lines # return interrodict (to become multiindex) if isinstance(res[0], Interrodict) or not all(isinstance(i.results, Series) for i in res): out = OrderedDict() for interrog, d in zip(res, ds): for unpicklable in ['note', 'root']: interrog.query.pop(unpicklable, None) try: out[interrog.query['outname']] = interrog except KeyError: out[d['outname']] = interrog idict = Interrodict(out) if print_info: thetime = strftime("%H:%M:%S", localtime()) print("\n\n%s: Finished! Output is multi-indexed." % thetime) idict.query = qlocs if save: idict.save(save, print_info=print_info) return idict # make query and total branch, save, return # todo: standardise this so we don't have to guess transposes # else: if multiple == 'multiplecorpora' and not mult_corp_are_subs: sers = [i.results for i in res] out = DataFrame(sers, index=[i.query['outname'] for i in res]) out = out.reindex_axis(sorted(out.columns), axis=1) # sort cols out = out.fillna(0) # nan to zero out = out.astype(int) # float to int out = out.T else: # make a series from counts if all(len(i.results) == 1 for i in res): out = pd.concat([r.results for r in res]) out = out.sort_index() else: try: out = pd.concat([r.results for r in res], axis=1) out = out.T out.index = [i.query['outname'] for i in res] except ValueError: return None # format like normal # this sorts subcorpora, which are cls out = out[sorted(list(out.columns))] # puts subcorpora in the right place if not mult_corp_are_subs and multiple != 'subcorpora': out = out.T if multiple == 'subcorpora': out = out.sort_index() out = out.fillna(0) # nan to zero out = out.astype(int) if 'c' in show and mult_corp_are_subs: out = out.sum() out.index = sorted(list(out.index)) # sort by total if isinstance(out, DataFrame): out = out[list(out.sum().sort_values(ascending=False).index)] # really need to figure out the deal with tranposing! if all(x.endswith('.xml') for x in list(out.columns)) \ or all(x.endswith('.txt') for x in list(out.columns)) \ or all(x.endswith('.conll') for x in list(out.columns)): out = out.T if kwargs.get('nosubmode'): out = out.sum() from corpkit.interrogation import Interrogation tt = out.sum(axis=1) if isinstance(out, DataFrame) else out.sum() out = Interrogation(results=out, totals=tt, query=qlocs) if hasattr(out, 'columns') and len(out.columns) == 1: out = out.sort_index() if kwargs.get('conc') is True: try: concs = pd.concat([x.concordance for x in res], ignore_index=True) concs = concs.sort_values(by='c') concs = concs.reset_index(drop=True) if kwargs.get('maxconc'): concs = concs[:kwargs.get('maxconc')] out.concordance = Concordance(concs) except ValueError: out.concordance = None thetime = strftime("%H:%M:%S", localtime()) if terminal: print(terminal.move(terminal.height-1, 0)) if print_info: if terminal: print(terminal.move(terminal.height-1, 0)) if hasattr(out.results, 'columns'): print('%s: Interrogation finished! %s unique results, %s total.' % (thetime, format(len(out.results.columns), ','), format(out.totals.sum(), ','))) else: print('%s: Interrogation finished! %s matches.' % (thetime, format(tt, ','))) if save: out.save(save, print_info = print_info) if list(out.results.index) == ['0'] and not kwargs.get('df1_always_df'): out.results = out.results.ix[0].sort_index() return out ================================================ FILE: corpkit/new_project ================================================ #!/usr/bin/env python from __future__ import print_function """ A script to create a new corpkit project """ import sys from corpkit.other import new_project if len(sys.argv) == 1: raise ValueError('Please specify name of new project.') else: name = sys.argv[1] new_project(name) ================================================ FILE: corpkit/noseinstall.py ================================================ import os from nose.tools import assert_equals from corpkit import * unparsed_path = 'data/test' parsed_path = 'data/test-parsed' def test_import(): import corpkit from dictionaries.wordlists import wordlists from corpkit import Corpus assert_equals(wordlists.articles, ['a', 'an', 'the', 'teh']) ================================================ FILE: corpkit/nosetests.py ================================================ """ This file contains tests for the corpkit API, to be run by Nose. There are fast and slow tests. Slow tests include those that test the parser. These should be run before anything goes into master. Fast tests corpus interrogations, edits, concordances and so on. These are done on commit. The tests don't cover everything in the module yet. To run all tests: nosetests corpkit/nosetests.py Just fast tests: nosetests corpkit/nosetests.py -a '!slow' """ import os import nose from nose.tools import assert_equals import corpkit from corpus import Corpus unparsed_path = 'data/test' parsed_path = 'data/test-plain-parsed' speak_path = 'data/test-speak-parsed' tok_path = 'data/test-tokenised' def test_import(): import corpkit from dictionaries.wordlists import wordlists from corpus import Corpus assert_equals(wordlists.articles, ['a', 'an', 'the', 'teh']) def test_corpus_class(): """Test that Corpus can be created""" unparsed = Corpus(unparsed_path) assert_equals(os.path.basename(unparsed_path), unparsed.name) def test_parse(): """Test CoreNLP parsing""" import shutil unparsed = Corpus(unparsed_path) try: shutil.rmtree(parsed_path) except: pass parsed = unparsed.parse(metadata=True) fnames = [] for subc in parsed.subcorpora: for f in subc.files: fnames.append(f.name) shutil.move(parsed.path, parsed_path) assert_equals(fnames, ['intro.txt.conll', 'body.txt.conll']) def test_tokenise(): """Test the tokeniser, lemmatiser and POS tagger""" unparsed = Corpus(unparsed_path) try: shutil.rmtree(tok_path) except: pass tok = unparsed.tokenise(speaker_segmentation=True, lemmatise=True, postag=True, metadata=True) df = tok[0][0].document assert_equals(tok.name, 'test-tokenised') assert_equals(len(tok.subcorpora), 2) #assert_equals(list(df.columns), ['w', 'l', 'p']) assert_equals(list(df.index.names), ['s', 'i']) def test_speak_parse(): """Test CoreNLP parsing with speaker segmentation""" import shutil unparsed = Corpus(unparsed_path) try: shutil.rmtree(speak_path) except: pass parsed = unparsed.parse(speaker_segmentation=True, metadata=True) fnames = [] for subc in parsed.subcorpora: for f in subc.files: fnames.append(f.name) shutil.move(parsed.path, speak_path) assert_equals(fnames, ['intro.txt.conll', 'body.txt.conll']) # this is how you define a slow test test_parse.slow = 1 test_speak_parse.slow = 1 def test_interro1(): """Testing interrogation 1""" corp = Corpus(parsed_path) data = corp.interrogate('t', r'__ < /JJ.?/') assert_equals(data.results.shape, (2, 6)) def test_interro2(): """Testing interrogation 2""" corp = Corpus(parsed_path) data = corp.interrogate({'t': r'__ < /JJ.?/'}) assert_equals(data.results.shape, (2, 6)) def test_interro3(): """Testing interrogation 3""" corp = Corpus(parsed_path) data = corp.interrogate({'w': r'^c'}, exclude={'l': r'check'}, show=['l', 'f']) st = {'can/aux', 'computational/amod', 'concordancing/appos', 'corpkit/nmod:poss', 'corpus/compound', 'case/nmod:in', 'continuum/nmod:on', 'conduit/nmod:as', 'concordancing/nmod:like', 'corpus/nsubjpass', } assert_equals(set(list(data.results.columns)), st) # skipping this for now, as who cares about tokens #def test_interro4(): # """Testing interrogation 4""" # corp = Corpus('data/test-stripped-tokenised') # data = corp.interrogate({'w': 'any'}, show='nw') # d = {'and interrogating': {'first': 0, 'second': 2}, # 'concordancing and': {'first': 0, 'second': 2}} # assert_equals(data.results.to_dict(), d) def test_interro_multiindex_tregex_justspeakers(): """Testing interrogation 6""" import pandas as pd corp = Corpus(speak_path) data = corp.interrogate('t', r'__ < /JJ.?/', subcorpora='speaker') assert_equals(all(data.results.index), all(pd.MultiIndex(levels=[['ANONYMOUS', 'NEWCOMER', 'TESTER', 'UNIDENTIFIED'], ['first', 'second']], labels=[[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]]))) test_interro_multiindex_tregex_justspeakers.slow = 1 def test_conc(): """Testing concordancer""" corp = Corpus(parsed_path) data = corp.concordance({'f': 'amod'}) assert_equals(data.ix[0]['m'], 'small') # this syntax isn't recognised by tgrep, so we'll skip it in tests def test_edit(): """Testing edit function""" corp = Corpus(parsed_path) data = corp.interrogate({'t': r'__ !< __'}) data = data.edit('%', 'self') assert_equals(data.results.iloc[0,0], 10.204081632653061) #assert_equals(data.results.iloc[0,0], 11.627906976744185) test_edit.slow = 1 def test_tok1_interro(): """ Check that indexes can be shown """ corpus = Corpus(tok_path) res = corpus.interrogate(show=['s', 'i', 'l']) sortd = res.results[sorted(res.results.columns)] three = ['0/0/corpus', '0/0/this', '0/1/linguistics'] assert_equals(list(sortd.columns)[:3], three) assert_equals(sortd.sum().sum(), 77) def test_tok2_interro(): """ Check a tokenised corpus interrogation """ corpus = Corpus(tok_path) res = corpus.interrogate(show=['w', 'l', 'p'], conc=True) assert_equals(res.results['is/be/vbz']['second'], 1) assert_equals(res.results['is/be/vbz']['first'], 2) assert_equals(str(res.results.ix[0].dtype), 'int64') flo = res.edit('%', 'self').results.iat[0,0].round(2) assert_equals(flo, 5.71) assert_equals(res.concordance.m.iloc[-1], 'work/work/nn') attributes = ['query', 'results', 'totals', 'visualise', 'edit', 'concordance'] allat = all(getattr(res, i) is not None for i in attributes) assert_equals(allat, True) def document_check(): """ Check that the document lazy attribute works """ corpus = Corpus(speak_path) df = corpus[0][0].document fir = ['This', 'this', 'DT', 'O', 3, 'det', '0', '1'] assert_equals(list(df.ix[1,1], fir)) kys = list(df._metadata[5].keys()) lst = ['year', 'test', 'parse', 'speaker', 'num'] assert_equals(kys, lst) assert_equals(corpus.files, None) assert_equals(corpus.datatype, 'conll') def test_conc_edit(): """ Make sure we can edit concordance lines """ corpus = Corpus(speak_path) res = corpus.interrogate(show=['l','gl'], conc=True) assert_equals(len(res.concordance), 77) noling = len(res.concordance.edit(skip_entries='ling')) assert_equals(noling, 69) def test_symbolic_subcorpora(): """ Check that we can make speaker into subcorpora """ corpus = Corpus(speak_path, subcorpora='speaker') res = corpus.interrogate({'l': r'^[abcde]'}) spks = ['ANONYMOUS', 'NEWCOMER', 'TESTER', 'UNIDENTIFIED'] assert_equals(list(res.results.index), spks) def test_symbolic_multiindex(): """ Check that we can make a named multiindex """ subval = ['speaker', 'test'] corpus = Corpus(speak_path, subcorpora=subval) res = corpus.interrogate({'l': r'^[abcde]'}) test_poss = {'none', 'off', 'on'} assert_equals(set(res.results.index.levels[1]), test_poss) assert_equals(list(res.results.index.names), subval) def check_skip_filt(): """ Check that we can make a skip filter """ corpus = Corpus(speak_path, skip={'speaker': 'UNIDENTIFIED'}) res = corpus.interrogate() assert_equals(len(res.results.columns), 47) def check_just_filt(): """ Check that we can make a just filter """ corpus = Corpus(speak_path, just={'speaker': 'UNIDENTIFIED'}) res = corpus.interrogate() assert_equals(len(res.results.columns), 22) def test_interpreter(): """ Test for errors in interpreter functionality """ import os try: os.remove('saved_interrogations/test-speak-parsed-anylemma.p') except: pass from corpkit.env import interpreter try: os.makedirs('exported') except: pass try: os.makedirs('saved_interrogations') except: pass # this will make some data in exported/ out = interpreter(fromscript='corpkit/interpreter_tests.cki') assert_equals(out, None) def check_interpreter_res_csv(): """ Interpreter check made exported/res.csv---check it """ import pandas as pd df = pd.read_csv('exported/res.csv', sep='\t', index_col=0) assert_equals(df.mean()['a'], 1.5) def check_interpreter_conc_csv(): """ Interpreter check made exported/conc.csv---check it """ import pandas as pd import shutil df = pd.read_csv('exported/conc.csv', sep='\t', index_col=0) shutil.rmtree('exported') assert_equals(df.shape, (77, 7)) def check_interpreter_saved_interro(): """ Interpreter made a pickled result. Check it """ import pandas as pd import shutil from corpkit import load dat = load('test-speak-parsed-anylemma') shutil.rmtree('saved_interrogations') assert hasattr(dat, 'results') assert hasattr(dat, 'totals') assert hasattr(dat, 'query') assert('concordancing' in dat.results) rel = dat.results.T / dat.totals assert_equals(rel.ix[0].sum().round(2), 0.19) # test to write: # annotation # unannotation # language model # tgrep # features, postags, wordclasses, dotfiles ================================================ FILE: corpkit/other.py ================================================ from __future__ import print_function """ In here are functions used internally by corpkit, but also might be called by the user from time to time """ from corpkit.constants import STRINGTYPE, PYTHON_VERSION, INPUTFUNC def quickview(results, n=25): """ View top n results as painlessly as possible. :param results: Interrogation data :type results: :class:``corpkit.interrogation.Interrogation`` :param n: Show top *n* results :type n: int :returns: None """ import corpkit import pandas as pd import numpy as np import os import corpkit from corpkit.interrogation import Interrogation # handle dictionaries too: dictpath = 'dictionaries' savedpath = 'saved_interrogations' # too lazy to code this properly for every possible data type: if n == 'all': n = 9999 dtype = corpkit.interrogation.Interrogation if isinstance(results, STRINGTYPE): if os.path.isfile(os.path.join(dictpath, results)): from corpkit.other import load results = load(results, loaddir=dictpath) elif os.path.isfile(os.path.join(savedpath, results)): from corpkit.other import load results = load(results) else: raise OSError('File "%s" not found.' % os.path.abspath(results)) elif isinstance(results, Interrogation): if getattr(results, 'results'): datatype = results.results.iloc[0,0].dtype if datatype == 'int64': option = 't' else: option = '%' rq = results.query.get('operation', False) if rq: rq = rq.lower() if rq.startswith('k'): option = 'k' if rq.startswith('%'): option = '%' if rq.startswith('/'): option = '/' try: the_list = list(results.results.columns)[:n] except: the_list = list(results.results.index)[:n] else: print(results.totals) return else: raise ValueError('Results not recognised.') # get longest word length for justification longest = max([len(i) for i in the_list]) for index, entry in enumerate(the_list): if option == 't': if isinstance(results, Interrogation): if hasattr(results, 'results'): to_get_from = results.results tot = to_get_from[entry].sum() else: to_get_from = results.totals tot = to_get_from[entry] print('%s: %s (n=%d)' %(str(index).rjust(3), entry.ljust(longest), tot)) elif option == '%' or option == '/': if isinstance(results, Interrogation): to_get_from = results.totals tot = to_get_from[entry] totstr = "%.3f" % tot print('%s: %s (%s%%)' % (str(index).rjust(3), entry.ljust(longest), totstr)) elif dtype == corpkit.interrogation.Results: print('%s: %s (%s)' %(str(index).rjust(3), entry.ljust(longest), option)) elif dtype == corpkit.interrogation.Totals: tot = results[entry] totstr = "%.3f" % tot print('%s: %s (%s%%)' % (str(index).rjust(3), entry.ljust(longest), totstr)) elif option == 'k': print('%s: %s (l/l)' %(str(index).rjust(3), entry.ljust(longest))) else: print('%s: %s' %(str(index).rjust(3), entry.ljust(longest))) def concprinter(dataframe, kind='string', n=100, window=35, columns='all', metadata=True, **kwargs): """ Print conc lines nicely, to string, latex or csv :param df: concordance lines from :class:``corpkit.corpus.Concordance`` :type df: pd.DataFame :param kind: output format :type kind: str ('string'/'latex'/'csv') :param n: Print first n lines only :type n: int/'all' :returns: None """ import corpkit df = dataframe.copy().fillna('') if n > len(df): n = len(df) if not kind.startswith('l') and kind.startswith('c') and kind.startswith('s'): raise ValueError('kind argument must start with "l" (latex), "c" (csv) or "s" (string).') import pandas as pd # shitty thing to hardcode pd.set_option('display.max_colwidth', -1) if isinstance(n, int): to_show = df.head(n) elif n is False: to_show = df elif n == 'all': to_show = df else: raise ValueError('n argument "%s" not recognised.' % str(n)) def resize_by_window_size(df, window): df.is_copy = False if isinstance(window, int): df['l'] = df['l'].str.slice(start=-window, stop=None) df['l'] = df['l'].str.rjust(window) df['r'] = df['r'].str.slice(start=0, stop=window) df['r'] = df['r'].str.ljust(window) df['m'] = df['m'].str.ljust(df['m'].str.len().max()) else: df['l'] = df['l'].str.slice(start=-window[0], stop=None) df['l'] = df['l'].str.rjust(window[0]) df['r'] = df['r'].str.slice(start=0, stop=window[-1]) df['r'] = df['r'].str.ljust(window[-1]) df['m'] = df['m'].str.ljust(df['m'].str.len().max()) return df to_show.is_copy = False if window: to_show = resize_by_window_size(to_show, window) # if showing metadata to the right of lmr, add it here cnames = list(to_show.columns) ind = cnames.index('r') if columns == 'all': columns = cnames[:ind+1] if metadata is True: after_right = cnames[ind+1:] columns = columns + after_right elif isinstance(metadata, list): columns = columns + metadata to_show = to_show[columns] if kind.startswith('s'): functi = pd.DataFrame.to_string if kind.startswith('l'): functi = pd.DataFrame.to_latex if kind.startswith('c'): functi = pd.DataFrame.to_csv kwargs['sep'] = ',' if kind.startswith('t'): functi = pd.DataFrame.to_csv kwargs['sep'] = '\t' # automatically basename subcorpus for show if 'c' in list(to_show.columns): import os to_show['c'] = to_show['c'].apply(os.path.basename) if 'f' in list(to_show.columns): import os to_show['f'] = to_show['f'].apply(os.path.basename) return_it = kwargs.pop('return_it', False) print_it = kwargs.pop('print_it', True) if return_it: return functi(to_show, header=kwargs.get('header', False), **kwargs) else: print('\n') print(functi(to_show, header=kwargs.get('header', False), **kwargs)) print('\n') def save(interrogation, savename, savedir='saved_interrogations', **kwargs): """ Save an interrogation as pickle to *savedir*. >>> interro_interrogator(corpus, 'words', 'any') >>> save(interro, 'savename') will create ``./saved_interrogations/savename.p`` :param interrogation: Corpus interrogation to save :type interrogation: corpkit interogation/edited result :param savename: A name for the saved file :type savename: str :param savedir: Relative path to directory in which to save file :type savedir: str :param print_info: Show/hide stdout :type print_info: bool :returns: None """ try: import cPickle as pickle except ImportError: import pickle as pickle import os from time import localtime, strftime import corpkit from corpkit.process import makesafe, sanitise_dict from corpkit.interrogation import Interrogation from corpkit.corpus import Corpus, Datalist print_info = kwargs.get('print_info', True) def make_filename(interrogation, savename): """create a filename""" if '/' in savename: return savename firstpart = '' if savename.endswith('.p'): savename = savename[:-2] savename = makesafe(savename, drop_datatype=False, hyphens_ok=True) if not savename.endswith('.p'): savename = savename + '.p' if hasattr(interrogation, 'query') and isinstance(interrogation.query, dict): corpus = interrogation.query.get('corpus', False) if corpus: if isinstance(corpus, STRINGTYPE): firstpart = corpus else: if isinstance(corpus, Datalist): firstpart = Corpus(corpus).name if hasattr(corpus, 'name'): firstpart = corpus.name else: firstpart = '' firstpart = os.path.basename(firstpart) if firstpart: return firstpart + '-' + savename else: return savename savename = make_filename(interrogation, savename) # delete unpicklable parts of query if hasattr(interrogation, 'query') and isinstance(interrogation.query, dict): iq = interrogation.query if iq: from types import ModuleType, FunctionType, BuiltinMethodType, BuiltinFunctionType interrogation.query = {k: v for k, v in iq.items() if not isinstance(v, ModuleType) \ and not isinstance(v, FunctionType) \ and not isinstance(v, BuiltinFunctionType) \ and not isinstance(v, BuiltinMethodType)} else: iq = {} if savedir and not '/' in savename: if not os.path.exists(savedir): os.makedirs(savedir) fullpath = os.path.join(savedir, savename) else: fullpath = savename while os.path.isfile(fullpath): selection = INPUTFUNC(("\nSave error: %s already exists in %s.\n\n" \ "Type 'o' to overwrite, or enter a new name: " % (savename, savedir))) if selection == 'o' or selection == 'O': os.remove(fullpath) else: selection = selection.replace('.p', '') if not selection.endswith('.p'): selection = selection + '.p' fullpath = os.path.join(savedir, selection) if hasattr(interrogation, 'query'): interrogation.query = sanitise_dict(interrogation.query) with open(fullpath, 'wb') as fo: pickle.dump(interrogation, fo) time = strftime("%H:%M:%S", localtime()) if print_info: print('\n%s: Data saved: %s\n' % (time, fullpath)) def load(savename, loaddir='saved_interrogations'): """ Load saved data into memory: >>> loaded = load('interro') will load ``./saved_interrogations/interro.p`` as loaded :param savename: Filename with or without extension :type savename: str :param loaddir: Relative path to the directory containg *savename* :type loaddir: str :param only_concs: Set to True if loading concordance lines :type only_concs: bool :returns: loaded data """ try: import cPickle as pickle except ImportError: import pickle as pickle import os if not savename.endswith('.p'): savename = savename + '.p' if loaddir: if '/' not in savename: fullpath = os.path.join(loaddir, savename) else: fullpath = savename else: fullpath = savename with open(fullpath, 'rb') as fo: data = pickle.load(fo) return data def loader(savedir='saved_interrogations'): """Show a list of data that can be loaded, and then load by user input of index""" import glob import os import corpkit from corpkit.other import load fs = [i for i in glob.glob(r'%s/*' % savedir) if not os.path.basename(i).startswith('.')] string_to_show = '\nFiles in %s:\n' % savedir most_digits = max([len(str(i)) for i, j in enumerate(fs)]) for index, fname in enumerate(fs): string_to_show += str(index).rjust(most_digits) + ':\t' + os.path.basename(fname) + '\n' print(string_to_show) INPUTFUNC('Enter index of item to load: ') if ' ' in index or '=' in index: if '=' in index: index = index.replace(' = ', ' ') index = index.replace('=', ' ') varname, ind = index.split(' ', 1) globals()[varname] = load(os.path.basename(fs[int(ind)])) print("%s = %s. Don't do this again." % (varname, os.path.basename(fs[int(ind)]))) return try: index = int(index) except: raise ValueError('Selection not recognised.') return load(os.path.basename(fs[index])) def new_project(name, loc='.', **kwargs): """Make a new project in ``loc``. :param name: A name for the project :type name: str :param loc: Relative path to directory in which project will be made :type loc: str :returns: None """ import corpkit import os import shutil import stat import platform from time import strftime, localtime root = kwargs.get('root', False) path_to_corpkit = os.path.dirname(corpkit.__file__) thepath, corpkitname = os.path.split(path_to_corpkit) # make project directory fullpath = os.path.join(loc, name) try: os.makedirs(fullpath) except: if root: thetime = strftime("%H:%M:%S", localtime()) print('%s: Directory already exists: "%s"' %( thetime, fullpath)) return else: raise # make other directories dirs_to_make = ['data', 'images', 'saved_interrogations', \ 'saved_concordances', 'dictionaries', 'exported', 'logs'] #subdirs_to_make = ['dictionaries', 'saved_interrogations'] for directory in dirs_to_make: os.makedirs(os.path.join(fullpath, directory)) #for subdir in subdirs_to_make: #os.makedirs(os.path.join(fullpath, 'data', subdir)) # copy the bnc dictionary to dictionaries def resource_path(relative): import os return os.path.join(os.environ.get("_MEIPASS2",os.path.abspath(".")),relative) corpath = os.path.dirname(corpkit.__file__) if root: corpath = corpath.replace('/lib/python2.7/site-packages.zip/corpkit', '') baspat = os.path.dirname(corpath) dicpath = os.path.join(corpath, 'dictionaries') try: shutil.copy(os.path.join(dicpath, 'bnc.p'), os.path.join(fullpath, 'dictionaries')) except: # find out why bnc not found! if root: try: shutil.copy(resource_path(os.path.join('dictionaries', 'bnc.p')), os.path.join(fullpath, 'dictionaries')) except: pass if not root: thetime = strftime("%H:%M:%S", localtime()) print('\n%s: New project created: "%s"\n' % (thetime, name)) def load_all_results(data_dir='saved_interrogations', **kwargs): """ Load every saved interrogation in data_dir into a dict: >>> r = load_all_results() :param data_dir: path to saved data :type data_dir: str :returns: dict with filenames as keys """ import os from time import localtime, strftime from other import load from process import makesafe root = kwargs.get('root', False) note = kwargs.get('note', False) datafiles = [f for f in os.listdir(data_dir) if os.path.isfile(os.path.join(data_dir, f)) \ and f.endswith('.p')] # just load first n (for testing) if kwargs.get('n', False): datafiles = datafiles[:kwargs['n']] output = {} l = 0 for index, f in enumerate(datafiles): try: loadname = f.replace('.p', '') output[loadname] = load(f, loaddir = data_dir) time = strftime("%H:%M:%S", localtime()) print('%s: %s loaded as %s.' % (time, f, makesafe(loadname))) l += 1 except: time = strftime("%H:%M:%S", localtime()) print('%s: %s failed to load. Try using load to find out the matter.' % (time, f)) if note and len(datafiles) > 3: note.progvar.set((index + 1) * 100.0 / len(datafiles)) if root: root.update() time = strftime("%H:%M:%S", localtime()) print('%s: %d interrogations loaded from %s.' % (time, l, os.path.basename(data_dir))) from interrogation import Interrodict return Interrodict(output) def texify(series, n=20, colname='Keyness', toptail=False, sort=False): """turn a series into a latex table""" import corpkit import pandas as pd if sort: df = pd.DataFrame(series.order(ascending=False)) else: df = pd.DataFrame(series) df.columns = [colname] if not toptail: return df.head(n).to_latex() else: comb = pd.concat([df.head(n), df.tail(n)]) longest_word = max([len(w) for w in list(comb.index)]) tex = ''.join(comb.to_latex()).split('\n') linelin = len(tex[0]) try: newline = (' ' * (linelin / 2)) + ' &' newline_len = len(newline) newline = newline + (' ' * (newline_len - 1)) + r'\\' newline = newline.replace(r' \\', r'... \\') newline = newline.replace(r' ', r'... ', 1) except: newline = r'... & ... \\' tex = tex[:n+4] + [newline] + tex[n+4:] tex = '\n'.join(tex) return tex def as_regex(lst, boundaries='w', case_sensitive=False, inverse=False, compile=False): """Turns a wordlist into an uncompiled regular expression :param lst: A wordlist to convert :type lst: list :param boundaries: :type boundaries: str -- 'word'/'line'/'space'; tuple -- (leftboundary, rightboundary) :param case_sensitive: Make regular expression case sensitive :type case_sensitive: bool :param inverse: Make regular expression inverse matching :type inverse: bool :returns: regular expression as string """ import corpkit import re if case_sensitive: case = r'' else: case = r'(?i)' if not boundaries: boundary1 = r'' boundary2 = r'' elif isinstance(boundaries, (tuple, list)): boundary1 = boundaries[0] boundary2 = boundaries[1] else: if boundaries.startswith('w') or boundaries.startswith('W'): boundary1 = r'\b' boundary2 = r'\b' elif boundaries.startswith('l') or boundaries.startswith('L'): boundary1 = r'^' boundary2 = r'$' elif boundaries.startswith('s') or boundaries.startswith('S'): boundary1 = r'\s' boundary2 = r'\s' else: raise ValueError('Boundaries not recognised. Use a tuple for custom start and end boundaries.') if inverse: inverser1 = r'(?!' inverser2 = r')' else: inverser1 = r'' inverser2 = r'' if inverse: joinbit = r'%s|%s' % (boundary2, boundary1) as_string = case + inverser1 + r'(?:' + boundary1 + joinbit.join(sorted(list(set([re.escape(w) for w in lst])))) + boundary2 + r')' + inverser2 else: as_string = case + boundary1 + inverser1 + r'(?:' + r'|'.join(sorted(list(set([re.escape(w) for w in lst])))) + r')' + inverser2 + boundary2 if compile: return re.compile(as_string) else: return as_string def make_multi(interrogation, indexnames=None): """ make pd.multiindex version of an interrogation (for pandas geeks) :param interrogation: a corpkit interrogation :type interrogation: a corpkit interrogation, pd.DataFrame or pd.Series :param indexnames: pass in a list of names for the multiindex; leave as None to get them if possible from interrogation use False to explicitly not get them :type indexnames: list of strings/None/False :returns: pd.DataFrame with multiindex""" # get proper names for index if possible from corpkit.constants import transshow, transobjs import numpy as np import pandas as pd # if it's an interrodict, we want to make it into a single df import corpkit from corpkit.interrogation import Interrodict, Interrogation seriesmode = False if isinstance(interrogation, (Interrodict, dict)): import pandas as pd import numpy as np flat = [[], [], []] for name, data in list(interrogation.items()): for subcorpus in list(data.results.index): # make multiindex flat[0].append(name) flat[1].append(subcorpus) # add results flat[2].append(data.results.ix[subcorpus]) flat[0] = np.array(flat[0]) flat[1] = np.array(flat[1]) df = pd.DataFrame(flat[2], index=flat[:2]) if indexnames is None: indexnames = ['Corpus', 'Subcorpus'] df.index.names = indexnames df = df.fillna(0) df = df.T df[('Total', 'Total')] = df.sum(axis=1) df = df.sort_values(by=('Total', 'Total'), ascending=False).drop(('Total', 'Total'), axis=1).T try: df = df.astype(int) except: pass return Interrogation(df, df.sum(axis=1), getattr(interrogation, 'query', None)) # determine datatype, get df and cols rows=False if isinstance(interrogation, pd.core.frame.DataFrame): df = interrogation cols = list(interrogation.columns) rows = list(interrogation.index) elif isinstance(interrogation, pd.core.series.Series): cols = list(interrogation.index) seriesmode = True df = pd.DataFrame(interrogation).T elif isinstance(interrogation, Interrogation): df = interrogation.results if isinstance(df, pd.core.series.Series): cols = list(df.index) seriesmode = True df = pd.DataFrame(df).T else: cols = list(df.columns) rows = list(df.index) # set indexnames if we have them if indexnames is not False: if interrogation.query.get('show'): indexnames = [] ends = ['w', 'l', 'i', 'n', 'f', 'p', 'x', 's'] for showval in interrogation.query['show']: if len(showval) == 1: if showval in ends: showval = 'm' + showval else: showval = showval + 'w' a = transobjs.get(showval[0], showval[0]) b = transshow.get(showval[-1], showval[-1]) indexstring = '%s %s' % (a, b.lower()) indexnames.append(indexstring) else: indexnames = False # split column names on slash for index, i in enumerate(cols): cols[index] = i.split('/') # make numpy arrays arrays = [] for i in range(len(cols[0])): arrays.append(np.array([x[i] for x in cols])) # make output df, add names if we have them newdf = pd.DataFrame(df.T.as_matrix(), index=arrays).T if indexnames: newdf.columns.names = indexnames if rows: newdf.index = rows pd.set_option('display.multi_sparse', False) totals = newdf.sum(axis=1) query = interrogation.query conco = getattr(interrogation, 'concordance', None) return Interrogation(newdf, totals, query, conco) def topwords(self, datatype='n', n=10, df=False, sort=True, precision=2): """Show top n results in each corpus alongside absolute or relative frequencies. :param relative: show abs/rel frequencies :type relative: bool :param n: number of result to show :type n: int :param df: return a DataFrame instead of a string :type df: bool :param sort: sort or leave as is :type sort: bool, 'reverse' :param precision: float precision :type precision: int :Example: >>> data.topwords(n = 5) TBT % UST % WAP % WSJ % health 25.70 health 15.25 health 19.64 credit 9.22 security 6.48 cancer 10.85 security 7.91 health 8.31 cancer 6.19 heart 6.31 cancer 6.55 downside 5.46 flight 4.45 breast 4.29 credit 4.08 inflation 3.37 safety 3.49 security 3.94 safety 3.26 cancer 3.12 :returns: None """ import corpkit from corpkit.interrogation import Interrogation, Interrodict import pandas as pd pd.set_option('display.float_format', lambda x: format(x, '.%df' % precision)) strings = [] if sort == 'reverse': ascend = True sort = True else: ascend = False if datatype.lower().startswith('n'): operation = 'n' if datatype.lower().startswith('k'): operation = 'k' else: operation = '%' if isinstance(self, corpkit.interrogation.Interrodict): to_iterate = self.items() else: if sort is True: to_iterate = [(x, self.results.ix[x].sort_values(ascending=ascend)) \ for x in list(self.results.index)] else: to_iterate = [(x, self.results.ix[x]) for x in list(self.results.index)] for name, data in to_iterate: if isinstance(self, corpkit.interrogation.Interrodict): if sort is True: data = data.results.sum().sort_values(ascending=ascend) else: data = data.results.sum() # todo: if already float, don't do this operation... if operation == '%': data = data * 100.0 / data.sum() if operation == 'n': data = data.astype(float) if df: data.index.name = name df1 = pd.DataFrame({'Result': list(data.index)[:n], operation: list(data)[:n]}) df1 = df1[['Result', operation]] strings.append(df1) #ser1 = pd.Series(list(data.index), index = range(len(data)))[:n] #ser2 = pd.Series(list(data), index = range(len(data)))[:n] #ser1.name = 'Result' #ser2.name = operation #strings.append(ser1) #strings.append(ser2) else: as_str = data[:n].to_string(header=False) linelen = len(as_str.splitlines()[1]) strings.append(name.ljust(linelen - 1) + '%s\n' % operation + as_str) # strings is a list of series as strings if df: dataframe = pd.concat(strings, axis=1, keys=[i for i, _ in to_iterate]) return dataframe output = '' for tup in zip(*[i.splitlines() for i in strings]): output += ' '.join(tup) + '\n' print(output) ================================================ FILE: corpkit/parse ================================================ #!/usr/bin/env python from __future__ import print_function """ A script to parse using corpkit :Example: $ parse junglebook --speaker-segmentation True """ import sys from corpkit.corpus import Corpus if len(sys.argv) == 1: raise ValueError('Please specify a corpus to parse.') trans = {'true': True, 'false': False, 'none': None} corp = Corpus(sys.argv[1]) kwargs = {} args = sys.argv[2:] for index, item in enumerate(args): if item.startswith('-'): item = item.lstrip('-').lower().replace('-', '_') if '=' in item: val = item.split('=', 1)[1] else: val = args[index+1] if val.isdigit(): val = int(val) if isinstance(val, str): val = trans.get(val.lower(), val) kwargs[item] = val parsed = corp.parse(**kwargs) ================================================ FILE: corpkit/plotter.py ================================================ from __future__ import print_function from corpkit.constants import STRINGTYPE, PYTHON_VERSION def plotter(df, title=False, kind='line', x_label=None, y_label=None, style='ggplot', figsize=(8, 4), save=False, legend_pos='best', reverse_legend='guess', num_to_plot=6, tex='try', colours='default', cumulative=False, pie_legend=True, partial_pie=False, show_totals=False, transparent=False, output_format='png', interactive=False, black_and_white=False, show_p_val=False, indices=False, transpose=False, rot=False, **kwargs): """Visualise corpus interrogations. :param title: A title for the plot :type title: str :param df: Data to be plotted :type df: Pandas DataFrame :param x_label: A label for the x axis :type x_label: str :param y_label: A label for the y axis :type y_label: str :param kind: The kind of chart to make :type kind: str ('line'/'bar'/'barh'/'pie'/'area') :param style: Visual theme of plot :type style: str ('ggplot'/'bmh'/'fivethirtyeight'/'seaborn-talk'/etc) :param figsize: Size of plot :type figsize: tuple (int, int) :param save: If bool, save with *title* as name; if str, use str as name :type save: bool/str :param legend_pos: Where to place legend :type legend_pos: str ('upper right'/'outside right'/etc) :param reverse_legend: Reverse the order of the legend :type reverse_legend: bool :param num_to_plot: How many columns to plot :type num_to_plot: int/'all' :param tex: Use TeX to draw plot text :type tex: bool :param colours: Colourmap for lines/bars/slices :type colours: str :param cumulative: Plot values cumulatively :type cumulative: bool :param pie_legend: Show a legend for pie chart :type pie_legend: bool :param partial_pie: Allow plotting of pie slices only :type partial_pie: bool :param show_totals: Print sums in plot where possible :type show_totals: str -- 'legend'/'plot'/'both' :param transparent: Transparent .png background :type transparent: bool :param output_format: File format for saved image :type output_format: str -- 'png'/'pdf' :param black_and_white: Create black and white line styles :type black_and_white: bool :param show_p_val: Attempt to print p values in legend if contained in df :type show_p_val: bool :param indices: To use when plotting "distance from root" :type indices: bool :param stacked: When making bar chart, stack bars on top of one another :type stacked: str :param filled: For area and bar charts, make every column sum to 100 :type filled: str :param legend: Show a legend :type legend: bool :param rot: Rotate x axis ticks by *rot* degrees :type rot: int :param subplots: Plot each column separately :type subplots: bool :param layout: Grid shape to use when *subplots* is True :type layout: tuple -- (int, int) :param interactive: Experimental interactive options :type interactive: list -- [1, 2, 3] :returns: matplotlib figure """ import corpkit import os try: from IPython.utils.shimmodule import ShimWarning import warnings warnings.simplefilter('ignore', ShimWarning) except: pass kwargs['rot'] = rot xtickspan = kwargs.pop('xtickspan', False) # prefer seaborn plotting try: import seaborn as sns except (ImportError, AttributeError): pass import matplotlib as mpl from matplotlib import rc if interactive: import matplotlib.pyplot as plt, mpld3 else: import matplotlib.pyplot as plt import matplotlib.ticker as ticker import pandas from pandas import DataFrame, Series, MultiIndex from time import localtime, strftime from process import checkstack if interactive: import mpld3 import collections from mpld3 import plugins, utils from plugins import InteractiveLegendPlugin, HighlightLines have_mpldc = False try: from mpldatacursor import datacursor, HighlightingDataCursor have_mpldc = True except ImportError: pass # if the data was multiindexed, the default is a little different! from corpkit.interrogation import Interrogation if isinstance(df.index, MultiIndex): import matplotlib.pyplot as nplt shape = kwargs.get('shape', 'auto') truncate = kwargs.get('truncate', 8) if shape == 'auto': shape = (int(len(df.index.levels[0]) / 2), 2) f, axes = nplt.subplots(*shape) for i, ((name, data), ax) in enumerate(zip(df.groupby(level=0), axes.flatten())): data = data.loc[name] if isinstance(truncate, int) and i > truncate: continue if kwargs.get('name_format'): name = kwargs.get('name_format').format(name) data = Interrogation(results=data, totals=data.sum(axis=1), query=None) data.visualise(title=name, ax=ax, kind=kind, x_label=x_label, y_label=y_label, style=style, figsize=figsize, save=save, legend_pos=legend_pos, reverse_legend=reverse_legend, num_to_plot=num_to_plot, tex=tex, colours=colours, cumulative=cumulative, pie_legend=pie_legend, partial_pie=partial_pie, show_totals=show_totals, transparent=transparent, output_format=output_format, interactive=interactive, black_and_white=black_and_white, show_p_val=show_p_val, indices=indices, transpose=transpose, rot=rot) return nplt def copy(self): from corpkit.interrogation import Interrodict copied = {} for k, v in self.items(): copied[k] = v return Interrodict(copied) # check what environment we're in tk = checkstack('tkinter') running_python_tex = checkstack('pythontex') running_spider = checkstack('spyder') if not title: title = '' def truncate_colormap(cmap, minval=0.0, maxval=1.0, n=100): """remove extreme values from colourmap --- no pure white""" import matplotlib.colors as colors import numpy as np new_cmap = colors.LinearSegmentedColormap.from_list( 'trunc({n},{a:.2f},{b:.2f})'.format(n=cmap.name, a=minval, b=maxval), cmap(np.linspace(minval, maxval, n))) return new_cmap def get_savename(imagefolder, save = False, title = False, ext = 'png'): """Come up with the savename for the image.""" import os from corpkit.process import urlify # name as if not ext.startswith('.'): ext = '.' + ext if isinstance(save, STRINGTYPE): savename = os.path.join(imagefolder, (urlify(save) + ext)) #this 'else' is redundant now that title is obligatory else: if title: filename = urlify(title) + ext savename = os.path.join(imagefolder, filename) # remove duplicated ext if savename.endswith('%s%s' % (ext, ext)): savename = savename.replace('%s%s' % (ext, ext), ext, 1) return savename def rename_data_with_total(dataframe, was_series = False, using_tex = False, absolutes = True): """adds totals (abs, rel, keyness) to entry name strings""" if was_series: where_the_words_are = dataframe.index else: where_the_words_are = dataframe.columns the_labs = [] for w in list(where_the_words_are): if not absolutes: if was_series: perc = dataframe.T[w][0] else: the_labs.append(w) continue if using_tex: the_labs.append('%s (%.2f\%%)' % (w, perc)) else: the_labs.append('%s (%.2f %%)' % (w, perc)) else: if was_series: score = dataframe.T[w].sum() else: score = dataframe[w].sum() if using_tex: the_labs.append('%s (n=%d)' % (w, score)) else: the_labs.append('%s (n=%d)' % (w, score)) if not was_series: dataframe.columns = the_labs else: vals = list(dataframe[list(dataframe.columns)[0]].values) dataframe = pandas.DataFrame(vals, index=the_labs) dataframe.columns = ['Total'] return dataframe def auto_explode(dataframe, tinput, was_series = False, num_to_plot = 7): """give me a list of strings and i'll output explode option""" output = [0 for s in range(num_to_plot)] if was_series: l = list(dataframe.index) else: l = list(dataframe.columns) if isinstance(tinput, (STRINGTYPE, int)): tinput = [tinput] if isinstance(tinput, list): for i in tinput: if isinstance(i, STRINGTYPE): index = l.index(i) else: index = i output[index] = 0.1 return output # get a few options from kwargs sbplt = kwargs.get('subplots', False) show_grid = kwargs.pop('grid', True) the_rotation = kwargs.get('rot', False) dragmode = kwargs.pop('draggable', False) leg_frame = kwargs.pop('legend_frame', True) leg_alpha = kwargs.pop('legend_alpha', 0.8) # auto set num to plot based on layout lo = kwargs.get('layout', None) if lo: num_to_plot = lo[0] * lo[1] # todo: get this dynamically instead. styles = ['dark_background', 'bmh', 'grayscale', 'ggplot', 'fivethirtyeight', 'matplotlib', False, 'mpl-white'] #if style not in styles: #raise ValueError('Style %s not found. Use %s' % (str(style), ', '.join(styles))) if style == 'mpl-white': try: sns.set_style("whitegrid") except: pass style = 'matplotlib' if kwargs.get('savepath'): mpl.rcParams['savefig.directory'] = kwargs.get('savepath') kwargs.pop('savepath', None) mpl.rcParams['savefig.bbox'] = 'tight' mpl.rcParams.update({'figure.autolayout': True}) # try to use tex # TO DO: # make some font kwargs here using_tex = False mpl.rcParams['font.family'] = 'sans-serif' mpl.rcParams['text.latex.unicode'] = True if tex == 'try' or tex is True: try: rc('text', usetex=True) rc('font', **{'family': 'serif', 'serif': ['Computer Modern']}) using_tex = True except: matplotlib.rc('font', family='sans-serif') matplotlib.rc('font', serif='Helvetica Neue') matplotlib.rc('text', usetex='false') rc('text', usetex=False) else: rc('text', usetex=False) if interactive: using_tex = False if show_totals is False: show_totals = 'none' # find out what kind of plot we're making, and enable # or disable interactive values if need be kwargs['kind'] = kind.lower() if interactive: if kwargs['kind'].startswith('bar'): interactive_types = [3] elif kwargs['kind'] == 'area': interactive_types = [2, 3] elif kwargs['kind'] == 'line': interactive_types = [2, 3] elif kwargs['kind'] == 'pie': interactive_types = None warnings.warn('Interactive plotting not yet available for pie plots.') else: interactive_types = [None] if interactive is False: interactive_types = [None] # find out if pie mode, add autopct format piemode = False if kind == 'pie': piemode = True # always the best spot for pie #if legend_pos == 'best': #legend_pos = 'lower left' if show_totals.endswith('plot') or show_totals.endswith('both'): kwargs['pctdistance'] = 0.6 if using_tex: kwargs['autopct'] = r'%1.1f\%%' else: kwargs['autopct'] = '%1.1f%%' # copy data, make series into df dataframe = df.copy() if kind == 'heatmap': try: dataframe = dataframe.T except: pass was_series = False if isinstance(dataframe, Series): was_series = True if not cumulative: dataframe = DataFrame(dataframe) else: dataframe = DataFrame(dataframe.cumsum()) else: # don't know if this is much good. if transpose: dataframe = dataframe.T if cumulative: dataframe = DataFrame(dataframe.cumsum()) if len(list(dataframe.columns)) == 1: was_series = True # attempt to convert x axis to ints: #try: # dataframe.index = [int(i) for i in list(dataframe.index)] #except: # pass # remove totals and tkinter order if not was_series: for name, ax in zip(['Total'] * 2 + ['tkintertable-order'] * 2, [0, 1, 0, 1]): try: dataframe = dataframe.drop(name, axis=ax, errors='ignore') except: pass try: dataframe = dataframe.drop('tkintertable-order', errors='ignore') except: pass try: dataframe = dataframe.drop('tkintertable-order', axis=1, errors='ignore') except: pass # look at columns to see if all can be ints, in which case, set up figure # for depnumming if not was_series: if indices == 'guess': def isint(x): try: a = float(x) b = int(a) except (ValueError, OverflowError): return False else: return a == b if all([isint(x) is True for x in list(dataframe.columns)]): indices = True else: indices = False # if depnumming, plot all, transpose, and rename axes if indices is True: num_to_plot = 'all' dataframe = dataframe.T if y_label is None: y_label = 'Percentage of all matches' if x_label is None: x_label = '' # set backend? output_formats = ['svgz', 'ps', 'emf', 'rgba', 'raw', 'pdf', 'svg', 'eps', 'png', 'pgf'] if output_format not in output_formats: raise ValueError('%s output format not recognised. Must be: %s' % (output_format, ', '.join(output_formats))) # don't know if these are necessary if 'pdf' in output_format: plt.switch_backend(output_format) if 'pgf' in output_format: plt.switch_backend(output_format) if num_to_plot == 'all': if was_series: if not piemode: num_to_plot = len(dataframe) else: num_to_plot = len(dataframe) else: if not piemode: num_to_plot = len(list(dataframe.columns)) else: num_to_plot = len(dataframe.index) # explode pie, or remove if not piemode if piemode and not sbplt and kwargs.get('explode'): kwargs['explode'] = auto_explode(dataframe, kwargs['explode'], was_series=was_series, num_to_plot=num_to_plot) else: kwargs.pop('explode', None) legend = kwargs.get('legend', True) #cut data short plotting_a_totals_column = False if was_series: if list(dataframe.columns)[0] != 'Total': try: can_be_ints = [int(x) for x in list(dataframe.index)] num_to_plot = len(dataframe) except: dataframe = dataframe[:num_to_plot] elif list(dataframe.columns)[0] == 'Total': plotting_a_totals_column = True if not 'legend' in kwargs: legend = False num_to_plot = len(dataframe) else: if transpose: dataframe = dataframe.head(num_to_plot) else: dataframe = dataframe.T.head(num_to_plot).T # remove stats fields, put p in entry text, etc. statfields = ['slope', 'intercept', 'r', 'p', 'stderr'] try: dataframe = dataframe.drop(statfields, axis=1, errors='ignore') except: pass try: dataframe.ix['p'] there_are_p_vals = True except: there_are_p_vals = False if show_p_val: if there_are_p_vals: newnames = [] for col in list(dataframe.columns): pval = dataframe[col]['p'] def p_string_formatter(val): if val < 0.001: if not using_tex: return 'p < 0.001' else: return r'p $<$ 0.001' else: return 'p = %s' % format(val, '.3f') pstr = p_string_formatter(pval) newname = '%s (%s)' % (col, pstr) newnames.append(newname) dataframe.columns = newnames dataframe.drop(statfields, axis=0, inplace = True, errors='ignore') else: warnings.warn('No p-values calculated to show.\n\nUse keep_stats kwarg while editing to generate these values.') else: if there_are_p_vals: dataframe.drop(statfields, axis=0, inplace=True, errors='ignore') # make and set y label absolutes = True if isinstance(dataframe, DataFrame): try: if not all([s.is_integer() for s in dataframe.iloc[0,:].values]): absolutes = False except: pass else: if not all([s.is_integer() for s in dataframe.values]): absolutes = False ########################################## ################ COLOURS ################# ########################################## # set defaults, with nothing for heatmap yet if colours is True or colours == 'default' or colours == 'Default': if kind != 'heatmap': colours = 'viridis' else: colours = 'default' # assume it's a single color, unless string denoting map cmap_or_c = 'color' if isinstance(colours, str): cmap_or_c = 'colormap' from matplotlib.colors import LinearSegmentedColormap if isinstance(colours, LinearSegmentedColormap): cmap_or_c = 'colormap' # for heatmaps, it's always a colormap if kind == 'heatmap': cmap_or_c = 'cmap' # if it's a defaulty string, set accordingly if isinstance(colours, str): if colours.lower().startswith('diverg'): colours = sns.diverging_palette(10, 133, as_cmap=True) # if default not set, do diverge for any df with a number < 0 elif colours.lower() == 'default': mn = dataframe.min() if isinstance(mn, Series): mn = mn.min() if mn < 0: colours = sns.diverging_palette(10, 133, as_cmap=True) else: colours = sns.light_palette("green", as_cmap=True) if 'seaborn' not in style: kwargs[cmap_or_c] = colours #if not was_series: # if kind in ['pie', 'line', 'area']: # if colours and not plotting_a_totals_column: # kwargs[cmap_or_c] = colours # else: # if colours: # kwargs[cmap_or_c] = colours #if piemode: # if num_to_plot > 0: # kwargs[cmap_or_c] = colours # else: # if num_to_plot > 0: # kwargs[cmap_or_c] = colours # multicoloured bar charts #if colours and cmap_or_c == 'colormap': # if kind.startswith('bar'): # if len(list(dataframe.columns)) == 1: # if not black_and_white: # import numpy as np # the_range = np.linspace(0, 1, num_to_plot) # middle = len(the_range) / 2 # try: # cmap = plt.get_cmap(colours) # kwargs[cmap_or_c] = [cmap(n) for n in the_range][middle] # except ValueError: # kwargs[cmap_or_c] = colours # # make a bar width ... ? ... # #kwargs['width'] = (figsize[0] / float(num_to_plot)) / 1.5 # reversing legend option if reverse_legend is True: rev_leg = True elif reverse_legend is False: rev_leg = False # show legend or don't, guess whether to reverse based on kind if kind in ['bar', 'barh', 'area', 'line', 'pie']: if was_series: legend = False if kind == 'pie': if pie_legend: legend = True else: legend = False if kind in ['barh', 'area']: if reverse_legend == 'guess': rev_leg = True if not 'rev_leg' in locals(): rev_leg = False # the default legend placement if legend_pos is True: legend_pos = 'best' # cut dataframe if just_totals try: tst = dataframe['Combined total'] dataframe = dataframe.head(num_to_plot) except: pass # no title for subplots because ugly, if title and not sbplt: kwargs['title'] = title # no interactive subplots yet: if sbplt and interactive: import warnings interactive = False warnings.warn('No interactive subplots yet, sorry.') return # not using pandas for labels or legend anymore. #kwargs['labels'] = None #kwargs['legend'] = False if legend: if num_to_plot > 6: if not kwargs.get('ncol'): kwargs['ncol'] = num_to_plot // 7 # kwarg options go in leg_options leg_options = {'framealpha': leg_alpha, 'shadow': kwargs.get('shadow', False), 'ncol': kwargs.pop('ncol', 1)} # determine legend position based on this dict if legend_pos: possible = {'best': 0, 'upper right': 1, 'upper left': 2, 'lower left': 3, 'lower right': 4, 'right': 5, 'center left': 6, 'center right': 7, 'lower center': 8, 'upper center': 9, 'center': 10, 'o r': 2, 'outside right': 2, 'outside upper right': 2, 'outside center right': 'center left', 'outside lower right': 'lower left'} if isinstance(legend_pos, int): the_loc = legend_pos elif isinstance(legend_pos, str): try: the_loc = possible[legend_pos] except KeyError: raise KeyError('legend_pos value must be one of:\n%s\n or an int between 0-10.' %', '.join(list(possible.keys()))) leg_options['loc'] = the_loc #weirdness needed for outside plot if legend_pos in ['o r', 'outside right', 'outside upper right']: leg_options['bbox_to_anchor'] = (1.02, 1) if legend_pos == 'outside center right': leg_options['bbox_to_anchor'] = (1.02, 0.5) if legend_pos == 'outside lower right': leg_options['loc'] == 'upper right' leg_options['bbox_to_anchor'] = (0.5, 0.5) # a bit of distance between legend and plot for outside legends if isinstance(legend_pos, str): if legend_pos.startswith('o'): leg_options['borderaxespad'] = 1 if not piemode: if show_totals.endswith('both') or show_totals.endswith('legend'): dataframe = rename_data_with_total(dataframe, was_series = was_series, using_tex = using_tex, absolutes = absolutes) else: if pie_legend: if show_totals.endswith('both') or show_totals.endswith('legend'): dataframe = rename_data_with_total(dataframe, was_series = was_series, using_tex = using_tex, absolutes = absolutes) if piemode: if partial_pie: dataframe = dataframe / 100.0 # some pie things if piemode: if not sbplt: kwargs['y'] = list(dataframe.columns)[0] def filler(df): pby = df.T.copy() for i in list(pby.columns): tot = pby[i].sum() pby[i] = pby[i] * 100.0 / tot return pby.T areamode = False if kind == 'area': areamode = True if legend is False: kwargs['legend'] = False # line highlighting option for interactive! if interactive: if 2 in interactive_types: if kind == 'line': kwargs['marker'] = ',' if not piemode: kwargs['alpha'] = 0.1 # convert dates --- works only in my current case! #if plotting_a_totals_column or not was_series: # try: # can_it_be_int = int(list(dataframe.index)[0]) # can_be_int = True # except: # can_be_int = False # if can_be_int: # if 1500 < int(list(dataframe.index)[0]): # if 2050 > int(list(dataframe.index)[0]): # n = pandas.PeriodIndex([d for d in list(dataframe.index)], freq='A') # dataframe = dataframe.set_index(n) if kwargs.get('filled'): if areamode or kind.startswith('bar'): dataframe = filler(dataframe) kwargs.pop('filled', None) MARKERSIZE = 4 COLORMAP = { 0: {'marker': None, 'dash': (None,None)}, 1: {'marker': None, 'dash': [5,5]}, 2: {'marker': "o", 'dash': (None,None)}, 3: {'marker': None, 'dash': [1,3]}, 4: {'marker': "s", 'dash': [5,2,5,2,5,10]}, 5: {'marker': None, 'dash': [5,3,1,2,1,10]}, 6: {'marker': 'o', 'dash': (None,None)}, 7: {'marker': None, 'dash': [5,3,1,3]}, 8: {'marker': "1", 'dash': [1,3]}, 9: {'marker': "*", 'dash': [5,5]}, 10: {'marker': "2", 'dash': [5,2,5,2,5,10]}, 11: {'marker': "s", 'dash': (None,None)} } HATCHES = { 0: {'color': '#dfdfdf', 'hatch':"/"}, 1: {'color': '#6f6f6f', 'hatch':"\\"}, 2: {'color': 'b', 'hatch':"|"}, 3: {'color': '#dfdfdf', 'hatch':"-"}, 4: {'color': '#6f6f6f', 'hatch':"+"}, 5: {'color': 'b', 'hatch':"x"} } if black_and_white: if kind == 'line': kwargs['linewidth'] = 1 cmap = plt.get_cmap('Greys') new_cmap = truncate_colormap(cmap, 0.25, 0.95) if kind == 'bar': # darker if just one entry if len(dataframe.columns) == 1: new_cmap = truncate_colormap(cmap, 0.70, 0.90) kwargs[cmap_or_c] = new_cmap # remove things from kwargs if heatmap if kind == 'heatmap': hmargs = {'annot': kwargs.pop('annot', True), cmap_or_c: kwargs.pop(cmap_or_c, None), 'fmt': kwargs.pop('fmt', ".2f"), 'cbar': kwargs.pop('cbar', False)} for i in ['vmin', 'vmax', 'linewidths', 'linecolor', 'robust', 'center', 'cbar_kws', 'cbar_ax', 'square', 'mask', 'norm']: if i in kwargs.keys(): hmargs[i] = kwargs.pop(i, None) class dummy_context_mgr(): """a fake context for plotting without style perhaps made obsolete by 'classic' style in new mpl""" def __enter__(self): return None def __exit__(self, one, two, three): return False with plt.style.context((style)) if style != 'matplotlib' else dummy_context_mgr(): kwargs.pop('filled', None) if not sbplt: # check if negative values, no stacked if so if areamode: if not kwargs.get('ax'): kwargs['legend'] = False if dataframe.applymap(lambda x: x < 0.0).any().any(): kwargs['stacked'] = False rev_leg = False if kind != 'heatmap': # turn off pie labels at the last minute if kind == 'pie' and pie_legend: kwargs['labels'] = None kwargs['autopct'] = '%.2f' if kind == 'pie': kwargs.pop('color', None) ax = dataframe.plot(figsize=figsize, **kwargs) else: fg = plt.figure(figsize=figsize) if title: plt.title(title) ax = kwargs.get('ax', plt.axes()) tmp = sns.heatmap(dataframe, ax=ax, **hmargs) ax.set_title(title) for item in tmp.get_yticklabels(): item.set_rotation(0) plt.close(fg) if areamode and not kwargs.get('ax'): handles, labels = plt.gca().get_legend_handles_labels() del handles del labels if x_label: ax.set_xlabel(x_label) if y_label: ax.set_ylabel(y_label) else: if not kwargs.get('layout'): plt.gcf().set_tight_layout(False) if kind != 'heatmap': ax = dataframe.plot(figsize=figsize, **kwargs) else: plt.figure(figsize=figsize) if title: plt.title(title) ax = plt.axes() sns.heatmap(dataframe, ax=ax, **hmargs) plt.xticks(rotation=0) plt.yticks(rotation=0) def rotate_degrees(rotation, labels): if rotation is None: if max(labels, key=len) > 6: return 45 else: return 0 elif rotation is False: return 0 elif rotation is True: return 45 else: return rotation if sbplt: if 'layout' not in kwargs: axes = [l for l in ax] else: axes = [] cols = [l for l in ax] for col in cols: for bit in col: axes.append(bit) for index, a in enumerate(axes): if xtickspan is not False: a.xaxis.set_major_locator(ticker.MultipleLocator(xtickspan)) labels = [item.get_text() for item in a.get_xticklabels()] rotation = rotate_degrees(the_rotation, labels) try: if the_rotation == 0: ax.set_xticklabels(labels, rotation=rotation, ha='center') else: ax.set_xticklabels(labels, rotation=rotation, ha='right') except AttributeError: pass else: if kind == 'heatmap': labels = [item.get_text() for item in ax.get_xticklabels()] rotation = rotate_degrees(the_rotation, labels) if the_rotation == 0: ax.set_xticklabels(labels, rotation=rotation, ha='center') else: ax.set_xticklabels(labels, rotation=rotation, ha='right') if transparent: plt.gcf().patch.set_facecolor('white') plt.gcf().patch.set_alpha(0) if black_and_white: if kind == 'line': # white background # change everything to black and white with interesting dashes and markers c = 0 for line in ax.get_lines(): line.set_color('black') #line.set_width(1) line.set_dashes(COLORMAP[c]['dash']) line.set_marker(COLORMAP[c]['marker']) line.set_markersize(MARKERSIZE) c += 1 if c == len(list(COLORMAP.keys())): c = 0 # draw legend with proper placement etc if legend: if not piemode and not sbplt and kind != 'heatmap': if 3 not in interactive_types: handles, labels = plt.gca().get_legend_handles_labels() # area doubles the handles and labels. this removes half: #if areamode: # handles = handles[-len(handles) / 2:] # labels = labels[-len(labels) / 2:] if rev_leg: handles = handles[::-1] labels = labels[::-1] if kwargs.get('ax'): lgd = plt.gca().legend(handles, labels, **leg_options) ax.get_legend().draw_frame(leg_frame) else: lgd = plt.legend(handles, labels, **leg_options) lgd.draw_frame(leg_frame) if interactive: # 1 = highlight lines # 2 = line labels # 3 = legend switches ax = plt.gca() # fails for piemode lines = ax.lines handles, labels = plt.gca().get_legend_handles_labels() if 1 in interactive_types: plugins.connect(plt.gcf(), HighlightLines(lines)) if 3 in interactive_types: plugins.connect(plt.gcf(), InteractiveLegendPlugin(lines, labels, alpha_unsel=0.0)) for i, l in enumerate(lines): y_vals = l.get_ydata() x_vals = l.get_xdata() x_vals = [str(x) for x in x_vals] if absolutes: ls = ['%s (%s: %d)' % (labels[i], x_val, y_val) for x_val, y_val in zip(x_vals, y_vals)] else: ls = ['%s (%s: %.2f%%)' % (labels[i], x_val, y_val) for x_val, y_val in zip(x_vals, y_vals)] if 2 in interactive_types: #if 'kind' in kwargs and kwargs['kind'] == 'area': tooltip_line = mpld3.plugins.LineLabelTooltip(lines[i], labels[i]) mpld3.plugins.connect(plt.gcf(), tooltip_line) #else: if kind == 'line': tooltip_point = mpld3.plugins.PointLabelTooltip(l, labels = ls) mpld3.plugins.connect(plt.gcf(), tooltip_point) if piemode: if not sbplt: plt.axis('equal') ax.get_xaxis().set_visible(False) ax.get_yaxis().set_visible(False) # add x label # this could be revised now! # if time series period, it's year for now if isinstance(dataframe.index, pandas.tseries.period.PeriodIndex): x_label = 'Year' y_l = False if not absolutes: y_l = 'Percentage' else: y_l = 'Absolute frequency' # hacky: turn legend into subplot titles :) if sbplt: # title the big plot #plt.gca().suptitle(title, fontsize = 16) #plt.subplots_adjust(top=0.9) # get all axes if 'layout' not in kwargs: axes = [l for index, l in enumerate(ax)] else: axes = [] cols = [l for index, l in enumerate(ax)] for col in cols: for bit in col: axes.append(bit) # set subplot titles for index, a in enumerate(axes): try: titletext = list(dataframe.columns)[index] except: pass a.set_title(titletext) try: a.legend_.remove() except: pass #try: # from matplotlib.ticker import MaxNLocator # from corpkit.process import is_number # indx = list(dataframe.index) # if all([is_number(qq) for qq in indx]): # ax.get_xaxis().set_major_locator(MaxNLocator(integer=True)) #except: # pass # remove axis labels for pie plots if piemode: a.axes.get_xaxis().set_visible(False) a.axes.get_yaxis().set_visible(False) a.axis('equal') a.grid(b=show_grid) # add sums to bar graphs and pie graphs # doubled right now, no matter if not sbplt: # show grid ax.grid(b=show_grid) if kind.startswith('bar'): width = ax.containers[0][0].get_width() if was_series: the_y_limit = plt.ylim()[1] if show_totals.endswith('plot') or show_totals.endswith('both'): # make plot a bit higher if putting these totals on it plt.ylim([0,the_y_limit * 1.05]) for i, label in enumerate(list(dataframe.index)): if len(dataframe.ix[label]) == 1: score = dataframe.ix[label][0] else: if absolutes: score = dataframe.ix[label].sum() else: #import warnings #warnings.warn("It's not possible to determine total percentage from individual percentages.") continue if not absolutes: plt.annotate('%.2f' % score, (i, score), ha = 'center', va = 'bottom') else: plt.annotate(score, (i, score), ha = 'center', va = 'bottom') else: the_y_limit = plt.ylim()[1] if show_totals.endswith('plot') or show_totals.endswith('both'): for i, label in enumerate(list(dataframe.columns)): if len(dataframe[label]) == 1: score = dataframe[label][0] else: if absolutes: score = dataframe[label].sum() else: #import warnings #warnings.warn("It's not possible to determine total percentage from individual percentages.") continue if not absolutes: plt.annotate('%.2f' % score, (i, score), ha='center', va='bottom') else: plt.annotate(score, (i, score), ha='center', va='bottom') if not kwargs.get('layout') and not sbplt and not kwargs.get('ax'): plt.tight_layout() if kwargs.get('ax'): try: plt.gcf().set_tight_layout(False) except: pass try: plt.set_tight_layout(False) except: pass if save: if running_python_tex: imagefolder = '../images' else: imagefolder = 'images' savename = get_savename(imagefolder, save=save, title=title, ext=output_format) if not os.path.isdir(imagefolder): os.makedirs(imagefolder) # save image and get on with our lives if legend_pos.startswith('o') and not sbplt: plt.gcf().savefig(savename, dpi=150, bbox_extra_artists=(lgd,), bbox_inches='tight', format=output_format) else: plt.gcf().savefig(savename, dpi=150, format=output_format) time = strftime("%H:%M:%S", localtime()) if os.path.isfile(savename): print('\n' + time + ": " + savename + " created.") else: raise ValueError("Error making %s." % savename) if dragmode: plt.legend().draggable() if sbplt: plt.subplots_adjust(right=.8) plt.subplots_adjust(left=.1) # add DataCursor to notebook backend if possible if have_mpldc: if kind == 'line': HighlightingDataCursor(plt.gca().get_lines(), highlight_width=4, highlight_color = False, formatter=lambda **kwargs: '%s: %s' % (kwargs['label'], "{0:.3f}".format(kwargs['y']))) else: datacursor(formatter=lambda **kwargs: '%s: %s' % (kwargs['label'], "{0:.3f}".format(kwargs['height']))) #if not interactive and not running_python_tex and not running_spider \ # and not tk: # plt.gcf().show() # return plt #elif running_spider or tk: # return plt if interactive: plt.subplots_adjust(right=.8) plt.subplots_adjust(left=.1) try: ax.legend_.remove() except: pass return mpld3.display() else: return plt def multiplotter(df, leftdict={},rightdict={}, **kwargs): """ Plot a big chart and its subplots together :param leftdict: a dict of arguments for the big plot :type leftdict: dict :param rightdict: a dict of arguments for the small plot :type rightdict: dict """ from corpkit.interrogation import Interrogation import matplotlib.pyplot as plt axes = [] if isinstance(df, Interrogation): df = df.results df2 = rightdict.pop('data', df.copy()) if isinstance(df2, Interrogation): df2 = df2.results # add more cool layouts here # and figure out a nice way to access them other than numbers... from corpkit.layouts import layouts if isinstance(kwargs.get('layout'), list): layout = kwargs.get('layout') else: lay = kwargs.get('layout', 1) layout = layouts.get(lay) kinda = leftdict.pop('kind', 'area') kindb = rightdict.pop('kind', 'line') tpa = leftdict.pop('transpose', False) tpb = rightdict.pop('transpose', False) numtoplot = leftdict.pop('num_to_plot', len(layout) - 1) ntpb = rightdict.pop('num_to_plot', 'all') sharex = rightdict.pop('sharex', True) sharey = rightdict.pop('sharey', False) if kindb == 'pie': piecol = rightdict.pop('colours', 'default') coloursb = rightdict.pop('colours', 'default') fig = plt.figure() for i, (nrows, ncols, plot_number) in enumerate(layout, start=-1): if tpb: df2 = df2.T if i >= len(df2.columns): continue ax = fig.add_subplot(nrows, ncols, plot_number) if i == -1: df.visualise(kind=kinda, ax=ax, transpose=tpa, num_to_plot=numtoplot, **leftdict) if kinda in ['bar', 'hist', 'barh']: import matplotlib as mpl colmap = [] rects = [r for r in ax.get_children() if isinstance(r, mpl.patches.Rectangle)] for r in rects: if r._facecolor not in colmap: colmap.append(r._facecolor) try: colmap = {list(df.columns)[i]: x for i, x in enumerate(colmap[:len(df.columns)])} except AttributeError: colmap = {list(df.index)[i]: x for i, x in enumerate(colmap[:len(df.index)])} else: try: colmap = {list(df.columns)[i]: l.get_color() for i, l in enumerate(ax.get_lines())} except AttributeError: colmap = {list(df.index)[i]: l.get_color() for i, l in enumerate(ax.get_lines())} else: if colmap and kindb != 'pie': try: name = df2.iloc[:, i].name coloursb = colmap[name] except IndexError: coloursb = 'gray' except KeyError: coloursb = 'gray' if kindb == 'pie': rightdict['colours'] = piecol else: rightdict['colours'] = coloursb df2.iloc[:, i].visualise(kind=kindb, ax=ax, sharex=sharex, sharey=sharey, num_to_plot=ntpb, **rightdict) ax.set_title(df2.iloc[:, i].name) wspace = kwargs.get('wspace', .2) hspace = kwargs.get('hspace', .5) fig.subplots_adjust(bottom=0.025, left=0.025, top=0.975, right=0.975, wspace=wspace, hspace=hspace) size = kwargs.get('figsize', (10, 4)) fig.set_size_inches(size) try: plt.set_size_inches(size) except: pass if kwargs.get('save'): import os from corpkit.process import urlify savepath = os.path.join('images', urlify(kwargs['save']) + '.png') fig.savefig(savepath, dpi=150) return plt ================================================ FILE: corpkit/plugins.py ================================================ import mpld3 import collections from mpld3 import plugins, utils class HighlightLines(plugins.PluginBase): """A plugin to highlight lines on hover""" JAVASCRIPT = """ mpld3.register_plugin("linehighlight", LineHighlightPlugin); LineHighlightPlugin.prototype = Object.create(mpld3.Plugin.prototype); LineHighlightPlugin.prototype.constructor = LineHighlightPlugin; LineHighlightPlugin.prototype.requiredProps = ["line_ids"]; LineHighlightPlugin.prototype.defaultProps = {alpha_bg:0.0, alpha_fg:1.0} function LineHighlightPlugin(fig, props){ mpld3.Plugin.call(this, fig, props); }; LineHighlightPlugin.prototype.draw = function(){ for(var i=0; ilink', '') return HTML('' % url) def add_corpkit_to_path(): import sys import os import inspect corpath = inspect.getfile(inspect.currentframe()) baspat = os.path.dirname(corpath) dicpath = os.path.join(baspat, 'dictionaries') for p in [corpath, baspat, dicpath]: if p not in sys.path: sys.path.append(p) if p not in os.environ["PATH"].split(':'): os.environ["PATH"] += os.pathsep + p def add_nltk_data_to_nltk_path(**kwargs): import nltk import os npat = nltk.__file__ nltkpath = os.path.dirname(npat) if nltkpath not in nltk.data.path: nltk.data.path.append(nltkpath) if 'note' in list(kwargs.keys()): path_within_gui = os.path.join(nltkpath.split('/lib/python2.7')[0], 'nltk_data') if path_within_gui not in nltk.data.path: nltk.data.path.append(path_within_gui) if path_within_gui.replace('/nltk/', '/', 1) not in nltk.data.path: nltk.data.path.append(path_within_gui.replace('/nltk/', '/', 1)) def get_gui_resource_dir(): import inspect import os import sys if sys.platform == 'darwin': fext = 'app' else: fext = 'exe' corpath = corpath = __file__ extens = '.%s' % fext apppath = corpath.split(extens , 1) resource_path = '' # if not an .app if len(apppath) == 1: resource_path = os.path.dirname(corpath) else: apppath = apppath[0] + extens appdir = os.path.dirname(apppath) if sys.platform == 'darwin': #resource_path = os.path.join(apppath, 'Contents', 'Resources') resource_path = os.path.join(apppath, 'Contents', 'MacOS') else: resource_path = appdir return resource_path def get_fullpath_to_jars(path_var): """when corenlp is needed, this sets corenlppath as the path to jar files, or returns false if not found""" import os important_files = ['stanford-corenlp-3.5.2-javadoc.jar', 'stanford-corenlp-3.5.2-models.jar', 'stanford-corenlp-3.5.2-sources.jar', 'stanford-corenlp-3.5.2.jar'] # if user selected file in parser dir rather than dir, # get the containing dir path_var_str = path_var.get() if os.path.isfile(path_var_str): path_var_str = os.path.dirname(path_var_str.rstrip('/')) # if the user selected the subdir: if all(os.path.isfile(os.path.join(path_var_str, f)) for f in important_files): path_var.set(path_var_str) return True # if the user selected the parent dir: if os.path.isdir(path_var_str): # get subdirs containing the jar try: find_install = [d for d in os.listdir(path_var_str) \ if os.path.isdir(os.path.join(path_var_str, d)) \ and os.path.isfile(os.path.join(path_var_str, d, 'jollyday.jar'))] except OSError: pass if len(find_install) > 0: path_var.set(os.path.join(path_var_str, find_install[0])) return True # need to fix this duplicated code try: home = os.path.expanduser("~") try_dir = os.path.join(home, 'corenlp') if os.path.isdir(try_dir): path_var_str = try_dir # get subdirs containing the jar try: find_install = [d for d in os.listdir(path_var_str) \ if os.path.isdir(os.path.join(path_var_str, d)) \ and os.path.isfile(os.path.join(path_var_str, d, 'jollyday.jar'))] except OSError: pass if len(find_install) > 0: path_var.set(os.path.join(path_var_str, find_install[0])) return True except: pass return False def determine_datatype(path): """ Determine if plaintext, tokens or parsed XML """ import os from collections import Counter exts = [] if not os.path.isdir(path) and not os.path.isfile(path): raise ValueError("Corpus path '%s' doesn't exist." % path) singlefile = False if os.path.isfile(path): singlefile = True if '.' in path: exts = [os.path.splitext(path)[1]] else: exts = ['.txt'] else: for (root, dirs, fs) in os.walk(path): for f in fs: if '.' in f: ext = os.path.splitext(f)[1] exts.append(ext) counted = Counter(exts) counted.pop('', None) try: mc = counted.most_common(1)[0][0] except IndexError: mc = '.txt' lookup = {'.txt': 'plaintext', '.conll': 'conll', '.conllu': 'conll'} return lookup.get(mc, 'plaintext'), singlefile def filtermaker(the_filter, case_sensitive=False, **kwargs): """ Create a search/exclude value """ import re from corpkit.dictionaries.process_types import Wordlist from time import localtime, strftime root = kwargs.get('root') if isinstance(the_filter, (list, Wordlist)): from corpkit.other import as_regex the_filter = as_regex(the_filter, case_sensitive=case_sensitive) try: output = re.compile(the_filter) is_valid = True except: is_valid = False if root: import traceback import sys exc_type, exc_value, exc_traceback = sys.exc_info() lst = traceback.format_exception(exc_type, exc_value, exc_traceback) error_message = lst[-1] thetime = strftime("%H:%M:%S", localtime()) print('%s: Filter %s' % (thetime, error_message)) return 'Bad query' while not is_valid: if root: time = strftime("%H:%M:%S", localtime()) print(the_filter) print('%s: Invalid regular expression.' % time) return False time = strftime("%H:%M:%S", localtime()) selection = INPUTFUNC('\n%s: filter regular expression " %s " contains an error. You can either:\n\n' \ ' a) rewrite it now\n' \ ' b) exit\n\nYour selection: ' % (time, the_filter)) if 'a' in selection: the_filter = INPUTFUNC('\nNew regular expression: ') try: output = re.compile(r'\b' + the_filter + r'\b') is_valid = True except re.error: is_valid = False elif 'b' in selection: print('') return False return output def searchfixer(search, query, datatype=False): """ Normalise query/search value """ if isinstance(search, STRINGTYPE) and isinstance(query, dict): return search if isinstance(search, STRINGTYPE): srch = search[0].lower() if not srch.startswith('t') and not srch.lower().startswith('n'): if query == 'any': query = r'.*' search = {search: query} return search def is_number(s): """ Check if str can be can be made into float/int """ try: float(s) # for int, long and float return True except ValueError: try: complex(s) # for complex return True except ValueError: return False except TypeError: return False def animator(progbar, count, tot_string=False, linenum=False, terminal=False, init=False, length=False, quiet=False, **kwargs ): """ Animates progress bar in unique position in terminal Multiple progress bars not supported in jupyter yet. """ # if ipython? welcome_message = kwargs.pop('welcome_message', '') if welcome_message: welcome_message = welcome_message.replace('Interrogating corpus ... \n', '') welcome_message = welcome_message.replace('Concordancing corpus ... \n', '') welcome_message = welcome_message.replace('\n', '
').replace(' ' * 17, ' ' * 17) else: welcome_message = '' if init: from traitlets import TraitError try: from ipywidgets import IntProgress, HTML, VBox from IPython.display import display progress = IntProgress(min=0, max=length, value=1) using_notebook = True progress.bar_style = 'info' label = HTML() label.font_family = 'monospace' gblabel = HTML() gblabel.font_family = 'monospace' box = VBox(children=[label, progress, gblabel]) display(box) return box except TraitError: pass except ImportError: pass # newest ipython error except AttributeError: pass if not init: try: from ipywidgets.widgets.widget_box import Box if isinstance(progbar, Box): label, progress, goodbye = progbar.children progress.value = count if count == length: progress.bar_style = 'success' else: label.value = '%s\nInterrogating: %s ...' % (welcome_message, tot_string) return except: pass # add startnum start_at = kwargs.get('startnum', 0) if start_at is None: start_at = 0.0 denominator = kwargs.get('denom', 1) if kwargs.get('note'): if count is None: perc_done = 0.0 else: perc_done = (count * 100.0 / float(length)) / float(denominator) kwargs['note'].progvar.set(start_at + perc_done) kwargs['root'].update() return if init: from corpkit.textprogressbar import TextProgressBar return TextProgressBar(length, dirname=tot_string) # this try is for sublime text nosetests, which don't take terminal object try: with terminal.location(0, terminal.height - (linenum + 1)): if tot_string: progbar.animate(count, tot_string, quiet=quiet) else: progbar.animate(count, quiet=quiet) # typeerror for nose except: if tot_string: progbar.animate(count, tot_string, quiet=quiet) else: progbar.animate(count, quiet=quiet) def parse_just_speakers(just_speakers, corpus): if just_speakers is True: just_speakers = ['each'] if just_speakers is False or just_speakers is None: return False if isinstance(just_speakers, STRINGTYPE): just_speakers = [just_speakers] if isinstance(just_speakers, list): if just_speakers == ['each']: from corpkit.build import get_speaker_names_from_parsed_corpus just_speakers = get_speaker_names_from_parsed_corpus(corpus) return just_speakers def get_deps(sentence, dep_type): if dep_type == 'basic-dependencies': return sentence.basic_dependencies if dep_type == 'collapsed-dependencies': return sentence.collapsed_dependencies if dep_type == 'collapsed-ccprocessed-dependencies': return sentence.collapsed_ccprocessed_dependencies def timestring(input): """print with time prepended""" from time import localtime, strftime thetime = strftime("%H:%M:%S", localtime()) print('%s: %s' % (thetime, input.lstrip())) def makesafe(variabletext, drop_datatype=True, hyphens_ok=False): import re from corpkit.process import is_number if hyphens_ok: variable_safe_r = re.compile(r'[^A-Za-z0-9_-]+', re.UNICODE) else: variable_safe_r = re.compile(r'[^A-Za-z0-9_]+', re.UNICODE) try: txt = variabletext.name.split('.')[0] except AttributeError: txt = variabletext.split('.')[0] if drop_datatype: txt = txt.replace('-parsed', '') txt = txt.replace(' ', '_') if not hyphens_ok: txt = txt.replace('-', '_') variable_safe = re.sub(variable_safe_r, '', txt) if is_number(variable_safe): variable_safe = 'c' + variable_safe return variable_safe def interrogation_from_conclines(newdata): """ Make new interrogation result from its conc lines """ from collections import Counter from pandas import DataFrame from corpkit.editor import editor results = {} conc = newdata subcorpora = list(set(conc['c'])) for subcorpus in subcorpora: counted = Counter(list(conc[conc['c'] == subcorpus]['m'])) results[subcorpus] = counted the_big_dict = {} unique_results = set([item for sublist in list(results.values()) for item in sublist]) for word in unique_results: the_big_dict[word] = [subcorp_result[word] for name, subcorp_result \ in sorted(results.items(), key=lambda x: x[0])] # turn master dict into dataframe, sorted df = DataFrame(the_big_dict, index=sorted(results.keys())) df = editor(df, sort_by='total', print_info=False) df.concordance = conc return df def checkstack(the_string): """checks for pytex""" import inspect thestack = [] for bit in inspect.stack(): for b in bit: thestack.append(str(b)) as_string = ' '.join(thestack) return as_string.lower().count(the_string) > 1 def check_tex(have_ipython=True): """ See if tex is available """ import os if have_ipython: checktex_command = 'which latex' o = get_ipython().getoutput(checktex_command)[0] have_tex = not o.startswith('which: no latex in') else: import subprocess FNULL = open(os.devnull, 'w') checktex_command = ["which", "latex"] try: o = subprocess.check_output(checktex_command, stderr=FNULL) have_tex = True except subprocess.CalledProcessError: have_tex = False return have_tex def get_corenlp_path(corenlppath): """ Find a working CoreNLP path. Return a dir containing jars """ import os import sys import re import glob cnlp_regex = re.compile(r'stanford-corenlp-[0-9\.]+\.jar') # if something has been passed in, find that first if corenlppath: # if it's a file, get the parent dir if os.path.isfile(corenlppath): corenlppath = os.path.dirname(corenlppath) if any(re.search(cnlp_regex, f) for f in os.listdir(corenlppath)): return corenlppath # if it's a dir, check if dir contains jar elif os.path.isdir(corenlppath): if any(re.search(cnlp_regex, f) for f in os.listdir(corenlppath)): return corenlppath # if it doesn't contain jar, get subdir by glob globpath = os.path.join(corenlppath, 'stanford-corenlp*') poss = [i for i in glob.glob(globpath) if os.path.isdir(i)] if poss: poss = poss[-1] if any(re.search(cnlp_regex, f) for f in os.listdir(poss)): return poss # put possisble paths into list pths = ['.', 'corenlp', os.path.expanduser("~"), os.path.join(os.path.expanduser("~"), 'corenlp')] if isinstance(corenlppath, STRINGTYPE): pths.append(corenlppath) possible_paths = os.getenv('PATH').split(os.pathsep) + sys.path + pths # remove empty strings possible_paths = set([i for i in possible_paths if os.path.isdir(i)]) # check each possible path for path in possible_paths: if any(re.search(cnlp_regex, f) for f in os.listdir(path)): return path # check if it's a parent for path in possible_paths: globpath = os.path.join(path, 'stanford-corenlp*') cnlp_dirs = [d for d in glob.glob(globpath) if os.path.isdir(d)] for cnlp_dir in cnlp_dirs: if any(re.search(cnlp_regex, f) for f in os.listdir(cnlp_dir)): return cnlp_dir return def unsplitter(data): """unsplit contractions and apostophes from tokenised text""" if isinstance(data, STRINGTYPE): replaces = [("$ ", "$"), ("`` ", "``"), (" ,", ","), (" .", "."), ("'' ", "''"), (" n't", "n't"), (" 're", "'re"), (" 'm", "'m"), (" 's", "'s"), (" 'd", "'d"), (" 'll", "'ll"), (' ', ' ') ] for find, replace in replaces: data = data.replace(find, replace) return data else: unsplit = [] for index, t in enumerate(data): if index == 0 or index == len(data) - 1: unsplit.append(t) continue if "'" in t and not t.endswith("'"): rejoined = ''.join([data[index - 1], t]) unsplit.append(rejoined) else: if not "'" in data[index + 1]: unsplit.append(t) return unsplit def classname(cls): """Create the class name str for __repr__""" return '.'.join([cls.__class__.__module__, cls.__class__.__name__]) def format_middle(tree, show, df=False, sent_id=False, ixs=False): tree_vals = {} if 't' in show or 'mt' in show: tre = str(tree).replace('/', '-slash') # todo? if 'mw' in show: tree_vals['mw'] = [i.replace('/', '-slash-') for i in tree.leaves()] if 'ml' in show: print(df) tree_vals['ml'] = [df.loc[sent_id, i]['l'] for i in ixs] if 'mp' in show: tree_vals['mp'] = [y for x, y in tree.pos()] if 'mx' in show: from corpkit.dictionaries import taglemma tree_vals['mx'] = [taglemma.get(y.lower(), y) for x, y in tree.pos()] output = [] zipped = zip(*[tree_vals[i] for i in show]) for tup in zipped: output.append('/'.join(tup)) # now we have [a/a, nicer/nice, day/day] return ' '.join(output) def format_conc(tups, show, df=False, sent_id=False, root=False, ixs=False): """ Prepare start or end of tgrepped conc lines """ tree_vals = {} if 't' in show or 'mt' in show: tre = str(root).replace('/', '-slash') # todo? if 'mw' in show: tree_vals['mw'] = [w.replace('/', '-slash-') for w, p, i in tups] if 'ml' in show: tree_vals['ml'] = [df.loc[sent_id, i]['l'] for i in ixs] if 'mp' in show: tree_vals['mp'] = [p.replace('/', '-slash-') for w, p, i in tups] if 'mx' in show: from corpkit.dictionaries import taglemma tree_vals['mx'] = [taglemma.get(p.lower(), p) for w, p, i in tups] if 'ms' in show: tree_vals['ms'] = [str(sent_id) for i in tups] if 'mi' in show: tree_vals['mi'] = [str(i) for w, p, i in tups] output = [] zipped = zip(*[tree_vals[i] for i in show]) for tup in zipped: output.append('/'.join(tup)) # now we have [a/a, nicer/nice, day/day] return ' '.join(output) def show_tree_as_per_option(show, tree, sent=False, df=False, sent_id=False, conc=False, only_format_match=True): """ Turn a ParentedTree into shown output :returns: tok_id, metcat, start, middle, end """ # make a list of all indices start = False end = False metcat = False # here, we need to get the indexes of the first and last # token in the match, when the tree is flattened. # i wonder if there is an easier way! all_leaf_positions = tree.root().treepositions(order='leaves') match_position = tree.treeposition() ixs = [e for e, i in enumerate(all_leaf_positions, start=1) \ if i[:len(match_position)] == match_position] # get the data from the left and right if conc: start = [(w, p, i) for i, (w, p) in enumerate(tree.root().pos(), start=1) if i < ixs[0]] end = [(w, p, i) for i, (w, p) in enumerate(tree.root().pos(), start=1) if i > ixs[-1]] middle = format_middle(tree, show, df=df, sent_id=sent_id, ixs=ixs) if conc: if not only_format_match: start_ixes = list(range(1, len(start)+1)) end_ixes = list(range(ixs[-1]+1, len(end)+1)) start = format_conc(start, show, df=df, sent_id=sent_id, root=tree.root(), ixs=start_ixes) end = format_conc(end, show, df=df, sent_id=sent_id, root=tree.root(), ixs=end_ixes) else: start = ' '.join([w for w, p, i in start]) end = ' '.join([w for w, p, i in end]) return ixs[0], start, middle, end def tgrep(parse_string, search): """ Uses tgrep to search a parse tree string :param parse_string: A bracketed tree :type parse_string: `str` :param search: A search query :type search: `str` -- Tgrep query """ from nltk.tree import ParentedTree from nltk.tgrep import tgrep_nodes, tgrep_positions pt = ParentedTree.fromstring(parse_string) ptrees = [i for i in list(tgrep_nodes(search, [pt])) if i] return [item for sublist in ptrees for item in sublist] def canpickle(obj): """ Determine if object can be pickled :returns: `bool` """ import os try: from cPickle import UnpickleableError as unpick_error import cPickle as pickle from cPickle import PicklingError as unpick_error_2 except ImportError: import pickle from pickle import UnpicklingError as unpick_error from pickle import PicklingError as unpick_error_2 mode = 'w' if PYTHON_VERSION == 2 else 'wb' with open(os.devnull, mode) as fo: try: pickle.dump(obj, fo) return True except (unpick_error, TypeError, unpick_error_2, AttributeError) as err: return False def sanitise_dict(d): """ Make a dict that works as query attribute---remove nesting and unpicklable """ if not isinstance(d, dict): return newd = {} if d.get('kwargs') and isinstance(d['kwargs'], dict): for k, v in d['kwargs'].items(): if canpickle(v) and not isinstance(v, type): newd[k] = v for k, v in d.items(): if canpickle(v) and not isinstance(v, type): newd[k] = v return newd def saferead(path): """ Read a file with detect encoding :returns: text and its encoding """ import chardet import sys if sys.version_info.major == 3: enc = 'utf-8' try: with open(path, 'r', encoding=enc) as fo: data = fo.read() except: with open(path, 'rb') as fo: data = fo.read().decode('utf-8', errors='ignore') return data, enc else: with open(path, 'r') as fo: data = fo.read() try: enc = 'utf-8' data = data.decode(enc) except UnicodeDecodeError: enc = chardet.detect(data)['encoding'] data = data.decode(enc, errors='ignore') return data, enc def urlify(s): """ Turn plot title into filename for saving """ import re s = s.lower() s = re.sub(r"[^\w\s-]", '', s) s = re.sub(r"\s+", '-', s) s = re.sub(r"-(textbf|emph|textsc|textit)", '-', s) return s def gui(): """ Run the graphical interface with the current directory loaded """ import os from corpkit.gui import corpkit_gui current = os.getcwd() corpkit_gui(noupdate=True, loadcurrent=current) def dictformat(d, query=False): """ Format a dict search query for printing :returns: `str` """ from corpkit.constants import transshow, transobjs if isinstance(d, STRINGTYPE) and isinstance(query, dict): newd = {} for k, v in query.items(): newd[k] = fix_search({d: v}) return dictformat(newd) if query: sformat = dictformat(query) return sformat else: return d if all(isinstance(i, dict) for i in d.values()): sformat = '\n' for k, v in d.items(): sformat += ' ' + k + ':' sformat += dictformat(v) return sformat if len(d) == 1 and d.get('v'): return 'Features' sformat = '\n' for k, v in d.items(): adj = '' if k[0] in ['-', '+']: adj = ' ' + k[:2] k = k[2:] if k == 't': dratt = '' else: dratt = transshow.get(k[-1], k[-1]) if len(k) > 1: drole = transobjs.get(k[0], k[0]) else: drole = '' if k == 't': drole = 'Trees' vform = getattr(v, 'pattern', v) sformat += ' %s %s %s: %s\n' % (adj, drole, dratt.lower(), vform) return sformat def fix_search(search, case_sensitive=False, root=False): """ If search has nested dicts, translate them """ ends = ['w', 'l', 'i', 'n', 'f', 'p', 'x', 's', 'c'] # handle the possibility of nesting queries nestq = False if isinstance(search, dict): if all(isinstance(v, dict) for v in search.values()): nestq = True for v in search.values(): if not all(x.islower() and x.isalpha() and len(x) < 4 for x in v.keys()): nestq = False if nestq: newd = {} for k, v in search.items(): newd[k] = fix_search(v) return newd newsearch = {} if not search: return if isinstance(search, STRINGTYPE): return search if search.get('t'): return search trees = 't' in search.keys() for srch, pat in search.items(): if len(srch) == 1 and srch in ends: if trees: pass else: srch = 'm%s' % srch if len(srch) == 3 and srch[0] in ['+', '-']: srch = list(srch) if srch[-1] in ends: srch.insert(2, 'm') else: srch.append('w') srch = ''.join(srch) if isinstance(pat, dict): for k, v in list(pat.items()): if k != 'w': newsearch[srch + k] = pat_format(v, case_sensitive=case_sensitive, root=root) else: newsearch[srch] = pat_format(v, case_sensitive=case_sensitive, root=root) else: newsearch[srch] = pat_format(pat, case_sensitive=case_sensitive) return newsearch def pat_format(pat, case_sensitive=False, root=False): """ Coerce or compile search value """ from corpkit.dictionaries.process_types import Wordlist import re if pat == 'any': return re.compile(r'.*') if isinstance(pat, Wordlist): pat = list(pat) if isinstance(pat, list): if all(isinstance(x, int) for x in pat): pat = [str(x) for x in pat] pat = filtermaker(pat, case_sensitive=case_sensitive, root=root) else: if isinstance(pat, int): return pat if isinstance(pat, re._pattern_type): return pat if case_sensitive: pat = re.compile(pat) else: pat = re.compile(pat, re.IGNORECASE) return pat def make_name_to_query_dict(existing={}, cols=False, dtype=False): """ Make or add to dict of longhand and shorthand search bits """ from corpkit.constants import transshow, transobjs if dtype and dtype != 'conll': return {'None': 'None'} for l, o in transobjs.items(): if cols and l in ['g', 'd'] and l not in cols: continue if o == 'Match': o = '' else: o = o + ' ' for m, p in sorted(transshow.items()): if cols: fixed = m.replace('x', 'p') if fixed in ['n', 't', 'a']: pass else: if fixed not in cols: continue if m in ['n', 't']: continue if p != 'POS' and o != '' and o != 'NER': p = p.lower() existing['%s%s' % (o, p)] = '%s%s' % (l, m) return existing def auto_usecols(search, exclude, show, usecols, coref=False): """ Figure out if we can speed up conll parsing based on search, exclude and show. the return value is passed to pandas.read_csv so that only relevant columns are parsed. If usecols isn't None, the user has specified needed cols. todo: coref """ if usecols: return usecols from corpkit.constants import CONLL_COLUMNS # get all objs from search, exclude and show needed = [] for i in search.keys(): if 'g' in i or i == 'g': needed.append('d') elif 'd' in i or i == 'd': needed.append('g') elif 'h' in i or i == 'h': needed.append('c') elif 'r' in i or i == 'r': needed.append('c') # features mode: elif i == 'v': needed.append('f') needed.append('w') needed.append('p') continue needed.append(i) if isinstance(exclude, dict): for i in exclude.keys(): needed.append(i) if isinstance(show, list): for i in show: if i.endswith('a'): needed.append('g') if i.startswith('r') or i.startswith('h'): needed.append('c') i = i.replace('a', 'f').replace('x', 'p') needed.append(i) else: needed.append(show) if coref: needed.append('c') # get the obj and attr from these stcols = [] for i in needed: stcols.append(i[-1]) try: stcols.append(i[-2]) except: pass # word class is pos #stcols = ['p' if i == 'x' else i for i in stcols] # we always get word right now, but could remove '2' in the future # we add one to the index because conll_columns does not have 's', yet it # is there in the df out = [0, 1, 2] for n, c in enumerate(CONLL_COLUMNS, start=1): if c in stcols and n not in out: out.append(n) return out def format_tregex(results, show=False, lemtag=False, exclude=False, excludemode=False, translated_option=False, lem_instance=False, whole=False, speaker_data=False, countmode=False): """ Format tregex by show list """ import re if countmode: return results if not results: return done = [] fnames, snames, results = zip(*results) # this needs to be standardised! new_show = [x.lstrip('m') for x in show] new_show = ['w' if not x else x for x in new_show] if 'l' in new_show or 'x' in new_show: from corpkit.process import lemmatiser lemmata = lemmatiser(results, tag=lemtag, lem_instance=lem_instance, translated_option=translated_option) else: lemmata = [None for i in results] for word, lemma in list(zip(results, lemmata)): bits = [] if exclude and exclude.get('w'): if len(list(exclude.keys())) == 1 or excludemode == 'any': if re.search(exclude.get('w'), word): continue if len(list(exclude.keys())) == 1 or excludemode == 'any': if re.search(exclude.get('l'), lemma): continue if len(list(exclude.keys())) == 1 or excludemode == 'any': if re.search(exclude.get('p'), word): continue if len(list(exclude.keys())) == 1 or excludemode == 'any': if re.search(exclude.get('x'), lemma): continue if exclude and excludemode == 'all': num_to_cause_exclude = len(list(exclude.keys())) current_num = 0 if exclude.get('w'): if re.search(exclude.get('w'), word): current_num += 1 if exclude.get('l'): if re.search(exclude.get('l'), lemma): current_num += 1 if exclude.get('p'): if re.search(exclude.get('p'), word): current_num += 1 if exclude.get('x'): if re.search(exclude.get('x'), lemma): current_num += 1 if current_num == num_to_cause_exclude: continue for i in new_show: if i == 't': bits.append(word) if i == 'l': bits.append(lemma) elif i == 'w': bits.append(word) elif i == 'p': bits.append(word) elif i == 'x': bits.append(lemma) joined = '/'.join(bits) done.append(joined) done = list(zip(fnames, snames, done)) return done def make_conc_lines_from_whole_mid(wholes, middle_column_result, show=False, category=False, filename=False): """ Create concordance line output from tregex output """ import re import os if not wholes and not middle_column_result: return [] conc_lines = [] unique_wholes = [] unique_middle_column_result = [] duplicates = [] word_index = show.index('w') if 'w' in show else 0 metcat = category if category else '' for (f, sk, whole), mid in list(zip(wholes, middle_column_result)): mid = mid[-1] joined = '-join-'.join([f, sk, whole, mid]) if joined not in duplicates: duplicates.append(joined) unique_wholes.append([f, sk, whole]) unique_middle_column_result.append(mid) # split into start, middle and end, dealing with multiple occurrences # this fails when multiple show values are given, because they are slash separated... for (f, sk, whole), mid in list(zip(unique_wholes, unique_middle_column_result)): mid = mid.split('/')[word_index] reg = re.compile(r'([^a-zA-Z0-9-]|^)(' + re.escape(mid) + r')([^a-zA-Z0-9-]|$)', \ re.IGNORECASE | re.UNICODE) offsets = [(m.start(), m.end()) for m in re.finditer(reg, whole)] for offstart, offend in offsets: start, middle, end = whole[0:offstart].strip(), whole[offstart:offend].strip(), \ whole[offend:].strip() # lin = [ix, category, fname, sname, start, mid, end] conc_lines.append(['_,_', metcat, os.path.basename(f), sk, start, middle, end]) return conc_lines def gettag(query, lemmatag=False): """ Find tag for WordNet lemmatisation """ if lemmatag: return lemmatag tagdict = {'n': 'n', 'j': 'a', 'v': 'v', 'a': 'r'} # in case someone compiles the tregex query query = getattr(query, 'pattern', query) qr = query.replace(r'\w', '').replace(r'\s', '').replace(r'\b', '') firstletter = next((c for c in qr if c.isalpha()), 'n') return tagdict.get(firstletter.lower(), 'n') def lemmatiser(list_of_words, tag, translated_option, lem_instance=False, preserve_case=False): """ Take a list of unicode words and a tag and return a lemmatised list """ from corpkit.dictionaries.word_transforms import wordlist, taglemma if not lem_instance: from nltk.stem.wordnet import WordNetLemmatizer lem_instance = WordNetLemmatizer() output = [] for word in list_of_words: if 'u' in translated_option: word = taglemma.get(word.lower(), 'Other') else: word = wordlist.get(word, lem_instance.lemmatize(word, tag)) output.append(word) return output def get_first_df(corpus): """ Get the first document in a corpus, so that we can check what columns it has """ # genius code below from corpkit.corpus import Corpus if not isinstance(corpus, Corpus): corpus = Corpus(corpus, print_info=False) if corpus.subcorpora: return corpus.subcorpora[0].files[0].document elif corpus.files: return corpus.files[0].document else: return corpus.document def make_dotfile(path, return_json=False, data_dict=False): """ Generate a dotfile in the data directory containing corpus information Right now, this information is the metadata fields and their values """ path = getattr(path, 'path', path) import os import json from corpkit.build import get_all_metadata_fields, get_speaker_names_from_parsed_corpus from corpkit.constants import OPENER if data_dict: json_data = data_dict else: json_data = {'fields': {}} fields = get_all_metadata_fields(path, include_speakers=True) for field in fields: vals = get_speaker_names_from_parsed_corpus(path, field) json_data['fields'][field] = vals df = get_first_df(path) json_data['columns'] = ['s', 'i'] + list(df.columns) dotname = '.%s.json' % os.path.basename(path) with OPENER(os.path.join('data', dotname), 'w', encoding='utf-8') as fo: fo.write(json.dumps(json_data)) if return_json: return json_data def get_corpus_metadata(path, generate=False): """ Return a dict containing corpus metadata, or None if not done yet """ import os import json from corpkit.corpus import Corpus from corpkit.constants import OPENER if not isinstance(path, Corpus): corpus = Corpus(path, print_info=False) else: corpus = path if not corpus.datatype == 'conll': return {} path = getattr(path, 'path', path) dotname = '.%s.json' % os.path.basename(path) dotpath = os.path.join('data', dotname) if not os.path.isfile(dotpath): if generate: return make_dotfile(path, return_json=True) else: return else: with OPENER(dotpath, 'r') as fo: data = fo.read() if data: return json.loads(data) else: return make_dotfile(path, return_json=True) def make_df_json_name(typ, subcorpora=False): if subcorpora: if isinstance(subcorpora, list): subcorpora = '-'.join(subcorpora) return '%s-%s' % (typ, subcorpora) else: return typ def add_df_to_dotfile(path, df, typ='features', subcorpora=False): """ Add some Pandas data to corpus metadata """ path = getattr(path, 'path', path) name = make_df_json_name(typ, subcorpora) md = get_corpus_metadata(path, generate=True) if name not in md: md[name] = df.astype(object).to_dict() make_dotfile(path, data_dict=md) def delete_files_and_subcorpora(corpus, skip_metadata, just_metadata): """ Remake a Corpus object without some files or folders """ import re from corpkit.corpus import Corpus, Subcorpus # we use type here because subcorpora don't have subcorpora, but Subcorpus # inherits from Corpus if not type(corpus) == Corpus: return corpus, skip_metadata, just_metadata if not skip_metadata and not just_metadata: return corpus, skip_metadata, just_metadata sd = skip_metadata.pop('folders', None) if isinstance(skip_metadata, dict) else None sf = skip_metadata.pop('files', None) if isinstance(skip_metadata, dict) else None jd = just_metadata.pop('folders', None) if isinstance(just_metadata, dict) else None jf = just_metadata.pop('files', None) if isinstance(just_metadata, dict) else None sd = str(sd) if isinstance(sd, (int, float)) else sd sf = str(sf) if isinstance(sf, (int, float)) else sf jd = str(jd) if isinstance(jd, (int, float)) else jd jf = str(jf) if isinstance(jf, (int, float)) else jf if not any([sd, sf, jd, jf]): return corpus, skip_metadata, just_metadata # now, the real processing begins # the code has to be this way, sorry. if sd not in [None, False, {}]: todel = set() if isinstance(sd, list): for i, sub in enumerate(corpus.subcorpora): if sub.name in sd: todel.add(i) else: for i, sub in enumerate(corpus.subcorpora): if re.search(sd, sub.name, re.IGNORECASE): todel.add(i) for i in sorted(todel, reverse=True): del corpus.subcorpora[i] if sf not in [None, False, {}]: if not getattr(corpus, 'subcorpora', False): todel = set() if isinstance(sf, list): for i, sub in enumerate(corpus.files): if sub.name in sf: todel.add(i) else: for i, sub in enumerate(corpus.files): if re.search(sf, sub.name, re.IGNORECASE): todel.add(i) for i in sorted(todel, reverse=True): del corpus.files[i] else: for sc in corpus.subcorpora: todel = set() if isinstance(sf, list): for i, sub in enumerate(corpus.files): if sub.name in sf: todel.add(i) else: for i, sub in enumerate(sc.files): if re.search(sf, sub.name, re.IGNORECASE): todel.add(i) for i in sorted(todel, reverse=True): del sc.files[i] if jd not in [None, False, {}]: todel = set() if isinstance(jd, list): for i, sub in enumerate(corpus.subcorpora): if sub.name not in jd: todel.add(i) else: for i, sub in enumerate(corpus.subcorpora): if not re.search(jd, sub.name, re.IGNORECASE): todel.add(i) for i in sorted(todel, reverse=True): del corpus.subcorpora[i] if jf not in [None, False, {}]: if not getattr(corpus, 'subcorpora', False): todel = set() if isinstance(jf, list): for i, sub in enumerate(corpus.files): if sub.name not in jf: todel.add(i) else: for i, sub in enumerate(corpus.files): if not re.search(jf, sub.name, re.IGNORECASE): todel.add(i) for i in sorted(todel, reverse=True): del corpus.files[i] else: for sc in corpus.subcorpora: todel = set() if isinstance(jf, list): for i, sub in enumerate(corpus.files): if sub.name not in jf: todel.add(i) else: for i, sub in enumerate(sc.files): if not re.search(jf, sub.name, re.IGNORECASE): todel.add(i) for i in sorted(todel, reverse=True): del sc.files[i] return corpus, skip_metadata, just_metadata ================================================ FILE: corpkit/stats.py ================================================ """ scikit-learn stuff """ def tfidf(self, search={'w': 'any'}, show=['w'], **kwargs): """ Generate TF-IDF vector representation of corpus using interrogate method """ from sklearn.feature_extraction.text import TfidfVectorizer def tokeniser(s): return [s] vectoriser = TfidfVectorizer(input='content', tokenizer=tokeniser) matrices = {} res = self.interrogate(search=search, show=show, **kwargs).results def dupe_string(line): """ turn {'corpus': 3, 'linguistics': 2} into 'corpus corpus corpus linguistics linguistics' """ return ''.join([(w + ' ') * line[w] \ for w in line.index]) ser = res.apply(dupe_string, axis=1) vec = vectoriser.fit_transform(ser.values) return vectoriser, vec #vec = vectoriser.transform(ser.values) #return vec def translate_show_for_surprisal(show, gramsize): """ Translate a simple show query into """ return show def surprisal(self, search={'w', 'any'}, exclude=False, show=['w'], gramsize=1, subcorpora='default', **kwargs): """ A method to show surprisal for tokens (and averages for sents?) It involves two parts. First, we generate a model over the whole corpus Then, we score each sent by it It should then be possible to annotate the corpus with this info. """ model = self.interrogate(search=search, exclude=exclude, show=show, subcorpora=subcorpora, **kwargs) def shannon(self): from corpkit.interrogation import Interrogation def to_apply(ser): data = [] import numpy as np import pandas as pd for word in ser.index: if not ser[word]: probability = np.nan self_information = np.nan else: probability = ser[word] / float(1.0 * len(ser)) self_information = np.log2(1.0/probability) data.append(self_information) return pd.Series(data, index=ser.index) res = getattr(self, 'results', self) appl = res.apply(to_apply, axis=1) ents = appl.sum(axis=1) / appl.shape[1] ents.name = 'Entropy' return Interrogation(results=appl, totals=ents) ================================================ FILE: corpkit/textprogressbar.py ================================================ #!/usr/bin/python from __future__ import print_function class TextProgressBar: """a text progress bar for CLI operations no need for user to call""" from time import localtime, strftime def __init__(self, iterations, dirname=False, quiet=False): from time import localtime, strftime self.iterations = iterations self.prog_bar = '[]' self.fill_char = '*' self.width = 60 self.quiet = quiet self.__update_amount(0, dirname=dirname) self.animate = self.animate_ipython def animate_ipython(self, iter, dirname=None, quiet=False): from time import localtime, strftime import sys if not self.quiet: print(str(self) + '\r', end='') try: sys.stdout.flush() except: pass self.update_iteration(iter + 1, dirname) def update_iteration(self, elapsed_iter, dirname=None): from time import localtime, strftime num = float(self.iterations) if num != 0: self.__update_amount((elapsed_iter / float(self.iterations)) * 100.0, dirname) else: self.__update_amount(0 * 100.0, dirname) self.prog_bar += ' ' # + ' %d of %s complete' % (elapsed_iter, self.iterations) def __update_amount(self, new_amount, dirname=None): from time import localtime, strftime percent_done = int(round((new_amount / 100.0) * 100.0, 2)) all_full = self.width - 2 num_hashes = int(round((percent_done / 100.0) * all_full)) time = strftime("%H:%M:%S", localtime()) self.prog_bar = time + ': [' + self.fill_char * num_hashes + ' ' * (all_full - num_hashes) + ']' if dirname: pct_string = '%d%% ' % percent_done + '(' + dirname + ')' else: pct_string = '%d%%' % percent_done # could pass dirname here! # find out where the index of the first space in the middle string index_of_space = next((i for i, j in enumerate(pct_string) if j.isspace()), 0) # put middle string in centre, adjust so that spaces are always aligned pct_place = int(len(self.prog_bar) / float(2)) - index_of_space #if len(pct_string) < 20: #pct_string = ' ' * (20 - len(pct_string)) + pct_string self.prog_bar = self.prog_bar[0:pct_place] + \ (pct_string + self.prog_bar[pct_place + len(pct_string):]) def __str__(self): return str(self.prog_bar) ================================================ FILE: corpkit/tokenise.py ================================================ from __future__ import print_function """ Tokenise, POS tag and lemmatise a corpus, returning CONLL-U data """ def nested_list_to_pandas(toks): """ Turn sent/word tokens into Series """ import pandas as pd index = [] words = [] for si, sent in enumerate(toks, start=1): for wi, w in enumerate(sent, start=1): index.append((si, wi)) words.append(w) ix = pd.MultiIndex.from_tuples(index) ser = pd.Series(words, index=ix) ser.name = 'w' return ser def pos_tag_series(ser, tagger): """ Create a POS tag Series from token Series """ import nltk import pandas as pd tags = [i[-1] for i in nltk.pos_tag(ser.values)] tagser = pd.Series(tags, index=ser.index) tagser.name = 'p' return tagser def lemmatise_series(words, postags, lemmatiser): """ Create a lemma Series from token+postag Series """ import nltk import pandas as pd tups = zip(words.values, postags.values) lemmata = [] tag_convert = {'j': 'a'} for word, tag in tups: tag = tag_convert.get(tag[0].lower(), tag[0].lower()) if tag in ['n', 'a', 'v', 'r']: lem = lemmatiser.lemmatize(word, tag) else: lem = word lemmata.append(lem) lems = pd.Series(lemmata, index=words.index) lems.name = 'l' return lems def write_df_to_conll(df, newf, plain=False, stripped=False, metadata=False, speaker_segmentation=False, offsets=False): """ Turn a DF into CONLL-U text, and write to file, newf """ import os from corpkit.constants import OPENER, PYTHON_VERSION from corpkit.conll import get_speaker_from_offsets outstring = '' sent_ixs = set(df.index.labels[0]) for si in sent_ixs: si = si + 1 #outstring += '# sent_id %d\n' % si if metadata: metad = get_speaker_from_offsets(stripped, plain, offsets[si - 1], metadata_mode=metadata, speaker_segmentation=speaker_segmentation) for k, v in sorted(metad.items()): outstring += '# %s=%s\n' % (k, v) sent = df.loc[si] csv = sent.to_csv(None, sep='\t', header=False) outstring += csv + '\n' try: os.makedirs(os.path.dirname(newf)) except OSError: pass with OPENER(newf, 'w') as newf: if PYTHON_VERSION == 2: outstring = outstring.encode('utf-8', errors='ignore') newf.write(outstring) def new_fname(oldpath, inpath): """ Determine output filename """ import os newf, ext = os.path.splitext(oldpath) newf = newf + '.conll' if '-stripped' in newf: return newf.replace('-stripped', '-tokenised') else: return newf.replace(inpath, inpath + '-tokenised') def process_meta(data, speaker_segmentation, metadata): import re from corpkit.constants import MAX_SPEAKERNAME_SIZE meta_offsets = [] if metadata and speaker_segmentation: reg = re.compile(r'(^.{,%d}?:\s| )') elif metadata and not speaker_segmentation: reg = re.compile(r' ') elif not metadata and not speaker_segmentation: reg = re.compile(r'^.{,%d}?:\s' % MAX_SPEAKERNAME_SIZE) #splt = re.split(reg, data) if speaker_segmentation or metadata: for i in re.finditer(reg, data): meta_offsets.append((i.start(), i.end())) for s, e in reversed(meta_offsets): data = data[:s] + data[e:] return data, meta_offsets def plaintext_to_conll(inpath, postag=False, lemmatise=False, lang='en', metadata=False, outpath=False, nltk_data_path=False, speaker_segmentation=False): """ Take a plaintext corpus and sent/word tokenise. :param inpath: The corpus to read in :param postag: do POS tagging? :param lemmatise: do lemmatisation? :param lang: choose language for pos/lemmatiser (not implemented yet) :param metadata: add metadata to conll (not implemented yet) :param outpath: custom name for the resulting corpus :param speaker_segmentation: did the corpus has speaker names? """ import nltk import shutil import pandas as pd from corpkit.process import saferead from corpkit.build import get_filepaths fps = get_filepaths(inpath, 'txt') # IN THE SECTIONS BELOW, WE COULD ADD MULTILINGUAL # ANNOTATORS, PROVIDED THEY BEHAVE AS THE NLTK ONES DO # SENT TOKENISERS from nltk.tokenize.punkt import PunktSentenceTokenizer stoker = PunktSentenceTokenizer() s_tokers = {'en': stoker} sent_tokenizer = s_tokers.get(lang, stoker) # WORD TOKENISERS tokenisers = {'en': nltk.word_tokenize} tokeniser = tokenisers.get(lang, nltk.word_tokenize) # LEMMATISERS if lemmatise: from nltk.stem.wordnet import WordNetLemmatizer lmtzr = WordNetLemmatizer() lemmatisers = {'en': lmtzr} lemmatiser = lemmatisers.get(lang, lmtzr) # POS TAGGERS if postag: # nltk.download('averaged_perceptron_tagger') postaggers = {'en': nltk.pos_tag} tagger = postaggers.get(lang, nltk.pos_tag) # iterate over files, make df of each, convert this # to conll and sent to new filename for f in fps: for_df = [] data, enc = saferead(f) plain, enc = saferead(f.replace('-stripped', '')) #orig_data = data #data, offsets = process_meta(data, speaker_segmentation, metadata) #nest = [] sents = sent_tokenizer.tokenize(data) soffs = sent_tokenizer.span_tokenize(data) toks = [tokeniser(sent) for sent in sents] ser = nested_list_to_pandas(toks) for_df.append(ser) if postag or lemmatise: postags = pos_tag_series(ser, tagger) if lemmatise: lemma = lemmatise_series(ser, postags, lemmatiser) for_df.append(lemma) for_df.append(postags) else: if postag: for_df.append(postags) df = pd.concat(for_df, axis=1) fo = new_fname(f, inpath) write_df_to_conll(df, fo, metadata=metadata, plain=plain, stripped=data, speaker_segmentation=speaker_segmentation, offsets=soffs) nsent = len(set(df.index.labels[0])) print('%s created (%d sentences)' % (fo, nsent)) if '-stripped' in inpath: return inpath.replace('-stripped', '-tokenised') else: return inpath + '-tokenised' ================================================ FILE: corpkit/tregex.sh ================================================ #!/bin/sh scriptdir=`dirname $0` java -mx100m -cp "$scriptdir/stanford-tregex.jar:" edu.stanford.nlp.trees.tregex.TregexPattern "$@" ================================================ FILE: data/corpus-filelist.txt ================================================ /Users/daniel/Work/corpkit/corpkit/data/test-stripped/first/intro.txt /Users/daniel/Work/corpkit/corpkit/data/test-stripped/second/body.txt ================================================ FILE: data/test/first/intro.txt ================================================ TESTER: This small corpus is used in corpkit's tests. Not a lot of data is required. ANONYMOUS: Here, we're testing the speaker_segmentation option. TESTER: Right you are. The next file, however, won't have speaker IDs. ================================================ FILE: data/test/second/body.txt ================================================ Corpus linguistics and computational linguistics, like concordancing and interrogating, are situated on a vast continuum. In both cases, Python can act as a fantastic conduit. NEWCOMER: Just checking I'm getting noticed during parsing, concordancing and interrogating. This corpus linguistics is hard work! ================================================ FILE: data/test-plain-parsed/first/intro.txt.conll ================================================ # parse=(ROOT (FRAG (NP (NN TESTER)) (: :) (S (NP (DT This) (JJ small) (NN corpus)) (VP (VBZ is) (VP (VBN used) (PP (IN in) (NP (NP (NN corpkit) (POS 's)) (NNS tests)))))) (. .))) # speaker=none # test=on # year=2004 1 TESTER tester NN O _ 0 ROOT 2,7,12 _ 2 : : : O _ 1 punct 0 _ 3 This this DT O _ 5 det 0 _ 4 small small JJ O _ 5 amod 0 _ 5 corpus corpus NN O _ 7 nsubjpass 3,4 _ 6 is be VBZ O _ 7 auxpass 0 _ 7 used use VBN O _ 1 appos 5,6,11 _ 8 in in IN O _ 11 case 0 _ 9 corpkit corpkit NN O _ 11 nmod:poss 10 _ 10 's 's POS O _ 9 case 0 _ 11 tests test NNS O _ 7 nmod:in 8,9 _ 12 . . . O _ 1 punct 0 _ # parse=(ROOT (S (NP (NP (RB Not) (DT a) (NN lot)) (PP (IN of) (NP (NNS data)))) (VP (VBZ is) (VP (VBN required))) (. .))) # speaker=none # test=on # year=2004 1 Not not RB O _ 3 neg 0 _ 2 a a DT O _ 5 det:qmod 3,4 _ 3 lot lot NN O _ 2 mwe 1 _ 4 of of IN O _ 2 mwe 0 _ 5 data datum NNS O _ 7 nsubjpass 2 _ 6 is be VBZ O _ 7 auxpass 0 _ 7 required require VBN O _ 0 ROOT 5,6,8 _ 8 . . . O _ 7 punct 0 _ # parse=(ROOT (NP (NP (NNP ANONYMOUS)) (: :) (S (ADVP (RB Here)) (, ,) (NP (PRP we)) (VP (VBP 're) (VP (VBG testing) (NP (DT the) (NN speaker_segmentation) (NN option))))) (. .))) # speaker=none # test=on # year=2005 1 ANONYMOUS ANONYMOUS NNP O _ 0 ROOT 2,7,11 _ 2 : : : O _ 1 punct 0 _ 3 Here here RB O _ 7 advmod 0 _ 4 , , , O _ 7 punct 0 _ 5 we we PRP O _ 7 nsubj 0 _ 6 're be VBP O _ 7 aux 0 _ 7 testing test VBG O _ 1 parataxis 3,4,5,6,10 _ 8 the the DT O _ 10 det 0 _ 9 speaker_segmentation speaker_segmentation NN O _ 10 compound 0 _ 10 option option NN O _ 7 dobj 8,9 _ 11 . . . O _ 1 punct 0 _ # parse=(ROOT (NP (NP (NN TESTER)) (: :) (NP (NP (NNP Right)) (SBAR (S (NP (PRP you)) (VP (VBP are))))) (. .))) # speaker=none # test=on # year=2004 1 TESTER tester NN O _ 0 ROOT 2,3,6 _ 2 : : : O _ 1 punct 0 _ 3 Right Right NNP O _ 1 dep 5 _ 4 you you PRP O _ 5 nsubj 0 _ 5 are be VBP O _ 3 acl:relcl 4 _ 6 . . . O _ 1 punct 0 _ # parse=(ROOT (S (NP (DT The) (JJ next) (NN file)) (, ,) (ADVP (RB however)) (, ,) (VP (MD wo) (RB n't) (VP (VB have) (NP (NN speaker) (NNS IDs)))) (. .))) # speaker=none # test=on # year=2004 1 The the DT O _ 3 det 0 _ 2 next next JJ O _ 3 amod 0 _ 3 file file NN O _ 9 nsubj 1,2 _ 4 , , , O _ 9 punct 0 _ 5 however however RB O _ 9 advmod 0 _ 6 , , , O _ 9 punct 0 _ 7 wo will MD O _ 9 aux 0 _ 8 n't not RB O _ 9 neg 0 _ 9 have have VB O _ 0 ROOT 3,4,5,6,7,8,11,12 _ 10 speaker speaker NN O _ 11 compound 0 _ 11 IDs id NNS O _ 9 dobj 10 _ 12 . . . O _ 9 punct 0 _ ================================================ FILE: data/test-plain-parsed/second/body.txt.conll ================================================ # parse=(ROOT (S (NP (NP (NNP Corpus) (NNS linguistics)) (CC and) (NP (JJ computational) (NNS linguistics))) (, ,) (PP (IN like) (NP (NP (NN concordancing)) (CC and) (NP (VBG interrogating)))) (, ,) (VP (VBP are) (VP (VBN situated) (PP (IN on) (NP (DT a) (JJ vast) (NN continuum))))) (. .))) # speaker=none 1 Corpus Corpus NNP O _ 2 compound 0 _ 2 linguistics linguistics NNS O _ 13 nsubjpass 1,3,5 _ 3 and and CC O _ 2 cc 0 _ 4 computational computational JJ O _ 5 amod 0 _ 5 linguistics linguistics NNS O _ 2 conj:and 4 _ 6 , , , O _ 13 punct 0 _ 7 like like IN O _ 8 case 0 _ 8 concordancing concordancing NN O _ 13 nmod:like 7,9,10 _ 9 and and CC O _ 8 cc 0 _ 10 interrogating interrogate VBG O _ 8 conj:and 0 _ 11 , , , O _ 13 punct 0 _ 12 are be VBP O _ 13 auxpass 0 _ 13 situated situate VBN O _ 0 ROOT 2,5,6,8,10,11,12,17,18 _ 14 on on IN O _ 17 case 0 _ 15 a a DT O _ 17 det 0 _ 16 vast vast JJ O _ 17 amod 0 _ 17 continuum continuum NN O _ 13 nmod:on 14,15,16 _ 18 . . . O _ 13 punct 0 _ # parse=(ROOT (S (PP (IN In) (NP (DT both) (NNS cases))) (, ,) (NP (NNP Python)) (VP (MD can) (VP (VB act) (PP (IN as) (NP (DT a) (JJ fantastic) (NN conduit))))) (. .))) # speaker=none # test=off # year=2002 1 In in IN O _ 3 case 0 _ 2 both both DT O _ 3 det 0 _ 3 cases case NNS O _ 7 nmod:in 1,2 _ 4 , , , O _ 7 punct 0 _ 5 Python Python NNP PERSON _ 7 nsubj 0 _ 6 can can MD O _ 7 aux 0 _ 7 act act VB O _ 0 ROOT 3,4,5,6,11,12 _ 8 as as IN O _ 11 case 0 _ 9 a a DT O _ 11 det 0 _ 10 fantastic fantastic JJ O _ 11 amod 0 _ 11 conduit conduit NN O _ 7 nmod:as 8,9,10 _ 12 . . . O _ 7 punct 0 _ # parse=(ROOT (X (NP (NN NEWCOMER)) (: :) (FRAG (S (ADVP (RB Just)) (VP (VBG checking) (SBAR (S (NP (PRP I)) (VP (VBP 'm) (VP (VP (VBG getting) (S (VP (VBN noticed) (PP (IN during) (NP (NP (NN parsing)) (, ,) (NP (NN concordancing))))))) (CC and) (VP (VBG interrogating))))))))) (. .))) # speaker=none # test=on # year=2005 1 NEWCOMER newcomer NN O _ 0 ROOT 2,4,15 _ 2 : : : O _ 1 punct 0 _ 3 Just just RB O _ 4 advmod 0 _ 4 checking check VBG O _ 1 dep 3,7,14 _ 5 I I PRP O _ 7 nsubj 0 _ 6 'm be VBP O _ 7 aux 0 _ 7 getting get VBG O _ 4 ccomp 5,6,8,13,14 _ 8 noticed notice VBN O _ 7 dep 10 _ 9 during during IN O _ 10 case 0 _ 10 parsing parsing NN O _ 8 nmod:during 9,11,12 _ 11 , , , O _ 10 punct 0 _ 12 concordancing concordancing NN O _ 10 appos 0 _ 13 and and CC O _ 7 cc 0 _ 14 interrogating interrogate VBG O _ 4 ccomp 5 _ 15 . . . O _ 1 punct 0 _ # parse=(ROOT (S (NP (DT This) (NN corpus) (NNS linguistics)) (VP (VBZ is) (NP (JJ hard) (NN work))) (. !))) # speaker=none # test=on # year=2005 1 This this DT O _ 3 det 0 _ 2 corpus corpus NN O _ 3 compound 0 _ 3 linguistics linguistics NNS O _ 4 nsubj 1,2 _ 4 is be VBZ O _ 0 ROOT 3,6,7 _ 5 hard hard JJ O _ 6 amod 0 _ 6 work work NN O _ 4 xcomp 5 _ 7 ! ! . O _ 4 punct 0 _ ================================================ FILE: data/test-speak-parsed/first/intro.txt.conll ================================================ # parse=(ROOT (S (NP (DT This) (JJ small) (NN corpus)) (VP (VBZ is) (VP (VBN used) (PP (IN in) (NP (NP (NN corpkit) (POS 's)) (NNS tests))))) (. .))) # speaker=TESTER # test=on # year=2004 1 This this DT O _ 3 det 0 _ 2 small small JJ O _ 3 amod 0 _ 3 corpus corpus NN O _ 5 nsubjpass 1,2 _ 4 is be VBZ O _ 5 auxpass 0 _ 5 used use VBN O _ 0 ROOT 3,4,9,10 _ 6 in in IN O _ 9 case 0 _ 7 corpkit corpkit NN O _ 9 nmod:poss 8 _ 8 's 's POS O _ 7 case 0 _ 9 tests test NNS O _ 5 nmod:in 6,7 _ 10 . . . O _ 5 punct 0 _ # parse=(ROOT (S (NP (NP (RB Not) (DT a) (NN lot)) (PP (IN of) (NP (NNS data)))) (VP (VBZ is) (VP (VBN required))) (. .))) # speaker=TESTER # test=on # year=2004 1 Not not RB O _ 3 neg 0 _ 2 a a DT O _ 5 det:qmod 3,4 _ 3 lot lot NN O _ 2 mwe 1 _ 4 of of IN O _ 2 mwe 0 _ 5 data datum NNS O _ 7 nsubjpass 2 _ 6 is be VBZ O _ 7 auxpass 0 _ 7 required require VBN O _ 0 ROOT 5,6,8 _ 8 . . . O _ 7 punct 0 _ # parse=(ROOT (S (ADVP (RB Here)) (, ,) (NP (PRP we)) (VP (VBP 're) (VP (VBG testing) (NP (DT the) (NN speaker_segmentation) (NN option)))) (. .))) # speaker=ANONYMOUS # test=on # year=2005 1 Here here RB O _ 5 advmod 0 _ 2 , , , O _ 5 punct 0 _ 3 we we PRP O _ 5 nsubj 0 _ 4 're be VBP O _ 5 aux 0 _ 5 testing test VBG O _ 0 ROOT 1,2,3,4,8,9 _ 6 the the DT O _ 8 det 0 _ 7 speaker_segmentation speaker_segmentation NN O _ 8 compound 0 _ 8 option option NN O _ 5 dobj 6,7 _ 9 . . . O _ 5 punct 0 _ # parse=(ROOT (S (ADVP (RB Right)) (NP (PRP you)) (VP (VBP are)) (. .))) # speaker=TESTER # test=on # year=2004 1 Right right RB O _ 3 advmod 0 _ 2 you you PRP O _ 3 nsubj 0 _ 3 are be VBP O _ 0 ROOT 1,2,4 _ 4 . . . O _ 3 punct 0 _ # parse=(ROOT (S (NP (DT The) (JJ next) (NN file)) (, ,) (ADVP (RB however)) (, ,) (VP (MD wo) (RB n't) (VP (VB have) (NP (NN speaker) (NNS IDs)))) (. .))) # speaker=TESTER # test=on # year=2004 1 The the DT O _ 3 det 0 _ 2 next next JJ O _ 3 amod 0 _ 3 file file NN O _ 9 nsubj 1,2 _ 4 , , , O _ 9 punct 0 _ 5 however however RB O _ 9 advmod 0 _ 6 , , , O _ 9 punct 0 _ 7 wo will MD O _ 9 aux 0 _ 8 n't not RB O _ 9 neg 0 _ 9 have have VB O _ 0 ROOT 3,4,5,6,7,8,11,12 _ 10 speaker speaker NN O _ 11 compound 0 _ 11 IDs id NNS O _ 9 dobj 10 _ 12 . . . O _ 9 punct 0 _ ================================================ FILE: data/test-speak-parsed/second/body.txt.conll ================================================ # parse=(ROOT (S (NP (NP (NNP Corpus) (NNS linguistics)) (CC and) (NP (JJ computational) (NNS linguistics))) (, ,) (PP (IN like) (NP (NP (NN concordancing)) (CC and) (NP (VBG interrogating)))) (, ,) (VP (VBP are) (VP (VBN situated) (PP (IN on) (NP (DT a) (JJ vast) (NN continuum))))) (. .))) # speaker=UNIDENTIFIED 1 Corpus Corpus NNP O _ 2 compound 0 _ 2 linguistics linguistics NNS O _ 13 nsubjpass 1,3,5 _ 3 and and CC O _ 2 cc 0 _ 4 computational computational JJ O _ 5 amod 0 _ 5 linguistics linguistics NNS O _ 2 conj:and 4 _ 6 , , , O _ 13 punct 0 _ 7 like like IN O _ 8 case 0 _ 8 concordancing concordancing NN O _ 13 nmod:like 7,9,10 _ 9 and and CC O _ 8 cc 0 _ 10 interrogating interrogate VBG O _ 8 conj:and 0 _ 11 , , , O _ 13 punct 0 _ 12 are be VBP O _ 13 auxpass 0 _ 13 situated situate VBN O _ 0 ROOT 2,5,6,8,10,11,12,17,18 _ 14 on on IN O _ 17 case 0 _ 15 a a DT O _ 17 det 0 _ 16 vast vast JJ O _ 17 amod 0 _ 17 continuum continuum NN O _ 13 nmod:on 14,15,16 _ 18 . . . O _ 13 punct 0 _ # parse=(ROOT (S (PP (IN In) (NP (DT both) (NNS cases))) (, ,) (NP (NNP Python)) (VP (MD can) (VP (VB act) (PP (IN as) (NP (DT a) (JJ fantastic) (NN conduit))))) (. .))) # speaker=UNIDENTIFIED # test=off # year=2002 1 In in IN O _ 3 case 0 _ 2 both both DT O _ 3 det 0 _ 3 cases case NNS O _ 7 nmod:in 1,2 _ 4 , , , O _ 7 punct 0 _ 5 Python Python NNP PERSON _ 7 nsubj 0 _ 6 can can MD O _ 7 aux 0 _ 7 act act VB O _ 0 ROOT 3,4,5,6,11,12 _ 8 as as IN O _ 11 case 0 _ 9 a a DT O _ 11 det 0 _ 10 fantastic fantastic JJ O _ 11 amod 0 _ 11 conduit conduit NN O _ 7 nmod:as 8,9,10 _ 12 . . . O _ 7 punct 0 _ # parse=(ROOT (S (S (VP (ADVP (RB Just)) (VBG checking) (NP (PRP I)))) (VP (VBP 'm) (VP (VP (VBG getting) (S (VP (VBN noticed) (PP (IN during) (NP (NP (NN parsing)) (, ,) (NP (NN concordancing))))))) (CC and) (VP (VBG interrogating)))) (. .))) # speaker=NEWCOMER # test=on # year=2005 1 Just just RB O _ 2 advmod 0 _ 2 checking check VBG O _ 5 csubj 1,3 _ 3 I I PRP O _ 2 dobj 0 _ 4 'm be VBP O _ 5 aux 0 _ 5 getting get VBG O _ 0 ROOT 2,4,6,11,12,13 _ 6 noticed notice VBN O _ 5 dep 8 _ 7 during during IN O _ 8 case 0 _ 8 parsing parsing NN O _ 6 nmod:during 7,9,10 _ 9 , , , O _ 8 punct 0 _ 10 concordancing concordancing NN O _ 8 appos 0 _ 11 and and CC O _ 5 cc 0 _ 12 interrogating interrogate VBG O _ 5 conj:and 2 _ 13 . . . O _ 5 punct 0 _ # parse=(ROOT (S (NP (DT This) (NN corpus) (NNS linguistics)) (VP (VBZ is) (NP (JJ hard) (NN work))) (. !))) # speaker=NEWCOMER # test=on # year=2005 1 This this DT O _ 3 det 0 _ 2 corpus corpus NN O _ 3 compound 0 _ 3 linguistics linguistics NNS O _ 4 nsubj 1,2 _ 4 is be VBZ O _ 0 ROOT 3,6,7 _ 5 hard hard JJ O _ 6 amod 0 _ 6 work work NN O _ 4 xcomp 5 _ 7 ! ! . O _ 4 punct 0 _ ================================================ FILE: data/test-stripped/first/intro.txt ================================================ This small corpus is used in corpkit's tests. Not a lot of data is required. Here, we're testing the speaker_segmentation option. Right you are. The next file, however, won't have speaker IDs. ================================================ FILE: data/test-stripped/second/body.txt ================================================ Corpus linguistics and computational linguistics, like concordancing and interrogating, are situated on a vast continuum. In both cases, Python can act as a fantastic conduit. Just checking I'm getting noticed during parsing, concordancing and interrogating. This corpus linguistics is hard work! ================================================ FILE: index.rst ================================================ .. corpkit documentation master file, created by sphinx-quickstart on Thu Nov 5 11:43:02 2015. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. ======================================== corpkit documentation ======================================== *corpkit* is a Python-based tool for doing more sophisticated corpus linguistics. It exists as a graphical interface, a Python API, and a natural language interpreter. The API and interpreter are documented here. With *corpkit*, you can create parsed, structured and metadata-annotated corpora, and then search them for complex lexicogrammatical patterns. Search results can be quickly edited, sorted and visualised, saved and loaded within projects, or exported to formats that can be handled by other tools. In fact, you can easily work with any dataset in `CONLL U`_ format, including the freely available, multilingual `Universal Dependencies Treebanks`_. Concordancing is extended to allow the user to query and display grammatical features alongside tokens. Keywording can be restricted to certain word classes or positions within the clause. If your corpus contains multiple documents or subcorpora, you can identify keywords in each, compared to the corpus as a whole. *corpkit* leverages `Stanford CoreNLP`_, NLTK_ and pattern_ for the linguistic heavy lifting, and pandas_ and matplotlib_ for storing, editing and visualising interrogation results. Multiprocessing is available via joblib_, and Python 2 and 3 are both supported. .. rubric:: API example Here's a basic workflow, using a corpus of news articles published between 1987 and 2014, structured like this: .. code-block:: none ./data/NYT: ├───1987 │ ├───NYT-1987-01-01-01.txt │ ├───NYT-1987-01-02-01.txt │ ... │ ├───1988 │ ├───NYT-1988-01-01-01.txt │ ├───NYT-1988-01-02-01.txt │ ... ... Below, this corpus is made into a `Corpus` object, parsed with *Stanford CoreNLP*, and interrogated for a lexicogrammatical feature. Absolute frequencies are turned into relative frequencies, and results sorted by trajectory. The edited data is then plotted. .. code-block:: python >>> from corpkit import * >>> from corpkit.dictionaries import processes ### parse corpus of NYT articles containing annual subcorpora >>> unparsed = Corpus('data/NYT') >>> parsed = unparsed.parse() ### query: nominal nsubjs that have verbal process as governor lemma >>> crit = {F: r'^nsubj$', ... GL: processes.verbal.lemmata, ... P: r'^N'} ### interrogate corpus, outputting lemma forms >>> sayers = parsed.interrogate(crit, show=L) >>> sayers.quickview(10) 0: official (n=4348) 1: expert (n=2057) 2: analyst (n=1369) 3: report (n=1103) 4: company (n=1070) 5: which (n=1043) 6: researcher (n=987) 7: study (n=901) 8: critic (n=826) 9: person (n=802) ### get relative frequency and sort by increasing >>> rel_say = sayers.edit('%', SELF, sort_by='increase') ### plot via matplotlib, using tex if possible >>> rel_say.visualise('Sayers, increasing', kind='area', ... y_label='Percentage of all sayers') Output: .. figure:: images/sayers-increasing.png .. rubric:: Installation Via pip: .. code-block:: bash $ pip install corpkit via Git: .. code-block:: bash $ git clone https://www.github.com/interrogator/corpkit $ cd corpkit $ python setup.py install Parsing and interrogation of parse trees will also require *Stanford CoreNLP*. *corpkit* can download and install it for you automatically. .. rubric:: Graphical interface Much of corpkit's command line functionality is also available in the *corpkit GUI*. After installation, it can be started from the command line with: .. code-block:: bash $ python -m corpkit.gui If you're working on a project from within Python, you can open it graphically with: .. code-block:: python >>> from corpkit import gui >>> gui() Alternatively, the GUI is available (alongside documentation) as a standalone OSX app here_. .. rubric:: Interpreter *corpkit* also has its own interpreter, a bit like the `Corpus Workbench`_. You can open it with: .. code-block:: bash $ corpkit # or, alternatively: $ python -m corpkit.env And then start working with natural language commands: .. code-block:: bash > set junglebook as corpus > parse junglebook with outname as jb > set jb as corpus > search corpus for governor-lemma matching processes:verbal showing pos and lemma > calculate result as percentage of self > plot result as line chart with title as 'Example figure' From the interpreter, you can enter ``ipython``, ``jupyter notebook`` or ``gui`` to switch between interfaces, preserving the local namespace and data where possible. Information about the syntax is available at the :ref:`interpreter-page`. .. toctree:: :maxdepth: 1 :caption: API rst_docs/API/corpkit.building.rst rst_docs/API/corpkit.interrogating.rst rst_docs/API/corpkit.concordancing.rst rst_docs/API/corpkit.editing.rst rst_docs/API/corpkit.visualising.rst rst_docs/API/corpkit.langmodel.rst rst_docs/API/corpkit.managing.rst .. toctree:: :maxdepth: 1 :caption: Interpreter rst_docs/interpreter/corpkit.interpreter.overview.rst rst_docs/interpreter/corpkit.interpreter.setup.rst rst_docs/interpreter/corpkit.interpreter.making.rst rst_docs/interpreter/corpkit.interpreter.interrogating.rst rst_docs/interpreter/corpkit.interpreter.concordancing.rst rst_docs/interpreter/corpkit.interpreter.annotating.rst rst_docs/interpreter/corpkit.interpreter.editing.rst rst_docs/interpreter/corpkit.interpreter.visualising.rst rst_docs/interpreter/corpkit.interpreter.managing.rst .. toctree:: :maxdepth: 2 :caption: API reference rst_docs/API-ref/corpkit.corpus.rst rst_docs/API-ref/corpkit.interrogation.rst rst_docs/API-ref/corpkit.other.rst rst_docs/API-ref/corpkit.dictionaries.rst .. toctree:: :maxdepth: 2 :caption: External links :hidden: Graphical interface GitHub .. rubric:: Cite If you'd like to cite *corpkit*, you can use: .. code-block:: none McDonald, D. (2015). corpkit: a toolkit for corpus linguistics. Retrieved from https://www.github.com/interrogator/corpkit. DOI: http://doi.org/10.5281/zenodo.28361 .. _Stanford CoreNLP: http://stanfordnlp.github.io/CoreNLP/ .. _NLTK: http://www.nltk.org/ .. _pandas: http://pandas.pydata.org/ .. _here: http://interrogator.github.io/corpkit/ .. _pattern: http://www.clips.ua.ac.be/pages/pattern-en/ .. _matplotlib: http://matplotlib.org/ .. _joblib: http://pythonhosted.org/joblib/ .. _Corpus Workbench: http://cwb.sourceforge.net/ .. _CONLL U: http://universaldependencies.org/format.html .. _Universal Dependencies Treebanks: https://github.com/UniversalDependencies ================================================ FILE: make.bat ================================================ @ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=_build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . set I18NSPHINXOPTS=%SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. texinfo to make Texinfo files echo. gettext to make PO message catalogs echo. changes to make an overview over all changed/added/deprecated items echo. xml to make Docutils-native XML files echo. pseudoxml to make pseudoxml-XML files for display purposes echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled echo. coverage to run coverage check of the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) REM Check if sphinx-build is available and fallback to Python version if any %SPHINXBUILD% 2> nul if errorlevel 9009 goto sphinx_python goto sphinx_ok :sphinx_python set SPHINXBUILD=python -m sphinx.__init__ %SPHINXBUILD% 2> nul if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) :sphinx_ok if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\corpkit.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\corpkit.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdf" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf cd %~dp0 echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdfja" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf-ja cd %~dp0 echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "texinfo" ( %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo if errorlevel 1 exit /b 1 echo. echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. goto end ) if "%1" == "gettext" ( %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale if errorlevel 1 exit /b 1 echo. echo.Build finished. The message catalogs are in %BUILDDIR%/locale. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) if "%1" == "coverage" ( %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage if errorlevel 1 exit /b 1 echo. echo.Testing of coverage in the sources finished, look at the ^ results in %BUILDDIR%/coverage/python.txt. goto end ) if "%1" == "xml" ( %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml if errorlevel 1 exit /b 1 echo. echo.Build finished. The XML files are in %BUILDDIR%/xml. goto end ) if "%1" == "pseudoxml" ( %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml if errorlevel 1 exit /b 1 echo. echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. goto end ) :end ================================================ FILE: meta.yaml ================================================ package: name: corpkit version: "2.3.8" source: fn: corpkit-2.3.8.tar.gz url: https://pypi.python.org/packages/d1/20/ee1ebd50a3c067d60a863a2afaaa2ed02f012858c005706f08c4540317d3/corpkit-2.3.8.tar.gz md5: 4bf94ac616419b51f8b28ea6a12447ee # patches: # List any patch files here # - fix.patch build: # noarch_python: True # preserve_egg_dir: True entry_points: # Put any entry points (scripts to be generated automatically) here. The # syntax is module:function. For example # - gui = corpkit:gui - corpkit = corpkit:env # # Would create an entry point called corpkit that calls corpkit.main() # If this is a new build for the same version, increment the build # number. If you do not include this key, it defaults to 0. number: 1 requirements: build: - python - setuptools - matplotlib >=1.4.3 - nltk >=3.0.0 - joblib - pandas >=0.18.1 - requests - tabview >=1.4.0 - chardet - blessings >=1.6 - traitlets >=4.1.0 run: - python - matplotlib >=1.4.3 - nltk >=3.0.0 - joblib - pandas >=0.18.1 - requests - tabview >=1.4.0 - chardet - blessings >=1.6 - traitlets >=4.1.0 test: # Python imports imports: - corpkit - corpkit.download # commands: # You can put test commands to be run here. Use this to test that the # entry points work. # You can also put a file called run_test.py in the recipe that will be run # at test time. # requires: # Put any additional test requirements here. For example # - nose about: home: http://github.com/interrogator/corpkit license: MIT summary: 'A toolkit for working with linguistic corpora' license_family: MIT # See # http://docs.continuum.io/conda/build.html for # more information about meta.yaml ================================================ FILE: requirements.txt ================================================ git+https://github.com/interrogator/tkintertable.git#egg=tkintertable-1.2 git+https://github.com/interrogator/tabview#egg=tabview-1.4.0 matplotlib >= 1.5.1 nltk >= 3.0.0 joblib pandas >= 0.16.1 requests chardet blessings>=1.6 traitlets>=4.1.0 ================================================ FILE: rst_docs/API/corpkit.building.rst ================================================ Creating projects and building corpora ======================================= Doing corpus linguistics involves building and interrogating corpora, and exploring interrogation results. ``corpkit`` helps with all of these things. This page will explain how to create a new project and build a corpus. .. contents:: :local: Creating a new project ----------------------- The simplest way to begin using corpkit is to import it and to create a new project. Projects are simply folders containing subfolders where corpora, saved results, images and dictionaries will be stored. The simplest way is to do it is to use the ``new_project`` command in `bash`, passing in the name you'd like for the project as the only argument: .. code-block:: bash $ new_project psyc # move there: $ cd psyc # now, enter python and begin ... Or, from Python: .. code-block:: python >>> import corpkit >>> corpkit.new_project('psyc') ### move there: >>> import os >>> os.chdir('psyc') >>> os.listdir('.') ['data', 'dictionaries', 'exported', 'images', 'logs', 'saved_concordances', 'saved_interrogations'] Adding a corpus ---------------- Now that we have a project, we need to add some plain-text data to the `data` folder. At the very least, this is simply a text file. Better than this is a folder containing a number of text files. Best, however, is a folder containing subfolders, with each subfolder containing one or more text files. These subfolders represent subcorpora. You can add your corpus to the `data` folder from the command line, or using Finder/Explorer if you prefer. .. code-block:: bash $ cp -R /Users/me/Documents/transcripts ./data Or, in `Python`, using `shutil`: .. code-block:: python >>> import shutil >>> shutil.copytree('/Users/me/Documents/transcripts', './data') If you've been using `bash` so far, this is the moment when you'd enter `Python` and ``import corpkit``. Creating a Corpus object ------------------------- Once we have a corpus of text files, we need to turn it into a `Corpus` object. .. code-block:: python >>> from corpkit import Corpus ### you can leave out the 'data' if it's in there >>> unparsed = Corpus('data/transcripts') >>> unparsed Pre-processing the data ---------------------------------- A `Corpus` object can only be interrogated if tokenisation or parsing has been performed. For this, :class:`corpkit.corpus.Corpus` objects have :func:`~corpkit.corpus.Corpus.tokenise` and :func:`~corpkit.corpus.Corpus.parse` methods. Tokenising is faster, simpler, and will work for more languages. As shown below, you can also elect to POS tag and lemmatise the data: .. code-block:: python > corpus = unparsed.tokenise(postags=True, lemmatisation=True) # switch either to false to disable---but lemmatisation requires pos Parsing relies on Stanford CoreNLP's parser, and therefore, you must have the parser and Java installed. ``corpkit`` will look around in your PATH for the parser, but you can also pass in its location manually with (e.g.) ``corenlppath='users/you/corenlp'``. If it can't be found, you'll be asked if you want to download and install it automatically. Parsing has sensible defaults, and can be run with: .. code-block:: python >>> corpus = unparsed.parse() .. note:: Remember that parsing is a computationally intensive task, and can take a long time! ``corpkit`` can also work with speaker IDs. If lines in your file contain capitalised alphanumeric names, followed by a colon (as per the example below), these IDs can be stripped out and turned into metadata features in the parsed dataset. .. code-block:: none JOHN: Why did they change the signs above all the bins? SPEAKER23: I know why. But I'm not telling. To use this option, use the ``speaker_segmentation`` keyword argument: .. code-block:: python >>> corpus = unparsed.parse(speaker_segmentation=True) Tokenising or parsing creates a corpus that is structurally identical to the original, but with annotations in `CONLL-U` formatted files in place of the original ``.txt`` files. When parsing, there are also methods for multiprocessing, memory allocation and so on: +--------------------------+------------+---------------------------------------+ | `parse()` argument | Type | Purpose | +==========================+============+=======================================+ | `corenlppath` | `str` | Path to CoreNLP | +--------------------------+------------+---------------------------------------+ +--------------------------+------------+---------------------------------------+ | `operations` | `str` | `List of annotations`_ | +--------------------------+------------+---------------------------------------+ | `copula_head` | `bool` | Make copula head of dependency parse | +--------------------------+------------+---------------------------------------+ | `speaker_segmentation` | `bool` | Do speaker segmentation | +--------------------------+------------+---------------------------------------+ | `memory_mb` | `int` | Amount of memory to allocate | +--------------------------+------------+---------------------------------------+ | `multiprocess` | `int/bool` | Process in `n` parallel jobs | +--------------------------+------------+---------------------------------------+ | `outname` | `str` | Custom name for parsed corpus | +--------------------------+------------+---------------------------------------+ You can run parsing operations from the command line: .. code-block:: bash $ parse mycorpus --multiprocess 4 --outname MyData Manipulating a parsed corpus ----------------------------- Once you have a parsed corpus, you're ready to analyse it. :class:`corpkit.corpus.Corpus` objects can be navigated in a number of ways. *CoreNLP XML* is used to navigte the internal structure of `CONLL-U` files within the corpus. .. code-block:: python >>> corpus[:3] # access first three subcorpora >>> corpus.subcorpora.chapter1 # access subcorpus called chapter1 >>> f = corpus[5][20] # access 21st file in 6th subcorpus >>> f.document.sentences[0].parse_string # get parse tree for first sentence >>> f.document.sentences.tokens[0].word # get first word Counting key features ----------------------- Before constructing your own queries, you may want to use some predefined attributes for counting key features in the corpus. .. code-block:: python >>> corpus.features Output: .. code-block:: none S Characters Tokens Words Closed class Open class Clauses Sentences Unmod. declarative Passives Mental processes Relational processes Mod. declarative Interrogative Verbal processes Imperative Open interrogative Closed interrogative 01 4380658 1258606 1092113 643779 614827 277103 68267 35981 16842 11570 11082 3691 5012 2962 615 787 813 02 3185042 922243 800046 471883 450360 209448 51575 26149 10324 8952 8407 3103 3407 2578 540 547 461 03 3157277 917822 795517 471578 446244 209990 51860 26383 9711 9163 8590 3438 3392 2572 583 556 452 04 3261922 948272 820193 486065 462207 216739 53995 27073 9697 9553 9037 3770 3702 2665 652 669 530 05 3164919 921098 796430 473446 447652 210165 52227 26137 9543 8958 8663 3622 3523 2738 633 571 467 06 3187420 928350 797652 480843 447507 209895 52171 25096 8917 9011 8820 3913 3637 2722 686 553 480 07 3080956 900110 771319 466254 433856 202868 50071 24077 8618 8616 8547 3623 3343 2676 615 515 434 08 3356241 972652 833135 502913 469739 218382 52637 25285 9921 9230 9562 3963 3497 2831 692 603 442 09 2908221 840803 725108 434839 405964 191851 47050 21807 8354 8413 8720 3876 3147 2582 675 554 455 10 2868652 815101 708918 421403 393698 185677 43474 20763 8640 8067 8947 4333 3181 2727 584 596 424 This can take a while, as it counts a number of complex features. Once it's done, however, it saves automatically, so you don't need to do it again. There are also ``postags``, ``wordclasses`` and ``lexicon`` attributes, which behave similarly: .. code-block:: python >>> corpus.postags >>> corpus.wordclasses >>> corpus.lexicon These results can be useful when generating relative frequencies later on. Right now, however, you're probably interested in searching the corpus yourself, however. Hit `Next` to learn about that. .. _List of annotations: http://nlp.stanford.edu/index.shtml ================================================ FILE: rst_docs/API/corpkit.concordancing.rst ================================================ Concordancing ============== Concordancing is the task of getting an aligned list of *keywords in context*. Here's a very basic example, using *Industrial Society and Its Future* as a corpus: .. code-block:: python >>> tech = corpus.concordance({W: r'techn*'}) >>> tech.format(n=10, columns=[L, M, R]) 0 The continued development of technology will worsen the situation 1 vernments but the economic and technological basis of the present society 2 They want to make him study technical subjects become an executive o 3 program to acquire some petty technical skill then come to work on tim 4 rom nature are consequences of technological progress 5 n them and modern agricultural technology has made it possible for the e 6 -LRB- Also technology exacerbates the effects of cro 7 changes very rapidly owing to technological change 8 they enthusiastically support technological progress and economic growth 9 e rapid drastic changes in the technology and the economy of a society w Generating a concordance ------------------------- When using *corpkit*, any interrogation is also optionally a concordance. If you use the ``do_concordancing`` keyword argument, your interrogation will have a ``concordance`` attribute containing concordance lines. Like interrogation results, concordances are stored as *Pandas DataFrames*. ``maxconc`` controls the number of lines produced. .. code-block:: python >>> withconc = corp.interrogate({L: ['man', 'woman', 'person']}, ... show=[W,P], ... do_concordancing=True, ... maxconc=500) 0 T Asian/JJ a/DT disabled/JJ person/nn or/cc a/dt woman/nn origin 1 led/JJ person/NN or/CC a/DT woman/nn originally/rb had/vbd no/d 2 woman/NN or/CC disabled/JJ person/nn but/cc a/dt minority/nn of 3 n/JJ immigrant/JJ abused/JJ woman/nn or/cc disabled/jj person/n 4 ing/VBG weak/JJ -LRB-/-LRB- women/nns -rrb-/-rrb- defeated/vbn - If you like, you can use ``only_format_match=True`` to keep the left and right context simple: .. code-block:: python >>> withconc = corp.interrogate({L: ['man', 'woman', 'person']}, ... show=[W,P], ... only_format_match=True, ... do_concordancing=True, ... maxconc=500) 0 African an Asian a disabled person/nn or a woman originally had 1 sian a disabled person or a woman/nn originally had no derogato 2 nt abused woman or disabled person/nn but a minority of activist 3 ller Asian immigrant abused woman/nn or disabled person but a m 4 n image of being weak -LRB- women/nns -rrb- defeated -lrb- ameri If you don't want or need the interrogation data, you can use the :func:`~corpkit.corpus.Corpus.concordance` method: .. code-block:: python >>> conc = corpus.concordance(T, r'/JJ.?/ > (NP <<# /man/)') Displaying concordance lines ------------------------------ How concordance lines will be displayed really depends on your interpreter and environment. For the most part, though, you'll want to use the :func:`~corpkit.interrogation.Concordance.format` method. .. code-block:: python >>> lines.format(kind='s', ... n=100, ... window=50, ... columns=[L, M, R]) ``kind='c'/'l'/'s'`` allows you to print as CSV, LaTeX, or simple string. ``n`` controls the number of results shown. ``window`` controls how much context to show in the left and right columns. ``columns`` accepts a list of column names to show. Pandas' set_option_ can be used to customise some visualisation defaults. Working with concordance lines ------------------------------- You can edit concordance lines using the :func:`~corpkit.interrogation.Concordance.edit` method. You can use this method to keep or remove entries or subcorpora matching regular expressions or lists. Keep in mind that because concordance lines are DataFrames, you can use Pandas' dedicated methods for working with text data. .. code-block:: python ### get just uk variants of words with variant spellings >>> from corpkit.dictionaries import usa_convert >>> concs = result.concordance.edit(just_entries=usa_convert.keys()) Concordance objects can be saved just like any other ``corpkit`` object: .. code-block:: python >>> concs.save('adj_modifying_man') You can also easily turn them into CSV data, or into LaTeX: .. code-block:: python ### pandas methods >>> concs.to_csv() >>> concs.to_latex() ### corpkit method: csv and latex >>> concs.format('c', window=20, n=10) >>> concs.format('l', window=20, n=10) The *calculate* method ------------------------ You might have begun to notice that interrogating and concordancing aren't really very different tasks. If we drop the left and right context, and move the data around, we have all the data we get from an interrogation. For this reason, you can use the :func:`~corpkit.interrogation.Concordance.calculate` method to generate an :class:`corpus.interrogation.Interrogation` object containing a frequency count of the middle column of the concordance as the ``results`` attribute. Therefore, one method for ensuring accuracy is to: 1. Run an interrogation, using ``do_concordance=True`` 2. Remove false positives from the concordance result using :func:`~corpkit.interrogation.Concordance.edit` 3. Use the :func:`~corpkit.interrogation.Concordance.calculate` method to regenerate the overall frequencies 4. Edit, visualise or export the data If you'd like to randomise the order of your results, you can use ``lines.shuffle()`` .. _set_option: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.set_option.html ================================================ FILE: rst_docs/API/corpkit.editing.rst ================================================ .. _editing-page: Editing results ===================== Corpus interrogation is the task of getting frequency counts for a lexicogrammatical phenomenon in a corpus. Simple absolute frequencies, however, are of limited use. The :func:`~corpkit.interrogation.Interrogation.edit` method allows us to do complex things with our results, including: .. contents:: :local: Each of these will be covered in the sections below. Keep in mind that because results are stored as DataFrames, you can also use Pandas/Numpy/Scipy to manipulate your data in ways not covered here. Keeping or deleting results and subcorpora ------------------------------------------- One of the simplest kinds of editing is removing or keeping results or subcorpora. This is done using keyword arguments: `skip_subcorpora`, `just_subcorpora`, `skip_entries`, `just_entries`. The value for each can be: 1. A string (treated as a regular expression to match) 2. A list (a list of words to match) 3. An integer (treated as an index to match) .. code-block:: python >>> criteria = r'ing$' >>> result.edit(just_entries=criteria) .. code-block:: python >>> criteria = ['everything', 'nothing', 'anything'] >>> result.edit(skip_entries=criteria) .. code-block:: python >>> result.edit(just_subcorpora=['Chapter_10', 'Chapter_11']) You can also span subcorpora, using a tuple of ``(first_subcorpus, second_subcorpus)``. This works for numerical and non-numerical subcorpus names: .. code-block:: python >>> just_span = result.edit(span_subcorpora=(3, 10)) Editing result names -------------------- You can use the ``replace_names`` keyword argument to edit the text of each result. If you pass in a string, it is treated as a regular expression to delete from every result: .. code-block:: python >>> ingdel = result.edit(replace_names=r'ing$') You can also pass in a ``dict`` with the structure of ``{newname: criteria}``: .. code-block:: python >>> rep = {'-ing words': r'ing$', '-ed words': r'ed$'} >>> replaced = result.edit(replace_names=rep) If you wanted to see how commonly words start with a particular letter, you could do something creative: .. code-block:: python >>> from string import lowercase >>> crit = {k.upper() + ' words': r'(?i)^%s.*' % k for k in lowercase} >>> firstletter = result.edit(replace_names=crit, sort_by='total') Spelling normalisation ----------------------- When results are single words, you can normalise to UK/US spelling: .. code-block:: python >>> spelled = result.edit(spelling='UK') You can also perform this step when interrogating a corpus. Generating relative frequencies --------------------------------- Because subcorpora often vary in size, it is very common to want to create relative frequency versions of results. The best way to do this is to pass in an ``operation`` and a ``denominator``. The ``operation`` is simply a string denoting a mathematical operation: '+', '-', '*', '/', '%'. The last two of these can be used to get relative frequencies and percentage. Denominator is what the result will be divided by. Quite often, you can use the string ``'self'``. This means, after all other editing (deleting entries, subcorpora, etc.), use the totals of the result being edited as the denominator. When doing no other editing operations, the two lines below are equivalent: .. code-block:: python >>> rel = result.edit('%', 'self') >>> rel = result.edit('%', result.totals) The best denominator, however, may not simply be the totals for the results being edited. You may instead want to relativise by the total number of words: .. code-block:: python >>> rel = result.edit('%', corpus.features.Words) Or by some other result you have generated: .. code-block:: python >>> words_with_oo = corpus.interrogate(W, 'oo') >>> rel = result.edit('%', words_with_oo.totals) There is a more complex kind of relative frequency making, where a ``.results`` attribute is used as the denominator. In the example below, we calculate the percentage of the time each verb occurs as the `root` of the parse. .. code-block:: python >>> verbs = corpus.interrogate(P, r'^vb', show=L) >>> roots = corpus.interrogate(F, 'root', show=L) >>> relv = verbs.edit('%', roots.results) Keywording --------------------------------- ``corpkit`` treats keywording as an editing task, rather than an interrogation task. This makes it easy to get key nouns, or key Agents, or key grammatical features. To do keywording, use the ``K`` operation: .. code-block:: python >>> from corpkit import * ### * imports predefined global variables like K and SELF >>> keywords = result.edit(K, SELF) This finds out which words are key in each subcorpus, compared to the corpus as a whole. You can compare subcorpora directly as well. Below, we compare the ``plays`` subcorpus to the ``novels`` subcorpus. . code-block:: python >>> from corpkit import * >>> keywords = result.edit(K, result.ix['novels'], just_subcorpora='plays') You could also pass in word frequency counts from some other source. A wordlist of the *British National Corpus* is included: .. code-block:: python >>> keywords = result.edit(K, 'bnc') The default keywording metric is *log-likelihood*. If you'd like to use *percentage difference*, you can do: .. code-block:: python >>> keywords = result.edit(K, 'bnc', keyword_measure='pd') Sorting --------------------------------- You can sort results using the ``sort_by`` keyword. Possible values are: * `'name'` (alphabetical) * `'total'` (most common first) * `'infreq'` (inverse total) * `'increase'` (most increasing) * `'decrease'` (most decreasing) * `'turbulent'` (by most change) * `'static'` (by least change) * `'p'` (by p value) * `'slope'` (by slope) * `'intercept'` (by intercept) * `'r'` (by correlation coefficient) * `'stderr'` (by standard error of the estimate) * `''` by total in .. code-block:: python >>> inc = result.edit(sort_by='increase', keep_stats=False) Many of these rely on Scipy's ``linregress`` function. If you want to keep the generated statistics, use ``keep_stats=True``. Calculating trends, P values --------------------------------- ``keep_stats=True`` will cause slopes, p values and stderr to be calculated for each result. Saving results ---------------- You can save edited results to disk. .. code-block:: python >>> edited.save('savename') Exporting results ------------------ You can generate CSV data very easily using Pandas: .. code-block:: python >>> result.results.to_csv() Next step ---------- Once you've edited data, it's ready to visualise. Hit next to learn how to use the :func:`~corpkit.interrogation.Interrogation.visualise` method. ================================================ FILE: rst_docs/API/corpkit.interrogating.rst ================================================ Interrogating corpora ===================== Once you've built a corpus, you can search it for linguistic phenomena. This is done with the :func:`~corpkit.corpus.Corpus.interrogate` method. .. contents:: :local: Introduction -------------- Interrogations can be performed on any :class:`corpkit.corpus.Corpus` object, but also, on :class:`corpkit.corpus.Subcorpus` objects, :class:`corpkit.corpus.File` objects and :class:`corpkit.corpus.Datalist` objects (slices of ``Corpus`` objects). You can search plaintext corpora, tokenised corpora or fully parsed corpora using the same method. We'll focus on parsed corpora in this guide. .. code-block:: python >>> from corpkit import * ### words matching 'woman', 'women', 'man', 'men' >>> query = {W: r'/(^wo)m.n/'} ### interrogate corpus >>> corpus.interrogate(query) ### interrogate parts of corpus >>> corpus[2:4].interrogate(query) >>> corpus.files[:10].interrogate(query) ### if you have a subcorpus called 'abstract': >>> corpus.subcorpora.abstract.interrogate(query) Corpus interrogations will output a :class:`corpkit.interrogation.Interrogation` object, which stores a DataFrame of results, a Series of totals, a ``dict`` of values used in the query, and, optionally, a set of concordance lines. Let's search for proper nouns in *The Great Gatsby* and see what we get: .. code-block:: python >>> corp = Corpus('gatsby-parsed') ### turn on concordancing: >>> propnoun = corp.interrogate({P: '^NNP'}, do_concordancing=True) >>> propnoun.results gatsby tom daisy mr. wilson jordan new baker york miss chapter1 12 32 29 4 0 2 10 21 6 19 chapter2 1 30 6 8 26 0 6 0 6 0 chapter3 28 0 1 8 0 22 5 6 5 1 chapter4 38 10 15 25 1 9 5 8 4 7 chapter5 36 3 26 4 0 0 1 1 1 1 chapter6 37 21 19 11 0 1 4 0 3 4 chapter7 63 87 60 9 27 35 9 2 5 1 chapter8 21 3 19 1 19 1 0 1 0 0 chapter9 27 5 9 14 4 3 4 1 4 1 >>> propnoun.totals chapter1 232 chapter2 252 chapter3 171 chapter4 428 chapter5 128 chapter6 219 chapter7 438 chapter8 139 chapter9 208 dtype: int64 >>> propnoun.query {'case_sensitive': False, 'corpus': 'gatsby-parsed', 'dep_type': 'collapsed-ccprocessed-dependencies', 'do_concordancing': True, 'exclude': False, 'excludemode': 'any', 'files_as_subcorpora': True, 'gramsize': 1, ...} >>> propnoun.concordance # (sample) 54 chapter1 They had spent a year in france for no particular reason and then d 55 chapter1 n't believe it I had no sight into daisy 's heart but i felt that tom would 56 chapter1 into Daisy 's heart but I felt that tom would drift on forever seeking a li 57 chapter1 This was a permanent move said daisy over the telephone but i did n't be 58 chapter1 windy evening I drove over to East egg to see two old friends whom i scarc 59 chapter1 warm windy evening I drove over to east egg to see two old friends whom i s 60 chapter1 d a cheerful red and white Georgian colonial mansion overlooking the bay 61 chapter1 pen to the warm windy afternoon and tom buchanan in riding clothes was stan 62 chapter1 to the warm windy afternoon and Tom buchanan in riding clothes was standing with Cool, eh? We'll focus on what to do with these attributes later. Right now, we need to learn how to generate them. Search types --------------------- Parsed corpora contain many different kinds of things we might like to search. There are word forms, lemma forms, POS tags, word classes, indices, and constituency and (three different) dependency grammar annotations. For this reason, the search query is a ``dict`` object passed to the ``interrogate()`` method, whose keys specify what to search, and whose values specify a query. The simplest ones are given in the table below. .. note:: Single capital letter variables in code examples represent lowercase strings ``(W = 'w')``. These variables are made available by doing ``from corpkit import *``. They are used here for readability. +--------+-----------------------+ | Search | Gloss | +========+=======================+ | W | Word | +--------+-----------------------+ | L | Lemma | +--------+-----------------------+ | F | Function | +--------+-----------------------+ | P | POS tag | +--------+-----------------------+ | X | Word class | +--------+-----------------------+ | E | NER tag | +--------+-----------------------+ | A | Distance from root | +--------+-----------------------+ | I | Index in sentence | +--------+-----------------------+ | S | Sentence index | +--------+-----------------------+ | R | Coref representative | +--------+-----------------------+ Because it comes first, and because it's always needed, you can pass it in like an argument, rather than a keyword argument. .. code-block:: python ### get variants of the verb 'be' >>> corpus.interrogate({L: 'be'}) ### get words in 'nsubj' position >>> corpus.interrogate({F: 'nsubj'}) Multiple key/value pairs can be supplied. By default, all must match for the result to be counted, though this can be changed with ``searchmode=ANY`` or ``searchmode=ALL``: .. code-block:: python >>> goverb = {P: r'^v', L: r'^go'} ### get all variants of 'go' as verb >>> corpus.interrogate(goverb, searchmode=ALL) ### get all verbs and any word starting with 'go': >>> corpus.interrogate(goverb, searchmode=ANY) Grammatical searching ---------------------- In the examples above, we match attributes of tokens. The great thing about parsed data, is that we can search for relationships between words. So, other possible search keys are: +--------+------------------------+ | Search | Gloss | +========+========================+ | G | Governor | +--------+------------------------+ | D | Dependent | +--------+------------------------+ | H | Coreference head | +--------+------------------------+ | T | Syntax tree | +--------+------------------------+ | A1 | Token 1 place to left | +--------+------------------------+ | Z1 | Token 1 place to right | +--------+------------------------+ .. code-block:: python >>> q = {G: r'^b'} ### return any token with governor word starting with 'b' >>> corpus.interrogate(q) `Governor`, `Dependent` and `Left/Right` can be combined with the earlier table, allowing a large array of search types: +--------------------+-------+----------+-----------+------------+-----------------+ | | Match | Governor | Dependent | Coref head | Left/right | +====================+=======+==========+===========+============+=================+ | Word | W | G | D | H | A1/Z1 | +--------------------+-------+----------+-----------+------------+-----------------+ | Lemma | L | GL | DL | HL | A1L/Z1L | +--------------------+-------+----------+-----------+------------+-----------------+ | Function | F | GF | DF | HF | A1F/Z1F | +--------------------+-------+----------+-----------+------------+-----------------+ | POS tag | P | GP | DP | HP | A1P/Z1P | +--------------------+-------+----------+-----------+------------+-----------------+ | Word class | X | GX | DX | HX | A1X/Z1X | +--------------------+-------+----------+-----------+------------+-----------------+ | Distance from root | A | GA | DA | HA | A1A/Z1A | +--------------------+-------+----------+-----------+------------+-----------------+ | Index | I | GI | DI | HI | A1I/Z1I | +--------------------+-------+----------+-----------+------------+-----------------+ | Sentence index | S | GS | DS | HS | A1S/Z1S | +--------------------+-------+----------+-----------+------------+-----------------+ Syntax tree searching can't be combined with other options. We'll return to them in a minute, however. Excluding results --------------------- You may also wish to exclude particular phenomena from the results. The ``exclude`` argument takes a ``dict`` in the same form a ``search``. By default, if any key/value pair in the ``exclude`` argument matches, it will be excluded. This is controlled by ``excludemode=ANY`` or ``excludemode=ALL``. .. code-block:: python >>> from corpkit.dictionaries import wordlists ### get any noun, but exclude closed class words >>> corpus.interrogate({P: r'^n'}, exclude={W: wordlists.closedclass}) ### when there's only one search criterion, you can also write: >>> corpus.interrogate(P, r'^n', exclude={W: wordlists.closedclass}) In many cases, rather than using ``exclude``, you could also remove results later, during editing. What to show --------------------- Up till now, all searches have simply returned words. The final major argument of the ``interrogate`` method is ``show``, which dictates what is returned from a search. Words are the default value. You can use any of the search values as a show value. ``show`` can be either a single string or a list of strings. If a list is provided, each value is returned with forward slashes as delimiters. .. code-block:: python >>> example = corpus.interrogate({W: r'fr?iends?'}, show=[W, L, P]) >>> list(example.results) ['friend/friend/nn', 'friends/friend/nns', 'fiend/fiend/nn', 'fiends/fiend/nns', ... ] Unigrams are generated by default. To get n-grams, pass in an n value as ``gramsize``: .. code-block:: python >>> example = corpus.interrogate({W: r'wom[ae]n]'}, show=N, gramsize=2) >>> list(example.results) ['a/woman', 'the/woman', 'the/women', 'women/are', ... ] So, this leaves us with a huge array of possible things to show, all of which can be combined if need be: +--------------------+-------+----------+-----------+------------+-------------+-------------+ | | Match | Governor | Dependent | Coref Head | 1L position | 1R position | +====================+=======+==========+===========+============+=============+=============+ | Word | W | G | D | H | A1 | Z1 | +--------------------+-------+----------+-----------+------------+-------------+-------------+ | Lemma | L | GL | DL | HL | A1L | Z1L | +--------------------+-------+----------+-----------+------------+-------------+-------------+ | Function | F | GF | DF | HF | A1F | Z1F | +--------------------+-------+----------+-----------+------------+-------------+-------------+ | POS tag | P | GP | DP | HP | A1P | Z1P | +--------------------+-------+----------+-----------+------------+-------------+-------------+ | Word class | X | GX | DX | HX | A1X | Z1X | +--------------------+-------+----------+-----------+------------+-------------+-------------+ | Distance from root | A | GA | DA | HA | A1A | Z1R | +--------------------+-------+----------+-----------+------------+-------------+-------------+ | Index | I | GI | DI | HI | A1I | Z1I | +--------------------+-------+----------+-----------+------------+-------------+-------------+ | Sentence index | S | GS | DS | HS | A1S | Z1S | +--------------------+-------+----------+-----------+------------+-------------+-------------+ One further extra show value is ``'c'`` (count), which simply counts occurrences of a phenomenon. Rather than returning a DataFrame of results, it will result in a single Series. It cannot be combined with other values. Working with trees --------------------- If you have elected to search trees, by default, searching will be done with Java, using Tregex. If you don't have Java, or if you pass in ``tgrep=True``, searching will the more limited Tgrep2 syntax. Here, we'll concentrate on Tregex. Tregex is a language for searching syntax trees like this one: .. figure:: https://raw.githubusercontent.com/interrogator/sfl_corpling/master/images/const-grammar.png To write a Tregex query, you specify *words and/or tags* you want to match, in combination with *operators* that link them together. First, let's understand the Tregex syntax. To match any adjective, you can simply write: .. code-block:: none JJ with `JJ` representing adjective as per the `Penn Treebank tagset`_. If you want to get NPs containing adjectives, you might use: .. code-block:: none NP < JJ where `<` means `with a child/immediately below`. These operators can be reversed: If we wanted to show the adjectives within NPs only, we could use: .. code-block:: none JJ > NP It's good to remember that **the output will always be the left-most part of your query**. If you only want to match Subject NPs, you can use bracketting, and the `$` operator, which means *sister/directly to the left/right of*: .. code-block:: none JJ > (NP $ VP) In this way, you build more complex queries, which can extent all the way from a sentence's *root* to particular tokens. The query below, for example, finds adjectives modifying `book`: .. code-block:: none JJ > (NP <<# /book/) Notice that here, we have a different kind of operator. The `<<` operator means that the node on the right does not need to be a child, but can be a descendant. the `#` means `head`—that is, in SFL, it matches the `Thing` in a Nominal Group. If we wanted to also match `magazine` or `newspaper`, there are a few different approaches. One way would be to use `|` as an operator meaning `or`: .. code-block:: none JJ > (NP ( <<# /book/ | <<# /magazine/ | <<# /newspaper/)) This can be cumbersome, however. Instead, we could use a regular expression: .. code-block:: none JJ > (NP <<# /^(book|newspaper|magazine)s*$/) Though it is beyond the scope of this guide to teach Regular Expressions, it is important to note that Regular Expressions are extremely powerful ways of searching text, and are invaluable for any linguist interested in digital datasets. Detailed documentation for Tregex usage (with more complex queries and operators) can be found here_. Tree `show` values ------------------- Though you can use the same Tregex query for tree searches, the output changes depending on what you select as the ``show`` value. For the following sentence: .. code-block:: none These are prosperous times. you could write a query: .. code-block:: python r'JJ < __' Which would return: +------+----------+----------------------+ | Show | Gloss | Output | +======+==========+======================+ | W | Word | `prosperous` | +------+----------+----------------------+ | T | Tree | `(JJ prosperous)` | +------+----------+----------------------+ | p | POS tag | `JJ` | +------+----------+----------------------+ | C | Count | `1` (added to total) | +------+----------+----------------------+ Working with dependencies -------------------------- When working with dependencies, you can use any of the long list of search and `show` values. It's possible to construct very elaborate queries: .. code-block:: python >>> from corpkit.dictionaries import process_types, roles ### nominal nsubj with verbal process as governor >>> crit = {F: r'^nsubj$', ... GL: processes.verbal.lemmata, ... GF: roles.event, ... P: r'^N'} ### interrogate corpus, outputting the nsubj lemma >>> sayers = parsed.interrogate(crit, show=L) Working with metadata ---------------------------------- If you've used speaker segmentation and/or metadata addition when building your corpus, you can tell the :func:`~corpkit.corpus.Corpus.interrogate` method to use these values as subcorpora, or restrict searches to particular values. The code below will limit searches to sentences spoken by Jason and Martin, or exclude them from the search: .. code-block:: python >>> corpus.interrogate(query, just_metadata={'speaker': ['JASON', 'MARTIN']}) >>> corpus.interrogate(query, skip_metadata={'speaker': ['JASON', 'MARTIN']}) If you wanted to compare Jason and Martin's contributions in the corpus as a whole, you could treat them as subcorpora: .. code-block:: python >>> corpus.interrogate(query, subcorpora='speaker', ... just_metadata={'speaker': ['JASON', 'MARTIN']}) The method above, however, will make an interrogation with two subcorpora, `'JASON'` AND ``MARTIN``. You can pass a list in as the ``subcorpora`` keyword argument to generate a multiindex: .. code-block:: python >>> corpus.interrogate(query, subcorpora=['folder', 'speaker'], just_metadata={'speaker': ['JASON', 'MARTIN']}) Working with coreferences -------------------------- One major challenge in corpus linguistics is the fact that pronouns stand in for other words. Parsing provides coreference resolution, which maps pronouns to the things they denote. You can enable this kind of parsing by specifying the `dcoref` annotator: .. code-block:: python >>> corpus = Corpus('example.txt') >>> ops = 'tokenize,ssplit,pos,lemma,parse,ner,dcoref' >>> parsed = corpus.interrogate(operations=ops) ### print a plaintext representation of the parsed corpus >>> print(parsed.plain) .. code-block:: none 0. Clinton supported the independence of Kosovo 1. He authorized the use of force. If you have done this, you can use `coref=True` while interrogating to allow coreferent forms to be counted alongside query matches. For example, if you wanted to find all the processes Clinton is engaged in, you could do: .. code-block:: python >>> from corpkit.dictionaries import roles >>> query = {W: 'clinton', GF: roles.process} >>> res = parsed.interrogate(query, show=L, coref=True) >>> res.results.columns This matches both `Clinton` and `he`, and thus gives us: .. code-block:: python ['support', 'authorize'] Multiprocessing --------------------- Interrogating the corpus can be slow. To speed it up, you can pass an integer as the ``multiprocess`` keyword argument, which tells the ``interrogate()`` method how many processes to create. .. code-block:: python >>> corpus.interrogate({T: r'__ > MD'}, multiprocess=4) .. note:: Too many parallel processes may slow your computer down. If you pass in ``multiprocessing=True``, the number of processes will equal the number of cores on your machine. This is usually a fairly sensible number. N-grams --------------------- N-gramming can be generated by making ``gramsize`` > 1: .. code-block:: python >>> corpus.interrogate({W: 'father'}, show='L', gramsize=3) Collocation ------------ Collocations can be shown by making using ``window``: .. code-block:: python >>> corpus.interrogate({W: 'father'}, show='L', window=6) Saving interrogations ---------------------- .. code-block:: python >>> interro.save('savename') Interrogation savenames will be prefaced with the name of the corpus interrogated. You can also quicksave interrogations: .. code-block:: python >>> corpus.interrogate(T, r'/NN.?/', save='savename') Exporting interrogations ------------------------- If you want to quickly export a result to CSV, LaTeX, etc., you can use Pandas' DataFrame methods: .. code-block:: python >>> print(nouns.results.to_csv()) >>> print(nouns.results.to_latex()) Other options --------------- :func:`~corpkit.corpus.Corpus.interrogate` takes a number of other arguments, each of which is documented in the API documentation. If you're done interrogating, you can head to the page on :ref:`editing-page` to learn how to transform raw frequency counts into something more meaningful. Or, hit `Next` to learn about concordancing. .. _here: http://nlp.stanford.edu/~manning/courses/ling289/Tregex.htm .. _Penn Treebank tagset: https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html ================================================ FILE: rst_docs/API/corpkit.langmodel.rst ================================================ Using language models ====================== .. warning:: Language modelling is currently deprecated, while the tool is updated to use `CONLL` formatted data, rather than `CoreNLP XML`. Sorry! Language models are probability distributions over sequences of words. They are common in a number of natural language processing tasks. In corpus linguistics, they can be used to judge the similarity between texts. *corpkit*'s :func:`~corpkit.corpus.Corpus.make_language_model` method makes it very easy to generate a language model: .. code-block:: python >>> corpus = Corpus('threads') # save as models/savename.p >>> lm = corpus.make_language_model('savename') One simple thing you can do with a language model is pass in a string of text: .. code-block:: python >>> text = ("We can compare an arbitrary string against the models "\ ... "created for each subcorpus, in order to find out how "\ ... "similar the text is to the texts in each subcorpus... ") # get scores for each subcorpus, and the corpus as a whole >>> lm.score(text) 01 -4.894732 04 -4.986471 02 -5.060964 03 -5.096785 05 -5.106083 07 -5.226934 06 -5.338614 08 -5.829444 09 -5.874777 10 -6.351399 Corpus -5.285553 You can also pass in :class:`corpkit.corpus.Subcorpus` objects, subcorpus names or :class:`corpkit.corpus.File` instances. Customising models -------------------- Under the hood, *corpkit* interrogates the corpus using some special parameters, then builds a model from the results. This means that you can pass in arbitrary arguments for the :func:`~corpkit.corpus.Corpus.interrogate` method: .. code-block:: python >>> lm = corpus.make_language_model('lemma_model', ... show=L, ... just_speakers='MAHSA', ... multiprocess=2) Compare subcorpora ------------------- You can find out which subcorpora are similar using the :func:`~corpkit.model.MultiModel.score` method: .. code-block:: python >>> lm.score('1996') Or get a complete *DataFrame* of values using :func:`~corpkit.model.MultiModel.score_subcorpora`: .. code-block:: python >>> df = lm.score_subcorpora() Advanced stuff ---------------- .. note:: Coming soon ================================================ FILE: rst_docs/API/corpkit.managing.rst ================================================ Managing projects ================= ``corpkit`` has a few other bits and pieces designed to make life easier when doing corpus linguistic work. This includes methods for loading saved data, for working with multiple corpora at the same time, and for switching between command line and graphical interfaces. Those things are covered here. .. contents:: :local: Loading saved data ------------------- When you're starting a new session, you probably don't want to start totally from scratch. It's handy to be able to load your previous work. You can load data in a few ways. First, you can use ``corpkit.load()``, using the name of the filename you'd like to load. By default, ``corpkit`` looks in the ``saved_interrogations`` directory, but you can pass in an absolute path instead if you like. .. code-block:: python >>> import corpkit >>> nouns = corpkit.load('nouns') Second, you can use ``corpkit.loader()``, which provides a list of items to load, and asks the user for input: .. code-block:: python >>> nouns = corpkit.loader() Third, when instantiating a ``Corpus`` object, you can add ``load_saved=True`` keyword argument to load any saved data belonging to this corpus as an attribute. .. code-block:: python >>> corpus = Corpus('data/psyc-parsed', load_saved=True) A final alternative approach stores all interrogations within an :class:`corpkit.interrogation.Interrodict` object object: .. code-block:: python >>> r = corpkit.load_all_results() Managing multiple corpora -------------------- ``corpkit`` can handle one further level of abstraction for both Corpus and Interrogations. :class:`corpkit.corpus.Corpora` models a collection of :class:`corpkit.corpus.Corpus` objects. To create one, pass in a directory containing corpora, or a list of paths/``Corpus`` objects: .. code-block:: python >>> from corpkit import Corpora >>> corpora = Corpora('data') Individual corpora can be accessed as attributes, by index, or as keys: .. code-block:: python >>> corpora.first >>> corpora[0] >>> corpora['first'] You can use the :func:`~corpkit.corpus.Corpora.interrogate` method to search them, using the same arguments as you would for :func:`~corpkit.corpus.Corpus.interrogate`. Interrogating these objects often returns an :class:`corpkit.interrogation.Interrodict` object, which models a collection of DataFrames. Editing can be performed with :func:`~corpkit.interrogation.Interrodict.edit`. The editor will iterate over each DataFrame in turn, generally returning another ``Interrodict``. .. note:: There is no ``visualise()`` method for Interrodict objects. :func:`~corpkit.interrogation.Interrodict.multiindex` can turn an ``Interrodict`` into a `Pandas MultiIndex`: .. code-block:: python >>> multiple_res.multiindex() :func:`~corpkit.interrogation.Interrodict.collapse` will collapse one dimension of the ``Interrodict``. You can collapse the x axis (``'x'``), the y axis (``'y'``), or the Interrodict keys (``'k'``). In the example below, an ``Interrodict`` is collapsed along each axis in turn. .. code-block:: python >>> d = corpora.interrogate({F: 'compound', GL: r'^risk'}, show=L) >>> d.keys() ['CHT', 'WAP', 'WSJ'] >>> d['CHT'].results .... health cancer security credit flight safety heart 1987 87 25 28 13 7 6 4 1988 72 24 20 15 7 4 9 1989 137 61 23 10 5 5 6 >>> d.collapse(axis=Y).results ... health cancer credit security CHT 3174 1156 566 697 WAP 2799 933 582 1127 WSJ 1812 680 2009 537 >>> d.collapse(axis=X).results ... 1987 1988 1989 CHT 384 328 464 WAP 389 355 435 WSJ 428 410 473 >>> d.collapse(axis=K).results ... health cancer credit security 1987 282 127 65 93 1988 277 100 70 107 1989 379 253 83 91 :func:`~corpkit.interrogation.Interrodict.topwords` quickly shows the top results from every interrogation in the ``Interrodict``. .. code-block:: python >>> data.topwords(n=5) Output: .. code-block:: none TBT % UST % WAP % WSJ % health 25.70 health 15.25 health 19.64 credit 9.22 security 6.48 cancer 10.85 security 7.91 health 8.31 cancer 6.19 heart 6.31 cancer 6.55 downside 5.46 flight 4.45 breast 4.29 credit 4.08 inflation 3.37 safety 3.49 security 3.94 safety 3.26 cancer 3.12 Using the GUI ------------- ``corpkit`` is also designed to work as a GUI. It can be started in ``bash`` with: .. code-block:: bash $ python -m corpkit.gui The GUI can understand any projects you have defined. If you open it, you can simply select your project via ``Open Project`` and resume work in a graphical environment. ================================================ FILE: rst_docs/API/corpkit.visualising.rst ================================================ Visualising results ===================== One thing missing in a lot of corpus linguistic tools is the ability to produce high-quality visualisations of corpus data. ``corpkit`` uses the :class:`corpkit.interrogation.Interrogation.visualise` method to do this. .. contents:: :local: .. note:: Most of the keyword arguments from Pandas' plot_ method are available. See their documentation for more information. Basics --------------------- ``visualise()`` is a method of all :class:`corpkit.interrogation.Interrogation` objects. If you use `from corpkit import *`, it is also monkey-patched to Pandas objects. .. note:: If you're using a *Jupyter Notebook*, make sure you use ``%matplotlib inline`` or ``%matplotlib notebook`` to set the appropriate backend. A common workflow is to interrogate a corpus, relative results, and visualise: .. code-block:: python >>> from corpkit import * >>> corpus = Corpus('data/P-parsed', load_saved=True) >>> counts = corpus.interrogate({T: r'MD < __'}) >>> reldat = counts.edit('%', SELF) >>> reldat.visualise('Modals', kind='line', num_to_plot=ALL).show() ### the visualise method can also attach to the df: >>> reldat.results.visualise(...).show() The current behaviour of ``visualise()`` is to return the ``pyplot`` module. This allows you to edit figures further before showing them. Therefore, there are two ways to show the figure: .. code-block:: python >>> data.visualise().show() .. code-block:: python >>> plt = data.visualise() >>> plt.show() Plot type --------------------- The visualise method allows ``line``, ``bar``, horizontal bar (``barh``), ``area``, and ``pie`` charts. Those with `seaborn` can also use ``'heatmap'`` (docs_). Just pass in the type as a string with the ``kind`` keyword argument. Arguments such as ``robust=True`` can then be used. .. code-block:: python >>> data.visualise(kind='heatmap', robust=True, figsize=(4,12), ... x_label='Subcorpus', y_label='Event').show() .. figure:: ../../images/event-heatmap.png :width: 50% :target: ../../images/event-heatmap.png :align: center Heatmap example Stacked area/line plots can be made with ``stacked=True``. You can also use ``filled=True`` to attempt to make all values sum to 100. Cumulative plotting can be done with ``cumulative=True``. Below is an area plot beside an area plot where ``filled=True``. Both use the ``vidiris`` colour scheme. .. image:: ../../images/area.png :width: 45% :target: ../../images/area.png :align: left .. image:: ../../images/area-filled.png :width: 45% :target: ../../images/area-filled.png :align: right Plot style --------------------- You can select from a number of styles, such as ``ggplot``, ``fivethirtyeight``, ``bmh``, and ``classic``. If you have `seaborn` installed (and you should), then you can also select from `seaborn` styles (``seaborn-paper``, ``seaborn-dark``, etc.). Figure and font size --------------------- You can pass in a tuple of ``(width, height)`` to control the size of the figure. You can also pass an integer as ``fontsize``. Title and labels --------------------- You can label your plot with `title`, `x_label` and `y_label`: .. code-block:: python >>> data.visualise('Modals', x_label='Subcorpus', y_label='Relative frequency') Subplots --------------------- ``subplots=True`` makes a separate plot for every entry in the data. If using it, you'll probably also want to use ``layout=(rows,columns)`` to specify how you'd like the plots arranged. .. code-block:: python >>> data.visualise(subplots=True, layout=(2,3)).show() .. figure:: ../../images/subplots.png :width: 60% :target: ../../images/subplots.png :align: center Line charts using subplots and layout specification TeX --------------------- If you have LaTeX installed, you can use ``tex=True`` to render text with LaTeX. By default, ``visualise()`` tries to use LaTeX if it can. Legend --------------------- You can turn the legend off with ``legend=False``. Legend placement can be controlled with ``legend_pos``, which can be: .. table:: :column-dividers: single double double single +---------------------+----------------------------+----------------------+ | Margin | Figure | Margin | +=====================+=============+==============+======================+ | outside upper left | upper left | upper right | outside upper right | +---------------------+-------------+--------------+----------------------+ | outside center left | center left | center right | outside center right | +---------------------+-------------+--------------+----------------------+ | outside lower left | lower left | lower right | outside lower right | +---------------------+-------------+--------------+----------------------+ The default value, ``'best'``, tries to find the best place automatically (without leaving the figure boundaries). If you pass in ``draggable=True``, you should be able to drag the legend around the figure. Colours --------------------- You can use the ``colours`` keyword argument to pass in: 1. A colour name recognised by *matplotlib* 2. A hex colour string 3. A colourmap object There is an extra argument, ``black_and_white``, which can be set to ``True`` to make greyscale plots. Unlike ``colours``, it also updates line styles. Saving figures --------------------- To save a figure to a project's `images` directory, you can use the ``save`` argument. ``output_format='png'/'pdf'`` can be used to change the file format. .. code-block:: python >>> data.visualise(save='name', output_format='png') Other options -------------------- There are a number of further keyword arguments for customising figures: +--------------------+------------+---------------------------------+ | Argument | Type | Action | +====================+============+=================================+ | `grid` | `bool` | Show grid in background | +--------------------+------------+---------------------------------+ | `rot` | `int` | Rotate x axis labels n degrees | +--------------------+------------+---------------------------------+ | `shadow` | `bool` | Shadows for some parts of plot | +--------------------+------------+---------------------------------+ | `ncol` | `int` | n columns for legend entries | +--------------------+------------+---------------------------------+ | `explode` | `list` | Explode these entries in pie | +--------------------+------------+---------------------------------+ | `partial_pie` | `bool` | Allow plotting of pie slices | +--------------------+------------+---------------------------------+ | `legend_frame` | `bool` | Show frame around legend | +--------------------+------------+---------------------------------+ | `legend_alpha` | `float` | Opacity of legend | +--------------------+------------+---------------------------------+ | `reverse_legend` | `bool` | Reverse legend entry order | +--------------------+------------+---------------------------------+ | `transpose` | `bool` | Flip axes of DataFrame | +--------------------+------------+---------------------------------+ | `logx/logy` | `bool` | Log scales | +--------------------+------------+---------------------------------+ | `show_p_val` | `bool` | Try to show p value in legend | +--------------------+------------+---------------------------------+ | `interactive` | `bool` | Experimental mpld3_ use | +--------------------+------------+---------------------------------+ A number of these and other options for customising figures are also described in the :class:`corpkit.interrogation.Interrogation.visualise` method documentation. Multiplotting --------------- The :class:`corpkit.interrogation.Interrogation` also comes with a :class:`corpkit.interrogation.Interrogation.multiplot` method, which can be used to show two different kinds of chart within the same figure. The first two arguments for the function are two `dict` objects, which configure the larger and smaller plots. For the second dictionary, you may pass in a `data` argument, which is an :class:`corpkit.interrogation.Interrogation` or similar, and will be used as separate data for the subplots. This is useful, for example, if you want your main plot to show absolute frequencies, and your subplots to show relative frequencies. There is also `layout`, which you can use to choose an overall grid design. You can also pass in a list of tuples if you like, to use your own layout. Below is a complete example, focussing on objects in risk processes: .. code-block:: python >>> from corpkit import * >>> from corpkit.dictionaries import * ### parse a collection of text files >>> corpora = Corus('data/news') ### make dependency parse query: get get 'object' of risk process >>> query = {F: roles.participant2, GL: r'\brisk', GF: roles.process} ### interrogate corpus, return lemma form, no coreference >>> result = corpus.interrogate(query, show=[L], coref=False) ### generate relative frequencies, skip closed class, and sort >>> inc = result.edit('%', SELF, >>> sort_by='increase', >>> skip_entries=wordlists.closedclass) ### visualise as area and line charts combined >>> inc.multiplot({'title': 'Objects of risk processes, increasing', >>> 'kind': 'area', >>> 'x_label': 'Year', >>> 'y_label': 'Percentage of all results'}, >>> {'kind': 'line'}, layout=5) .. figure:: ../../images/inc-risk-obj.png :width: 50% :target: ../../images/inc-risk-obj.png :align: center `multiplot` example .. _plot: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html .. _docs: https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.heatmap.html .. _mpld3: http://mpld3.github.io/ ================================================ FILE: rst_docs/API-ref/corpkit.corpus.rst ================================================ Corpus classes ===================== Much of *corpkit*'s functionality comes from the ability to work with ``Corpus`` and ``Corpus``-like objects, which have methods for parsing, tokenising, interrogating and concordancing. `Corpus` --------------------- .. autoclass:: corpkit.corpus.Corpus :members: :undoc-members: :show-inheritance: `Corpora` --------------------- .. autoclass:: corpkit.corpus.Corpora :members: :undoc-members: :show-inheritance: `Subcorpus` --------------------- .. autoclass:: corpkit.corpus.Subcorpus :members: :undoc-members: :show-inheritance: `File` --------------------- .. autoclass:: corpkit.corpus.File :members: :undoc-members: :show-inheritance: `Datalist` --------------------- .. autoclass:: corpkit.corpus.Datalist :members: :undoc-members: :show-inheritance: ================================================ FILE: rst_docs/API-ref/corpkit.dictionaries.rst ================================================ Wordlists ============================ Closed class word types ------------------------------------------- Various wordlists, mostly for subtypes of closed class words .. autodata:: corpkit.dictionaries.wordlists.wordlists Systemic functional process types ------------------------------------------- Inflected verbforms for systemic process types. .. data:: corpkit.dictionaries.process_types.processes Stopwords ------------------------------------------- A list of arbitrary stopwords. .. data:: corpkit.dictionaries.stopwords.stopwords Systemic/dependency label conversion ------------------------------------------- Systemic-functional to dependency role translation. .. autodata:: corpkit.dictionaries.roles.roles BNC reference corpus ------------------------------------------- BNC word frequency list. .. data:: corpkit.dictionaries.bnc.bnc Spelling conversion ------------------------------------------- A dict with U.S. English spellings as keys, U.K. spellings as values. .. data:: corpkit.dictionaries.word_transforms.usa_convert ================================================ FILE: rst_docs/API-ref/corpkit.interrogation.rst ================================================ Interrogation classes ============================ Once you have searched a ``Corpus`` object, you'll want to be able to edit, visualise and store results. Remember that upon importing *corpkit*, any ``pandas.DataFrame`` or ``pandas.Series`` object is monkey-patched with ``save``, ``edit`` and ``visualise`` methods. `Interrogation` --------------------- .. autoclass:: corpkit.interrogation.Interrogation :members: :undoc-members: :show-inheritance: `Interrodict` --------------------- .. autoclass:: corpkit.interrogation.Interrodict :members: :undoc-members: :show-inheritance: `Concordance` --------------------- .. autoclass:: corpkit.interrogation.Concordance :members: :undoc-members: :show-inheritance: ================================================ FILE: rst_docs/API-ref/corpkit.other.rst ================================================ Functions ==================== *corpkit* contains a small set of standalone functions. `as_regex` -------------------- .. autofunction:: corpkit.other.as_regex `load` -------------------- .. autofunction:: corpkit.other.load `load_all_results` -------------------- .. autofunction:: corpkit.other.load_all_results `new_project` -------------------- .. autofunction:: corpkit.other.new_project ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.annotating.rst ================================================ Annotating your corpus ======================== Another thing you might like to do is add metadata or annotations to your corpus. This can be done by simply editing corpus files, which are stored in a human-readable format. You can also automate annotation, however. To do annotation, you first run a ``search`` command and generate a ``concordance``. After deleting any false positives from the ``concordance``, you can use the ``annotate`` command to annotate each sentence for which a concordance line exists. ``annotate` works a lot like the ``mark``, ``keep``, and ``del`` commands to begin with, but has some special syntax at the end, which controls whether you annotate using *tags*, or *fields and values*. Tagging sentences ------------------- The first way of annotating is to add a **tag** to one or more sentences: .. code-block:: shell > search corpus for pos matching NNP and word matching 'daisy' > annotate m matching '^daisy$' with tag 'has_daisy' You can use `all` to annotate every single concordance line: .. code-block:: shell > search corpus for governor-function matching nsubjpass \ ... showing governor-lemma and lemma > annotate all with tag 'passive' If you try to run this code, you actually get a `dry run`, showing you what would be modified in your corpus. Once you're happy with it, you can do ``toggle annotation`` to turn file writing on, and then run the previous line again (use the up arrow to get it!). Creating fields and values ----------------------------- More complex than adding tags is adding **fields** and **values**. This creates a new metadata category with multiple possible realisations. Below, we tag an sentence sentences based on their containing certain kinds of processes .. code-block:: shell > search corpus for function matching roles.process showing lemma > mark m matching processes.verbal red # annotate by colour > annotate red with field as process \ ... and value as 'verbal' # annotate without colouring first > annotate m matching processes.mental with field as process \ ... and value as 'mental' You can also use ``m`` as the value, which passes in the text from the middle column of the concordance. .. code-block:: shell > search corpus for pos matching NNP showing word > annotate m matching [gatsby, daisy, tom] \ ... with field as character and value as m The moment these values have been added to your text, you can do really powerful things with them. You can, for example, use them as subcorpora, or use them as filters for the sentences being processed. .. code-block:: shell > set subcorpora as process > set skip character as 'gatsby' > set skip passive tag Now, the subcorpora will be the different processes (*verbal*, *mental* and *none*), and any sentence annotated as containing the ``gatsby`` ``character``, or the ``passive`` ``tag``, will be ignored. Removing annotations ----------------------- To remove a ``tag`` or a ``field`` across the dataset, the commands are very simple. Note that again, you need to ``toggle annotation`` to actually alter any files. .. code-block:: shell > unannotate character field > unannotate typo tag > unannotate all tags ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.concordancing.rst ================================================ Concordancing =============== By default, every search also produces concordance lines. You can view them by typing ``concordance``. This opens an interactive display, which can be scrolled and searched---hit ``h`` to get help on possible commands. Customising appearance --------------------------------------------- The first thing you might want to do is adjust how concordance lines are displayed: .. code-block:: shell # hide subcorpus name, speaker name > show concordance with columns as lmr # enlarge window > show concordance with columns as lmr and window as 60 # limit number of results to 100 > show concordance with columns as lmr and window as 60 and n as 100 The values you enter here are persistant---the window size, number of lines, etc. will remain the same until you shut down the interpreter or provide new values. Sorting -------- Sorting can be by column, or by word. .. code-block:: shell # middle column, first word > sort concordance by M1 # left column, last word > sort concordance by L1 # right column, third word > sort concordance by R3 # by index (original order) > sort concordance by index Colouring ----------- One nice feature is that concordances can be coloured. This can be done through either indexing or regular expression matches. Note that ``background`` can be added to colour the background instead of the foreground, and ``dim``/``bright`` can be used to adjust text brightness. This means that you can code lines for multiple phenomena. Background highlighting could mark the argument structure, foreground highlighting could mark the mood type, and bright and dim could be used to mark exemplars or false positives. .. note:: If you're using Python 2, you may find that colouring concordance lines causes some interference with `readline`, making it difficult to select or search previous commands. This is a limitation of readline in Python 2. Use Python 3 instead! .. code-block:: shell # colour by index > mark 10 blue > mark -10 background red > mark 10-15 cyan > mark 15- magenta # reset all > mark - reset .. code-block:: shell # regular expression methods: specify column(s) to search > mark m '^PRP.*' yellow > mark r 'be(ing)' background green > mark lm 'JJR$' dim # reset via regex > mark m '.*' reset You can then sort by colour with `sort concordance by scheme`. If you export the concordances to a file (`export concordance as csv to conc.csv`), colour information will be added in additional columns. Editing -------- To edit concordance lines, you can use the same syntax as you would use to edit results: .. code-block:: shell > edit concordance by skipping subcorpora matching '[123]$' > edit concordance by keeping entries matching 'PRP' Perhaps faster is the use of `del` and `keep`. For these, specify the column and the criteria using the same methods as you would for colouring: .. code-block:: shell > del m matching 'this' > keep l matching '^I\s' > del 10-20 Recalculating results from concordance lines --------------------------------------------- If you've deleted some concordance lines, you can update the ``result`` object to reflect these changes with `calculate result from concordance`. Working with metadata ------------------------ You can use ``show_conc_metadata`` when interrogating or concordancing to collect and display metadata alongside concordance results: .. code-block:: shell > search corpus for words matching any with show_conc_metadata > concordance ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.editing.rst ================================================ Editing results ================ Once you have generated a `result` object via the `search` command, you can edit the result in a number of ways. You can delete, merge or otherwise alter entries or subcorpora; you can do statistics, and you can sort results. Editing, calculating and sorting each create a new object, called `edited`. This means that if you make a mistake, you still have access to the original `result` object, without needing to run the search again. The edit command ------------------ When using the `edit` command, the main things you'll want to do is skip, keep, span or merge results or subcorpora. .. code-block:: bash > edit result by keeping subcorpora matching '[01234]' > edit result by skipping entries matching wordlists.closedclass # merge has a slightly different syntax, because you need # to specify the name to merge under > edit result by merging entries matching 'be|have' as 'aux' .. note:: The syntax above works for concordance lines too, if you change `result` to `concordance`. Merging is not possible. Doing basic statistics ------------------------ The `calculate` command allows you to turn the absolute frequencies into relative frequencies, keyness scores, etc. .. code-block:: bash > calculate result as percentage of self > calculate edited as percentage of features.clauses > calculate result as keyness of self If you want to run more complicated operations on the results, you might like to use the `ipython` command to enter an IPython session, and then manipulate the Pandas objects directly. Sorting results ------------------ The `sort` command allows you to change the search result order. Possible values are `total`, `name`, `infreq`, `increase`, `decrease`, `static`, `turbulent`. .. code-block:: bash > sort result by total # requires scipy > sort edited by increase ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.interrogating.rst ================================================ Interrogating corpora ======================= The most powerful thing about *corpkit* is its ability to search parsed corpora for very complex constituency, dependency or token level features. Before we begin, make sure you've ``set`` the corpus as the thing to search: .. code-block:: bash > set nyt-parsed as corpus # you could also try just typing `set` ... .. note:: By default, when using the interpreter, searching also produces concordance lines. If you don't need them, you can use ``toggle conc`` to switch them off, or on again. This can dramatically speed up processing time. Search examples -------------------- .. code-block:: bash > search corpus ### interactive search helper > search corpus for words matching ".*" > search corpus for words matching "^[A-M]" showing lemma and word with case_sensitive > search corpus for cql matching '[pos="DT"] [pos="NN"]' showing pos and word with coref > search corpus for function matching roles.process showing dependent-lemma > search corpus for governor-lemma matching processes.verbal showing governor-lemma, lemma > search corpus for words matching any and not words matching wordlists.closedclass > search corpus for trees matching '/NN.?/ >># NP' > search corpus for pos matching NNP showing ngram-word and pos with gramsize as 3 > etc. Under the surface, what you are doing is selecting a `Corpus` object to search, and then generating arguments for the :func:`~corpkit.corpus.Corpus.interrogate` method. These arguments, in order, are: 1. `search` criteria 2. `exclude` criteria 3. `show` values 4. Keyword arguments Here is a syntax example that might help you see how the command gets parsed. Note that there are two ways of setting `exclude` criteria. .. code-block:: bash > search corpus \ # select object ... for words matching 'ing$' and \ # search criterion ... not lemma matching 'being' and \ # exclude criterion ... pos matching 'NN' \ # seach criterion ... excluding words matching wordlists.closedclass \ # exclude criterion ... showing lemma and pos and function \ # show values ... with preserve_case and \ # boolean keyword arg ... not no_punct and \ # bool keyword arg ... excludemode as 'all' # keyword arg Working with metadata ---------------------- By default, *corpkit* treats folders within your corpus as subcorpora. If you want to treat files, rather than folders, as subcorpora, you can do: .. code-block:: bash > search corpus for words matching 'ing$' with subcorpora as files If you have metadata in your corpus, you can use the metadata value as the subcorpora: .. code-block:: bash > search corpus for words matching 'ing$' with subcorpora as speaker If you don't want to keep specifying the subcorpus structure every time you search a corpus, you have a couple of choices. First, you can set the default subcorpus value with for the session with ``set subcorpora``. This applies the filter globally, to whatever corpus you search: .. code-block:: bash # use speaker metadata as subcorpora > set subcorpora as speaker # ignore folders, use files as subcorpora > set subcorpora as files You can also define metadata filters, which skip sentences matching a metadata feature, or which keep only sentences matching a metadata feature: .. code-block:: bash # if you have a `year` metadata field, skip this decade > set skip year as '^201' # if you want only this decade: > set keep year as '^201' If you want to set subcorpora and filters for a corpus, rather than globally, you can do this by passing in the values when you select the corpus: .. code-block:: bash > set mydata-parsed as corpus with year as subcorpora and \ ... just year as '^201' and skip speaker as 'chomsky' # forget filters for this corpus: > set mydata-parsed Sampling a corpus ------------------ Sometimes, your corpus is too big to search quickly. If this is the case, you can use the ``sample`` command to create a randomise sample of the corpus data: .. code-block:: bash > sample 3 subcorpora of corpus > sample 100 files of corpus If you pass in a float, it will try to get a proportional amount of data: ``sample 0.33 subcorpora of corpus`` will return a third of the subcorpora in the corpus. A sampled corpus becomes an object called ``sampled``. You can then refer to it when searching: .. code-block:: bash > search sampled for words matching '^[abcde]' Global metadata filters and subcorpus declarations will be observed when searching this corpus as well. ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.making.rst ================================================ Making projects and corpora ============================ The first two things you need to do when using *corpkit* are to create a project, and to create (and optionally parse) a corpus. These steps can all be accomplished quickly using shell commands. They can also be done using the interpreter, however. Once you're in *corpkit*, the command below will create a new project called `iran-news`, and move you into it. .. code-block:: bash > new project named iran-news Adding a corpus ---------------- Adding a corpus simply copies it to the project's data directory. The syntax is simple: .. code-block:: bash > add '../../my_corpus' Parsing a corpus ----------------- To parse a text file, folder of text files, or folder of folder of text files, you first ``set`` the corpus, and then use the ``parse`` command: .. code-block:: bash > set my_corpus as corpus > parse corpus Tokenising, POS tagging and lemmatising ----------------------------------------- If you don't want/need full parses, or if you aren't working with English, you might want to use the ``tokenise`` method. .. code-block:: bash > set abstracts as corpus > tokenise corpus POS tagging and lemmatisation are switched on by default, but you could also disable them: .. code-block:: bash > tokenise corpus with postag as false and lemmatise as false Working with metadata ------------------------- Parsing/tokenising can be made way cooler when your data has some metadata in it. The metadata will be transferred over to the parsed version of the corpus, and then you can search or filter by metadata features, use metadata values as symbolic subcorpora, or display metadata alongside concordances. Metadata should take the form of an XML tag at the end of a line, which could be a sentence or a paragraph: .. code-block:: xml I hope everyone is hanging in with this blasted heat. As we all know being hot, sticky, stressed and irritated can bring on a mood swing super fast. So please make sure your all takeing your meds and try to stay out of the heat. Then, parse with metadata: .. code-block:: bash > parse corpus with metadata The parser output will look something like: .. code-block:: none # sent_id 1 # parse=(ROOT (S (NP (PRP I)) (VP (VBP hope) (SBAR (S (NP (NN everyone)) (VP (VBZ is) (VP (VBG hanging) (PP (IN in) (IN with) (NP (DT this) (VBN blasted) (NN heat)))))))) (. .))) # speaker=Emz45 # totalposts=5063 # threadlength=1 # currentposts=4051 # stage=10 # date=2011-07-13 # year=2011 # postnum=0 1 1 I I PRP O 2 nsubj 0 1 1 2 hope hope VBP O 0 ROOT 1,5,11 _ 1 3 everyone everyone NN O 5 nsubj 0 _ 1 4 is be VBZ O 5 aux 0 _ 1 5 hanging hang VBG O 2 ccomp 3,4,10 _ 1 6 in in IN O 10 case 0 _ 1 7 with with IN O 10 case 0 _ 1 8 this this DT O 10 det 0 2 1 9 blasted blast VBN O 10 amod 0 2 1 10 heat heat NN O 5 nmod:with 6,7,8,9 2* 1 11 . . . O 2 punct 0 _ Viewing corpus data -------------------- You can interactively work with the parser output. .. code-block:: bash > get file of corpus Or, if your corpus has subcorpora: .. code-block:: bash > get subcorpus of corpus > get file of sampled This view can be surprisingly powerful: sorting by lemma, POS or dependency function can show you some recurring lexicogrammatical patterns in a file without the need for searching. The next page will show you how to search the corpus you've built, and to work with metadata if you've added it. ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.managing.rst ================================================ Settings and management ======================== The interpreter can do a number of other useful things. They are outlined here. Managing data --------------- You should be able to store most of the objects you create in memory using the ``store`` command: .. code-block:: bash > store result as 'good_result' > show store > fetch 'good_result' as result A more permanent solution is to use `save` and `load`: .. code-block:: bash > save result as 'good_result' > ls saved_interrogations > load 'good_result' as result An alternative approach is to create variables using the ``call`` command: .. code-block:: bash > search corpus for words matching any > call result anyword > calculate anyword as percentage of self A variable can also be a simple string, which you can then add into searches: .. code-block:: bash > call '/NN.?/ >># NP' headnoun > search corpus for trees matching headnoun To forget a variable, just do `remove `. Toggles and settings --------------------- * Using ``toggle interactive``, You can switch between interactive mode, where results and concordances are shown in a way that you can manipulate directly, and non-interactive mode, where results and concordances are simply printed to the console. * Using ``toggle conc``, you can tell *corpkit* not to produce concordances. This can be much faster, especially when there are a lot of results. * ``toggle comma`` will display thousands separators in results * ``toggle annotation`` is used to switch from dry-run to actual modification of corpus files when annotating * You can set the number of decimals displayed when viewing results with ``set decimal to `` * ``set max_rows to `` and ``set max_cols to `` limit the amount of data loaded into results lists. This can speed up interactive viewing. Switching to IPython --------------------- When the interpreter constrains you, you can switch to IPython with ``ipython``. Your objects are available there under the same name. When you're done there, do ``quit`` to return to the *corpkit* interpreter. Running scripts ----------------- You can also write and run scripts. If you make a file, ``participants.cki``, containing: .. code-block:: bash #!/usr/bin/env corpkit set mydata-parsed as corpus search corpus for function matching roles.participant showing lemma export result as csv to part.csv You can run it from the terminal with: .. code-block:: bash corpkit participants.cki # or, directly, if there's a shebang and chmod +x: ./participants.cki which will leave you with a CSV file at ``exported/part.csv``. This approach can be handy if you need to pipe ``stdout`` or ``stderr``, or if you want to call *corpkit* within a shell script. Finally, just like Python, you can use the ``-c`` flag to pass code in on the command line: .. code-block:: bash corpkit -c "set 2 ; search corpus for features ; export result as csv to feat.csv" .. note:: When running a script, interactivity will automatically be switched off, and concordancing disabled if the script does not appear to need it. ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.overview.rst ================================================ .. _interpreter-page: Overview ======================= *corpkit* comes with a dedicated interpreter, which receives commands in a natural language syntax like these: .. code-block:: bash > set mydata as corpus > search corpus for pos matching 'JJ.*' > call result 'adjectives' > edit adjectives by skipping subcorpora matching 'books' > plot edited as line chart with title as 'Adjectives' It's a little less powerful than the full Python API, but it is easier to use, especially if you don't know Python. You can also switch instantly from the interpreter to the full API, so you only need the API for the really tricky stuff. The syntax of the interpreter is based around *objects*, which you do things to, and *commands*, which are actions performed upon the objects. The example below uses the `search` command on a `corpus` object, which produces new objects, called `result`, `concordance`, `totals` and `query`. As you can see, very complex searches can be performed using an English-like syntax: .. code-block:: bash > search corpus for lemma matching '^t' and pos matching 'VB' \ ... excluding words matching 'try' \ ... showing word and dependent-word \ ... with preserve_case > result This shows us results for each subcorpus: .. code-block:: none . I/think I/thought and/turned me/told and/took I/told ... chapter1 5 3 2 2 1 3 ... chapter2 7 2 5 3 0 2 ... chapter3 5 5 4 4 1 0 ... chapter4 3 7 1 0 3 1 ... chapter5 7 7 2 1 4 2 ... chapter6 2 0 0 2 1 0 ... chapter7 6 2 6 1 1 3 ... chapter8 3 1 2 2 1 1 ... chapter9 5 7 1 4 6 3 ... Objects --------- The most common objects you'll be using are: +---------------+-----------------------------------------------+ | Object | Contains | +===============+===============================================+ | `corpus` | Dataset selected for parsing or searching | +---------------+-----------------------------------------------+ | `result` | Search output | +---------------+-----------------------------------------------+ | `edited` | Results after sorting, editing or calculating | +---------------+-----------------------------------------------+ | `concordance` | Concordance lines from search | +---------------+-----------------------------------------------+ | `features` | General linguistic features of corpus | +---------------+-----------------------------------------------+ | `wordclasses` | Distribution of word classes in corpus | +---------------+-----------------------------------------------+ | `postags` | Distribution of POS tags in corpus | +---------------+-----------------------------------------------+ | `lexicon` | Distribution of lexis in the corpus | +---------------+-----------------------------------------------+ | `figure` | Plotted data | +---------------+-----------------------------------------------+ | `query` | Values used to perform search or edit | +---------------+-----------------------------------------------+ | `previous` | Object created before last | +---------------+-----------------------------------------------+ | `sampled` | A sampled corpus | +---------------+-----------------------------------------------+ | `wordlists` | A list of wordlists for searching, editing | +---------------+-----------------------------------------------+ When you start the interpreter, these are all empty. You'll need to run commands in order to fill them with data. You can also create your own object names using the ``call`` command. Commands ----------- You do things to the objects via commands. Each command has its own syntax, designed to be as similar to natural language as possible. Below is a table of common commands, an explanation of their purpose, and an example of their syntax +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | Command | Purpose | Syntax | +=================+==============================================================+============================================================================================+ | `new` | Make a new project | `new project ` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `set` | Set current corpus | `set ` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `parse` | Parse corpus | `parse corpus with [options]*` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `search` | Search a corpus for linguistic feature, generate concordance | `search corpus for [feature matching pattern]* showing [feature]* with [options]*` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `edit` | Edit results or edited results | `edit result by [skipping subcorpora/entries matching pattern]* with [options]*` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `calculate` | Calculate relative frequencies, keyness, etc. | `calculate result/edited as operation of denominator` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `sort` | Sort results or concordance | `sort result/concordance by value` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `plot` | Visualise result or edited result | `plot result/edited as line chart with [options]*` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `show` | Show any object | `show object` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `annotate` | Add annotations to corpus based on search results | `annotate all with field as and value as m` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `unannotate` | Delete annotation fields from corpus | `unannotate field` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `sample` | Get a random sample of subcorpora or files from a corpus | `sample 5 subcorpora of corpus` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `call` | Name an object (i.e. make a variable) | `call object ''` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `export` | Export result, edited result or concordance to string/file | `export result to string/csv/latex/file ` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `save` | Save data to disk | `save object to ` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `load` | Load data from disk | `load object as result` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `store` | Store something in memory | `store object as ` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `fetch` | Fetch something from memory | `fetch as object` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `help` | Get help on an object or command | `help command/object` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `history` | See previously entered commands | `history` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `ipython` | Enter IPython with objects available | `ipython` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `py` | Execute Python code | `py 'print("hello world")'` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ | `!` | Run a line of bash shell | `!ls -al data` | +-----------------+--------------------------------------------------------------+--------------------------------------------------------------------------------------------+ In square brackets with asterisks are recursive parts of the syntax, which often also accept `not` operators. `` denotes places where you can choose an identifier, filename, etc. In the pages that follow, the syntax is provided for the most common commands. You can also type the name of the command with no arguments into the interpreter, in order to show usage examples. Prompt features ------------------- * You can use `history`, `clear`, `ls` and `cd` commands as you would in the shell * You can execute arbitrary bash commands by beginning the line with an exclamation point (e.g. ``!rm data/*``) * You can use semicolons to put multiple commands on a line (currently needs a space **before and after** the semicolon) * There is no piping or output redirection (yet), but you can use the `export` and `save` commands to export results * You can use backslashes to continue writing on the next line * You can write scripts and pass them to the *corpkit* interpreter The below is therefore a possible (but terrible) way to write code in *corpkit*: .. code-block:: bash > !du -h data ; set mycorp ; search corpus for words \ ... matching any \ ... excluding wordlists.closedclass \ ... showing lemma and pos ; concordance ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.setup.rst ================================================ Setup ============================== .. contents:: :local: Dependencies ------------- To use the interpreter, you'll need *corpkit* installed. To use all features of the interpreter, you will also need *readline* and *IPython*. Accessing -------------------- With *corpkit* installed, you can start the interpreter in a couple of ways: .. code-block:: bash $ corpkit # or $ python -m corpkit.env You can start it from a Python session, too: .. code-block:: python >>> from corpkit import env >>> env() The prompt ------------ When using the interpreter, the prompt (the text to the left of where you type your command) displays the directory you are in (with an asterisk if it does not appear to be a *corpkit* project) and the currently active corpus, if any: .. code-block:: none corpkit@junglebook:no-corpus> When you see it, *corpkit* is ready to accept commands! ================================================ FILE: rst_docs/interpreter/corpkit.interpreter.visualising.rst ================================================ Plotting ========= You can plot results and edited results using the `plot` method, which interfaces with *matplotlib*. .. code-block:: bash > plot edited as bar chart with title as 'Example plot' and x_label as 'Subcorpus' > plot edited as area chart with stacked and colours as Paired > plot edited with style as seaborn-talk # defaults to line chart There are many possible arguments for customising the figure. The table below shows some of them. .. code-block:: bash > plot edited as bar chart with rot as 45 and logy and \ ... legend_alpha as 0.8 and show_p_val and not grid +--------------------+------------+---------------------------------+ | Argument | Type | Action | +====================+============+=================================+ | `grid` | `bool` | Show grid in background | +--------------------+------------+---------------------------------+ | `rot` | `int` | Rotate x axis labels n degrees | +--------------------+------------+---------------------------------+ | `shadow` | `bool` | Shadows for some parts of plot | +--------------------+------------+---------------------------------+ | `ncol` | `int` | n columns for legend entries | +--------------------+------------+---------------------------------+ | `explode` | `list` | Explode these entries in pie | +--------------------+------------+---------------------------------+ | `partial_pie` | `bool` | Allow plotting of pie slices | +--------------------+------------+---------------------------------+ | `legend_frame` | `bool` | Show frame around legend | +--------------------+------------+---------------------------------+ | `legend_alpha` | `float` | Opacity of legend | +--------------------+------------+---------------------------------+ | `reverse_legend` | `bool` | Reverse legend entry order | +--------------------+------------+---------------------------------+ | `transpose` | `bool` | Flip axes of DataFrame | +--------------------+------------+---------------------------------+ | `logx/logy` | `bool` | Log scales | +--------------------+------------+---------------------------------+ | `show_p_val` | `bool` | Try to show p value in legend | +--------------------+------------+---------------------------------+ .. note:: If you want to set a boolean value, you can just say ``and value`` or ``and not value``. If you like, however, you could write it more fully as ``with value as true/false`` as well. ================================================ FILE: setup.cfg ================================================ [metadata] name = corpkit description-file = README.md description = A toolkit for working with parsed corpora url = http://github.com/interrogator/corpkit author = Daniel McDonald author-email = mcdonaldd@unimelb.edu.au [bdist_wheel] universal = 1 ================================================ FILE: setup.py ================================================ import setuptools from setuptools import setup, find_packages from setuptools.command.install import install import os from os.path import isfile, isdir, join, dirname class CustomInstallCommand(install): """ Customized setuptools install command, which installs some NLTK data automatically """ def run(self): from setuptools.command.install import install install.run(self) # since nltk may have just been installed # we need to update our PYTHONPATH import site try: reload(site) except NameError: pass # Now we can import nltk import nltk # install these three resources and add them to path install_d = {'tokenizers': 'punkt', 'corpora': 'wordnet', 'taggers': 'averaged_perceptron_tagger'} path_to_nltk_f = nltk.__file__ nltkpath = dirname(path_to_nltk_f) for path, name in install_d.items(): pat = join(nltkpath, path) if not isfile(join(pat, '%s.zip' % name)) \ and not isdir(join(pat, name)): nltk.download(name, download_dir=nltkpath) nltk.data.path.append(nltkpath) setup(name='corpkit', version='2.3.8', description='A toolkit for working with linguistic corpora', url='http://github.com/interrogator/corpkit', author='Daniel McDonald', packages=['corpkit', 'corpkit.download'], scripts=['corpkit/new_project', 'corpkit/parse', 'corpkit/corpkit', 'corpkit/corpkit.1'], package_dir={'corpkit': 'corpkit'}, package_data={'corpkit': ['*.jar', 'corpkit/*.jar', '*.sh', 'corpkit/*.sh', '*.ipynb', 'corpkit/*.ipynb', '*.p', 'dictionaries/*.p', '*.py', 'dictionaries/*.py']}, author_email='mcdonaldd@unimelb.edu.au', license='MIT', cmdclass={'install': CustomInstallCommand,}, keywords=['corpus', 'linguistics', 'nlp'], install_requires=["matplotlib>=1.4.3", "nltk>=3.0.0", "joblib", "pandas>=0.18.1", #"mpld3>=0.2", "requests", "tabview>=1.4.0", "chardet", "blessings>=1.6", "traitlets>=4.1.0"], dependency_links=['git+https://github.com/interrogator/tabview.git#egg=tabview-1.4.0', 'git+https://github.com/interrogator/tkintertable.git#egg=tkintertable-1.2']) ================================================ FILE: talks/IDL_seminar.tex ================================================ \documentclass{beamer} % print frames %\documentclass[notes=only]{beamer} % only notes %\documentclass{beamer} % only frames \newcounter{savedenum} \newcommand*{\saveenum}{\setcounter{savedenum}{\theenumi}} \newcommand*{\resume}{\setcounter{enumi}{\thesavedenum}} \usepackage{multienum} \usepackage[notocbib]{apacite} \renewcommand{\APACrefatitle}[2]{#1} \renewcommand{\APACrefbtitle}[2]{#1} \renewcommand{\APACrefbtitle}[2]{\Bem{#1}} \renewcommand{\APACrefaetitle}[2]{[#2]} \renewcommand{\APACrefbetitle}[2]{[#2]} \usepackage{textpos} \usefonttheme{serif} %\usepackage{graphicx} \usetheme{Boadilla} \usepackage{hyperref} \usepackage[UKenglish]{babel} \usepackage{lingmacros} \setcounter{tocdepth}{1} \usecolortheme{orchid} \title[University of Melbourne]{Exploring the influence of medium and culture on language use in an online support group} \author[Daniel McDonald]{~\\Daniel McDonald~\\~\\~\\\footnotesize} \date{IDL, 20/3/2015} \begin{document} \addtobeamertemplate{frametitle}{}{% \begin{textblock*}{100mm}(.775\textwidth,-.5cm) \includegraphics[scale=.235]{../images/unimelblong} \end{textblock*}} \frame{\titlepage} \begin{frame} \frametitle{Context} \begin{itemize} \item Show you all what my PhD research is about \item Introduce \emph{Systemic Functional Linguistics} (SFL) \item Discuss some of the problems \emph{SFL} might help \emph{us} solve \item Discuss some of the problems \emph{you} might help \emph{me} solve \end{itemize} \end{frame} \begin{frame} \frametitle{Case study: my thesis} \begin{itemize} \item I'm researching longitudinal linguistic change in a 12 year old bipolar disorder forum \item 60,000 posts \item 5821 unique usernames \item A few veterans with over 1000 posts, most users have 1--5 \item Rules: no asking for diagnosis, stay `anonymous' \item Normative biomedical ideology \cite{vayreda_social_2009} \item People come for information and/or social support \item Veterans answer questions, welcome new members, speak as `we' \end{itemize} \end{frame} \begin{frame} \frametitle{The forum} \centering \includegraphics[scale=.5]{../images/forum.png} \end{frame} \begin{frame} \frametitle{Thesis methodology: the easy part} \begin{itemize} \item \emph{Wget} to spider the forum \item Extract text from HTML with \emph{Beautiful Soup} \item Spelling normalisation via \emph{PyEnchant} \item Parse posts for constituency and dependency grammar with \emph{Stanford CoreNLP} \item Create subcorpora based on post count \item Build \texttt{corpkit}, some tools for searching parse trees, manipulating and plotting results: \texttt{pip install corpkit} (Alpha!) \item Develop an \emph{IPython Notebook} interface for working with the corpus\slash toolkit \item \url{https://github.com/interrogator/corpkit}, \url{https://github.com/interrogator/sfl_corpling} \end{itemize} \end{frame} \begin{frame} \frametitle{Analysing 8m words: the hard part} How do we actually make sense of this huge collection of data? \end{frame} \begin{frame} \frametitle{ \frametitle{An example: \emph{Katlin09}}} Katlin09's early posts look like this: \centering \includegraphics[width=0.9\textwidth]{../images/kat1.png} \end{frame} \begin{frame} \frametitle{Katlin09} ... and here's one of her later posts... \centering \includegraphics[width=0.9\textwidth]{../images/kat2.png} \end{frame} \begin{frame} \frametitle{What's happening with her language use?} \begin{itemize} \item Has her language use changed over time? \item Does this same change happen to other members? \item What \emph{causes} the change? \item If many things cause the change, how can we distinguish what forces are acting and when? \end{itemize} To answer these kinds of questions, we need a \emph{theory of language} \end{frame} \begin{frame} \frametitle{\emph{Systemic Functional Linguistics} (SFL)} \citeA{halliday_introduction_2004} conceptualise language as: \begin{enumerate} \item Systemic: a sign-\emph{system}, from which users select realisations \item Functional: structured to achieve meaningful social goals \item Constitutive of context: context is mapped onto abstractions of grammatical systems (mood, transitivity and theme) \begin{itemize} \item \textbf{Context is in text.} \end{itemize} \end{enumerate} \end{frame} \begin{frame} \frametitle{Overview of SFL} \centering \includegraphics[width=0.90\textwidth]{../images/egginsfixed.jpg} \end{frame} \begin{frame} \frametitle{SFL: Introduction} SFL argues that we can break communication into \emph{strata} \begin{itemize} \item Context: \begin{itemize} \item Genre \item Register \end{itemize} \item Language: \begin{itemize} \item Discourse-semantic \item Lexicogrammatical \item Phonological/typographical \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{SFL: \emph{Metafunctions}} In SFL, language/images are communicating \emph{up to} three different \emph{kinds} of meaning simultaneously: \begin{itemize} \item Interpersonal meaning: roles and relationships between people \item Ideational meaning: what happens to whom, under what circumstances? \item Textual meaning: the role that language is playing in the interaction \end{itemize} \end{frame} \begin{frame} \frametitle{Overview of SFL} \centering \includegraphics[width=0.90\textwidth]{../images/egginsfixed.jpg} \end{frame} \begin{frame} \frametitle{Metafunctions in the lexicogrammar} Each function is accomplished through different linguistic subsystems at the level of lexicogrammar. \begin{itemize} \item \textbf{Interpersonal meanings} are made by the \textbf{mood system}: \emph{imperative, interrogative, declarative, modality} \item \textbf{Ideational meanings} are made by the \textbf{transitivity system}: \emph{predicates and their arguments} \item \textbf{Textual meanings} are made by the \textbf{thematic system}: \emph{linking texts together with \emph{and}, \emph{but}, \emph{so} ... } \end{itemize} \end{frame} \begin{frame} \centering \includegraphics[width=0.60\textwidth]{../images/system.png} \end{frame} \begin{frame} \frametitle{Power and mood choice} \begin{itemize} \item When there's a power disparity, some interpersonal meanings are less available to the one with less power. \item A good example is the mood system (Questions, statements, commands): \begin{itemize} \item Me: Would you tell me the answer? / I think you should tell me the answer. / Tell me the readings! \item You: Can you speak slower? / We're having trouble understanding you / \underline{~~~~~~~~~~~} ? \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{SFL and multimodality} \begin{itemize} \item Multimodality: the (simultaneous) use of different channels/modes to communicate \item Inherent to online communication (page layout, at the very least) \item We can look at images as also accomplishing the three metafunctions... \end{itemize} \end{frame} \begin{frame} \centering \includegraphics[width=0.50\textwidth]{../images/ikea.jpg} \end{frame} \begin{frame} \frametitle{SFL and genre} \begin{itemize} \item In SFL, a genre is a staged, goal-oriented social process \item Culturally recognised sets of role relationships, things being spoken about, and modes of communication \item We can actually figure this stuff out from looking at the lexicogrammar \item Example: \end{itemize} ~~~~~~~~~~~~~~\emph{Submissions must contain 8--10 references.} \end{frame} \begin{frame} \centering \includegraphics[width=0.50\textwidth]{../images/ikea.jpg} \end{frame} \begin{frame} \frametitle{IPython Notebook ...} \end{frame} \begin{frame} \frametitle{Summary of findings} \begin{itemize} \item More imperatives \item More \emph{I would} \item More jargon \item More `metadiscourse' \item etc. \end{itemize} \end{frame} \begin{frame} \frametitle{What's causing the change?} Two contradictory hypotheses: \begin{enumerate} \item \textbf{Socialisation:} new members learn from veterans and implement the linguistic repertoire they've learned \item \textbf{Genre awareness:} new members know they are newcomers, and act like it \end{enumerate} ... and what role does the technology itself play? \end{frame} \begin{frame} \frametitle{Reasons for jargonisation?} We can use SFL's idea of metafunctions as an explanation for why a certain kind of language change occurs. \begin{itemize} \item \textbf{Interpersonal change:} jargon demonstrates expertise, belonging \item \textbf{Experiential change:} jargon distinguishes between hypertechnical things \item \textbf{Textual change:} shorter words are easier to type \end{itemize} The important thing to remember is that different kinds of meaning are made \emph{simultaneously.} \end{frame} \begin{frame} \frametitle{Brainstorming ...} What \emph{interpersonal}, \emph{experiential} and \emph{textual} meanings can we make by: \begin{itemize} \item Using imperatives: \emph{do this}, \emph{go there} \item Vague language: \emph{things will get better}, \emph{things are alright} \end{itemize} \end{frame} \begin{frame} \frametitle{Where to next?} \begin{itemize} \item More awareness of multimodality, hardware influence, site architecture \item Can we predict the influence of the three metafunctions? \item Can we \emph{measure} the influence? \item How does it play out in new technology? \emph{Reddit? iPhones?} \item A framework for doing SFL with mediated communication? \end{itemize} \end{frame} \begin{frame} \frametitle{Help!} ~~~~~~~~~~~Thoughts? \end{frame} \begin{frame}[t,allowframebreaks] \frametitle{References} \bibliographystyle{apacite} \bibliography{../references/libwin.bib} \end{frame} \end{document}